diff --git a/src/Makefile.d/versions.mk b/src/Makefile.d/versions.mk index 7c130d90846ab6f4199eb618ee918fdb6999e5cc..470010e8ba098bef3636a085bc32bc76458bf475 100644 --- a/src/Makefile.d/versions.mk +++ b/src/Makefile.d/versions.mk @@ -85,7 +85,7 @@ endif #WFLAGS+=-Wunreachable-code WFLAGS+=-Winline ifdef DEBUGMODE - WFLAGS+=-Wno-error=inline + WFLAGS+=-Wno-inline endif ifdef GCC43 WFLAGS+=-funit-at-a-time diff --git a/src/d_main.c b/src/d_main.c index c139650d1eb039a057da10d063f392f33c94fac2..60a1579c3b499acce2d952781f5fd3a1f97d5339 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1429,7 +1429,8 @@ void D_SRB2Main(void) I_InitializeTime(); // Make backups of some SOCcable tables. - P_BackupTables(); + P_InitializeTables(); + //P_BackupTables(); mainwads = 3; // doesn't include music.dta #ifdef USE_PATCH_DTA diff --git a/src/deh_lua.c b/src/deh_lua.c index 64fb52fc7423a7486c9d6736762fedd0fcde64ba..1dcf0f13c3889508705c26f7bbd6bb62b941b78b 100644 --- a/src/deh_lua.c +++ b/src/deh_lua.c @@ -98,18 +98,9 @@ static inline int lib_freeslot(lua_State *L) } else if (fastcmp(type, "MT")) { - mobjtype_t i; - for (i = 0; i < NUMMOBJFREESLOTS; i++) - if (!FREE_MOBJS[i]) { - CONS_Printf("MobjType MT_%s allocated.\n",word); - FREE_MOBJS[i] = Z_Malloc(strlen(word)+1, PU_STATIC, NULL); - strcpy(FREE_MOBJS[i],word); - lua_pushinteger(L, MT_FIRSTFREESLOT + i); - r++; - break; - } - if (i == NUMMOBJFREESLOTS) - CONS_Alert(CONS_WARNING, "Ran out of free MobjType slots!\n"); + CONS_Printf("MobjType MT_%s allocated.\n",word); + lua_pushinteger(L, P_AllocateMobjinfo(Z_StrDup(va("MT_%s", word)))); + r++; } else if (fastcmp(type, "SKINCOLOR")) { @@ -432,20 +423,12 @@ static int ScanConstants(lua_State *L, boolean mathlib, const char *word) return luaL_error(L, "state '%s' does not exist.\n", word); } else if (fastncmp("MT_",word,3)) { - p = word+3; - for (i = 0; i < NUMMOBJFREESLOTS; i++) { - if (!FREE_MOBJS[i]) - break; - if (fastcmp(p, FREE_MOBJS[i])) { - CacheAndPushConstant(L, word, MT_FIRSTFREESLOT+i); - return 1; - } - } - for (i = 0; i < MT_FIRSTFREESLOT; i++) - if (fastcmp(p, MOBJTYPE_LIST[i]+3)) { + for (i = 0; (size_t)i < nummobjinfo; i++) { + if (fastcmp(word, mobjinfo[i]->name)) { CacheAndPushConstant(L, word, i); return 1; } + } return luaL_error(L, "mobjtype '%s' does not exist.\n", word); } else if (fastncmp("SPR_",word,4)) { diff --git a/src/deh_soc.c b/src/deh_soc.c index dda3b2ef4b31352b1579623421cdc2733da56585..9c07a38f1df4194599fa2e7f9468e9832a178f48 100644 --- a/src/deh_soc.c +++ b/src/deh_soc.c @@ -468,12 +468,8 @@ void readfreeslots(MYFILE *f) } else if (fastcmp(type, "MT")) { - for (i = 0; i < NUMMOBJFREESLOTS; i++) - if (!FREE_MOBJS[i]) { - FREE_MOBJS[i] = Z_Malloc(strlen(word)+1, PU_STATIC, NULL); - strcpy(FREE_MOBJS[i],word); - break; - } + CONS_Printf("MobjType MT_%s allocated.\n",word); + P_AllocateMobjinfo(Z_StrDup(va("MT_%s", word))); } else if (fastcmp(type, "SKINCOLOR")) { @@ -567,99 +563,99 @@ void readthing(MYFILE *f, INT32 num) if (fastcmp(word, "MAPTHINGNUM") || fastcmp(word, "DOOMEDNUM")) { - mobjinfo[num].doomednum = (INT32)atoi(word2); + mobjinfo[num]->doomednum = (INT32)atoi(word2); } else if (fastcmp(word, "SPAWNSTATE")) { - mobjinfo[num].spawnstate = get_number(word2); + mobjinfo[num]->spawnstate = get_number(word2); } else if (fastcmp(word, "SPAWNHEALTH")) { - mobjinfo[num].spawnhealth = (INT32)get_number(word2); + mobjinfo[num]->spawnhealth = (INT32)get_number(word2); } else if (fastcmp(word, "SEESTATE")) { - mobjinfo[num].seestate = get_number(word2); + mobjinfo[num]->seestate = get_number(word2); } else if (fastcmp(word, "SEESOUND")) { - mobjinfo[num].seesound = get_number(word2); + mobjinfo[num]->seesound = get_number(word2); } else if (fastcmp(word, "REACTIONTIME")) { - mobjinfo[num].reactiontime = (INT32)get_number(word2); + mobjinfo[num]->reactiontime = (INT32)get_number(word2); } else if (fastcmp(word, "ATTACKSOUND")) { - mobjinfo[num].attacksound = get_number(word2); + mobjinfo[num]->attacksound = get_number(word2); } else if (fastcmp(word, "PAINSTATE")) { - mobjinfo[num].painstate = get_number(word2); + mobjinfo[num]->painstate = get_number(word2); } else if (fastcmp(word, "PAINCHANCE")) { - mobjinfo[num].painchance = (INT32)get_number(word2); + mobjinfo[num]->painchance = (INT32)get_number(word2); } else if (fastcmp(word, "PAINSOUND")) { - mobjinfo[num].painsound = get_number(word2); + mobjinfo[num]->painsound = get_number(word2); } else if (fastcmp(word, "MELEESTATE")) { - mobjinfo[num].meleestate = get_number(word2); + mobjinfo[num]->meleestate = get_number(word2); } else if (fastcmp(word, "MISSILESTATE")) { - mobjinfo[num].missilestate = get_number(word2); + mobjinfo[num]->missilestate = get_number(word2); } else if (fastcmp(word, "DEATHSTATE")) { - mobjinfo[num].deathstate = get_number(word2); + mobjinfo[num]->deathstate = get_number(word2); } else if (fastcmp(word, "DEATHSOUND")) { - mobjinfo[num].deathsound = get_number(word2); + mobjinfo[num]->deathsound = get_number(word2); } else if (fastcmp(word, "XDEATHSTATE")) { - mobjinfo[num].xdeathstate = get_number(word2); + mobjinfo[num]->xdeathstate = get_number(word2); } else if (fastcmp(word, "SPEED")) { - mobjinfo[num].speed = get_number(word2); + mobjinfo[num]->speed = get_number(word2); } else if (fastcmp(word, "RADIUS")) { - mobjinfo[num].radius = get_number(word2); + mobjinfo[num]->radius = get_number(word2); } else if (fastcmp(word, "HEIGHT")) { - mobjinfo[num].height = get_number(word2); + mobjinfo[num]->height = get_number(word2); } else if (fastcmp(word, "DISPOFFSET")) { - mobjinfo[num].dispoffset = get_number(word2); + mobjinfo[num]->dispoffset = get_number(word2); } else if (fastcmp(word, "MASS")) { - mobjinfo[num].mass = (INT32)get_number(word2); + mobjinfo[num]->mass = (INT32)get_number(word2); } else if (fastcmp(word, "DAMAGE")) { - mobjinfo[num].damage = (INT32)get_number(word2); + mobjinfo[num]->damage = (INT32)get_number(word2); } else if (fastcmp(word, "ACTIVESOUND")) { - mobjinfo[num].activesound = get_number(word2); + mobjinfo[num]->activesound = get_number(word2); } else if (fastcmp(word, "FLAGS")) { - mobjinfo[num].flags = (INT32)get_number(word2); + mobjinfo[num]->flags = (INT32)get_number(word2); } else if (fastcmp(word, "RAISESTATE")) { - mobjinfo[num].raisestate = get_number(word2); + mobjinfo[num]->raisestate = get_number(word2); } else deh_warning("Thing %d: unknown word '%s'", num, word); @@ -4120,17 +4116,11 @@ mobjtype_t get_mobjtype(const char *word) mobjtype_t i; if (*word >= '0' && *word <= '9') return atoi(word); - if (fastncmp("MT_",word,3)) - word += 3; // take off the MT_ - for (i = 0; i < NUMMOBJFREESLOTS; i++) { - if (!FREE_MOBJS[i]) - break; - if (fastcmp(word, FREE_MOBJS[i])) - return MT_FIRSTFREESLOT+i; - } - for (i = 0; i < MT_FIRSTFREESLOT; i++) - if (fastcmp(word, MOBJTYPE_LIST[i]+3)) + I_Assert(fastncmp("MT_",word,3)); + for (i = 0; i < nummobjinfo; i++) { + if (fastcmp(word, mobjinfo[i]->name)) return i; + } deh_warning("Couldn't find mobjtype named 'MT_%s'",word); return MT_NULL; } diff --git a/src/deh_tables.c b/src/deh_tables.c index c7c7c604068cd4761ea3944a92cd4efecd9a0ddb..82523caffbf233916853db3a27afceb6b7200857 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -29,7 +29,6 @@ #include "deh_tables.h" char *FREE_STATES[NUMSTATEFREESLOTS]; -char *FREE_MOBJS[NUMMOBJFREESLOTS]; char *FREE_SKINCOLORS[NUMCOLORFREESLOTS]; bitarray_t used_spr[BIT_ARRAY_SIZE(NUMSPRITEFREESLOTS)]; // Sprite freeslots in use @@ -5813,16 +5812,12 @@ void DEH_TableCheck(void) { #if defined(_DEBUG) || defined(PARANOIA) const size_t dehstates = sizeof(STATE_LIST)/sizeof(const char*); - const size_t dehmobjs = sizeof(MOBJTYPE_LIST)/sizeof(const char*); const size_t dehpowers = sizeof(POWERS_LIST)/sizeof(const char*); const size_t dehcolors = sizeof(COLOR_ENUMS)/sizeof(const char*); if (dehstates != S_FIRSTFREESLOT) I_Error("You forgot to update the Dehacked states list, you dolt!\n(%d states defined, versus %s in the Dehacked list)\n", S_FIRSTFREESLOT, sizeu1(dehstates)); - if (dehmobjs != MT_FIRSTFREESLOT) - I_Error("You forgot to update the Dehacked mobjtype list, you dolt!\n(%d mobj types defined, versus %s in the Dehacked list)\n", MT_FIRSTFREESLOT, sizeu1(dehmobjs)); - if (dehpowers != NUMPOWERS) I_Error("You forgot to update the Dehacked powers list, you dolt!\n(%d powers defined, versus %s in the Dehacked list)\n", NUMPOWERS, sizeu1(dehpowers)); diff --git a/src/deh_tables.h b/src/deh_tables.h index b6986adff0166c3132be5f70ca78c7835030998f..61592e47ef9e991e66cfbb86bd66d767129cb709 100644 --- a/src/deh_tables.h +++ b/src/deh_tables.h @@ -21,13 +21,11 @@ // Free slot names // The crazy word-reading stuff uses these. extern char *FREE_STATES[NUMSTATEFREESLOTS]; -extern char *FREE_MOBJS[NUMMOBJFREESLOTS]; extern char *FREE_SKINCOLORS[NUMCOLORFREESLOTS]; extern bitarray_t used_spr[BIT_ARRAY_SIZE(NUMSPRITEFREESLOTS)]; // Sprite freeslots in use #define initfreeslots() {\ memset(FREE_STATES, 0, sizeof(FREE_STATES));\ - memset(FREE_MOBJS, 0, sizeof(FREE_MOBJS));\ memset(FREE_SKINCOLORS, 0, sizeof(FREE_SKINCOLORS));\ memset(used_spr, 0, sizeof(used_spr));\ memset(actionsoverridden, LUA_REFNIL, sizeof(actionsoverridden));\ diff --git a/src/dehacked.c b/src/dehacked.c index 2050a117f67128dae4e40b992e5a49f1538457d7..253c3c6861e1eb5327aa518b05522e71b32f9cdd 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -301,11 +301,11 @@ static void DEH_LoadDehackedFile(MYFILE *f, boolean mainfile) { if (i == 0 && word2[0] != '0') // If word2 isn't a number i = get_mobjtype(word2); // find a thing by name - if (i < NUMMOBJTYPES && i > 0) + if (i < (INT32)nummobjinfo && i > 0) readthing(f, i); else { - deh_warning("Thing %d out of range (1 - %d)", i, NUMMOBJTYPES-1); + deh_warning("Thing %d out of range (1 - %zu)", i, nummobjinfo-1); ignorelines(f); } } diff --git a/src/g_demo.c b/src/g_demo.c index 0efba5a59724f3b64f3a9ed9dbcf1d137a472e47..b60aadacc569657869fad932104149b4506dab58 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -787,13 +787,13 @@ void G_GhostTicker(void) switch (xziptic & EZT_THOKMASK) { case EZT_THOK: - type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem; + type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->painchance : (UINT32)skin->thokitem; break; case EZT_SPIN: - type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem; + type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->damage : (UINT32)skin->spinitem; break; case EZT_REV: - type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem; + type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->raisestate : (UINT32)skin->revitem; break; } } @@ -810,8 +810,8 @@ void G_GhostTicker(void) mobj = P_SpawnMobjFromMobj(g->mo, 0, 0, -FixedDiv(FixedMul(g->mo->info->height, g->mo->scale) - g->mo->height,3*FRACUNIT), MT_THOK); if (!P_MobjWasRemoved(mobj)) { - mobj->sprite = states[mobjinfo[type].spawnstate].sprite; - mobj->frame = (states[mobjinfo[type].spawnstate].frame & FF_FRAMEMASK) | tr_trans60<<FF_TRANSSHIFT; + mobj->sprite = states[mobjinfo[type]->spawnstate].sprite; + mobj->frame = (states[mobjinfo[type]->spawnstate].frame & FF_FRAMEMASK) | tr_trans60<<FF_TRANSSHIFT; mobj->color = g->mo->color; mobj->skin = g->mo->skin; P_SetScale(mobj, g->mo->scale, true); @@ -854,8 +854,8 @@ void G_GhostTicker(void) y = READFIXED(g->p); z = READFIXED(g->p); angle = READANGLE(g->p); - if (!(mobjinfo[type].flags & MF_SHOOTABLE) - || !(mobjinfo[type].flags & (MF_ENEMY|MF_MONITOR)) + if (!(mobjinfo[type]->flags & MF_SHOOTABLE) + || !(mobjinfo[type]->flags & (MF_ENEMY|MF_MONITOR)) || health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad. continue; poof = P_SpawnMobj(x, y, z, MT_GHOST); @@ -1095,13 +1095,13 @@ void G_ReadMetalTic(mobj_t *metal) switch (xziptic & EZT_THOKMASK) { case EZT_THOK: - type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem; + type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->painchance : (UINT32)skin->thokitem; break; case EZT_SPIN: - type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem; + type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->damage : (UINT32)skin->spinitem; break; case EZT_REV: - type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem; + type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->raisestate : (UINT32)skin->revitem; break; } } @@ -1116,8 +1116,8 @@ void G_ReadMetalTic(mobj_t *metal) mobj = P_SpawnMobjFromMobj(metal, 0, 0, -FixedDiv(FixedMul(metal->info->height, metal->scale) - metal->height,3*FRACUNIT), MT_THOK); if (!P_MobjWasRemoved(mobj)) { - mobj->sprite = states[mobjinfo[type].spawnstate].sprite; - mobj->frame = states[mobjinfo[type].spawnstate].frame; + mobj->sprite = states[mobjinfo[type]->spawnstate].sprite; + mobj->frame = states[mobjinfo[type]->spawnstate].frame; mobj->angle = metal->angle; mobj->color = metal->color; mobj->skin = metal->skin; @@ -2567,7 +2567,7 @@ void G_AddGhost(char *defdemoname) return; gh->mo->angle = FixedAngle(mthing->angle << FRACBITS); f = gh->mo->floorz; - c = gh->mo->ceilingz - mobjinfo[MT_PLAYER].height; + c = gh->mo->ceilingz - mobjinfo[MT_PLAYER]->height; if (!!(mthing->args[0]) ^ !!(mthing->options & MTF_OBJECTFLIP)) { z = c - offset; diff --git a/src/g_game.c b/src/g_game.c index 8d19c9e7cb68df142e68e7d0277b2425153f9206..75f0d11db1629fd7f9727440eb43067781f5aab2 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -3342,7 +3342,7 @@ void G_AddPlayer(INT32 playernum) p->playerstate = PST_REBORN; - p->height = mobjinfo[MT_PLAYER].height; + p->height = mobjinfo[MT_PLAYER]->height; if (G_GametypeUsesLives() || ((netgame || multiplayer) && (gametyperules & GTR_FRIENDLY))) p->lives = cv_startinglives.value; diff --git a/src/info.c b/src/info.c index 9b33a57ab2f863d24f2355b24acdd6ed208e9765..95b7c94858790ef67633ed087a6cfc16872120d8 100644 --- a/src/info.c +++ b/src/info.c @@ -3997,9 +3997,10 @@ state_t states[NUMSTATES] = {SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL, 0}, // S_NAMECHECK }; -mobjinfo_t mobjinfo[NUMMOBJTYPES] = +static mobjinfo_t startmobjinfo[] = { - { // MT_NULL + { + "MT_NULL", -1, // doomednum S_NULL, // spawnstate 0, // spawnhealth @@ -4026,7 +4027,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_UNKNOWN + { + "MT_UNKNOWN", -1, // doomednum S_UNKNOWN, // spawnstate 1, // spawnhealth @@ -4053,7 +4055,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THOK + { + "MT_THOK", -1, // doomednum S_THOK, // spawnstate 1000, // spawnhealth @@ -4080,7 +4083,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PLAYER + { + "MT_PLAYER", -1, // doomednum S_PLAY_STND, // spawnstate 1, // spawnhealth @@ -4107,7 +4111,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_NULL// raisestate }, - { // MT_TAILSOVERLAY + { + "MT_TAILSOVERLAY", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -4134,7 +4139,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_METALJETFUME + { + "MT_METALJETFUME", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -4161,7 +4167,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_JETFUME1 // raisestate }, - { // MT_BLUECRAWLA + { + "MT_BLUECRAWLA", 100, // doomednum S_POSS_STND, // spawnstate 1, // spawnhealth @@ -4188,7 +4195,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_REDCRAWLA + { + "MT_REDCRAWLA", 101, // doomednum S_SPOS_STND, // spawnstate 1, // spawnhealth @@ -4215,7 +4223,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZFISH + { + "MT_GFZFISH", 102, // doomednum S_FISH2, // spawnstate 1, // spawnhealth @@ -4242,7 +4251,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GOLDBUZZ + { + "MT_GOLDBUZZ", 103, // doomednum S_BUZZLOOK1, // spawnstate 1, // spawnhealth @@ -4269,7 +4279,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_REDBUZZ + { + "MT_REDBUZZ", 104, // doomednum S_RBUZZLOOK1, // spawnstate 1, // spawnhealth @@ -4296,7 +4307,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_JETTBOMBER + { + "MT_JETTBOMBER", 105, // doomednum S_JETBLOOK1, // spawnstate 1, // spawnhealth @@ -4323,7 +4335,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_MINE// raisestate }, - { // MT_JETTGUNNER + { + "MT_JETTGUNNER", 106, // doomednum S_JETGLOOK1, // spawnstate 1, // spawnhealth @@ -4350,7 +4363,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_JETTBULLET// raisestate }, - { // MT_CRAWLACOMMANDER + { + "MT_CRAWLACOMMANDER", 107, // doomednum S_CCOMMAND1, // spawnstate 2, // spawnhealth @@ -4377,7 +4391,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DETON + { + "MT_DETON", 108, // doomednum S_DETON1, // spawnstate 1, // spawnhealth @@ -4404,7 +4419,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)ANG15// raisestate: largest angle to turn in one tic (here, 15 degrees) }, - { // MT_SKIM + { + "MT_SKIM", 109, // doomednum S_SKIM1, // spawnstate 1, // spawnhealth @@ -4431,7 +4447,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_MINE// raisestate }, - { // MT_TURRET + { + "MT_TURRET", 110, // doomednum S_TURRET, // spawnstate 1000, // spawnhealth @@ -4458,7 +4475,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POPUPTURRET + { + "MT_POPUPTURRET", 111, // doomednum S_TURRETLOOK, // spawnstate 1, // spawnhealth @@ -4485,7 +4503,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_JETTBULLET// raisestate }, - { // MT_SPINCUSHION + { + "MT_SPINCUSHION", 112, // doomednum S_SPINCUSHION_LOOK, // spawnstate 1, // spawnhealth @@ -4512,7 +4531,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CRUSHSTACEAN + { + "MT_CRUSHSTACEAN", 126, // doomednum S_CRUSHSTACEAN_ROAM1, // spawnstate 1, // spawnhealth @@ -4539,7 +4559,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CRUSHCLAW + { + "MT_CRUSHCLAW", -1, // doomednum S_CRUSHCLAW_AIM, // spawnstate 1, // spawnhealth @@ -4566,7 +4587,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_CRUSHCHAIN// raisestate }, - { // MT_CRUSHCHAIN + { + "MT_CRUSHCHAIN", -1, // doomednum S_CRUSHCHAIN, // spawnstate 0, // spawnhealth @@ -4593,7 +4615,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BANPYURA + { + "MT_BANPYURA", 138, // doomednum S_BANPYURA_ROAM1, // spawnstate 1, // spawnhealth @@ -4620,7 +4643,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BANPSPRING + { + "MT_BANPSPRING", -1, // doomednum S_CDIAG1, // spawnstate 1, // spawnhealth @@ -4647,7 +4671,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_CDIAG2 // raisestate }, - { // MT_JETJAW + { + "MT_JETJAW", 113, // doomednum S_JETJAW_ROAM1, // spawnstate 1, // spawnhealth @@ -4674,7 +4699,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNAILER + { + "MT_SNAILER", 114, // doomednum S_SNAILER1, // spawnstate 1, // spawnhealth @@ -4701,7 +4727,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_VULTURE + { + "MT_VULTURE", 115, // doomednum S_VULTURE_STND, // spawnstate 1, // spawnhealth @@ -4728,7 +4755,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POINTY + { + "MT_POINTY", 116, // doomednum S_POINTY1, // spawnstate 1, // spawnhealth @@ -4755,7 +4783,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POINTYBALL + { + "MT_POINTYBALL", -1, // doomednum S_POINTYBALL1, // spawnstate 1000, // spawnhealth @@ -4782,7 +4811,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROBOHOOD + { + "MT_ROBOHOOD", 117, // doomednum S_ROBOHOOD_LOOK, // spawnstate 1, // spawnhealth @@ -4809,7 +4839,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_ROBOHOOD_JUMP1 // raisestate }, - { // MT_FACESTABBER + { + "MT_FACESTABBER", 118, // doomednum S_FACESTABBER_STND1, // spawnstate 2, // spawnhealth @@ -4836,7 +4867,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FACESTABBERSPEAR + { + "MT_FACESTABBERSPEAR", -1, // doomednum S_FACESTABBERSPEAR, // spawnstate 1, // spawnhealth @@ -4863,7 +4895,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGGUARD + { + "MT_EGGGUARD", 119, // doomednum S_EGGGUARD_STND, // spawnstate 1, // spawnhealth @@ -4890,7 +4923,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGSHIELD + { + "MT_EGGSHIELD", -1, // doomednum S_EGGSHIELD, // spawnstate 1, // spawnhealth @@ -4917,7 +4951,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GSNAPPER + { + "MT_GSNAPPER", 120, // doomednum S_SNAPPER_SPAWN,// spawnstate 1, // spawnhealth @@ -4944,7 +4979,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNAPPER_LEG + { + "MT_SNAPPER_LEG", -1, // doomednum S_SNAPPER_LEG, // spawnstate 1, // spawnhealth @@ -4971,7 +5007,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_SNAPPER_LEGRAISE // raisestate }, - { // MT_SNAPPER_HEAD + { + "MT_SNAPPER_HEAD", -1, // doomednum S_SNAPPER_HEAD, // spawnstate 1, // spawnhealth @@ -4998,7 +5035,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINUS + { + "MT_MINUS", 121, // doomednum S_MINUS_INIT, // spawnstate 1, // spawnhealth @@ -5025,7 +5063,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_MINUS_BURST1 // raisestate }, - { // MT_MINUSDIRT + { + "MT_MINUSDIRT", -1, // doomednum S_MINUSDIRT1, // spawnstate 1, // spawnhealth @@ -5052,7 +5091,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPRINGSHELL + { + "MT_SPRINGSHELL", 122, // doomednum S_SSHELL_STND, // spawnstate 1, // spawnhealth @@ -5079,7 +5119,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_SSHELL_SPRING1// raisestate }, - { // MT_YELLOWSHELL + { + "MT_YELLOWSHELL", 125, // doomednum S_YSHELL_STND, // spawnstate 1, // spawnhealth @@ -5106,7 +5147,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_YSHELL_SPRING1// raisestate }, - { // MT_UNIDUS + { + "MT_UNIDUS", 123, // doomednum S_UNIDUS_STND, // spawnstate 1, // spawnhealth @@ -5133,7 +5175,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_UNIBALL + { + "MT_UNIBALL", -1, // doomednum S_UNIDUS_BALL, // spawnstate 1, // spawnhealth @@ -5160,7 +5203,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANARIVORE + { + "MT_CANARIVORE", 134, // doomednum S_CANARIVORE_LOOK, // spawnstate 1, // spawnhealth @@ -5187,7 +5231,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANARIVORE_GAS + { + "MT_CANARIVORE_GAS", -1, // doomednum S_CANARIVOREGAS_1, // spawnstate 1, // spawnhealth @@ -5214,7 +5259,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PYREFLY + { + "MT_PYREFLY", 136, // doomednum S_PYREFLY_FLY, // spawnstate 1, // spawnhealth @@ -5241,7 +5287,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PYREFLY_FIRE + { + "MT_PYREFLY_FIRE", -1, // doomednum S_PYREFIRE1, // spawnstate 1, // spawnhealth @@ -5268,7 +5315,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PTERABYTESPAWNER + { + "MT_PTERABYTESPAWNER", 135, // doomednum S_PTERABYTESPAWNER, // spawnstate 1, // spawnhealth @@ -5295,7 +5343,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PTERABYTEWAYPOINT + { + "MT_PTERABYTEWAYPOINT", -1, // doomednum S_PTERABYTEWAYPOINT, // spawnstate 1, // spawnhealth @@ -5322,7 +5371,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PTERABYTE + { + "MT_PTERABYTE", -1, // doomednum S_PTERABYTE_FLY1, // spawnstate 1, // spawnhealth @@ -5349,7 +5399,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DRAGONBOMBER + { + "MT_DRAGONBOMBER", 137, // doomednum S_DRAGONBOMBER, // spawnstate 1, // spawnhealth @@ -5376,7 +5427,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DRAGONWING + { + "MT_DRAGONWING", -1, // doomednum S_DRAGONWING1, // spawnstate 1000, // spawnhealth @@ -5403,7 +5455,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DRAGONTAIL + { + "MT_DRAGONTAIL", -1, // doomednum S_DRAGONTAIL_LOADED, // spawnstate 1000, // spawnhealth @@ -5430,7 +5483,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_DRAGONTAIL_EMPTY // raisestate }, - { // MT_DRAGONMINE + { + "MT_DRAGONMINE", -1, // doomednum S_DRAGONMINE, // spawnstate 1, // spawnhealth @@ -5457,7 +5511,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOSSEXPLODE + { + "MT_BOSSEXPLODE", -1, // doomednum S_BOSSEXPLODE, // spawnstate 1000, // spawnhealth @@ -5484,7 +5539,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SONIC3KBOSSEXPLODE + { + "MT_SONIC3KBOSSEXPLODE", -1, // doomednum S_SONIC3KBOSSEXPLOSION1, // spawnstate 1000, // spawnhealth @@ -5511,7 +5567,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOSSFLYPOINT + { + "MT_BOSSFLYPOINT", 290, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -5538,7 +5595,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGTRAP + { + "MT_EGGTRAP", 291, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -5565,7 +5623,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOSS3WAYPOINT + { + "MT_BOSS3WAYPOINT", 292, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -5592,7 +5651,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOSS9GATHERPOINT + { + "MT_BOSS9GATHERPOINT", 293, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -5619,7 +5679,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOSSJUNK + { + "MT_BOSSJUNK", -1, // doomednum S_BOSSEGLZ1, // spawnstate 1, // spawnhealth @@ -5646,7 +5707,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE + { + "MT_EGGMOBILE", 200, // doomednum S_EGGMOBILE_STND, // spawnstate 8, // spawnhealth @@ -5673,7 +5735,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_EGGMOBILE_PANIC1 // raisestate }, - { // MT_JETFUME1 + { + "MT_JETFUME1", -1, // doomednum S_JETFUME1, // spawnstate 1000, // spawnhealth @@ -5700,7 +5763,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE_BALL + { + "MT_EGGMOBILE_BALL", -1, // doomednum S_EGGMOBILE_BALL,// spawnstate 1, // spawnhealth @@ -5727,7 +5791,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE_TARGET + { + "MT_EGGMOBILE_TARGET", -1, // doomednum S_EGGMOBILE_TARGET, // spawnstate 1, // spawnhealth @@ -5754,7 +5819,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE_FIRE + { + "MT_EGGMOBILE_FIRE", -1, // doomednum S_LASERFLAME1, // spawnstate 1, // spawnhealth @@ -5781,7 +5847,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE2 + { + "MT_EGGMOBILE2", 201, // doomednum S_EGGMOBILE2_STND, // spawnstate 8, // spawnhealth @@ -5808,7 +5875,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_EGGMOBILE2_POGO1 // raisestate }, - { // MT_EGGMOBILE2_POGO + { + "MT_EGGMOBILE2_POGO", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -5835,7 +5903,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_EGGMOBILE2_POGO5 // raisestate }, - { // MT_GOOP + { + "MT_GOOP", -1, // doomednum S_GOOP1, // spawnstate 1000, // spawnhealth @@ -5862,7 +5931,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GOOPTRAIL + { + "MT_GOOPTRAIL", -1, // doomednum S_GOOPTRAIL, // spawnstate 1000, // spawnhealth @@ -5889,7 +5959,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE3 + { + "MT_EGGMOBILE3", 202, // doomednum S_EGGMOBILE3_STND, // spawnstate 8, // spawnhealth @@ -5916,7 +5987,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_EGGMOBILE3_ROFL // raisestate }, - { // MT_FAKEMOBILE + { + "MT_FAKEMOBILE", -1, // doomednum S_FAKEMOBILE_INIT, // spawnstate 1000, // spawnhealth @@ -5943,7 +6015,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SHOCKWAVE + { + "MT_SHOCKWAVE", -1, // doomednum S_SHOCKWAVE1, // spawnstate 1000, // spawnhealth @@ -5970,7 +6043,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMOBILE4 + { + "MT_EGGMOBILE4", 203, // doomednum S_EGGMOBILE4_STND, // spawnstate 8, // spawnhealth @@ -5997,7 +6071,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_EGGMOBILE4_RAISE1// raisestate }, - { // MT_EGGMOBILE4_MACE + { + "MT_EGGMOBILE4_MACE", -1, // doomednum S_EGGMOBILE4_MACE, // spawnstate 1000, // spawnhealth @@ -6024,7 +6099,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_JETFLAME + { + "MT_JETFLAME", -1, // doomednum S_JETFLAME, // spawnstate 1000, // spawnhealth @@ -6051,7 +6127,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGROBO1 + { + "MT_EGGROBO1", 1127, // doomednum S_EGGROBO1_STND,// spawnstate 1000, // spawnhealth @@ -6078,7 +6155,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGROBOJET + { + "MT_EGGROBOJET", -1, // doomednum S_EGGROBOJET, // spawnstate 1000, // spawnhealth @@ -6105,7 +6183,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FANG + { + "MT_FANG", 204, // doomednum S_FANG_SETUP, // spawnstate 8, // spawnhealth @@ -6132,7 +6211,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BROKENROBOT + { + "MT_BROKENROBOT", -1, // doomednum S_BROKENROBOTRANDOM, // spawnstate 1000, // spawnhealth @@ -6159,7 +6239,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_VWREF + { + "MT_VWREF", -1, // doomednum S_VWREF, // spawnstate 1, // spawnhealth @@ -6186,7 +6267,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_VWREB + { + "MT_VWREB", -1, // doomednum S_VWREB, // spawnstate 1, // spawnhealth @@ -6213,7 +6295,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PROJECTORLIGHT + { + "MT_PROJECTORLIGHT", -1, // doomednum S_PROJECTORLIGHT1, // spawnstate 1, // spawnhealth @@ -6240,7 +6323,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FBOMB + { + "MT_FBOMB", -1, // doomednum S_FBOMB1, // spawnstate 1, // spawnhealth @@ -6267,7 +6351,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TNTDUST + { + "MT_TNTDUST", -1, // doomednum S_TNTDUST_1, // spawnstate 1, // spawnhealth @@ -6293,7 +6378,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags S_NULL // raisestate }, - { // MT_FSGNA + { + "MT_FSGNA", -1, // doomednum S_FSGNA, // spawnstate 1, // spawnhealth @@ -6320,7 +6406,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FSGNB + { + "MT_FSGNB", -1, // doomednum S_FSGNB, // spawnstate 1, // spawnhealth @@ -6347,7 +6434,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FANGWAYPOINT + { + "MT_FANGWAYPOINT", 294, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -6374,7 +6462,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLACKEGGMAN + { + "MT_BLACKEGGMAN", 206, // doomednum S_BLACKEGG_STND, // spawnstate 8, // spawnhealth @@ -6401,7 +6490,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BLACKEGG_JUMP1 // raisestate }, - { // MT_BLACKEGGMAN_HELPER + { + "MT_BLACKEGGMAN_HELPER", -1, // doomednum S_BLACKEGG_HELPER, // spawnstate 8, // spawnhealth @@ -6428,7 +6518,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLACKEGGMAN_GOOPFIRE + { + "MT_BLACKEGGMAN_GOOPFIRE", -1, // doomednum S_BLACKEGG_GOOP1, // spawnstate 1000, // spawnhealth @@ -6455,7 +6546,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLACKEGGMAN_MISSILE + { + "MT_BLACKEGGMAN_MISSILE", -1, // doomednum S_BLACKEGG_MISSILE, // spawnstate 1000, // spawnhealth @@ -6482,7 +6574,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON + { + "MT_CYBRAKDEMON", 209, // doomednum S_CYBRAKDEMON_IDLE, // spawnstate 12, // spawnhealth @@ -6509,7 +6602,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_ELECTRIC_BARRIER + { + "MT_CYBRAKDEMON_ELECTRIC_BARRIER", -1, // doomednum S_CYBRAKDEMONELECTRICBARRIER_INIT1, // spawnstate 1000, // spawnhealth @@ -6536,7 +6630,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_MISSILE + { + "MT_CYBRAKDEMON_MISSILE", -1, // doomednum S_CYBRAKDEMONMISSILE, // spawnstate 1000, // spawnhealth @@ -6563,7 +6658,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_FLAMESHOT + { + "MT_CYBRAKDEMON_FLAMESHOT", -1, // doomednum S_CYBRAKDEMONFLAMESHOT_FLY1, // spawnstate 1000, // spawnhealth @@ -6590,7 +6686,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_FLAMEREST + { + "MT_CYBRAKDEMON_FLAMEREST", -1, // doomednum S_CYBRAKDEMONFLAMEREST, // spawnstate 1000, // spawnhealth @@ -6617,7 +6714,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_TARGET_RETICULE + { + "MT_CYBRAKDEMON_TARGET_RETICULE", -1, // doomednum S_CYBRAKDEMONTARGETRETICULE1, // spawnstate 1000, // spawnhealth @@ -6644,7 +6742,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_TARGET_DOT + { + "MT_CYBRAKDEMON_TARGET_DOT", -1, // doomednum S_CYBRAKDEMONTARGETDOT, // spawnstate 1000, // spawnhealth @@ -6671,7 +6770,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_NAPALM_BOMB_LARGE + { + "MT_CYBRAKDEMON_NAPALM_BOMB_LARGE", -1, // doomednum S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1, // spawnstate 1000, // spawnhealth @@ -6698,7 +6798,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_NAPALM_BOMB_SMALL + { + "MT_CYBRAKDEMON_NAPALM_BOMB_SMALL", -1, // doomednum S_CYBRAKDEMONNAPALMBOMBSMALL, // spawnstate 1000, // spawnhealth @@ -6725,7 +6826,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_NAPALM_FLAMES + { + "MT_CYBRAKDEMON_NAPALM_FLAMES", -1, // doomednum S_CYBRAKDEMONNAPALMFLAME_FLY1, // spawnstate 1000, // spawnhealth @@ -6752,7 +6854,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CYBRAKDEMON_VILE_EXPLOSION + { + "MT_CYBRAKDEMON_VILE_EXPLOSION", -1, // doomednum S_CYBRAKDEMONVILEEXPLOSION1, // spawnstate 1, // spawnhealth @@ -6780,7 +6883,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, - { // MT_METALSONIC_RACE + { + "MT_METALSONIC_RACE", 207, // doomednum S_METALSONIC_RACE, // spawnstate 8, // spawnhealth @@ -6807,7 +6911,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_METALSONIC_BATTLE + { + "MT_METALSONIC_BATTLE", 208, // doomednum S_METALSONIC_FLOAT, // spawnstate 8, // spawnhealth @@ -6834,7 +6939,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_METALSONIC_RAISE // raisestate }, - { // MT_MSSHIELD_FRONT + { + "MT_MSSHIELD_FRONT", -1, // doomednum S_MSSHIELD_F1, // spawnstate 1, // spawnhealth @@ -6861,7 +6967,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MSGATHER + { + "MT_MSGATHER", -1, // doomednum S_JETFUME1, // spawnstate 1, // spawnhealth @@ -6888,7 +6995,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RING + { + "MT_RING", 300, // doomednum S_RING, // spawnstate 1000, // spawnhealth @@ -6915,7 +7023,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLINGRING + { + "MT_FLINGRING", -1, // doomednum S_RING, // spawnstate 1000, // spawnhealth @@ -6942,13 +7051,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUESPHERE + { + "MT_BLUESPHERE", 1706, // doomednum S_BLUESPHERE, // spawnstate 1000, // spawnhealth S_NULL, // seestate sfx_None, // seesound - MT_FLINGBLUESPHERE, // reactiontime + MT_FLINGBLUESPHERE, // reactiontime sfx_None, // attacksound S_NULL, // painstate 0, // painchance @@ -6969,7 +7079,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BLUESPHEREBONUS // raisestate }, - { // MT_FLINGBLUESPHERE + { + "MT_FLINGBLUESPHERE", -1, // doomednum S_BLUESPHERE, // spawnstate 1000, // spawnhealth @@ -6996,7 +7107,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BLUESPHEREBONUS // raisestate }, - { // MT_BOMBSPHERE + { + "MT_BOMBSPHERE", 520, // doomednum S_BOMBSPHERE1, // spawnstate 1000, // spawnhealth @@ -7023,7 +7135,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_REDTEAMRING + { + "MT_REDTEAMRING", 308, // doomednum S_TEAMRING, // spawnstate 1000, // spawnhealth @@ -7050,7 +7163,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUETEAMRING + { + "MT_BLUETEAMRING", 309, // doomednum S_TEAMRING, // spawnstate 1000, // spawnhealth @@ -7077,7 +7191,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TOKEN + { + "MT_TOKEN", 312, // doomednum S_TOKEN, // spawnstate 1000, // spawnhealth @@ -7104,7 +7219,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_REDFLAG + { + "MT_REDFLAG", 310, // doomednum S_REDFLAG, // spawnstate 1000, // spawnhealth @@ -7131,7 +7247,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUEFLAG + { + "MT_BLUEFLAG", 311, // doomednum S_BLUEFLAG, // spawnstate 1000, // spawnhealth @@ -7158,7 +7275,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EMBLEM + { + "MT_EMBLEM", 322, // doomednum S_EMBLEM1, // spawnstate 1000, // spawnhealth @@ -7185,7 +7303,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EMERALD1 + { + "MT_EMERALD1", 313, // doomednum S_CEMG1, // spawnstate 1000, // spawnhealth @@ -7211,7 +7330,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_SPECIAL, // flags S_NULL // raisestate }, - { // MT_EMERALD2 + { + "MT_EMERALD2", 314, // doomednum S_CEMG2, // spawnstate 1000, // spawnhealth @@ -7237,7 +7357,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_SPECIAL, // flags S_NULL // raisestate }, - { // MT_EMERALD3 + { + "MT_EMERALD3", 315, // doomednum S_CEMG3, // spawnstate 1000, // spawnhealth @@ -7263,7 +7384,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_SPECIAL, // flags S_NULL // raisestate }, - { // MT_EMERALD4 + { + "MT_EMERALD4", 316, // doomednum S_CEMG4, // spawnstate 1000, // spawnhealth @@ -7289,7 +7411,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_SPECIAL, // flags S_NULL // raisestate }, - { // MT_EMERALD5 + { + "MT_EMERALD5", 317, // doomednum S_CEMG5, // spawnstate 1000, // spawnhealth @@ -7315,7 +7438,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_SPECIAL, // flags S_NULL // raisestate }, - { // MT_EMERALD6 + { + "MT_EMERALD6", 318, // doomednum S_CEMG6, // spawnstate 1000, // spawnhealth @@ -7341,7 +7465,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOGRAVITY|MF_SPECIAL, // flags S_NULL // raisestate }, - { // MT_EMERALD7 + { + "MT_EMERALD7", 319, // doomednum S_CEMG7, // spawnstate 1000, // spawnhealth @@ -7368,7 +7493,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EMERHUNT + { + "MT_EMERHUNT", 320, // doomednum S_SHRD1, // spawnstate 1000, // spawnhealth @@ -7395,7 +7521,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EMERALDSPAWN + { + "MT_EMERALDSPAWN", 321, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -7422,7 +7549,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLINGEMERALD + { + "MT_FLINGEMERALD", -1, // doomednum S_CEMG1, // spawnstate 1000, // spawnhealth @@ -7449,7 +7577,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FAN + { + "MT_FAN", 540, // doomednum S_FAN, // spawnstate 1000, // spawnhealth @@ -7476,7 +7605,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STEAM + { + "MT_STEAM", 541, // doomednum S_STEAM1, // spawnstate 1000, // spawnhealth @@ -7503,7 +7633,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUMPER + { + "MT_BUMPER", 542, // doomednum S_BUMPER, // spawnstate 1000, // spawnhealth @@ -7530,7 +7661,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BUMPERHIT // raisestate }, - { // MT_BALLOON + { + "MT_BALLOON", 543, // doomednum S_BALLOON, // spawnstate 1, // spawnhealth @@ -7557,7 +7689,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BALLOONPOP1 // raisestate }, - { // MT_YELLOWSPRING + { + "MT_YELLOWSPRING", 550, // doomednum S_YELLOWSPRING, // spawnstate 1000, // spawnhealth @@ -7584,7 +7717,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_YELLOWSPRING2 // raisestate }, - { // MT_REDSPRING + { + "MT_REDSPRING", 551, // doomednum S_REDSPRING, // spawnstate 1000, // spawnhealth @@ -7611,7 +7745,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_REDSPRING2 // raisestate }, - { // MT_BLUESPRING + { + "MT_BLUESPRING", 552, // doomednum S_BLUESPRING, // spawnstate 1000, // spawnhealth @@ -7638,7 +7773,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BLUESPRING2 // raisestate }, - { // MT_YELLOWDIAG + { + "MT_YELLOWDIAG", 555, // doomednum S_YDIAG1, // spawnstate 1, // spawnhealth @@ -7665,7 +7801,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_YDIAG2 // raisestate }, - { // MT_REDDIAG + { + "MT_REDDIAG", 556, // doomednum S_RDIAG1, // spawnstate 1, // spawnhealth @@ -7692,7 +7829,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_RDIAG2 // raisestate }, - { // MT_BLUEDIAG + { + "MT_BLUEDIAG", 557, // doomednum S_BDIAG1, // spawnstate 1, // spawnhealth @@ -7719,7 +7857,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BDIAG2 // raisestate }, - { // MT_YELLOWHORIZ + { + "MT_YELLOWHORIZ", 558, // doomednum S_YHORIZ1, // spawnstate 1, // spawnhealth @@ -7746,7 +7885,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_YHORIZ2 // raisestate }, - { // MT_REDHORIZ + { + "MT_REDHORIZ", 559, // doomednum S_RHORIZ1, // spawnstate 1, // spawnhealth @@ -7773,7 +7913,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_RHORIZ2 // raisestate }, - { // MT_BLUEHORIZ + { + "MT_BLUEHORIZ", 560, // doomednum S_BHORIZ1, // spawnstate 1, // spawnhealth @@ -7800,7 +7941,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BHORIZ2 // raisestate }, - { // MT_BOOSTERSEG + { + "MT_BOOSTERSEG", -1, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -7827,7 +7969,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOOSTERROLLER + { + "MT_BOOSTERROLLER", -1, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -7854,7 +7997,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_YELLOWBOOSTER + { + "MT_YELLOWBOOSTER", 544, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -7881,7 +8025,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BOOSTERSOUND // raisestate }, - { // MT_REDBOOSTER + { + "MT_REDBOOSTER", 545, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -7908,7 +8053,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BOOSTERSOUND // raisestate }, - { // MT_BUBBLES + { + "MT_BUBBLES", 500, // doomednum S_BUBBLES1, // spawnstate 1000, // spawnhealth @@ -7935,7 +8081,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SIGN + { + "MT_SIGN", 501, // doomednum S_SIGN, // spawnstate 1000, // spawnhealth @@ -7962,7 +8109,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_SIGNBOARD // raisestate }, - { // MT_SPIKEBALL + { + "MT_SPIKEBALL", 521, // doomednum S_SPIKEBALL1, // spawnstate 1000, // spawnhealth @@ -7989,7 +8137,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPINFIRE + { + "MT_SPINFIRE", -1, // doomednum S_SPINFIRE1, // spawnstate 1, // spawnhealth @@ -8016,7 +8165,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPIKE + { + "MT_SPIKE", 523, // doomednum S_SPIKE1, // spawnstate 1000, // spawnhealth @@ -8043,7 +8193,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WALLSPIKE + { + "MT_WALLSPIKE", 522, // doomednum S_WALLSPIKE1, // spawnstate 1000, // spawnhealth @@ -8070,7 +8221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WALLSPIKEBASE + { + "MT_WALLSPIKEBASE", -1, // doomednum S_WALLSPIKEBASE, // spawnstate 1000, // spawnhealth @@ -8097,7 +8249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STARPOST + { + "MT_STARPOST", 502, // doomednum S_STARPOST_IDLE, // spawnstate 1, // spawnhealth @@ -8124,7 +8277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGMINE + { + "MT_BIGMINE", 1012, // doomednum S_BIGMINE_IDLE, // spawnstate 1, // spawnhealth @@ -8151,7 +8305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLASTEXECUTOR + { + "MT_BLASTEXECUTOR", 756, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -8178,7 +8333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANNONLAUNCHER + { + "MT_CANNONLAUNCHER", 1123, // doomednum S_CANNONLAUNCHER1, // spawnstate 1, // spawnhealth @@ -8205,7 +8361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BOXSPARKLE + { + "MT_BOXSPARKLE", -1, // doomednum S_BOXSPARKLE1, // spawnstate 1, // spawnhealth @@ -8232,7 +8389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RING_BOX + { + "MT_RING_BOX", 400, // doomednum S_RING_BOX, // spawnstate 1, // spawnhealth @@ -8259,7 +8417,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PITY_BOX + { + "MT_PITY_BOX", 401, // doomednum S_PITY_BOX, // spawnstate 1, // spawnhealth @@ -8286,7 +8445,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ATTRACT_BOX + { + "MT_ATTRACT_BOX", 402, // doomednum S_ATTRACT_BOX, // spawnstate 1, // spawnhealth @@ -8313,7 +8473,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FORCE_BOX + { + "MT_FORCE_BOX", 403, // doomednum S_FORCE_BOX, // spawnstate 1, // spawnhealth @@ -8340,7 +8501,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARMAGEDDON_BOX + { + "MT_ARMAGEDDON_BOX", 404, // doomednum S_ARMAGEDDON_BOX, // spawnstate 1, // spawnhealth @@ -8367,7 +8529,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WHIRLWIND_BOX + { + "MT_WHIRLWIND_BOX", 405, // doomednum S_WHIRLWIND_BOX, // spawnstate 1, // spawnhealth @@ -8394,7 +8557,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ELEMENTAL_BOX + { + "MT_ELEMENTAL_BOX", 406, // doomednum S_ELEMENTAL_BOX, // spawnstate 1, // spawnhealth @@ -8421,7 +8585,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNEAKERS_BOX + { + "MT_SNEAKERS_BOX", 407, // doomednum S_SNEAKERS_BOX, // spawnstate 1, // spawnhealth @@ -8448,7 +8613,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_INVULN_BOX + { + "MT_INVULN_BOX", 408, // doomednum S_INVULN_BOX, // spawnstate 1, // spawnhealth @@ -8475,7 +8641,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_1UP_BOX + { + "MT_1UP_BOX", 409, // doomednum S_1UP_BOX, // spawnstate 1, // spawnhealth @@ -8502,7 +8669,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMAN_BOX + { + "MT_EGGMAN_BOX", 410, // doomednum S_EGGMAN_BOX, // spawnstate 1, // spawnhealth @@ -8529,7 +8697,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MIXUP_BOX + { + "MT_MIXUP_BOX", 411, // doomednum S_MIXUP_BOX, // spawnstate 1, // spawnhealth @@ -8556,7 +8725,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MYSTERY_BOX + { + "MT_MYSTERY_BOX", -1, //412, // doomednum S_MYSTERY_BOX, // spawnstate 1, // spawnhealth @@ -8583,7 +8753,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GRAVITY_BOX + { + "MT_GRAVITY_BOX", 413, // doomednum S_GRAVITY_BOX, // spawnstate 1, // spawnhealth @@ -8610,7 +8781,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RECYCLER_BOX + { + "MT_RECYCLER_BOX", 416, // doomednum S_RECYCLER_BOX, // spawnstate 1, // spawnhealth @@ -8637,7 +8809,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCORE1K_BOX + { + "MT_SCORE1K_BOX", 418, // doomednum S_SCORE1K_BOX, // spawnstate 1, // spawnhealth @@ -8664,7 +8837,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCORE10K_BOX + { + "MT_SCORE10K_BOX", 419, // doomednum S_SCORE10K_BOX, // spawnstate 1, // spawnhealth @@ -8691,7 +8865,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEAURA_BOX + { + "MT_FLAMEAURA_BOX", 420, // doomednum S_FLAMEAURA_BOX, // spawnstate 1, // spawnhealth @@ -8718,7 +8893,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUBBLEWRAP_BOX + { + "MT_BUBBLEWRAP_BOX", 421, // doomednum S_BUBBLEWRAP_BOX, // spawnstate 1, // spawnhealth @@ -8739,13 +8915,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 40*FRACUNIT, // height 0, // display offset 100, // mass - MT_BUBBLEWRAP_ICON, // damage + MT_BUBBLEWRAP_ICON, // damage sfx_None, // activesound MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags S_NULL // raisestate }, - { // MT_THUNDERCOIN_BOX + { + "MT_THUNDERCOIN_BOX", 422, // doomednum S_THUNDERCOIN_BOX, // spawnstate 1, // spawnhealth @@ -8766,13 +8943,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 40*FRACUNIT, // height 0, // display offset 100, // mass - MT_THUNDERCOIN_ICON, // damage + MT_THUNDERCOIN_ICON, // damage sfx_None, // activesound MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags S_NULL // raisestate }, - { // MT_PITY_GOLDBOX + { + "MT_PITY_GOLDBOX", 431, // doomednum S_PITY_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8799,7 +8977,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ATTRACT_GOLDBOX + { + "MT_ATTRACT_GOLDBOX", 432, // doomednum S_ATTRACT_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8826,7 +9005,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FORCE_GOLDBOX + { + "MT_FORCE_GOLDBOX", 433, // doomednum S_FORCE_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8853,7 +9033,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARMAGEDDON_GOLDBOX + { + "MT_ARMAGEDDON_GOLDBOX", 434, // doomednum S_ARMAGEDDON_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8880,7 +9061,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WHIRLWIND_GOLDBOX + { + "MT_WHIRLWIND_GOLDBOX", 435, // doomednum S_WHIRLWIND_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8907,7 +9089,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ELEMENTAL_GOLDBOX + { + "MT_ELEMENTAL_GOLDBOX", 436, // doomednum S_ELEMENTAL_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8934,7 +9117,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNEAKERS_GOLDBOX + { + "MT_SNEAKERS_GOLDBOX", 437, // doomednum S_SNEAKERS_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8961,7 +9145,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_INVULN_GOLDBOX + { + "MT_INVULN_GOLDBOX", 438, // doomednum S_INVULN_GOLDBOX, // spawnstate 1, // spawnhealth @@ -8988,7 +9173,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMAN_GOLDBOX + { + "MT_EGGMAN_GOLDBOX", 440, // doomednum S_EGGMAN_GOLDBOX, // spawnstate 1, // spawnhealth @@ -9015,7 +9201,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GRAVITY_GOLDBOX + { + "MT_GRAVITY_GOLDBOX", 443, // doomednum S_GRAVITY_GOLDBOX, // spawnstate 1, // spawnhealth @@ -9042,7 +9229,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEAURA_GOLDBOX + { + "MT_FLAMEAURA_GOLDBOX", 450, // doomednum S_FLAMEAURA_GOLDBOX, // spawnstate 1, // spawnhealth @@ -9069,7 +9257,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUBBLEWRAP_GOLDBOX + { + "MT_BUBBLEWRAP_GOLDBOX", 451, // doomednum S_BUBBLEWRAP_GOLDBOX, // spawnstate 1, // spawnhealth @@ -9090,13 +9279,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 44*FRACUNIT, // height 0, // display offset 100, // mass - MT_BUBBLEWRAP_ICON, // damage + MT_BUBBLEWRAP_ICON, // damage sfx_None, // activesound MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags S_NULL // raisestate }, - { // MT_THUNDERCOIN_GOLDBOX + { + "MT_THUNDERCOIN_GOLDBOX", 452, // doomednum S_THUNDERCOIN_GOLDBOX, // spawnstate 1, // spawnhealth @@ -9117,13 +9307,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 44*FRACUNIT, // height 0, // display offset 100, // mass - MT_THUNDERCOIN_ICON, // damage + MT_THUNDERCOIN_ICON, // damage sfx_None, // activesound MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags S_NULL // raisestate }, - { // MT_RING_REDBOX + { + "MT_RING_REDBOX", 414, // doomednum S_RING_REDBOX1, // spawnstate 1, // spawnhealth @@ -9150,7 +9341,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RING_BLUEBOX + { + "MT_RING_BLUEBOX", 415, // doomednum S_RING_BLUEBOX1, // spawnstate 1, // spawnhealth @@ -9177,7 +9369,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RING_ICON + { + "MT_RING_ICON", -1, // doomednum S_RING_ICON1, // spawnstate 1, // spawnhealth @@ -9204,7 +9397,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PITY_ICON + { + "MT_PITY_ICON", -1, // doomednum S_PITY_ICON1, // spawnstate 1, // spawnhealth @@ -9231,7 +9425,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ATTRACT_ICON + { + "MT_ATTRACT_ICON", -1, // doomednum S_ATTRACT_ICON1, // spawnstate 1, // spawnhealth @@ -9258,7 +9453,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FORCE_ICON + { + "MT_FORCE_ICON", -1, // doomednum S_FORCE_ICON1, // spawnstate 1, // spawnhealth @@ -9285,7 +9481,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARMAGEDDON_ICON + { + "MT_ARMAGEDDON_ICON", -1, // doomednum S_ARMAGEDDON_ICON1, // spawnstate 1, // spawnhealth @@ -9312,7 +9509,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WHIRLWIND_ICON + { + "MT_WHIRLWIND_ICON", -1, // doomednum S_WHIRLWIND_ICON1, // spawnstate 1, // spawnhealth @@ -9339,7 +9537,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ELEMENTAL_ICON + { + "MT_ELEMENTAL_ICON", -1, // doomednum S_ELEMENTAL_ICON1, // spawnstate 1, // spawnhealth @@ -9366,7 +9565,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNEAKERS_ICON + { + "MT_SNEAKERS_ICON", -1, // doomednum S_SNEAKERS_ICON1, // spawnstate 1, // spawnhealth @@ -9393,7 +9593,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_INVULN_ICON + { + "MT_INVULN_ICON", -1, // doomednum S_INVULN_ICON1, // spawnstate 1, // spawnhealth @@ -9420,7 +9621,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_1UP_ICON + { + "MT_1UP_ICON", -1, // doomednum S_1UP_ICON1, // spawnstate 1, // spawnhealth @@ -9447,7 +9649,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGMAN_ICON + { + "MT_EGGMAN_ICON", -1, // doomednum S_EGGMAN_ICON1, // spawnstate 1, // spawnhealth @@ -9474,7 +9677,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MIXUP_ICON + { + "MT_MIXUP_ICON", -1, // doomednum S_MIXUP_ICON1, // spawnstate 1, // spawnhealth @@ -9501,7 +9705,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GRAVITY_ICON + { + "MT_GRAVITY_ICON", -1, // doomednum S_GRAVITY_ICON1, // spawnstate 1, // spawnhealth @@ -9528,7 +9733,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RECYCLER_ICON + { + "MT_RECYCLER_ICON", -1, // doomednum S_RECYCLER_ICON1, // spawnstate 1, // spawnhealth @@ -9555,7 +9761,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCORE1K_ICON + { + "MT_SCORE1K_ICON", -1, // doomednum S_SCORE1K_ICON1, // spawnstate 1, // spawnhealth @@ -9582,7 +9789,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCORE10K_ICON + { + "MT_SCORE10K_ICON", -1, // doomednum S_SCORE10K_ICON1, // spawnstate 1, // spawnhealth @@ -9609,7 +9817,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEAURA_ICON + { + "MT_FLAMEAURA_ICON", -1, // doomednum S_FLAMEAURA_ICON1, // spawnstate 1, // spawnhealth @@ -9636,7 +9845,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUBBLEWRAP_ICON + { + "MT_BUBBLEWRAP_ICON", -1, // doomednum S_BUBBLEWRAP_ICON1, // spawnstate 1, // spawnhealth @@ -9663,7 +9873,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THUNDERCOIN_ICON + { + "MT_THUNDERCOIN_ICON", -1, // doomednum S_THUNDERCOIN_ICON1, // spawnstate 1, // spawnhealth @@ -9690,7 +9901,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKET + { + "MT_ROCKET", -1, // doomednum S_ROCKET, // spawnstate 1000, // spawnhealth @@ -9717,7 +9929,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LASER + { + "MT_LASER", -1, // doomednum S_LASER, // spawnstate 1000, // spawnhealth @@ -9744,7 +9957,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TORPEDO + { + "MT_TORPEDO", -1, // doomednum S_TORPEDO, // spawnstate 1000, // spawnhealth @@ -9771,7 +9985,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TORPEDO2 + { + "MT_TORPEDO2", -1, // doomednum S_TORPEDO, // spawnstate 1000, // spawnhealth @@ -9798,7 +10013,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ENERGYBALL + { + "MT_ENERGYBALL", -1, // doomednum S_ENERGYBALL1, // spawnstate 1000, // spawnhealth @@ -9825,7 +10041,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINE + { + "MT_MINE", -1, // doomednum S_MINE1, // spawnstate 1, // spawnhealth @@ -9852,7 +10069,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_JETTBULLET + { + "MT_JETTBULLET", -1, // doomednum S_JETBULLET1, // spawnstate 1, // spawnhealth @@ -9879,7 +10097,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TURRETLASER + { + "MT_TURRETLASER", -1, // doomednum S_TURRETLASER, // spawnstate 1000, // spawnhealth @@ -9906,7 +10125,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANNONBALL + { + "MT_CANNONBALL", -1, // doomednum S_CANNONBALL1, // spawnstate 1, // spawnhealth @@ -9933,7 +10153,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANNONBALLDECOR + { + "MT_CANNONBALLDECOR", 1124, // doomednum S_CANNONBALL1, // spawnstate 1, // spawnhealth @@ -9960,7 +10181,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARROW + { + "MT_ARROW", -1, // doomednum S_ARROW, // spawnstate 1, // spawnhealth @@ -9987,7 +10209,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DEMONFIRE + { + "MT_DEMONFIRE", -1, // doomednum S_DEMONFIRE, // spawnstate 1, // spawnhealth @@ -10014,7 +10237,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LETTER + { + "MT_LETTER", -1, // doomednum S_LETTER, // spawnstate 1, // spawnhealth @@ -10041,7 +10265,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TUTORIALPLANT + { + "MT_TUTORIALPLANT", 799, // doomednum S_NULL, // spawnstate 1000, // spawnhealth @@ -10068,7 +10293,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TUTORIALLEAF + { + "MT_TUTORIALLEAF", -1, // doomednum S_TUTORIALLEAF1, // spawnstate 1000, // spawnhealth @@ -10095,7 +10321,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TUTORIALFLOWER + { + "MT_TUTORIALFLOWER", -1, // doomednum S_TUTORIALFLOWER1, // spawnstate 1000, // spawnhealth @@ -10122,7 +10349,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TUTORIALFLOWERF + { + "MT_TUTORIALFLOWERF", -1, // doomednum S_TUTORIALFLOWERF1, // spawnstate 1000, // spawnhealth @@ -10149,7 +10377,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZFLOWER1 + { + "MT_GFZFLOWER1", 800, // doomednum S_GFZFLOWERA, // spawnstate 1000, // spawnhealth @@ -10176,7 +10405,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZFLOWER2 + { + "MT_GFZFLOWER2", 801, // doomednum S_GFZFLOWERB, // spawnstate 1000, // spawnhealth @@ -10203,7 +10433,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZFLOWER3 + { + "MT_GFZFLOWER3", 802, // doomednum S_GFZFLOWERC, // spawnstate 1000, // spawnhealth @@ -10230,7 +10461,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUEBERRYBUSH + { + "MT_BLUEBERRYBUSH", 803, // doomednum S_BLUEBERRYBUSH, // spawnstate 1000, // spawnhealth @@ -10257,7 +10489,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BERRYBUSH + { + "MT_BERRYBUSH", 804, // doomednum S_BERRYBUSH, // spawnstate 1000, // spawnhealth @@ -10284,7 +10517,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUSH + { + "MT_BUSH", 805, // doomednum S_BUSH, // spawnstate 1000, // spawnhealth @@ -10311,7 +10545,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZTREE + { + "MT_GFZTREE", 806, // doomednum S_GFZTREE, // spawnstate 1000, // spawnhealth @@ -10338,7 +10573,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZBERRYTREE + { + "MT_GFZBERRYTREE", 807, // doomednum S_GFZBERRYTREE, // spawnstate 1000, // spawnhealth @@ -10365,7 +10601,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZCHERRYTREE + { + "MT_GFZCHERRYTREE", 808, // doomednum S_GFZCHERRYTREE, // spawnstate 1000, // spawnhealth @@ -10392,7 +10629,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CHECKERTREE + { + "MT_CHECKERTREE", 809, // doomednum S_CHECKERTREE, // spawnstate 1000, // spawnhealth @@ -10419,7 +10657,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CHECKERSUNSETTREE + { + "MT_CHECKERSUNSETTREE", 810, // doomednum S_CHECKERSUNSETTREE, // spawnstate 1000, // spawnhealth @@ -10446,7 +10685,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FHZTREE + { + "MT_FHZTREE", 2102, // doomednum S_FHZTREE, // spawnstate 1000, // spawnhealth @@ -10473,7 +10713,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FHZPINKTREE + { + "MT_FHZPINKTREE", 2103, // doomednum S_FHZPINKTREE, // spawnstate 1000, // spawnhealth @@ -10500,7 +10741,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POLYGONTREE + { + "MT_POLYGONTREE", 811, // doomednum S_POLYGONTREE, // spawnstate 1000, // spawnhealth @@ -10527,7 +10769,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUSHTREE + { + "MT_BUSHTREE", 812, // doomednum S_BUSHTREE, // spawnstate 1000, // spawnhealth @@ -10554,7 +10797,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUSHREDTREE + { + "MT_BUSHREDTREE", 813, // doomednum S_BUSHREDTREE, // spawnstate 1000, // spawnhealth @@ -10581,7 +10825,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPRINGTREE + { + "MT_SPRINGTREE", 1600, // doomednum S_SPRINGTREE, // spawnstate 1000, // spawnhealth @@ -10608,7 +10853,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THZFLOWER1 + { + "MT_THZFLOWER1", 900, // doomednum S_THZFLOWERA, // spawnstate 1000, // spawnhealth @@ -10635,7 +10881,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THZFLOWER2 + { + "MT_THZFLOWER2", 902, // doomednum S_THZFLOWERB, // spawnstate 1000, // spawnhealth @@ -10662,7 +10909,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THZFLOWER3 + { + "MT_THZFLOWER3", 903, // doomednum S_THZFLOWERC, // spawnstate 1000, // spawnhealth @@ -10689,7 +10937,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THZTREE + { + "MT_THZTREE", 904, // doomednum S_THZTREE, // spawnstate 1000, // spawnhealth @@ -10716,7 +10965,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THZTREEBRANCH + { + "MT_THZTREEBRANCH", -1, // doomednum S_THZTREEBRANCH1, // spawnstate 1000, // spawnhealth @@ -10743,7 +10993,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ALARM + { + "MT_ALARM", 901, // doomednum S_ALARM1, // spawnstate 1000, // spawnhealth @@ -10770,7 +11021,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GARGOYLE + { + "MT_GARGOYLE", 1000, // doomednum S_GARGOYLE, // spawnstate 1000, // spawnhealth @@ -10797,7 +11049,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGGARGOYLE + { + "MT_BIGGARGOYLE", 1009, // doomednum S_BIGGARGOYLE, // spawnstate 1000, // spawnhealth @@ -10824,7 +11077,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SEAWEED + { + "MT_SEAWEED", 1001, // doomednum S_SEAWEED1, // spawnstate 1000, // spawnhealth @@ -10851,7 +11105,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WATERDRIP + { + "MT_WATERDRIP", 1002, // doomednum S_DRIPA1, // spawnstate 1000, // spawnhealth @@ -10878,7 +11133,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WATERDROP + { + "MT_WATERDROP", -1, // doomednum S_DRIPB1, // spawnstate 1000, // spawnhealth @@ -10905,7 +11161,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CORAL1 + { + "MT_CORAL1", 1003, // doomednum S_CORAL1, // spawnstate 1000, // spawnhealth @@ -10932,7 +11189,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CORAL2 + { + "MT_CORAL2", 1004, // doomednum S_CORAL2, // spawnstate 1000, // spawnhealth @@ -10959,7 +11217,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CORAL3 + { + "MT_CORAL3", 1005, // doomednum S_CORAL3, // spawnstate 1000, // spawnhealth @@ -10986,7 +11245,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CORAL4 + { + "MT_CORAL4", 1014, // doomednum S_CORAL4, // spawnstate 1000, // spawnhealth @@ -11013,7 +11273,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CORAL5 + { + "MT_CORAL5", 1015, // doomednum S_CORAL5, // spawnstate 1000, // spawnhealth @@ -11040,7 +11301,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUECRYSTAL + { + "MT_BLUECRYSTAL", 1006, // doomednum S_BLUECRYSTAL1, // spawnstate 1000, // spawnhealth @@ -11067,7 +11329,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_KELP + { + "MT_KELP", 1007, // doomednum S_KELP, // spawnstate 1000, // spawnhealth @@ -11094,7 +11357,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ANIMALGAETOP + { + "MT_ANIMALGAETOP", 1013, // doomednum S_ANIMALGAETOP1, // spawnstate 1000, // spawnhealth @@ -11121,7 +11385,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ANIMALGAESEG + { + "MT_ANIMALGAESEG", -1, // doomednum S_ANIMALGAESEG, // spawnstate 1000, // spawnhealth @@ -11148,7 +11413,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DSZSTALAGMITE + { + "MT_DSZSTALAGMITE", 1008, // doomednum S_DSZSTALAGMITE,// spawnstate 1000, // spawnhealth @@ -11175,7 +11441,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DSZ2STALAGMITE + { + "MT_DSZ2STALAGMITE", 1011, // doomednum S_DSZ2STALAGMITE, // spawnstate 1000, // spawnhealth @@ -11202,7 +11469,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LIGHTBEAM + { + "MT_LIGHTBEAM", 1010, // doomednum S_LIGHTBEAM1, // spawnstate 1000, // spawnhealth @@ -11229,7 +11497,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CHAIN + { + "MT_CHAIN", 1100, // doomednum S_CEZCHAIN, // spawnstate 1000, // spawnhealth @@ -11256,7 +11525,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAME + { + "MT_FLAME", 1101, // doomednum S_FLAME, // spawnstate 1000, // spawnhealth @@ -11265,7 +11535,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 8, // reactiontime sfx_None, // attacksound S_NULL, // painstate - MT_FLAMEPARTICLE, // painchance + MT_FLAMEPARTICLE, // painchance sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate @@ -11283,7 +11553,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEPARTICLE + { + "MT_FLAMEPARTICLE", -1, // doomednum S_FLAMEPARTICLE,// spawnstate 1000, // spawnhealth @@ -11310,7 +11581,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGSTATUE + { + "MT_EGGSTATUE", 1102, // doomednum S_EGGSTATUE1, // spawnstate 1000, // spawnhealth @@ -11337,7 +11609,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MACEPOINT + { + "MT_MACEPOINT", 1104, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -11364,7 +11637,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CHAINMACEPOINT + { + "MT_CHAINMACEPOINT", 1105, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -11391,7 +11665,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPRINGBALLPOINT + { + "MT_SPRINGBALLPOINT", 1106, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -11418,7 +11693,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CHAINPOINT + { + "MT_CHAINPOINT", 1107, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -11445,7 +11721,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HIDDEN_SLING + { + "MT_HIDDEN_SLING", 1108, // doomednum S_SLING1, // spawnstate 1000, // spawnhealth @@ -11472,7 +11749,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FIREBARPOINT + { + "MT_FIREBARPOINT", 1109, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -11499,7 +11777,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CUSTOMMACEPOINT + { + "MT_CUSTOMMACEPOINT", 1110, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -11526,7 +11805,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SMALLMACECHAIN + { + "MT_SMALLMACECHAIN", -1, // doomednum S_SMALLMACECHAIN, // spawnstate 1000, // spawnhealth @@ -11553,7 +11833,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGMACECHAIN + { + "MT_BIGMACECHAIN", -1, // doomednum S_BIGMACECHAIN, // spawnstate 1000, // spawnhealth @@ -11580,7 +11861,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SMALLMACE + { + "MT_SMALLMACE", 1130, // doomednum S_SMALLMACE, // spawnstate 1000, // spawnhealth @@ -11607,7 +11889,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGMACE + { + "MT_BIGMACE", 1131, // doomednum S_BIGMACE, // spawnstate 1000, // spawnhealth @@ -11634,7 +11917,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SMALLGRABCHAIN + { + "MT_SMALLGRABCHAIN", -1, // doomednum S_SMALLGRABCHAIN, // spawnstate 1000, // spawnhealth @@ -11661,7 +11945,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGGRABCHAIN + { + "MT_BIGGRABCHAIN", -1, // doomednum S_BIGGRABCHAIN, // spawnstate 1000, // spawnhealth @@ -11688,7 +11973,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUESPRINGBALL + { + "MT_BLUESPRINGBALL", 1133, // doomednum S_BLUESPRINGBALL, // spawnstate 1000, // spawnhealth @@ -11715,7 +12001,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BLUESPRINGBALL2 // raisestate }, - { // MT_YELLOWSPRINGBALL + { + "MT_YELLOWSPRINGBALL", 1134, // doomednum S_YELLOWSPRINGBALL, // spawnstate 1000, // spawnhealth @@ -11742,7 +12029,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_YELLOWSPRINGBALL2 // raisestate }, - { // MT_REDSPRINGBALL + { + "MT_REDSPRINGBALL", 1135, // doomednum S_REDSPRINGBALL, // spawnstate 1000, // spawnhealth @@ -11769,7 +12057,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_REDSPRINGBALL2 // raisestate }, - { // MT_SMALLFIREBAR + { + "MT_SMALLFIREBAR", 1136, // doomednum S_SMALLFIREBAR1, // spawnstate 1000, // spawnhealth @@ -11796,7 +12085,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGFIREBAR + { + "MT_BIGFIREBAR", 1137, // doomednum S_BIGFIREBAR1, // spawnstate 1000, // spawnhealth @@ -11823,7 +12113,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZFLOWER + { + "MT_CEZFLOWER", 1103, // doomednum S_CEZFLOWER, // spawnstate 1000, // spawnhealth @@ -11850,7 +12141,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZPOLE1 + { + "MT_CEZPOLE1", 1117, // doomednum S_CEZPOLE, // spawnstate 1000, // spawnhealth @@ -11877,7 +12169,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZPOLE2 + { + "MT_CEZPOLE2", 1118, // doomednum S_CEZPOLE, // spawnstate 1000, // spawnhealth @@ -11904,7 +12197,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZBANNER1 + { + "MT_CEZBANNER1", -1, // doomednum S_CEZBANNER1, // spawnstate 1000, // spawnhealth @@ -11931,7 +12225,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZBANNER2 + { + "MT_CEZBANNER2", -1, // doomednum S_CEZBANNER2, // spawnstate 1000, // spawnhealth @@ -11958,7 +12253,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PINETREE + { + "MT_PINETREE", 1114, // doomednum S_PINETREE, // spawnstate 1000, // spawnhealth @@ -11985,7 +12281,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZBUSH1 + { + "MT_CEZBUSH1", 1115, // doomednum S_CEZBUSH1, // spawnstate 1000, // spawnhealth @@ -12012,7 +12309,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CEZBUSH2 + { + "MT_CEZBUSH2", 1116, // doomednum S_CEZBUSH2, // spawnstate 1000, // spawnhealth @@ -12039,7 +12337,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANDLE + { + "MT_CANDLE", 1119, // doomednum S_CANDLE, // spawnstate 1000, // spawnhealth @@ -12066,7 +12365,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANDLEPRICKET + { + "MT_CANDLEPRICKET", 1120, // doomednum S_CANDLEPRICKET, // spawnstate 1000, // spawnhealth @@ -12093,7 +12393,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEHOLDER + { + "MT_FLAMEHOLDER", 1121, // doomednum S_FLAMEHOLDER, // spawnstate 1000, // spawnhealth @@ -12120,7 +12421,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FIRETORCH + { + "MT_FIRETORCH", 1122, // doomednum S_FIRETORCH, // spawnstate 1000, // spawnhealth @@ -12147,7 +12449,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WAVINGFLAG1 + { + "MT_WAVINGFLAG1", 1128, // doomednum S_WAVINGFLAG, // spawnstate 1000, // spawnhealth @@ -12174,7 +12477,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WAVINGFLAG2 + { + "MT_WAVINGFLAG2", 1129, // doomednum S_WAVINGFLAG, // spawnstate 1000, // spawnhealth @@ -12201,7 +12505,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WAVINGFLAGSEG1 + { + "MT_WAVINGFLAGSEG1", -1, // doomednum S_WAVINGFLAGSEG1, // spawnstate 1000, // spawnhealth @@ -12228,7 +12533,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WAVINGFLAGSEG2 + { + "MT_WAVINGFLAGSEG2", -1, // doomednum S_WAVINGFLAGSEG2, // spawnstate 1000, // spawnhealth @@ -12255,7 +12561,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CRAWLASTATUE + { + "MT_CRAWLASTATUE", 1111, // doomednum S_CRAWLASTATUE, // spawnstate 1000, // spawnhealth @@ -12282,7 +12589,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FACESTABBERSTATUE + { + "MT_FACESTABBERSTATUE", 1112, // doomednum S_FACESTABBERSTATUE, // spawnstate 1000, // spawnhealth @@ -12309,7 +12617,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SUSPICIOUSFACESTABBERSTATUE + { + "MT_SUSPICIOUSFACESTABBERSTATUE", 1113, // doomednum S_SUSPICIOUSFACESTABBERSTATUE_WAIT, // spawnstate 1000, // spawnhealth @@ -12336,7 +12645,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_ROCKCRUMBLE3// raisestate }, - { // MT_BRAMBLES + { + "MT_BRAMBLES", 1125, // doomednum S_BRAMBLES, // spawnstate 1000, // spawnhealth @@ -12363,7 +12673,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGTUMBLEWEED + { + "MT_BIGTUMBLEWEED", 1200, // doomednum S_BIGTUMBLEWEED,// spawnstate 1000, // spawnhealth @@ -12390,7 +12701,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LITTLETUMBLEWEED + { + "MT_LITTLETUMBLEWEED", 1201, // doomednum S_LITTLETUMBLEWEED,// spawnstate 1000, // spawnhealth @@ -12417,7 +12729,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI1 + { + "MT_CACTI1", 1203, // doomednum S_CACTI1, // spawnstate 1000, // spawnhealth @@ -12444,7 +12757,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI2 + { + "MT_CACTI2", 1204, // doomednum S_CACTI2, // spawnstate 1000, // spawnhealth @@ -12471,7 +12785,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI3 + { + "MT_CACTI3", 1205, // doomednum S_CACTI3, // spawnstate 1000, // spawnhealth @@ -12498,7 +12813,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI4 + { + "MT_CACTI4", 1206, // doomednum S_CACTI4, // spawnstate 1000, // spawnhealth @@ -12525,7 +12841,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI5 + { + "MT_CACTI5", 1207, // doomednum S_CACTI5, // spawnstate 1000, // spawnhealth @@ -12552,7 +12869,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI6 + { + "MT_CACTI6", 1208, // doomednum S_CACTI6, // spawnstate 1000, // spawnhealth @@ -12579,7 +12897,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI7 + { + "MT_CACTI7", 1209, // doomednum S_CACTI7, // spawnstate 1000, // spawnhealth @@ -12606,7 +12925,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI8 + { + "MT_CACTI8", 1210, // doomednum S_CACTI8, // spawnstate 1000, // spawnhealth @@ -12633,7 +12953,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI9 + { + "MT_CACTI9", 1211, // doomednum S_CACTI9, // spawnstate 1000, // spawnhealth @@ -12660,7 +12981,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI10 + { + "MT_CACTI10", 1230, // doomednum S_CACTI10, // spawnstate 1000, // spawnhealth @@ -12687,7 +13009,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTI11 + { + "MT_CACTI11", 1231, // doomednum S_CACTI11, // spawnstate 1000, // spawnhealth @@ -12714,7 +13037,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTITINYSEG + { + "MT_CACTITINYSEG", -1, // doomednum S_CACTITINYSEG, // spawnstate 1000, // spawnhealth @@ -12741,7 +13065,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACTISMALLSEG + { + "MT_CACTISMALLSEG", -1, // doomednum S_CACTISMALLSEG, // spawnstate 1000, // spawnhealth @@ -12768,7 +13093,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARIDSIGN_CAUTION + { + "MT_ARIDSIGN_CAUTION", 1212, // doomednum S_ARIDSIGN_CAUTION, // spawnstate 1000, // spawnhealth @@ -12795,7 +13121,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARIDSIGN_CACTI + { + "MT_ARIDSIGN_CACTI", 1213, // doomednum S_ARIDSIGN_CACTI, // spawnstate 1000, // spawnhealth @@ -12822,7 +13149,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARIDSIGN_SHARPTURN + { + "MT_ARIDSIGN_SHARPTURN", 1214, // doomednum S_ARIDSIGN_SHARPTURN, // spawnstate 1000, // spawnhealth @@ -12849,7 +13177,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_OILLAMP + { + "MT_OILLAMP", 1215, // doomednum S_OILLAMP, // spawnstate 1, // spawnhealth @@ -12876,7 +13205,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TNTBARREL + { + "MT_TNTBARREL", 1216, // doomednum S_TNTBARREL_STND1, // spawnstate 1, // spawnhealth @@ -12903,7 +13233,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PROXIMITYTNT + { + "MT_PROXIMITYTNT", 1217, // doomednum S_PROXIMITY_TNT, // spawnstate 1, // spawnhealth @@ -12930,7 +13261,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DUSTDEVIL + { + "MT_DUSTDEVIL", 1218, // doomednum S_DUSTDEVIL, // spawnstate 1, // spawnhealth @@ -12957,7 +13289,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DUSTLAYER + { + "MT_DUSTLAYER", -1, // doomednum S_DUSTLAYER1, // spawnstate 1, // spawnhealth @@ -12984,7 +13317,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ARIDDUST + { + "MT_ARIDDUST", -1, // doomednum S_ARIDDUST1, // spawnstate 1, // spawnhealth @@ -13011,7 +13345,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECART + { + "MT_MINECART", -1, // doomednum S_MINECART_IDLE,// spawnstate 1, // spawnhealth @@ -13038,7 +13373,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = (statenum_t)MT_MINECARTSIDEMARK// raisestate }, - { // MT_MINECARTSEG + { + "MT_MINECARTSEG", -1, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -13065,7 +13401,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECARTSPAWNER + { + "MT_MINECARTSPAWNER", 1219, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -13092,7 +13429,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECARTEND + { + "MT_MINECARTEND", 1220, // doomednum S_MINECARTEND, // spawnstate 1, // spawnhealth @@ -13119,7 +13457,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECARTENDSOLID + { + "MT_MINECARTENDSOLID", -1, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -13146,7 +13485,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECARTSIDEMARK + { + "MT_MINECARTSIDEMARK", -1, // doomednum S_MINECARTSIDEMARK2, // spawnstate 1, // spawnhealth @@ -13173,7 +13513,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECARTSPARK + { + "MT_MINECARTSPARK", -1, // doomednum S_MINECARTSPARK,// spawnstate 1, // spawnhealth @@ -13200,7 +13541,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SALOONDOOR + { + "MT_SALOONDOOR", -1, // doomednum S_SALOONDOOR, // spawnstate 1, // spawnhealth @@ -13227,7 +13569,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SALOONDOORCENTER + { + "MT_SALOONDOORCENTER", 1221, // doomednum S_SALOONDOORCENTER, // spawnstate 1, // spawnhealth @@ -13254,7 +13597,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TRAINCAMEOSPAWNER + { + "MT_TRAINCAMEOSPAWNER", 1222, // doomednum S_TRAINCAMEOSPAWNER_1, // spawnstate 1, // spawnhealth @@ -13281,7 +13625,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TRAINSEG + { + "MT_TRAINSEG", -1, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -13308,7 +13653,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TRAINDUSTSPAWNER + { + "MT_TRAINDUSTSPAWNER", 1223, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -13335,7 +13681,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TRAINSTEAMSPAWNER + { + "MT_TRAINSTEAMSPAWNER", 1224, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -13362,7 +13709,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MINECARTSWITCHPOINT + { + "MT_MINECARTSWITCHPOINT", 1229, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -13389,7 +13737,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEJET + { + "MT_FLAMEJET", 1300, // doomednum S_FLAMEJETSTND, // spawnstate 1000, // spawnhealth @@ -13416,7 +13765,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_VERTICALFLAMEJET + { + "MT_VERTICALFLAMEJET", 1301, // doomednum S_FLAMEJETSTND, // spawnstate 1000, // spawnhealth @@ -13443,7 +13793,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEJETFLAME + { + "MT_FLAMEJETFLAME", -1, // doomednum S_FLAMEJETFLAME1, // spawnstate 1000, // spawnhealth @@ -13470,7 +13821,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FJSPINAXISA + { + "MT_FJSPINAXISA", 1302, // doomednum S_FJSPINAXISA1, // spawnstate 1000, // spawnhealth @@ -13497,7 +13849,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FJSPINAXISB + { + "MT_FJSPINAXISB", 1303, // doomednum S_FJSPINAXISB1, // spawnstate 1000, // spawnhealth @@ -13524,7 +13877,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEJETFLAMEB + { + "MT_FLAMEJETFLAMEB", -1, // doomednum S_FLAMEJETFLAMEB1, // spawnstate 1000, // spawnhealth @@ -13551,7 +13905,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LAVAFALL + { + "MT_LAVAFALL", 1304, // doomednum S_LAVAFALL_DORMANT, // spawnstate 1000, // spawnhealth @@ -13578,7 +13933,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LAVAFALL_LAVA + { + "MT_LAVAFALL_LAVA", -1, // doomednum S_LAVAFALL_LAVA1, // spawnstate 1000, // spawnhealth @@ -13605,7 +13961,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LAVAFALLROCK + { + "MT_LAVAFALLROCK", -1, // doomednum S_LAVAFALLROCK, // spawnstate 1000, // spawnhealth @@ -13632,7 +13989,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROLLOUTSPAWN + { + "MT_ROLLOUTSPAWN", 1305, // doomednum S_ROLLOUTSPAWN, // spawnstate 1000, // spawnhealth @@ -13659,7 +14017,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROLLOUTROCK + { + "MT_ROLLOUTROCK", -1, // doomednum S_ROLLOUTROCK, // spawnstate 1000, // spawnhealth @@ -13686,7 +14045,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGFERNLEAF + { + "MT_BIGFERNLEAF", -1, // doomednum S_BIGFERNLEAF, // spawnstate 1000, // spawnhealth @@ -13713,7 +14073,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIGFERN + { + "MT_BIGFERN", 1306, // doomednum S_BIGFERN1, // spawnstate 1000, // spawnhealth @@ -13740,7 +14101,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_JUNGLEPALM + { + "MT_JUNGLEPALM", 1307, // doomednum S_JUNGLEPALM, // spawnstate 1000, // spawnhealth @@ -13767,7 +14129,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TORCHFLOWER + { + "MT_TORCHFLOWER", 1308, // doomednum S_TORCHFLOWER, // spawnstate 1000, // spawnhealth @@ -13794,7 +14157,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WALLVINE_LONG + { + "MT_WALLVINE_LONG", 1309, // doomednum S_WALLVINE_LONG, // spawnstate 1000, // spawnhealth @@ -13821,7 +14185,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WALLVINE_SHORT + { + "MT_WALLVINE_SHORT", 1310, // doomednum S_WALLVINE_SHORT, // spawnstate 1000, // spawnhealth @@ -13848,7 +14213,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GLAREGOYLE + { + "MT_GLAREGOYLE", 1500, // doomednum S_GLAREGOYLE, // spawnstate 1000, // spawnhealth @@ -13875,7 +14241,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GLAREGOYLEUP + { + "MT_GLAREGOYLEUP", 1501, // doomednum S_GLAREGOYLEUP, // spawnstate 1000, // spawnhealth @@ -13902,7 +14269,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GLAREGOYLEDOWN + { + "MT_GLAREGOYLEDOWN", 1502, // doomednum S_GLAREGOYLEDOWN,// spawnstate 1000, // spawnhealth @@ -13929,7 +14297,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GLAREGOYLELONG + { + "MT_GLAREGOYLELONG", 1503, // doomednum S_GLAREGOYLELONG,// spawnstate 1000, // spawnhealth @@ -13956,7 +14325,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TARGET + { + "MT_TARGET", 1504, // doomednum S_TARGET_IDLE, // spawnstate 1, // spawnhealth @@ -13983,7 +14353,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GREENFLAME + { + "MT_GREENFLAME", 1505, // doomednum S_GREENFLAME, // spawnstate 1000, // spawnhealth @@ -14010,7 +14381,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUEGARGOYLE + { + "MT_BLUEGARGOYLE", 1506, // doomednum S_BLUEGARGOYLE, // spawnstate 1000, // spawnhealth @@ -14037,7 +14409,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE0 + { + "MT_STALAGMITE0", 1900, // doomednum S_STG0, // spawnstate 1000, // spawnhealth @@ -14064,7 +14437,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE1 + { + "MT_STALAGMITE1", 1901, // doomednum S_STG1, // spawnstate 1000, // spawnhealth @@ -14091,7 +14465,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE2 + { + "MT_STALAGMITE2", 1902, // doomednum S_STG2, // spawnstate 1000, // spawnhealth @@ -14118,7 +14493,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE3 + { + "MT_STALAGMITE3", 1903, // doomednum S_STG3, // spawnstate 1000, // spawnhealth @@ -14145,7 +14521,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE4 + { + "MT_STALAGMITE4", 1904, // doomednum S_STG4, // spawnstate 1000, // spawnhealth @@ -14172,7 +14549,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE5 + { + "MT_STALAGMITE5", 1905, // doomednum S_STG5, // spawnstate 1000, // spawnhealth @@ -14199,7 +14577,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE6 + { + "MT_STALAGMITE6", 1906, // doomednum S_STG6, // spawnstate 1000, // spawnhealth @@ -14226,7 +14605,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE7 + { + "MT_STALAGMITE7", 1907, // doomednum S_STG7, // spawnstate 1000, // spawnhealth @@ -14253,7 +14633,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE8 + { + "MT_STALAGMITE8", 1908, // doomednum S_STG8, // spawnstate 1000, // spawnhealth @@ -14280,7 +14661,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_STALAGMITE9 + { + "MT_STALAGMITE9", 1909, // doomednum S_STG9, // spawnstate 1000, // spawnhealth @@ -14307,7 +14689,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_XMASPOLE + { + "MT_XMASPOLE", 1850, // doomednum S_XMASPOLE, // spawnstate 1000, // spawnhealth @@ -14334,7 +14717,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CANDYCANE + { + "MT_CANDYCANE", 1851, // doomednum S_CANDYCANE, // spawnstate 1000, // spawnhealth @@ -14361,7 +14745,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNOWMAN + { + "MT_SNOWMAN", 1852, // doomednum S_SNOWMAN, // spawnstate 1000, // spawnhealth @@ -14388,7 +14773,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNOWMANHAT + { + "MT_SNOWMANHAT", 1853, // doomednum S_SNOWMANHAT, // spawnstate 1000, // spawnhealth @@ -14415,7 +14801,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LAMPPOST1 + { + "MT_LAMPPOST1", 1854, // doomednum S_LAMPPOST1, // spawnstate 1000, // spawnhealth @@ -14442,7 +14829,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LAMPPOST2 + { + "MT_LAMPPOST2", 1855, // doomednum S_LAMPPOST2, // spawnstate 1000, // spawnhealth @@ -14469,7 +14857,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HANGSTAR + { + "MT_HANGSTAR", 1856, // doomednum S_HANGSTAR, // spawnstate 1000, // spawnhealth @@ -14496,7 +14885,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MISTLETOE + { + "MT_MISTLETOE", 2105, // doomednum S_MISTLETOE, // spawnstate 1000, // spawnhealth @@ -14523,7 +14913,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_XMASBLUEBERRYBUSH + { + "MT_XMASBLUEBERRYBUSH", 1859, // doomednum S_XMASBLUEBERRYBUSH, // spawnstate 1000, // spawnhealth @@ -14550,7 +14941,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_XMASBERRYBUSH + { + "MT_XMASBERRYBUSH", 1857, // doomednum S_XMASBERRYBUSH, // spawnstate 1000, // spawnhealth @@ -14577,7 +14969,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_XMASBUSH + { + "MT_XMASBUSH", 1858, // doomednum S_XMASBUSH, // spawnstate 1000, // spawnhealth @@ -14604,7 +14997,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FHZICE1 + { + "MT_FHZICE1", 2100, // doomednum S_FHZICE1, // spawnstate 1000, // spawnhealth @@ -14631,7 +15025,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FHZICE2 + { + "MT_FHZICE2", 2101, // doomednum S_FHZICE2, // spawnstate 1000, // spawnhealth @@ -14658,7 +15053,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROSY + { + "MT_ROSY", 2104, // doomednum S_ROSY_IDLE1, // spawnstate 1000, // spawnhealth @@ -14685,7 +15081,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CDLHRT + { + "MT_CDLHRT", -1, // doomednum S_LHRT, // spawnstate 1000, // spawnhealth @@ -14712,7 +15109,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_JACKO1 + { + "MT_JACKO1", 2006, // doomednum S_JACKO1, // spawnstate 1000, // spawnhealth @@ -14739,7 +15137,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_JACKO1OVERLAY_1 // raisestate }, - { // MT_JACKO2 + { + "MT_JACKO2", 2007, // doomednum S_JACKO2, // spawnstate 1000, // spawnhealth @@ -14766,7 +15165,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_JACKO2OVERLAY_1 // raisestate }, - { // MT_JACKO3 + { + "MT_JACKO3", 2008, // doomednum S_JACKO3, // spawnstate 1000, // spawnhealth @@ -14793,7 +15193,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_JACKO3OVERLAY_1 // raisestate }, - { // MT_HHZTREE_TOP + { + "MT_HHZTREE_TOP", 2010, // doomednum S_HHZTREE_TOP, // spawnstate 1000, // spawnhealth @@ -14820,7 +15221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZTREE_PART + { + "MT_HHZTREE_PART", -1, // doomednum S_HHZTREE_TRUNK,// spawnstate 1000, // spawnhealth @@ -14847,7 +15249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZSHROOM + { + "MT_HHZSHROOM", 2009, // doomednum S_HHZSHROOM_1, // spawnstate 1000, // spawnhealth @@ -14874,7 +15277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZGRASS + { + "MT_HHZGRASS", 2001, // doomednum S_HHZGRASS, // spawnstate 1000, // spawnhealth @@ -14901,7 +15305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZTENTACLE1 + { + "MT_HHZTENTACLE1", 2002, // doomednum S_HHZTENT1, // spawnstate 1000, // spawnhealth @@ -14928,7 +15333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZTENTACLE2 + { + "MT_HHZTENTACLE2", 2003, // doomednum S_HHZTENT2, // spawnstate 1000, // spawnhealth @@ -14955,7 +15361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZSTALAGMITE_TALL + { + "MT_HHZSTALAGMITE_TALL", 2004, // doomednum S_HHZSTALAGMITE_TALL, // spawnstate 1000, // spawnhealth @@ -14982,7 +15389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HHZSTALAGMITE_SHORT + { + "MT_HHZSTALAGMITE_SHORT", 2005, // doomednum S_HHZSTALAGMITE_SHORT, // spawnstate 1000, // spawnhealth @@ -15012,7 +15420,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = // No, I did not do all of this by hand. // I made a script to make all of these for me. // Ha HA. ~Inuyasha - { // MT_BSZTALLFLOWER_RED + { + "MT_BSZTALLFLOWER_RED", 1400, // doomednum S_BSZTALLFLOWER_RED, // spawnstate 1000, // spawnhealth @@ -15039,7 +15448,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTALLFLOWER_PURPLE + { + "MT_BSZTALLFLOWER_PURPLE", 1401, // doomednum S_BSZTALLFLOWER_PURPLE, // spawnstate 1000, // spawnhealth @@ -15066,7 +15476,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTALLFLOWER_BLUE + { + "MT_BSZTALLFLOWER_BLUE", 1402, // doomednum S_BSZTALLFLOWER_BLUE, // spawnstate 1000, // spawnhealth @@ -15093,7 +15504,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTALLFLOWER_CYAN + { + "MT_BSZTALLFLOWER_CYAN", 1403, // doomednum S_BSZTALLFLOWER_CYAN, // spawnstate 1000, // spawnhealth @@ -15120,7 +15532,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTALLFLOWER_YELLOW + { + "MT_BSZTALLFLOWER_YELLOW", 1404, // doomednum S_BSZTALLFLOWER_YELLOW, // spawnstate 1000, // spawnhealth @@ -15147,7 +15560,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTALLFLOWER_ORANGE + { + "MT_BSZTALLFLOWER_ORANGE", 1405, // doomednum S_BSZTALLFLOWER_ORANGE, // spawnstate 1000, // spawnhealth @@ -15174,7 +15588,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZFLOWER_RED + { + "MT_BSZFLOWER_RED", 1410, // doomednum S_BSZFLOWER_RED, // spawnstate 1000, // spawnhealth @@ -15201,7 +15616,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZFLOWER_PURPLE + { + "MT_BSZFLOWER_PURPLE", 1411, // doomednum S_BSZFLOWER_PURPLE, // spawnstate 1000, // spawnhealth @@ -15228,7 +15644,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZFLOWER_BLUE + { + "MT_BSZFLOWER_BLUE", 1412, // doomednum S_BSZFLOWER_BLUE, // spawnstate 1000, // spawnhealth @@ -15255,7 +15672,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZFLOWER_CYAN + { + "MT_BSZFLOWER_CYAN", 1413, // doomednum S_BSZFLOWER_CYAN, // spawnstate 1000, // spawnhealth @@ -15282,7 +15700,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZFLOWER_YELLOW + { + "MT_BSZFLOWER_YELLOW", 1414, // doomednum S_BSZFLOWER_YELLOW, // spawnstate 1000, // spawnhealth @@ -15309,7 +15728,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZFLOWER_ORANGE + { + "MT_BSZFLOWER_ORANGE", 1415, // doomednum S_BSZFLOWER_ORANGE, // spawnstate 1000, // spawnhealth @@ -15336,7 +15756,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHORTFLOWER_RED + { + "MT_BSZSHORTFLOWER_RED", 1420, // doomednum S_BSZSHORTFLOWER_RED, // spawnstate 1000, // spawnhealth @@ -15363,7 +15784,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHORTFLOWER_PURPLE + { + "MT_BSZSHORTFLOWER_PURPLE", 1421, // doomednum S_BSZSHORTFLOWER_PURPLE, // spawnstate 1000, // spawnhealth @@ -15390,7 +15812,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHORTFLOWER_BLUE + { + "MT_BSZSHORTFLOWER_BLUE", 1422, // doomednum S_BSZSHORTFLOWER_BLUE, // spawnstate 1000, // spawnhealth @@ -15417,7 +15840,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHORTFLOWER_CYAN + { + "MT_BSZSHORTFLOWER_CYAN", 1423, // doomednum S_BSZSHORTFLOWER_CYAN, // spawnstate 1000, // spawnhealth @@ -15444,7 +15868,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHORTFLOWER_YELLOW + { + "MT_BSZSHORTFLOWER_YELLOW", 1424, // doomednum S_BSZSHORTFLOWER_YELLOW, // spawnstate 1000, // spawnhealth @@ -15471,7 +15896,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHORTFLOWER_ORANGE + { + "MT_BSZSHORTFLOWER_ORANGE", 1425, // doomednum S_BSZSHORTFLOWER_ORANGE, // spawnstate 1000, // spawnhealth @@ -15498,7 +15924,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTULIP_RED + { + "MT_BSZTULIP_RED", 1430, // doomednum S_BSZTULIP_RED, // spawnstate 1000, // spawnhealth @@ -15525,7 +15952,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTULIP_PURPLE + { + "MT_BSZTULIP_PURPLE", 1431, // doomednum S_BSZTULIP_PURPLE, // spawnstate 1000, // spawnhealth @@ -15552,7 +15980,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTULIP_BLUE + { + "MT_BSZTULIP_BLUE", 1432, // doomednum S_BSZTULIP_BLUE, // spawnstate 1000, // spawnhealth @@ -15579,7 +16008,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTULIP_CYAN + { + "MT_BSZTULIP_CYAN", 1433, // doomednum S_BSZTULIP_CYAN, // spawnstate 1000, // spawnhealth @@ -15606,7 +16036,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTULIP_YELLOW + { + "MT_BSZTULIP_YELLOW", 1434, // doomednum S_BSZTULIP_YELLOW, // spawnstate 1000, // spawnhealth @@ -15633,7 +16064,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZTULIP_ORANGE + { + "MT_BSZTULIP_ORANGE", 1435, // doomednum S_BSZTULIP_ORANGE, // spawnstate 1000, // spawnhealth @@ -15660,7 +16092,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLUSTER_RED + { + "MT_BSZCLUSTER_RED", 1440, // doomednum S_BSZCLUSTER_RED, // spawnstate 1000, // spawnhealth @@ -15687,7 +16120,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLUSTER_PURPLE + { + "MT_BSZCLUSTER_PURPLE", 1441, // doomednum S_BSZCLUSTER_PURPLE, // spawnstate 1000, // spawnhealth @@ -15714,7 +16148,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLUSTER_BLUE + { + "MT_BSZCLUSTER_BLUE", 1442, // doomednum S_BSZCLUSTER_BLUE, // spawnstate 1000, // spawnhealth @@ -15741,7 +16176,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLUSTER_CYAN + { + "MT_BSZCLUSTER_CYAN", 1443, // doomednum S_BSZCLUSTER_CYAN, // spawnstate 1000, // spawnhealth @@ -15768,7 +16204,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLUSTER_YELLOW + { + "MT_BSZCLUSTER_YELLOW", 1444, // doomednum S_BSZCLUSTER_YELLOW, // spawnstate 1000, // spawnhealth @@ -15795,7 +16232,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLUSTER_ORANGE + { + "MT_BSZCLUSTER_ORANGE", 1445, // doomednum S_BSZCLUSTER_ORANGE, // spawnstate 1000, // spawnhealth @@ -15822,7 +16260,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZBUSH_RED + { + "MT_BSZBUSH_RED", 1450, // doomednum S_BSZBUSH_RED, // spawnstate 1000, // spawnhealth @@ -15849,7 +16288,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZBUSH_PURPLE + { + "MT_BSZBUSH_PURPLE", 1451, // doomednum S_BSZBUSH_PURPLE, // spawnstate 1000, // spawnhealth @@ -15876,7 +16316,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZBUSH_BLUE + { + "MT_BSZBUSH_BLUE", 1452, // doomednum S_BSZBUSH_BLUE, // spawnstate 1000, // spawnhealth @@ -15903,7 +16344,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZBUSH_CYAN + { + "MT_BSZBUSH_CYAN", 1453, // doomednum S_BSZBUSH_CYAN, // spawnstate 1000, // spawnhealth @@ -15930,7 +16372,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZBUSH_YELLOW + { + "MT_BSZBUSH_YELLOW", 1454, // doomednum S_BSZBUSH_YELLOW, // spawnstate 1000, // spawnhealth @@ -15957,7 +16400,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZBUSH_ORANGE + { + "MT_BSZBUSH_ORANGE", 1455, // doomednum S_BSZBUSH_ORANGE, // spawnstate 1000, // spawnhealth @@ -15984,7 +16428,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZVINE_RED + { + "MT_BSZVINE_RED", 1460, // doomednum S_BSZVINE_RED, // spawnstate 1000, // spawnhealth @@ -16011,7 +16456,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZVINE_PURPLE + { + "MT_BSZVINE_PURPLE", 1461, // doomednum S_BSZVINE_PURPLE, // spawnstate 1000, // spawnhealth @@ -16038,7 +16484,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZVINE_BLUE + { + "MT_BSZVINE_BLUE", 1462, // doomednum S_BSZVINE_BLUE, // spawnstate 1000, // spawnhealth @@ -16065,7 +16512,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZVINE_CYAN + { + "MT_BSZVINE_CYAN", 1463, // doomednum S_BSZVINE_CYAN, // spawnstate 1000, // spawnhealth @@ -16092,7 +16540,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZVINE_YELLOW + { + "MT_BSZVINE_YELLOW", 1464, // doomednum S_BSZVINE_YELLOW, // spawnstate 1000, // spawnhealth @@ -16119,7 +16568,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZVINE_ORANGE + { + "MT_BSZVINE_ORANGE", 1465, // doomednum S_BSZVINE_ORANGE, // spawnstate 1000, // spawnhealth @@ -16146,7 +16596,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZSHRUB + { + "MT_BSZSHRUB", 1470, // doomednum S_BSZSHRUB, // spawnstate 1000, // spawnhealth @@ -16173,7 +16624,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BSZCLOVER + { + "MT_BSZCLOVER", 1471, // doomednum S_BSZCLOVER, // spawnstate 1000, // spawnhealth @@ -16200,7 +16652,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIG_PALMTREE_TRUNK + { + "MT_BIG_PALMTREE_TRUNK", -1, // doomednum S_BIG_PALMTREE_TRUNK, // spawnstate 1000, // spawnhealth @@ -16227,7 +16680,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BIG_PALMTREE_TOP + { + "MT_BIG_PALMTREE_TOP", 1473, // doomednum S_BIG_PALMTREE_TOP, // spawnstate 1000, // spawnhealth @@ -16254,7 +16708,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PALMTREE_TRUNK + { + "MT_PALMTREE_TRUNK", -1, // doomednum S_PALMTREE_TRUNK, // spawnstate 1000, // spawnhealth @@ -16281,7 +16736,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PALMTREE_TOP + { + "MT_PALMTREE_TOP", 1475, // doomednum S_PALMTREE_TOP, // spawnstate 1000, // spawnhealth @@ -16308,7 +16764,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DBALL + { + "MT_DBALL", 1875, // doomednum S_DBALL1, // spawnstate 1000, // spawnhealth @@ -16335,7 +16792,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGSTATUE2 + { + "MT_EGGSTATUE2", 1876, // doomednum S_EGGSTATUE2, // spawnstate 1000, // spawnhealth @@ -16362,7 +16820,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ELEMENTAL_ORB + { + "MT_ELEMENTAL_ORB", -1, // doomednum S_ELEM1, // spawnstate 1000, // spawnhealth @@ -16389,7 +16848,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_ELEMF9 // raisestate }, - { // MT_ATTRACT_ORB + { + "MT_ATTRACT_ORB", -1, // doomednum S_MAGN1, // spawnstate 1000, // spawnhealth @@ -16416,7 +16876,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FORCE_ORB + { + "MT_FORCE_ORB", -1, // doomednum S_FORC1, // spawnstate 1000, // spawnhealth @@ -16443,7 +16904,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FORC21 // raisestate }, - { // MT_ARMAGEDDON_ORB + { + "MT_ARMAGEDDON_ORB", -1, // doomednum S_ARMA1, // spawnstate 1000, // spawnhealth @@ -16470,7 +16932,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WHIRLWIND_ORB + { + "MT_WHIRLWIND_ORB", -1, // doomednum S_WIND1, // spawnstate 1000, // spawnhealth @@ -16497,7 +16960,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PITY_ORB + { + "MT_PITY_ORB", -1, // doomednum S_PITY1, // spawnstate 1000, // spawnhealth @@ -16524,7 +16988,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLAMEAURA_ORB + { + "MT_FLAMEAURA_ORB", -1, // doomednum S_FIRSB1, // spawnstate 1000, // spawnhealth @@ -16551,7 +17016,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FIRS10 // raisestate }, - { // MT_BUBBLEWRAP_ORB + { + "MT_BUBBLEWRAP_ORB", -1, // doomednum S_BUBSB1, // spawnstate 1000, // spawnhealth @@ -16578,7 +17044,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_BUBS10 // raisestate }, - { // MT_THUNDERCOIN_ORB + { + "MT_THUNDERCOIN_ORB", -1, // doomednum S_ZAPSB1, // spawnstate 1000, // spawnhealth @@ -16605,7 +17072,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_ZAPS14 // raisestate }, - { // MT_THUNDERCOIN_SPARK + { + "MT_THUNDERCOIN_SPARK", -1, // doomednum S_THUNDERCOIN_SPARK, // spawnstate 1, // spawnhealth @@ -16632,7 +17100,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_IVSP + { + "MT_IVSP", -1, // doomednum S_IVSP, // spawnstate 1000, // spawnhealth @@ -16659,7 +17128,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SUPERSPARK + { + "MT_SUPERSPARK", -1, // doomednum S_SSPK1, // spawnstate 1, // spawnhealth @@ -16687,7 +17157,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, // Bluebird - { // MT_FLICKY_01 + { + "MT_FLICKY_01", -1, // doomednum S_FLICKY_01_OUT, // spawnstate 1000, // spawnhealth @@ -16714,7 +17185,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_01_CENTER + { + "MT_FLICKY_01_CENTER", 2200, // doomednum S_FLICKY_01_CENTER, // spawnstate 1000, // spawnhealth @@ -16741,7 +17213,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_02 + { + "MT_FLICKY_02", -1, // doomednum S_FLICKY_02_OUT, // spawnstate 1000, // spawnhealth @@ -16768,7 +17241,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_02_CENTER + { + "MT_FLICKY_02_CENTER", 2201, // doomednum S_FLICKY_02_CENTER, // spawnstate 1000, // spawnhealth @@ -16795,7 +17269,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_03 + { + "MT_FLICKY_03", -1, // doomednum S_FLICKY_03_OUT, // spawnstate 1000, // spawnhealth @@ -16822,7 +17297,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_03_CENTER + { + "MT_FLICKY_03_CENTER", 2202, // doomednum S_FLICKY_03_CENTER, // spawnstate 1000, // spawnhealth @@ -16849,7 +17325,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_04 + { + "MT_FLICKY_04", -1, // doomednum S_FLICKY_04_OUT, // spawnstate 1000, // spawnhealth @@ -16876,7 +17353,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_04_CENTER + { + "MT_FLICKY_04_CENTER", 2203, // doomednum S_FLICKY_04_CENTER, // spawnstate 1000, // spawnhealth @@ -16903,7 +17381,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_05 + { + "MT_FLICKY_05", -1, // doomednum S_FLICKY_05_OUT, // spawnstate 1000, // spawnhealth @@ -16930,7 +17409,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_05_CENTER + { + "MT_FLICKY_05_CENTER", 2204, // doomednum S_FLICKY_05_CENTER, // spawnstate 1000, // spawnhealth @@ -16957,7 +17437,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_06 + { + "MT_FLICKY_06", -1, // doomednum S_FLICKY_06_OUT, // spawnstate 1000, // spawnhealth @@ -16984,7 +17465,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_06_CENTER + { + "MT_FLICKY_06_CENTER", 2205, // doomednum S_FLICKY_06_CENTER, // spawnstate 1000, // spawnhealth @@ -17011,7 +17493,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_07 + { + "MT_FLICKY_07", -1, // doomednum S_FLICKY_07_OUT, // spawnstate 1000, // spawnhealth @@ -17038,7 +17521,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_07_CENTER + { + "MT_FLICKY_07_CENTER", 2206, // doomednum S_FLICKY_07_CENTER, // spawnstate 1000, // spawnhealth @@ -17065,7 +17549,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_08 + { + "MT_FLICKY_08", -1, // doomednum S_FLICKY_08_OUT, // spawnstate 1000, // spawnhealth @@ -17092,7 +17577,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_08_CENTER + { + "MT_FLICKY_08_CENTER", 2207, // doomednum S_FLICKY_08_CENTER, // spawnstate 1000, // spawnhealth @@ -17119,7 +17605,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_09 + { + "MT_FLICKY_09", -1, // doomednum S_FLICKY_09_OUT, // spawnstate 1000, // spawnhealth @@ -17146,7 +17633,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_09_CENTER + { + "MT_FLICKY_09_CENTER", 2208, // doomednum S_FLICKY_09_CENTER, // spawnstate 1000, // spawnhealth @@ -17173,7 +17661,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_10 + { + "MT_FLICKY_10", -1, // doomednum S_FLICKY_10_OUT, // spawnstate 1000, // spawnhealth @@ -17200,7 +17689,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_10_CENTER + { + "MT_FLICKY_10_CENTER", 2209, // doomednum S_FLICKY_10_CENTER, // spawnstate 1000, // spawnhealth @@ -17227,7 +17717,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_11 + { + "MT_FLICKY_11", -1, // doomednum S_FLICKY_11_OUT, // spawnstate 1000, // spawnhealth @@ -17254,7 +17745,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_11_CENTER + { + "MT_FLICKY_11_CENTER", 2210, // doomednum S_FLICKY_11_CENTER, // spawnstate 1000, // spawnhealth @@ -17281,7 +17773,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_12 + { + "MT_FLICKY_12", -1, // doomednum S_FLICKY_12_OUT, // spawnstate 1000, // spawnhealth @@ -17308,7 +17801,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_12_CENTER + { + "MT_FLICKY_12_CENTER", 2211, // doomednum S_FLICKY_12_CENTER, // spawnstate 1000, // spawnhealth @@ -17335,7 +17829,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_13 + { + "MT_FLICKY_13", -1, // doomednum S_FLICKY_13_OUT, // spawnstate 1000, // spawnhealth @@ -17362,7 +17857,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_13_CENTER + { + "MT_FLICKY_13_CENTER", 2212, // doomednum S_FLICKY_13_CENTER, // spawnstate 1000, // spawnhealth @@ -17389,7 +17885,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_14 + { + "MT_FLICKY_14", -1, // doomednum S_FLICKY_14_OUT, // spawnstate 1000, // spawnhealth @@ -17416,7 +17913,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_14_CENTER + { + "MT_FLICKY_14_CENTER", 2213, // doomednum S_FLICKY_14_CENTER, // spawnstate 1000, // spawnhealth @@ -17443,7 +17941,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_15 + { + "MT_FLICKY_15", -1, // doomednum S_FLICKY_15_OUT, // spawnstate 1000, // spawnhealth @@ -17470,7 +17969,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_15_CENTER + { + "MT_FLICKY_15_CENTER", 2214, // doomednum S_FLICKY_15_CENTER, // spawnstate 1000, // spawnhealth @@ -17497,7 +17997,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLICKY_16 + { + "MT_FLICKY_16", -1, // doomednum S_FLICKY_16_OUT, // spawnstate 1000, // spawnhealth @@ -17524,7 +18025,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_FLICKY_16_CENTER + { + "MT_FLICKY_16_CENTER", 2215, // doomednum S_FLICKY_16_CENTER, // spawnstate 1000, // spawnhealth @@ -17551,7 +18053,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SECRETFLICKY_01 + { + "MT_SECRETFLICKY_01", -1, // doomednum S_SECRETFLICKY_01_OUT, // spawnstate 1000, // spawnhealth @@ -17578,7 +18081,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_SECRETFLICKY_01_CENTER + { + "MT_SECRETFLICKY_01_CENTER", 2216, // doomednum S_SECRETFLICKY_01_CENTER, // spawnstate 1000, // spawnhealth @@ -17605,7 +18109,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SECRETFLICKY_02 + { + "MT_SECRETFLICKY_02", -1, // doomednum S_SECRETFLICKY_02_OUT, // spawnstate 1000, // spawnhealth @@ -17632,7 +18137,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_FLICKY_BUBBLE // raisestate }, - { // MT_SECRETFLICKY_02_CENTER + { + "MT_SECRETFLICKY_02_CENTER", 2217, // doomednum S_SECRETFLICKY_02_CENTER, // spawnstate 1000, // spawnhealth @@ -17659,7 +18165,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SEED + { + "MT_SEED", -1, // doomednum S_SEED, // spawnstate 1000, // spawnhealth @@ -17686,7 +18193,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RAIN + { + "MT_RAIN", -1, // doomednum S_RAIN1, // spawnstate 1000, // spawnhealth @@ -17713,7 +18221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SNOWFLAKE + { + "MT_SNOWFLAKE", -1, // doomednum S_SNOW1, // spawnstate 1000, // spawnhealth @@ -17740,7 +18249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPLISH + { + "MT_SPLISH", -1, // doomednum S_SPLISH1, // spawnstate 1000, // spawnhealth @@ -17767,7 +18277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LAVASPLISH + { + "MT_LAVASPLISH", -1, // doomednum S_LAVASPLISH, // spawnstate 1000, // spawnhealth @@ -17794,7 +18305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SMOKE + { + "MT_SMOKE", -1, // doomednum S_SMOKE1, // spawnstate 1000, // spawnhealth @@ -17821,7 +18333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SMALLBUBBLE + { + "MT_SMALLBUBBLE", -1, // doomednum S_SMALLBUBBLE, // spawnstate 1000, // spawnhealth @@ -17848,7 +18361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MEDIUMBUBBLE + { + "MT_MEDIUMBUBBLE", -1, // doomednum S_MEDIUMBUBBLE, // spawnstate 1000, // spawnhealth @@ -17875,7 +18389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EXTRALARGEBUBBLE + { + "MT_EXTRALARGEBUBBLE", -1, // doomednum S_LARGEBUBBLE1, // spawnstate 1000, // spawnhealth @@ -17902,7 +18417,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_EXTRALARGEBUBBLE // raisestate }, - { // MT_WATERZAP + { + "MT_WATERZAP", -1, // doomednum S_WATERZAP, // spawnstate 1000, // spawnhealth @@ -17929,7 +18445,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPINDUST + { + "MT_SPINDUST", -1, // doomednum S_SPINDUST1, // spawnstate 1000, // spawnhealth @@ -17956,7 +18473,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TFOG + { + "MT_TFOG", -1, // doomednum S_FOG1, // spawnstate 1, // spawnhealth @@ -17983,7 +18501,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PARTICLE + { + "MT_PARTICLE", -1, // doomednum S_PARTICLE, // spawnstate 1000, // spawnhealth @@ -18010,7 +18529,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PARTICLEGEN + { + "MT_PARTICLEGEN", 757, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -18037,7 +18557,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCORE + { + "MT_SCORE", -1, // doomednum S_SCRA, // spawnstate 1, // spawnhealth @@ -18064,7 +18585,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DROWNNUMBERS + { + "MT_DROWNNUMBERS", -1, // doomednum S_ZERO1, // spawnstate 1000, // spawnhealth @@ -18091,7 +18613,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GOTEMERALD + { + "MT_GOTEMERALD", -1, // doomednum S_CEMG1, // spawnstate 1000, // spawnhealth @@ -18118,7 +18641,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LOCKON + { + "MT_LOCKON", -1, // doomednum S_LOCKON1, // spawnstate 1000, // spawnhealth @@ -18145,7 +18669,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LOCKONINF + { + "MT_LOCKONINF", 1126, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -18172,7 +18697,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TAG + { + "MT_TAG", -1, // doomednum S_TTAG, // spawnstate 1000, // spawnhealth @@ -18199,7 +18725,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GOTFLAG + { + "MT_GOTFLAG", -1, // doomednum S_GOTFLAG, // spawnstate 1000, // spawnhealth @@ -18226,7 +18753,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FINISHFLAG + { + "MT_FINISHFLAG", -1, // doomednum S_FINISHFLAG, // spawnstate 1000, // spawnhealth @@ -18254,7 +18782,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, // ambient sound effect - { // MT_AMBIENT + { + "MT_AMBIENT", 700, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -18281,7 +18810,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CORK + { + "MT_CORK", -1, // doomednum S_CORK, // spawnstate 1000, // spawnhealth @@ -18308,7 +18838,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_LHRT + { + "MT_LHRT", -1, // doomednum S_LHRT, // spawnstate 1000, // spawnhealth @@ -18335,7 +18866,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_REDRING + { + "MT_REDRING", -1, // doomednum S_RRNG1, // spawnstate 1000, // spawnhealth @@ -18363,7 +18895,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, // Ring ammo: Health = amount given - { // MT_BOUNCERING + { + "MT_BOUNCERING", 301, // doomednum S_BOUNCERINGAMMO, // spawnstate 10, // spawnhealth @@ -18390,7 +18923,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RAILRING + { + "MT_RAILRING", 302, // doomednum S_RAILRINGAMMO, // spawnstate 5, // spawnhealth @@ -18417,7 +18951,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_INFINITYRING + { + "MT_INFINITYRING", 303, // doomednum S_INFINITYRINGAMMO,// spawnstate 80, // spawnhealth @@ -18444,7 +18979,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_AUTOMATICRING + { + "MT_AUTOMATICRING", 304, // doomednum S_AUTOMATICRINGAMMO, // spawnstate 40, // spawnhealth @@ -18471,7 +19007,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EXPLOSIONRING + { + "MT_EXPLOSIONRING", 305, // doomednum S_EXPLOSIONRINGAMMO, // spawnstate 5, // spawnhealth @@ -18498,7 +19035,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCATTERRING + { + "MT_SCATTERRING", 306, // doomednum S_SCATTERRINGAMMO, // spawnstate 5, // spawnhealth @@ -18525,7 +19063,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GRENADERING + { + "MT_GRENADERING", 307, // doomednum S_GRENADERINGAMMO, // spawnstate 10, // spawnhealth @@ -18553,7 +19092,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, // Ring panels: Reactiontime = amount given - { // MT_BOUNCEPICKUP + { + "MT_BOUNCEPICKUP", 330, // doomednum S_BOUNCEPICKUP, // spawnstate 1, // spawnhealth @@ -18580,7 +19120,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RAILPICKUP + { + "MT_RAILPICKUP", 331, // doomednum S_RAILPICKUP, // spawnstate 1, // spawnhealth @@ -18607,7 +19148,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_AUTOPICKUP + { + "MT_AUTOPICKUP", 332, // doomednum S_AUTOPICKUP, // spawnstate 1, // spawnhealth @@ -18634,7 +19176,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EXPLODEPICKUP + { + "MT_EXPLODEPICKUP", 333, // doomednum S_EXPLODEPICKUP,// spawnstate 1, // spawnhealth @@ -18661,7 +19204,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SCATTERPICKUP + { + "MT_SCATTERPICKUP", 334, // doomednum S_SCATTERPICKUP,// spawnstate 1, // spawnhealth @@ -18688,7 +19232,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GRENADEPICKUP + { + "MT_GRENADEPICKUP", 335, // doomednum S_GRENADEPICKUP,// spawnstate 1, // spawnhealth @@ -18715,7 +19260,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THROWNBOUNCE + { + "MT_THROWNBOUNCE", -1, // doomednum S_THROWNBOUNCE1,// spawnstate 1000, // spawnhealth @@ -18742,7 +19288,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THROWNINFINITY + { + "MT_THROWNINFINITY", -1, // doomednum S_THROWNINFINITY1, // spawnstate 1000, // spawnhealth @@ -18769,7 +19316,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THROWNAUTOMATIC + { + "MT_THROWNAUTOMATIC", -1, // doomednum S_THROWNAUTOMATIC1, // spawnstate 1000, // spawnhealth @@ -18796,7 +19344,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THROWNSCATTER + { + "MT_THROWNSCATTER", -1, // doomednum S_THROWNSCATTER,// spawnstate 1000, // spawnhealth @@ -18823,7 +19372,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THROWNEXPLOSION + { + "MT_THROWNEXPLOSION", -1, // doomednum S_THROWNEXPLOSION1, // spawnstate 1000, // spawnhealth @@ -18850,7 +19400,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_THROWNGRENADE + { + "MT_THROWNGRENADE", -1, // doomednum S_THROWNGRENADE1, // spawnstate 1000, // spawnhealth @@ -18877,7 +19428,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_COIN + { + "MT_COIN", 1800, // doomednum S_COIN1, // spawnstate 1000, // spawnhealth @@ -18904,7 +19456,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLINGCOIN + { + "MT_FLINGCOIN", -1, // doomednum S_COIN1, // spawnstate 1000, // spawnhealth @@ -18931,7 +19484,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GOOMBA + { + "MT_GOOMBA", 1801, // doomednum S_GOOMBA1, // spawnstate 1, // spawnhealth @@ -18958,7 +19512,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUEGOOMBA + { + "MT_BLUEGOOMBA", 1802, // doomednum S_BLUEGOOMBA1, // spawnstate 1, // spawnhealth @@ -18985,7 +19540,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FIREFLOWER + { + "MT_FIREFLOWER", 1803, // doomednum S_FIREFLOWER1, // spawnstate 1000, // spawnhealth @@ -19012,7 +19568,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FIREBALL + { + "MT_FIREBALL", -1, // doomednum S_FIREBALL, // spawnstate 1000, // spawnhealth @@ -19039,7 +19596,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FIREBALLTRAIL + { + "MT_FIREBALLTRAIL", -1, // doomednum S_FIREBALLTRAIL1, // spawnstate 1000, // spawnhealth @@ -19066,7 +19624,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SHELL + { + "MT_SHELL", 1804, // doomednum S_SHELL, // spawnstate 1, // spawnhealth @@ -19093,7 +19652,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PUMA + { + "MT_PUMA", 1805, // doomednum S_PUMA_START1, // spawnstate 1000, // spawnhealth @@ -19120,7 +19680,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PUMATRAIL + { + "MT_PUMATRAIL", -1, // doomednum S_PUMATRAIL1, // spawnstate 1000, // spawnhealth @@ -19147,7 +19708,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HAMMER + { + "MT_HAMMER", -1, // doomednum S_HAMMER, // spawnstate 1000, // spawnhealth @@ -19173,7 +19735,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_PAIN, // flags S_NULL // raisestate }, - { // MT_KOOPA + { + "MT_KOOPA", 1806, // doomednum S_KOOPA1, // spawnstate 1000, // spawnhealth @@ -19200,7 +19763,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_KOOPAFLAME + { + "MT_KOOPAFLAME", -1, // doomednum S_KOOPAFLAME1, // spawnstate 1000, // spawnhealth @@ -19227,7 +19791,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_AXE + { + "MT_AXE", 1807, // doomednum S_AXE1, // spawnstate 1000, // spawnhealth @@ -19254,7 +19819,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MARIOBUSH1 + { + "MT_MARIOBUSH1", 1808, // doomednum S_MARIOBUSH1, // spawnstate 1000, // spawnhealth @@ -19281,7 +19847,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_MARIOBUSH2 + { + "MT_MARIOBUSH2", 1809, // doomednum S_MARIOBUSH2, // spawnstate 1000, // spawnhealth @@ -19308,7 +19875,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TOAD + { + "MT_TOAD", 1810, // doomednum S_TOAD, // spawnstate 1000, // spawnhealth @@ -19335,7 +19903,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_AXIS + { + "MT_AXIS", 1700, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19362,7 +19931,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_AXISTRANSFER + { + "MT_AXISTRANSFER", 1701, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19389,7 +19959,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_AXISTRANSFERLINE + { + "MT_AXISTRANSFERLINE", 1702, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19416,7 +19987,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSDRONE + { + "MT_NIGHTSDRONE", 1703, // doomednum S_INVISIBLE, // spawnstate 120, // spawnhealth @@ -19443,7 +20015,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSDRONE_MAN + { + "MT_NIGHTSDRONE_MAN", -1, // doomednum S_INVISIBLE, // spawnstate 120, // spawnhealth @@ -19470,7 +20043,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSDRONE_SPARKLING + { + "MT_NIGHTSDRONE_SPARKLING", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19497,7 +20071,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSDRONE_GOAL + { + "MT_NIGHTSDRONE_GOAL", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19524,7 +20099,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSPARKLE + { + "MT_NIGHTSPARKLE", -1, // doomednum S_NIGHTSPARKLE1,// spawnstate 1000, // spawnhealth @@ -19551,7 +20127,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSLOOPHELPER + { + "MT_NIGHTSLOOPHELPER", -1, // doomednum S_NIGHTSLOOPHELPER,// spawnstate 1000, // spawnhealth @@ -19578,7 +20155,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSBUMPER + { + "MT_NIGHTSBUMPER", 1704, // doomednum S_NIGHTSBUMPER1,// spawnstate 1, // spawnhealth @@ -19605,7 +20183,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HOOP + { + "MT_HOOP", -1, // doomednum S_HOOP, // spawnstate 1000, // spawnhealth @@ -19632,7 +20211,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HOOPCOLLIDE + { + "MT_HOOPCOLLIDE", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19659,7 +20239,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HOOPCENTER + { + "MT_HOOPCENTER", -1, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -19686,7 +20267,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSCORE + { + "MT_NIGHTSCORE", -1, // doomednum S_NIGHTSCORE10, // spawnstate 1000, // spawnhealth @@ -19713,7 +20295,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSCHIP + { + "MT_NIGHTSCHIP", -1, // doomednum S_NIGHTSCHIP, // spawnstate 1000, // spawnhealth @@ -19740,7 +20323,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NIGHTSCHIPBONUS // raisestate }, - { // MT_FLINGNIGHTSCHIP + { + "MT_FLINGNIGHTSCHIP", -1, // doomednum S_NIGHTSCHIP, // spawnstate 1000, // spawnhealth @@ -19767,7 +20351,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NIGHTSCHIPBONUS // raisestate }, - { // MT_NIGHTSSTAR + { + "MT_NIGHTSSTAR", -1, // doomednum S_NIGHTSSTAR, // spawnstate 1000, // spawnhealth @@ -19794,13 +20379,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FLINGNIGHTSSTAR + { + "MT_FLINGNIGHTSSTAR", -1, // doomednum S_NIGHTSSTAR, // spawnstate 1000, // spawnhealth S_NIGHTSSTARXMAS, // seestate sfx_None, // seesound - MT_FLINGNIGHTSSTAR, // reactiontime + MT_FLINGNIGHTSSTAR, // reactiontime sfx_None, // attacksound S_NULL, // painstate MT_NIGHTSSTAR, // painchance @@ -19821,7 +20407,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSSUPERLOOP + { + "MT_NIGHTSSUPERLOOP", 1707, // doomednum S_NIGHTSSUPERLOOP, // spawnstate 1000, // spawnhealth @@ -19848,7 +20435,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSDRILLREFILL + { + "MT_NIGHTSDRILLREFILL", 1708, // doomednum S_NIGHTSDRILLREFILL, // spawnstate 1000, // spawnhealth @@ -19875,7 +20463,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSHELPER + { + "MT_NIGHTSHELPER", 1709, // doomednum S_NIGHTSHELPER, // spawnstate 1000, // spawnhealth @@ -19902,7 +20491,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSEXTRATIME + { + "MT_NIGHTSEXTRATIME", 1711, // doomednum S_NIGHTSEXTRATIME, // spawnstate 1000, // spawnhealth @@ -19929,7 +20519,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTSLINKFREEZE + { + "MT_NIGHTSLINKFREEZE", 1712, // doomednum S_NIGHTSLINKFREEZE, // spawnstate 1000, // spawnhealth @@ -19956,7 +20547,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EGGCAPSULE + { + "MT_EGGCAPSULE", 1710, // doomednum S_EGGCAPSULE, // spawnstate 20, // spawnhealth @@ -19983,7 +20575,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_IDEYAANCHOR + { + "MT_IDEYAANCHOR", 1714, // doomednum S_INVISIBLE, // spawnstate 0, // spawnhealth @@ -20010,7 +20603,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NIGHTOPIANHELPER + { + "MT_NIGHTOPIANHELPER", -1, // doomednum S_NIGHTOPIANHELPER1, // spawnstate 1000, // spawnhealth @@ -20037,7 +20631,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PIAN + { + "MT_PIAN", 1602, // doomednum S_PIAN_LOOK1, // spawnstate 1000, // spawnhealth @@ -20064,7 +20659,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SHLEEP + { + "MT_SHLEEP", 1601, // doomednum S_SHLEEP1, // spawnstate 1, // spawnhealth @@ -20091,7 +20687,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_PENGUINATOR + { + "MT_PENGUINATOR", 129, // doomednum S_PENGUINATOR_LOOK, // spawnstate 1, // spawnhealth @@ -20118,7 +20715,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POPHAT + { + "MT_POPHAT", 130, // doomednum -- happy anniversary! S_POPHAT_LOOK, // spawnstate 1, // spawnhealth @@ -20145,7 +20743,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POPSHOT + { + "MT_POPSHOT", -1, // doomednum S_POPSHOT, // spawnstate 1, // spawnhealth @@ -20172,7 +20771,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POPSHOT_TRAIL + { + "MT_POPSHOT_TRAIL", -1, // doomednum S_POPSHOT_TRAIL,// spawnstate 1000, // spawnhealth @@ -20199,7 +20799,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HIVEELEMENTAL + { + "MT_HIVEELEMENTAL", 127, // doomednum S_HIVEELEMENTAL_LOOK, // spawnstate 2, // spawnhealth @@ -20226,7 +20827,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUMBLEBORE + { + "MT_BUMBLEBORE", 128, // doomednum S_BUMBLEBORE_SPAWN, // spawnstate 0, // spawnhealth -- this is how you do drones... @@ -20253,7 +20855,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BUGGLE + { + "MT_BUGGLE", 124, // doomednum S_BUGGLEIDLE, // spawnstate 1, // spawnhealth @@ -20280,7 +20883,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SMASHINGSPIKEBALL + { + "MT_SMASHINGSPIKEBALL", 2000, // doomednum S_SMASHSPIKE_FLOAT, // spawnstate 1000, // spawnhealth @@ -20307,7 +20911,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACOLANTERN + { + "MT_CACOLANTERN", 132, // doomednum S_CACO_LOOK, // spawnstate 1, // spawnhealth @@ -20334,7 +20939,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACOSHARD + { + "MT_CACOSHARD", -1, // doomednum S_CACOSHARD_RANDOMIZE, // spawnstate 1000, // spawnhealth @@ -20361,7 +20967,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CACOFIRE + { + "MT_CACOFIRE", -1, // doomednum S_CACOFIRE1, // spawnstate 1000, // spawnhealth @@ -20388,7 +20995,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPINBOBERT + { + "MT_SPINBOBERT", 131, // doomednum S_SPINBOBERT_MOVE_FLIPUP, // spawnstate 1, // spawnhealth @@ -20415,7 +21023,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPINBOBERT_FIRE1 + { + "MT_SPINBOBERT_FIRE1", -1, // doomednum S_SPINBOBERT_FIRE_MOVE, // spawnstate 1, // spawnhealth @@ -20442,7 +21051,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPINBOBERT_FIRE2 + { + "MT_SPINBOBERT_FIRE2", -1, // doomednum S_SPINBOBERT_FIRE_MOVE, // spawnstate 1, // spawnhealth @@ -20469,7 +21079,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_HANGSTER + { + "MT_HANGSTER", 133, // doomednum S_HANGSTER_LOOK, // spawnstate 1, // spawnhealth @@ -20496,7 +21107,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_TELEPORTMAN + { + "MT_TELEPORTMAN", 751, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -20523,7 +21135,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ALTVIEWMAN + { + "MT_ALTVIEWMAN", 752, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -20550,7 +21163,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_CRUMBLEOBJ + { + "MT_CRUMBLEOBJ", -1, // doomednum S_CRUMBLE1, // spawnstate 1000, // spawnhealth @@ -20578,7 +21192,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, // Waypoint for zoom tubes - { // MT_TUBEWAYPOINT + { + "MT_TUBEWAYPOINT", 753, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -20606,7 +21221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, // for use with wind and current effects - { // MT_PUSH + { + "MT_PUSH", 754, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -20633,7 +21249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GHOST + { + "MT_GHOST", -1, // doomednum S_THOK, // spawnstate 1, // spawnhealth @@ -20660,7 +21277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_OVERLAY + { + "MT_OVERLAY", -1, // doomednum S_NULL, // spawnstate 1, // spawnhealth @@ -20687,7 +21305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ANGLEMAN + { + "MT_ANGLEMAN", 758, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -20714,7 +21333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POLYANCHOR + { + "MT_POLYANCHOR", 760, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -20741,7 +21361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_POLYSPAWN + { + "MT_POLYSPAWN", 761, // doomednum S_INVISIBLE, // spawnstate 1, // spawnhealth @@ -20768,7 +21389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SKYBOX + { + "MT_SKYBOX", 780, // doomednum S_INVISIBLE, // spawnstate 1000, // spawnhealth @@ -20795,7 +21417,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_SPARK + { + "MT_SPARK", -1, // doomednum S_SPRK1, // spawnstate 1000, // spawnhealth @@ -20822,7 +21445,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_EXPLODE + { + "MT_EXPLODE", -1, // doomednum S_XPLD1, // spawnstate 1, // spawnhealth @@ -20849,7 +21473,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_UWEXPLODE + { + "MT_UWEXPLODE", -1, // doomednum S_WPLD1, // spawnstate 1, // spawnhealth @@ -20876,7 +21501,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_DUST + { + "MT_DUST", -1, // doomednum S_DUST1, // spawnstate 1000, // spawnhealth @@ -20903,7 +21529,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKSPAWNER + { + "MT_ROCKSPAWNER", 1202, // doomednum S_ROCKSPAWN, // spawnstate 1000, // spawnhealth @@ -20930,7 +21557,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_FALLINGROCK + { + "MT_FALLINGROCK", -1, // doomednum S_ROCKCRUMBLEA, // spawnstate 1000, // spawnhealth @@ -20957,7 +21585,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE1 + { + "MT_ROCKCRUMBLE1", -1, // doomednum S_ROCKCRUMBLEA, // spawnstate 1000, // spawnhealth @@ -20984,7 +21613,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE2 + { + "MT_ROCKCRUMBLE2", -1, // doomednum S_ROCKCRUMBLEB, // spawnstate 1000, // spawnhealth @@ -21011,7 +21641,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE3 + { + "MT_ROCKCRUMBLE3", -1, // doomednum S_ROCKCRUMBLEC, //spawnstate 1000, // spawnhealth @@ -21038,7 +21669,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE4 + { + "MT_ROCKCRUMBLE4", -1, // doomednum S_ROCKCRUMBLED, // spawnstate 1000, // spawnhealth @@ -21065,7 +21697,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE5 + { + "MT_ROCKCRUMBLE5", -1, // doomednum S_ROCKCRUMBLEE, // spawnstate 1000, // spawnhealth @@ -21092,7 +21725,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE6 + { + "MT_ROCKCRUMBLE6", -1, // doomednum S_ROCKCRUMBLEF, // spawnstate 1000, // spawnhealth @@ -21119,7 +21753,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE7 + { + "MT_ROCKCRUMBLE7", -1, // doomednum S_ROCKCRUMBLEG, // spawnstate 1000, // spawnhealth @@ -21146,7 +21781,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE8 + { + "MT_ROCKCRUMBLE8", -1, // doomednum S_ROCKCRUMBLEH, // spawnstate 1000, // spawnhealth @@ -21173,7 +21809,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE9 + { + "MT_ROCKCRUMBLE9", -1, // doomednum S_ROCKCRUMBLEI, // spawnstate 1000, // spawnhealth @@ -21200,7 +21837,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE10 + { + "MT_ROCKCRUMBLE10", -1, // doomednum S_ROCKCRUMBLEJ, // spawnstate 1000, // spawnhealth @@ -21227,7 +21865,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE11 + { + "MT_ROCKCRUMBLE11", -1, // doomednum S_ROCKCRUMBLEK, // spawnstate 1000, // spawnhealth @@ -21254,7 +21893,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE12 + { + "MT_ROCKCRUMBLE12", -1, // doomednum S_ROCKCRUMBLEL, // spawnstate 1000, // spawnhealth @@ -21281,7 +21921,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE13 + { + "MT_ROCKCRUMBLE13", -1, // doomednum S_ROCKCRUMBLEM, // spawnstate 1000, // spawnhealth @@ -21308,7 +21949,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE14 + { + "MT_ROCKCRUMBLE14", -1, // doomednum S_ROCKCRUMBLEN, // spawnstate 1000, // spawnhealth @@ -21335,7 +21977,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE15 + { + "MT_ROCKCRUMBLE15", -1, // doomednum S_ROCKCRUMBLEO, // spawnstate 1000, // spawnhealth @@ -21362,7 +22005,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_ROCKCRUMBLE16 + { + "MT_ROCKCRUMBLE16", -1, // doomednum S_ROCKCRUMBLEP, // spawnstate 1000, // spawnhealth @@ -21389,7 +22033,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_GFZDEBRIS + { + "MT_GFZDEBRIS", -1, // doomednum S_GFZDEBRIS, // spawnstate 1, // spawnhealth @@ -21416,7 +22061,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BRICKDEBRIS + { + "MT_BRICKDEBRIS", -1, // doomednum S_BRICKDEBRIS, // spawnstate 1, // spawnhealth @@ -21443,7 +22089,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_WOODDEBRIS + { + "MT_WOODDEBRIS", -1, // doomednum S_WOODDEBRIS, // spawnstate 1, // spawnhealth @@ -21470,7 +22117,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_REDBRICKDEBRIS + { + "MT_REDBRICKDEBRIS", -1, // doomednum S_REDBRICKDEBRIS, // spawnstate 1, // spawnhealth @@ -21497,7 +22145,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_BLUEBRICKDEBRIS + { + "MT_BLUEBRICKDEBRIS", -1, // doomednum S_BLUEBRICKDEBRIS, // spawnstate 1, // spawnhealth @@ -21524,7 +22173,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_YELLOWBRICKDEBRIS + { + "MT_YELLOWBRICKDEBRIS", -1, // doomednum S_YELLOWBRICKDEBRIS, // spawnstate 1, // spawnhealth @@ -21551,7 +22201,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_NAMECHECK + { + "MT_NAMECHECK", -1, // doomednum S_NAMECHECK, // spawnstate 1000, // spawnhealth @@ -21578,7 +22229,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, - { // MT_RAY + { + "MT_RAY", -1, // doomednum S_NULL, // spawnstate 0, // spawnhealth @@ -21606,6 +22258,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, }; +mobjinfo_t **mobjinfo; +size_t nummobjinfo; + skincolor_t skincolors[MAXSKINCOLORS] = { {"None", {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, SKINCOLOR_NONE, 0, 0, false}, // SKINCOLOR_NONE @@ -21811,31 +22466,59 @@ void P_PatchInfoTables(void) } sprnames[i][0] = '\0'; // i == NUMSPRITES memset(&states[S_FIRSTFREESLOT], 0, sizeof (state_t) * NUMSTATEFREESLOTS); - memset(&mobjinfo[MT_FIRSTFREESLOT], 0, sizeof (mobjinfo_t) * NUMMOBJFREESLOTS); memset(&skincolors[SKINCOLOR_FIRSTFREESLOT], 0, sizeof (skincolor_t) * NUMCOLORFREESLOTS); for (i = SKINCOLOR_FIRSTFREESLOT; i <= SKINCOLOR_LASTFREESLOT; i++) { skincolors[i].accessible = false; skincolors[i].name[0] = '\0'; } - for (i = MT_FIRSTFREESLOT; i <= MT_LASTFREESLOT; i++) - mobjinfo[i].doomednum = -1; } #ifdef ALLOW_RESETDATA static char *sprnamesbackup; static state_t *statesbackup; -static mobjinfo_t *mobjinfobackup; static skincolor_t *skincolorsbackup; -static size_t sprnamesbackupsize, statesbackupsize, mobjinfobackupsize, skincolorsbackupsize; +static size_t sprnamesbackupsize, statesbackupsize, skincolorsbackupsize; #endif +UINT32 P_AllocateMobjinfo(const char *name) +{ + mobjinfo = Z_Realloc(mobjinfo, sizeof(*mobjinfo) * ++nummobjinfo, PU_STATIC, NULL); + mobjinfo[nummobjinfo-1] = Z_Malloc(sizeof(mobjinfo_t), PU_STATIC, NULL); + memset(mobjinfo[nummobjinfo-1], 0, sizeof(mobjinfo_t)); + mobjinfo[nummobjinfo-1]->name = name; + mobjinfo[nummobjinfo-1]->doomednum = -1; + return nummobjinfo-1; +} + +UINT32 P_GetMobjinfoIndex(mobjinfo_t *info) +{ + size_t i; + for (i = 0; i < nummobjinfo; i++) + { + if (mobjinfo[i] == info) + return i; + } + I_Error("Tried to get index of an invalid mobjinfo_t!"); +} + +void P_InitializeTables(void) +{ + size_t i; + nummobjinfo = sizeof(startmobjinfo) / sizeof(startmobjinfo[0]); + mobjinfo = Z_Malloc(sizeof(*mobjinfo) * nummobjinfo, PU_STATIC, NULL); + for (i = 0; i < nummobjinfo; i++) + { + mobjinfo[i] = Z_Malloc(sizeof(mobjinfo_t), PU_STATIC, NULL); + memcpy(mobjinfo[i], &startmobjinfo[i], sizeof(mobjinfo_t)); + } +} + void P_BackupTables(void) { #ifdef ALLOW_RESETDATA // Allocate buffers in size equal to that of the uncompressed data to begin with sprnamesbackup = Z_Malloc(sizeof(sprnames), PU_STATIC, NULL); statesbackup = Z_Malloc(sizeof(states), PU_STATIC, NULL); - mobjinfobackup = Z_Malloc(sizeof(mobjinfo), PU_STATIC, NULL); skincolorsbackup = Z_Malloc(sizeof(skincolors), PU_STATIC, NULL); // Sprite names @@ -21852,13 +22535,6 @@ void P_BackupTables(void) else M_Memcpy(statesbackup, states, sizeof(states)); - // Mobj info - mobjinfobackupsize = lzf_compress(mobjinfo, sizeof(mobjinfo), mobjinfobackup, sizeof(mobjinfo)); - if (mobjinfobackupsize > 0) - mobjinfobackup = Z_Realloc(mobjinfobackup, mobjinfobackupsize, PU_STATIC, NULL); - else - M_Memcpy(mobjinfobackup, mobjinfo, sizeof(mobjinfo)); - //Skincolor info skincolorsbackupsize = lzf_compress(skincolors, sizeof(skincolors), skincolorsbackup, sizeof(skincolors)); if (skincolorsbackupsize > 0) @@ -21892,10 +22568,11 @@ void P_ResetData(INT32 flags) if (flags & 4) { - if (mobjinfobackupsize > 0) - lzf_decompress(mobjinfobackup, mobjinfobackupsize, mobjinfo, sizeof(mobjinfo)); - else - M_Memcpy(mobjinfo, mobjinfobackup, sizeof(mobjinfobackup)); + size_t i; + for (i = 0; i < sizeof(startmobjinfo) / sizeof(startmobjinfo[0]); i++) + { + memcpy(mobjinfo[i], &startmobjinfo[i], sizeof(mobjinfo_t)); + } } if (flags & 8) diff --git a/src/info.h b/src/info.h index 0361f64281150bec03676bd1b8a4baa36a18de22..63f48eb8d79106ebe5648b27bc852cad433c6519 100644 --- a/src/info.h +++ b/src/info.h @@ -5163,14 +5163,11 @@ typedef enum mobj_type MT_NAMECHECK, MT_RAY, // General purpose mobj - - MT_FIRSTFREESLOT, - MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1, - NUMMOBJTYPES } mobjtype_t; typedef struct { + const char *name; INT32 doomednum; statenum_t spawnstate; INT32 spawnhealth; @@ -5197,7 +5194,12 @@ typedef struct statenum_t raisestate; } mobjinfo_t; -extern mobjinfo_t mobjinfo[NUMMOBJTYPES]; +extern mobjinfo_t **mobjinfo; +extern size_t nummobjinfo; + +UINT32 P_AllocateMobjinfo(const char *name); +UINT32 P_GetMobjinfoIndex(mobjinfo_t *info); +void P_InitializeTables(void); void P_PatchInfoTables(void); diff --git a/src/lua_baselib.c b/src/lua_baselib.c index f6b8f462b5a41cee30c33145fd62fa28daa01e92..ae6722c64ccbf33550297bcde600f1f1eb2e33be 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -44,8 +44,8 @@ return luaL_error(L, "HUD rendering code should not call this function!");\ else if (hook_cmd_running)\ return luaL_error(L, "CMD building code should not call this function!"); -#define NOSPAWNNULL if (type >= NUMMOBJTYPES)\ -return luaL_error(L, "mobj type %d out of range (0 - %d)", type, NUMMOBJTYPES-1);\ +#define NOSPAWNNULL if (type >= nummobjinfo)\ +return luaL_error(L, "mobj type %d out of range (0 - %zu)", type, nummobjinfo-1);\ else if (type == MT_NULL)\ {\ if (!nospawnnull_seen) {\ @@ -56,8 +56,8 @@ type = MT_RAY;\ } static boolean nospawnnull_seen = false; // TODO: 2.3: Delete // TODO: 2.3: Use the below NOSPAWNNULL define instead. P_SpawnMobj used to say "if MT_NULL, use MT_RAY instead", so the above define maintains Lua script compatibility until v2.3 -/*#define NOSPAWNNULL if (type <= MT_NULL || type >= NUMMOBJTYPES)\ -return luaL_error(L, "mobj type %d out of range (1 - %d)", type, NUMMOBJTYPES-1);*/ +/*#define NOSPAWNNULL if (type <= MT_NULL || type >= nummobjinfo)\ +return luaL_error(L, "mobj type %d out of range (1 - %d)", type, nummobjinfo-1);*/ boolean luaL_checkboolean(lua_State *L, int narg) { luaL_checktype(L, narg, LUA_TBOOLEAN); diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c index 54381e4aedc47a64d89190f5582c3c5856634ba6..d185d1b96216ae03973a43f4f8ee91c08cd1b843 100644 --- a/src/lua_hooklib.c +++ b/src/lua_hooklib.c @@ -53,7 +53,8 @@ typedef struct { static hook_t hookIds[HOOK(MAX)]; static hook_t hudHookIds[HUD_HOOK(MAX)]; -static hook_t mobjHookIds[NUMMOBJTYPES][MOBJ_HOOK(MAX)]; +static hook_t (*mobjHookIds)[MOBJ_HOOK(MAX)]; +static size_t numMobjHookIds; // Lua tables are used to lookup string hook ids. static stringhook_t stringHooks[STRING_HOOK(MAX)]; @@ -69,10 +70,10 @@ static int errorRef; static boolean mobj_hook_available(int hook_type, mobjtype_t mobj_type) { - return + return mobj_type < numMobjHookIds && ( mobjHookIds [MT_NULL] [hook_type].numHooks > 0 || - (mobj_type < NUMMOBJTYPES && mobjHookIds[mobj_type][hook_type].numHooks > 0) + (mobj_type < nummobjinfo && mobjHookIds[mobj_type][hook_type].numHooks > 0) ); } @@ -159,8 +160,8 @@ static void add_string_hook(lua_State *L, int type) static void add_hook(hook_t *map) { - Z_Realloc(map->ids, (map->numHooks + 1) * sizeof *map->ids, - PU_STATIC, &map->ids); + map->ids = Z_Realloc(map->ids, (map->numHooks + 1) * sizeof *map->ids, + PU_STATIC, NULL); map->ids[map->numHooks++] = nextid; } @@ -168,8 +169,14 @@ static void add_mobj_hook(lua_State *L, int hook_type) { mobjtype_t mobj_type = luaL_optnumber(L, 3, MT_NULL); - luaL_argcheck(L, mobj_type < NUMMOBJTYPES, 3, "invalid mobjtype_t"); + luaL_argcheck(L, mobj_type < nummobjinfo, 3, "invalid mobjtype_t"); + if (mobj_type >= numMobjHookIds) + { + mobjHookIds = Z_Realloc(mobjHookIds, (mobj_type+1) * sizeof(*mobjHookIds), PU_STATIC, NULL); + memset(&mobjHookIds[numMobjHookIds], 0, (mobj_type+1-numMobjHookIds) * sizeof(*mobjHookIds)); + numMobjHookIds = mobj_type+1; + } add_hook(&mobjHookIds[mobj_type][hook_type]); } @@ -346,7 +353,7 @@ static boolean prepare_mobj_hook mobj_t * primary_mobj ){ const mobjtype_t mobj_type = - primary_mobj ? primary_mobj->type : NUMMOBJTYPES; + primary_mobj ? primary_mobj->type : nummobjinfo; #ifdef PARANOIA if (mobj_type == MT_NULL) @@ -535,7 +542,7 @@ static int call_hooks /* call generic mobj hooks first */ calls += call_mobj_type_hooks(hook, MT_NULL); - if (hook->mobj_type < NUMMOBJTYPES) + if (hook->mobj_type < nummobjinfo) calls += call_mobj_type_hooks(hook, hook->mobj_type); ps_lua_mobjhooks.value.i += calls; diff --git a/src/lua_infolib.c b/src/lua_infolib.c index eeb1067a335f121f23d89bcf817a0b54f53f4f41..a687dad197adc979ba12f296d7ceab786baab581 100644 --- a/src/lua_infolib.c +++ b/src/lua_infolib.c @@ -1026,9 +1026,9 @@ static int lib_getMobjInfo(lua_State *L) lua_remove(L, 1); i = luaL_checkinteger(L, 1); - if (i >= NUMMOBJTYPES) - return luaL_error(L, "mobjinfo[] index %d out of range (0 - %d)", i, NUMMOBJTYPES-1); - LUA_PushUserdata(L, &mobjinfo[i], META_MOBJINFO); + if (i >= nummobjinfo) + return luaL_error(L, "mobjinfo[] index %d out of range (0 - %zu)", i, nummobjinfo-1); + LUA_PushUserdata(L, mobjinfo[i], META_MOBJINFO); return 1; } @@ -1036,12 +1036,13 @@ static int lib_getMobjInfo(lua_State *L) static int lib_setMobjInfo(lua_State *L) { mobjinfo_t *info; + const char *name; lua_remove(L, 1); // don't care about mobjinfo[] userdata. { UINT32 i = luaL_checkinteger(L, 1); - if (i >= NUMMOBJTYPES) - return luaL_error(L, "mobjinfo[] index %d out of range (0 - %d)", i, NUMMOBJTYPES-1); - info = &mobjinfo[i]; // get the mobjinfo to assign to. + if (i >= nummobjinfo) + return luaL_error(L, "mobjinfo[] index %d out of range (0 - %zu)", i, nummobjinfo-1); + info = mobjinfo[i]; // get the mobjinfo to assign to. } luaL_checktype(L, 2, LUA_TTABLE); // check that we've been passed a table. lua_remove(L, 1); // pop mobjtype num, don't need it any more. @@ -1053,7 +1054,9 @@ static int lib_setMobjInfo(lua_State *L) return luaL_error(L, "Do not alter mobjinfo in CMD building code!"); // clear the mobjinfo to start with, in case of missing table elements + name = info->name; memset(info,0,sizeof(mobjinfo_t)); + info->name = name; info->doomednum = -1; // default to no editor value info->spawnhealth = 1; // avoid 'dead' noclip behaviors @@ -1130,10 +1133,10 @@ static int lib_setMobjInfo(lua_State *L) return 0; } -// #mobjinfo -> NUMMOBJTYPES +// #mobjinfo -> nummobjinfo static int lib_mobjinfolen(lua_State *L) { - lua_pushinteger(L, NUMMOBJTYPES); + lua_pushinteger(L, nummobjinfo); return 1; } @@ -1202,7 +1205,6 @@ static int mobjinfo_get(lua_State *L) enum mobjinfo_e field = Lua_optoption(L, 2, mobjinfo_doomednum, mobjinfo_fields_ref); I_Assert(info != NULL); - I_Assert(info >= mobjinfo); switch (field) { @@ -1308,7 +1310,6 @@ static int mobjinfo_set(lua_State *L) return luaL_error(L, "Do not alter mobjinfo in CMD building code!"); I_Assert(info != NULL); - I_Assert(info >= mobjinfo); switch (field) { @@ -1407,6 +1408,7 @@ static int mobjinfo_set(lua_State *L) } // mobjinfo_t * -> MT_* +/* static int mobjinfo_num(lua_State *L) { mobjinfo_t *info = *((mobjinfo_t **)luaL_checkudata(L, 1, META_MOBJINFO)); @@ -1417,6 +1419,7 @@ static int mobjinfo_num(lua_State *L) lua_pushinteger(L, info-mobjinfo); return 1; } +*/ ////////////// // SFX INFO // @@ -1909,7 +1912,7 @@ int LUA_InfoLib(lua_State *L) lua_setfield(L, LUA_REGISTRYINDEX, LREG_ACTIONS); LUA_RegisterUserdataMetatable(L, META_STATE, state_get, state_set, state_num); - LUA_RegisterUserdataMetatable(L, META_MOBJINFO, mobjinfo_get, mobjinfo_set, mobjinfo_num); + LUA_RegisterUserdataMetatable(L, META_MOBJINFO, mobjinfo_get, mobjinfo_set, NULL); LUA_RegisterUserdataMetatable(L, META_SKINCOLOR, skincolor_get, skincolor_set, skincolor_num); LUA_RegisterUserdataMetatable(L, META_COLORRAMP, colorramp_get, colorramp_set, colorramp_len); LUA_RegisterUserdataMetatable(L, META_SFXINFO, sfxinfo_get, sfxinfo_set, sfxinfo_num); diff --git a/src/lua_mobjlib.c b/src/lua_mobjlib.c index de7065790abb137e82f505c961215ca6acb10429..f3d28f4669c4c99818441f24a2b9aab4026d3044 100644 --- a/src/lua_mobjlib.c +++ b/src/lua_mobjlib.c @@ -384,7 +384,7 @@ static int mobj_get(lua_State *L) lua_pushinteger(L, mo->type); break; case mobj_info: - LUA_PushUserdata(L, &mobjinfo[mo->type], META_MOBJINFO); + LUA_PushUserdata(L, mobjinfo[mo->type], META_MOBJINFO); break; case mobj_health: lua_pushinteger(L, mo->health); @@ -758,10 +758,10 @@ static int mobj_set(lua_State *L) case mobj_type: // yeah sure, we'll let you change the mobj's type. { mobjtype_t newtype = luaL_checkinteger(L, 3); - if (newtype >= NUMMOBJTYPES) - return luaL_error(L, "mobj.type %d out of range (0 - %d).", newtype, NUMMOBJTYPES-1); + if (newtype >= nummobjinfo) + return luaL_error(L, "mobj.type %d out of range (0 - %zu).", newtype, nummobjinfo-1); mo->type = newtype; - mo->info = &mobjinfo[newtype]; + mo->info = mobjinfo[newtype]; P_SetScale(mo, mo->scale, false); break; } diff --git a/src/lua_script.c b/src/lua_script.c index 057899555480383611652c552e41bf41398b0e2b..a3702ebedc332e5d853d14f3d334c132cd231562 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -1209,7 +1209,7 @@ static UINT8 ArchiveValue(int TABLESINDEX, int myindex) { mobjinfo_t *info = *((mobjinfo_t **)lua_touserdata(gL, myindex)); WRITEUINT8(save_p, ARCH_MOBJINFO); - WRITEUINT16(save_p, info - mobjinfo); + WRITEUINT32(save_p, P_GetMobjinfoIndex(info)); break; } case ARCH_STATE: @@ -1591,7 +1591,7 @@ static UINT8 UnArchiveValue(int TABLESINDEX) break; } case ARCH_MOBJINFO: - LUA_PushUserdata(gL, &mobjinfo[READUINT16(save_p)], META_MOBJINFO); + LUA_PushUserdata(gL, mobjinfo[READUINT32(save_p)], META_MOBJINFO); break; case ARCH_STATE: LUA_PushUserdata(gL, &states[READUINT16(save_p)], META_STATE); diff --git a/src/m_cheat.c b/src/m_cheat.c index 07f10071711025f93f91d7b7ea2d9d65f3d5ad1d..f6d160f4eb8eab841b6ed5caed49a98d82809771 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -992,36 +992,36 @@ static void OP_CycleThings(INT32 amt) { op_currentthing += add; if (op_currentthing <= 0) - op_currentthing = NUMMOBJTYPES-1; - if (op_currentthing >= NUMMOBJTYPES) + op_currentthing = nummobjinfo-1; + if (op_currentthing >= nummobjinfo) op_currentthing = 0; } while - (mobjinfo[op_currentthing].doomednum == -1 + (mobjinfo[op_currentthing]->doomednum == -1 || op_currentthing == MT_NIGHTSDRONE - || mobjinfo[op_currentthing].flags & (MF_AMBIENT|MF_NOSECTOR) - || (states[mobjinfo[op_currentthing].spawnstate].sprite == SPR_NULL - && states[mobjinfo[op_currentthing].seestate].sprite == SPR_NULL) + || mobjinfo[op_currentthing]->flags & (MF_AMBIENT|MF_NOSECTOR) + || (states[mobjinfo[op_currentthing]->spawnstate].sprite == SPR_NULL + && states[mobjinfo[op_currentthing]->seestate].sprite == SPR_NULL) ); amt -= add; } // HACK, minus has SPR_NULL sprite - if (states[mobjinfo[op_currentthing].spawnstate].sprite == SPR_NULL) + if (states[mobjinfo[op_currentthing]->spawnstate].sprite == SPR_NULL) { - states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing].seestate].sprite; - states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing].seestate].frame; + states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing]->seestate].sprite; + states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing]->seestate].frame; } else { - states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing].spawnstate].sprite; - states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing].spawnstate].frame; + states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing]->spawnstate].sprite; + states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing]->spawnstate].frame; } if (players[0].mo->eflags & MFE_VERTICALFLIP) // correct z when flipped - players[0].mo->z += players[0].mo->height - FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale); - players[0].mo->height = FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale); + players[0].mo->z += players[0].mo->height - FixedMul(mobjinfo[op_currentthing]->height, players[0].mo->scale); + players[0].mo->height = FixedMul(mobjinfo[op_currentthing]->height, players[0].mo->scale); P_SetMobjState(players[0].mo, S_OBJPLACE_DUMMY); - op_currentdoomednum = mobjinfo[op_currentthing].doomednum; + op_currentdoomednum = mobjinfo[op_currentthing]->doomednum; } static boolean OP_HeightOkay(player_t *player, UINT8 ceiling) @@ -1194,8 +1194,8 @@ void OP_ResetObjectplace(void) if (!OP_HeightOkay(player, false)) return; - mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_NIGHTSBUMPER].doomednum, false); - mt->z = min(mt->z - (mobjinfo[MT_NIGHTSBUMPER].height/4), 0); + mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_NIGHTSBUMPER]->doomednum, false); + mt->z = min(mt->z - (mobjinfo[MT_NIGHTSBUMPER]->height/4), 0); // height offset: from P_TouchSpecialThing case MT_NIGHTSBUMPER // clockwise @@ -1243,7 +1243,7 @@ void OP_ResetObjectplace(void) if (!OP_HeightOkay(player, false)) return; - mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_BLUESPHERE].doomednum, false); + mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_BLUESPHERE]->doomednum, false); P_SpawnMapThing(mt); } @@ -1254,7 +1254,7 @@ void OP_ResetObjectplace(void) if (!OP_HeightOkay(player, false)) return; - mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_RING].doomednum, false); + mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_RING]->doomednum, false); P_SpawnMapThing(mt); } @@ -1352,10 +1352,10 @@ void OP_ObjectplaceMovement(player_t *player) { sector_t *sec = player->mo->subsector->sector; - if (!!(mobjinfo[op_currentthing].flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP)) + if (!!(mobjinfo[op_currentthing]->flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP)) { fixed_t cheight = P_GetSectorCeilingZAt(sec, player->mo->x & 0xFFFF0000, player->mo->y & 0xFFFF0000); - op_displayflags = (UINT16)((cheight - player->mo->z - mobjinfo[op_currentthing].height)>>FRACBITS); + op_displayflags = (UINT16)((cheight - player->mo->z - mobjinfo[op_currentthing]->height)>>FRACBITS); } else { @@ -1401,19 +1401,19 @@ void OP_ObjectplaceMovement(player_t *player) if (cv_mapthingnum.value > 0 && cv_mapthingnum.value < 4096) { // find which type to spawn - for (spawnmid = 0; spawnmid < NUMMOBJTYPES; ++spawnmid) - if (cv_mapthingnum.value == mobjinfo[spawnmid].doomednum) + for (spawnmid = 0; spawnmid < nummobjinfo; ++spawnmid) + if (cv_mapthingnum.value == mobjinfo[spawnmid]->doomednum) break; - if (spawnmid == NUMMOBJTYPES) + if (spawnmid == nummobjinfo) { CONS_Alert(CONS_ERROR, M_GetText("Can't place an object with mapthingnum %d.\n"), cv_mapthingnum.value); return; } - spawnthing = mobjinfo[spawnmid].doomednum; + spawnthing = mobjinfo[spawnmid]->doomednum; } - ceiling = !!(mobjinfo[spawnmid].flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP); + ceiling = !!(mobjinfo[spawnmid]->flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP); if (!OP_HeightOkay(player, ceiling)) return; @@ -1516,7 +1516,7 @@ void Command_ObjectPlace_f(void) { players[0].mo->health = 1; players[0].deadtimer = 0; - op_oldflags1 = mobjinfo[MT_PLAYER].flags; + op_oldflags1 = mobjinfo[MT_PLAYER]->flags; ++players[0].lives; players[0].playerstate = PST_LIVE; P_RestoreMusic(&players[0]); diff --git a/src/m_menu.c b/src/m_menu.c index 50011347550c32622238ef02a6d538be62bbb31f..57543842db88e63836d8987336c39c3ae61b9f57 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -12131,7 +12131,7 @@ static void M_SetPlayerSetupFollowItem(void) multi_followitem_duration = state->var2 * FRACUNIT; multi_followitem_tics = multi_tics % multi_followitem_duration; multi_followitem_scale = 2 * FRACUNIT / 3; - multi_followitem_yoffset = (skins[setupm_fakeskin]->height - FixedMul(mobjinfo[followitem].height, multi_followitem_scale)) >> 1; + multi_followitem_yoffset = (skins[setupm_fakeskin]->height - FixedMul(mobjinfo[followitem]->height, multi_followitem_scale)) >> 1; break; } default: diff --git a/src/p_enemy.c b/src/p_enemy.c index 4990db6fd50a2f96102056984b4d02e3c0205ddb..199de4bc15789cb84aa30b88b561b14d95341a36 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -1453,7 +1453,7 @@ void A_StatueBurst(mobj_t *actor) { fixed_t a, b; - fixed_t c = (actor->height>>2) - FixedMul(actor->scale, mobjinfo[chunktype].height>>1); + fixed_t c = (actor->height>>2) - FixedMul(actor->scale, mobjinfo[chunktype]->height>>1); fixed_t v = 4<<FRACBITS; const fixed_t r = (actor->radius>>1); mobj_t *spawned; @@ -2751,9 +2751,9 @@ void A_LobShot(mobj_t *actor) { z = actor->z + actor->height - FixedMul(locvar2*FRACUNIT, actor->scale); if (actor->type == MT_BLACKEGGMAN) - z -= FixedMul(mobjinfo[locvar1].height, actor->scale/2); + z -= FixedMul(mobjinfo[locvar1]->height, actor->scale/2); else - z -= FixedMul(mobjinfo[locvar1].height, actor->scale); + z -= FixedMul(mobjinfo[locvar1]->height, actor->scale); } else z = actor->z + FixedMul(locvar2*FRACUNIT, actor->scale); @@ -3104,7 +3104,7 @@ void A_Boss1Laser(mobj_t *actor) x = actor->x + P_ReturnThrustX(actor, actor->angle+ANGLE_90, FixedMul(44*FRACUNIT, actor->scale)); y = actor->y + P_ReturnThrustY(actor, actor->angle+ANGLE_90, FixedMul(44*FRACUNIT, actor->scale)); if (actor->eflags & MFE_VERTICALFLIP) - z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1].height; + z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1]->height; else z = actor->z + FixedMul(56*FRACUNIT, actor->scale); break; @@ -3112,7 +3112,7 @@ void A_Boss1Laser(mobj_t *actor) x = actor->x + P_ReturnThrustX(actor, actor->angle-ANGLE_90, FixedMul(44*FRACUNIT, actor->scale)); y = actor->y + P_ReturnThrustY(actor, actor->angle-ANGLE_90, FixedMul(44*FRACUNIT, actor->scale)); if (actor->eflags & MFE_VERTICALFLIP) - z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1].height; + z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1]->height; else z = actor->z + FixedMul(56*FRACUNIT, actor->scale); break; @@ -3140,8 +3140,8 @@ void A_Boss1Laser(mobj_t *actor) if (!(actor->flags2 & MF2_FIRING) && dur > 1) { actor->angle = R_PointToAngle2(x, y, actor->target->x, actor->target->y); - if (mobjinfo[locvar1].seesound) - S_StartSound(actor, mobjinfo[locvar1].seesound); + if (mobjinfo[locvar1]->seesound) + S_StartSound(actor, mobjinfo[locvar1]->seesound); point = P_SpawnMobj(x + P_ReturnThrustX(actor, actor->angle, actor->radius), y + P_ReturnThrustY(actor, actor->angle, actor->radius), actor->z - actor->height / 2, MT_EGGMOBILE_TARGET); if (!P_MobjWasRemoved(point)) @@ -3153,7 +3153,7 @@ void A_Boss1Laser(mobj_t *actor) } } - angle = R_PointToAngle2(z + (mobjinfo[locvar1].height>>1), 0, actor->target->z, R_PointToDist2(x, y, actor->target->x, actor->target->y)); + angle = R_PointToAngle2(z + (mobjinfo[locvar1]->height>>1), 0, actor->target->z, R_PointToDist2(x, y, actor->target->x, actor->target->y)); point = P_SpawnMobj(x, y, z, locvar1); if (P_MobjWasRemoved(point)) @@ -3203,8 +3203,8 @@ void A_Boss1Laser(mobj_t *actor) x += point->momx; y += point->momy; - floorz = P_FloorzAtPos(x, y, z, mobjinfo[MT_EGGMOBILE_FIRE].height); - if (z - floorz < mobjinfo[MT_EGGMOBILE_FIRE].height>>1 && dur & 1) + floorz = P_FloorzAtPos(x, y, z, mobjinfo[MT_EGGMOBILE_FIRE]->height); + if (z - floorz < mobjinfo[MT_EGGMOBILE_FIRE]->height>>1 && dur & 1) { point = P_SpawnMobj(x, y, floorz, MT_EGGMOBILE_FIRE); if (!P_MobjWasRemoved(point)) @@ -3218,7 +3218,7 @@ void A_Boss1Laser(mobj_t *actor) for (i = 0; i < 2; i++) { UINT8 size = 3; - mobj_t *steam = P_SpawnMobj(x, y, point->watertop - size*mobjinfo[MT_DUST].height, MT_DUST); + mobj_t *steam = P_SpawnMobj(x, y, point->watertop - size*mobjinfo[MT_DUST]->height, MT_DUST); if (P_MobjWasRemoved(steam)) continue; P_SetScale(steam, size*actor->scale, false); @@ -3429,18 +3429,18 @@ void A_SkullAttack(mobj_t *actor) actor->angle += (P_RandomChance(FRACUNIT/2)) ? ANGLE_90 : -ANGLE_90; else if (locvar1 == 3) { - statenum_t oldspawnstate = mobjinfo[MT_RAY].spawnstate; - UINT32 oldflags = mobjinfo[MT_RAY].flags; - fixed_t oldradius = mobjinfo[MT_RAY].radius; - fixed_t oldheight = mobjinfo[MT_RAY].height; + statenum_t oldspawnstate = mobjinfo[MT_RAY]->spawnstate; + UINT32 oldflags = mobjinfo[MT_RAY]->flags; + fixed_t oldradius = mobjinfo[MT_RAY]->radius; + fixed_t oldheight = mobjinfo[MT_RAY]->height; INT32 i, j; static INT32 k;/* static for (at least) GCC 9.1 weirdness */ angle_t testang = 0; - mobjinfo[MT_RAY].spawnstate = S_INVISIBLE; - mobjinfo[MT_RAY].flags = MF_NOGRAVITY|MF_NOTHINK|MF_NOCLIPTHING|MF_NOBLOCKMAP; - mobjinfo[MT_RAY].radius = mobjinfo[actor->type].radius; - mobjinfo[MT_RAY].height = mobjinfo[actor->type].height; + mobjinfo[MT_RAY]->spawnstate = S_INVISIBLE; + mobjinfo[MT_RAY]->flags = MF_NOGRAVITY|MF_NOTHINK|MF_NOCLIPTHING|MF_NOBLOCKMAP; + mobjinfo[MT_RAY]->radius = mobjinfo[actor->type]->radius; + mobjinfo[MT_RAY]->height = mobjinfo[actor->type]->height; if (P_RandomChance(FRACUNIT/2)) // port priority 1? { @@ -3484,10 +3484,10 @@ void A_SkullAttack(mobj_t *actor) #undef dostuff - mobjinfo[MT_RAY].spawnstate = oldspawnstate; - mobjinfo[MT_RAY].flags = oldflags; - mobjinfo[MT_RAY].radius = oldradius; - mobjinfo[MT_RAY].height = oldheight; + mobjinfo[MT_RAY]->spawnstate = oldspawnstate; + mobjinfo[MT_RAY]->flags = oldflags; + mobjinfo[MT_RAY]->radius = oldradius; + mobjinfo[MT_RAY]->height = oldheight; } an = actor->angle >> ANGLETOFINESHIFT; @@ -3578,15 +3578,15 @@ void A_BossScream(mobj_t *actor) y = actor->y + FixedMul(FINESINE(fa),actor->radius); // Determine what mobj to spawn. If undefined or invalid, use MT_BOSSEXPLODE as default. - if (locvar2 <= 0 || locvar2 >= NUMMOBJTYPES) + if (locvar2 <= 0 || (size_t)locvar2 >= nummobjinfo) explodetype = MT_SONIC3KBOSSEXPLODE; //MT_BOSSEXPLODE; -- piss to you, sonic 2 else explodetype = (mobjtype_t)locvar2; if (locvar1 & 2) - z = actor->z + (P_RandomKey((actor->height - mobjinfo[explodetype].height)>>FRACBITS)<<FRACBITS); + z = actor->z + (P_RandomKey((actor->height - mobjinfo[explodetype]->height)>>FRACBITS)<<FRACBITS); else if (actor->eflags & MFE_VERTICALFLIP) - z = actor->z + actor->height - mobjinfo[explodetype].height - FixedMul((P_RandomByte()<<(FRACBITS-2)) - 8*FRACUNIT, actor->scale); + z = actor->z + actor->height - mobjinfo[explodetype]->height - FixedMul((P_RandomByte()<<(FRACBITS-2)) - 8*FRACUNIT, actor->scale); else z = actor->z + FixedMul((P_RandomByte()<<(FRACBITS-2)) - 8*FRACUNIT, actor->scale); @@ -4131,7 +4131,7 @@ static void P_SpawnBoss2Junk(mobj_t *mo) } mo2 = P_SpawnMobjFromMobj(mo, 0, 0, - mobjinfo[MT_EGGMOBILE2].height + (32<<FRACBITS), + mobjinfo[MT_EGGMOBILE2]->height + (32<<FRACBITS), MT_BOSSJUNK); if (!P_MobjWasRemoved(mo2)) { @@ -4950,7 +4950,7 @@ void A_DropMine(mobj_t *actor) } if (actor->eflags & MFE_VERTICALFLIP) - z = actor->z + actor->height - mobjinfo[actor->info->raisestate].height - FixedMul((locvar1*FRACUNIT) - 12*FRACUNIT, actor->scale); + z = actor->z + actor->height - mobjinfo[actor->info->raisestate]->height - FixedMul((locvar1*FRACUNIT) - 12*FRACUNIT, actor->scale); else z = actor->z + FixedMul((locvar1*FRACUNIT) - 12*FRACUNIT, actor->scale); @@ -5493,7 +5493,7 @@ void A_OverlayThink(mobj_t *actor) actor->y = desty; P_SetThingPosition(actor); if (actor->eflags & MFE_VERTICALFLIP) - actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type].height - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT; + actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type]->height - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT; else actor->z = actor->target->z + ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT; actor->angle = (actor->target->player ? actor->target->player->drawangle : actor->target->angle) + actor->movedir; @@ -6430,7 +6430,7 @@ void A_RockSpawn(mobj_t *actor) type = actor->spawnpoint->stringargs[0] ? get_number(actor->spawnpoint->stringargs[0]) : MT_ROCKCRUMBLE1; - if (type < MT_NULL || type >= NUMMOBJTYPES) + if (type < MT_NULL || type >= nummobjinfo) { CONS_Debug(DBG_GAMELOGIC, "A_RockSpawn: Invalid mobj type %s!\n", actor->spawnpoint->stringargs[0]); return; @@ -6443,7 +6443,7 @@ void A_RockSpawn(mobj_t *actor) mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_FALLINGROCK); if (P_MobjWasRemoved(mo)) return; - P_SetMobjState(mo, mobjinfo[type].spawnstate); + P_SetMobjState(mo, mobjinfo[type]->spawnstate); mo->angle = FixedAngle(actor->spawnpoint->angle << FRACBITS); P_InstaThrust(mo, mo->angle, dist); @@ -7844,7 +7844,7 @@ void A_Boss2PogoTarget(mobj_t *actor) if (actor->info->missilestate) // spawn the pogo stick collision box { - mobj_t *pogo = P_SpawnMobj(actor->x, actor->y, actor->z - mobjinfo[actor->info->missilestate].height, (mobjtype_t)actor->info->missilestate); + mobj_t *pogo = P_SpawnMobj(actor->x, actor->y, actor->z - mobjinfo[actor->info->missilestate]->height, (mobjtype_t)actor->info->missilestate); if (!P_MobjWasRemoved(pogo)) P_SetTarget(&pogo->target, actor); } @@ -8737,7 +8737,7 @@ void A_SmokeTrailer(mobj_t *actor) // add the smoke behind the rocket if (actor->eflags & MFE_VERTICALFLIP) { - th = P_SpawnMobj(actor->x-actor->momx, actor->y-actor->momy, actor->z + actor->height - FixedMul(mobjinfo[locvar1].height, actor->scale), locvar1); + th = P_SpawnMobj(actor->x-actor->momx, actor->y-actor->momy, actor->z + actor->height - FixedMul(mobjinfo[locvar1]->height, actor->scale), locvar1); if (!P_MobjWasRemoved(th)) th->flags2 |= MF2_OBJECTFLIP; } @@ -8823,7 +8823,7 @@ void A_SpawnObjectRelative(mobj_t *actor) // NOTE: Doing actor->z + actor->height is the bottom of the object while the object has reverse gravity. - Flame mo = P_SpawnMobj(actor->x + FixedMul(x<<FRACBITS, actor->scale), actor->y + FixedMul(y<<FRACBITS, actor->scale), - (actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[type].height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), type); + (actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[type]->height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), type); if (P_MobjWasRemoved(mo)) return; @@ -9502,7 +9502,7 @@ void A_BossJetFume(mobj_t *actor) jetx = actor->x + P_ReturnThrustX(actor, actor->angle, -FixedMul(64*FRACUNIT, actor->scale)); jety = actor->y + P_ReturnThrustY(actor, actor->angle, -FixedMul(64*FRACUNIT, actor->scale)); if (actor->eflags & MFE_VERTICALFLIP) - jetz = actor->z + actor->height - FixedMul(38*FRACUNIT + mobjinfo[MT_JETFUME1].height, actor->scale); + jetz = actor->z + actor->height - FixedMul(38*FRACUNIT + mobjinfo[MT_JETFUME1]->height, actor->scale); else jetz = actor->z + FixedMul(38*FRACUNIT, actor->scale); @@ -9517,7 +9517,7 @@ void A_BossJetFume(mobj_t *actor) } if (actor->eflags & MFE_VERTICALFLIP) - jetz = actor->z + actor->height - FixedMul(12*FRACUNIT + mobjinfo[MT_JETFUME1].height, actor->scale); + jetz = actor->z + actor->height - FixedMul(12*FRACUNIT + mobjinfo[MT_JETFUME1]->height, actor->scale); else jetz = actor->z + FixedMul(12*FRACUNIT, actor->scale); @@ -9555,7 +9555,7 @@ void A_BossJetFume(mobj_t *actor) jetx = actor->x + P_ReturnThrustX(actor, actor->angle, -60*actor->scale); jety = actor->y + P_ReturnThrustY(actor, actor->angle, -60*actor->scale); if (actor->eflags & MFE_VERTICALFLIP) - jetz = actor->z + actor->height - FixedMul(17*FRACUNIT + mobjinfo[MT_PROPELLER].height, actor->scale); + jetz = actor->z + actor->height - FixedMul(17*FRACUNIT + mobjinfo[MT_PROPELLER]->height, actor->scale); else jetz = actor->z + FixedMul(17*FRACUNIT, actor->scale); @@ -9587,7 +9587,7 @@ void A_BossJetFume(mobj_t *actor) { fixed_t jetz; if (actor->eflags & MFE_VERTICALFLIP) - jetz = actor->z + actor->height + FixedMul(50*FRACUNIT - mobjinfo[MT_JETFLAME].height, actor->scale); + jetz = actor->z + actor->height + FixedMul(50*FRACUNIT - mobjinfo[MT_JETFLAME]->height, actor->scale); else jetz = actor->z - 50*actor->scale; filler = P_SpawnMobj(actor->x, actor->y, jetz, MT_JETFLAME); @@ -9606,7 +9606,7 @@ void A_BossJetFume(mobj_t *actor) jetz = actor->z; if (actor->eflags & MFE_VERTICALFLIP) - jetz += (actor->height - FixedMul(mobjinfo[MT_EGGROBO1JET].height, actor->scale)); + jetz += (actor->height - FixedMul(mobjinfo[MT_EGGROBO1JET]->height, actor->scale)); while (true) { @@ -11324,7 +11324,7 @@ void A_TrapShot(mobj_t *actor) y = actor->y + P_ReturnThrustY(actor, actor->angle, FixedMul(frontoff*FRACUNIT, actor->scale)); if (actor->eflags & MFE_VERTICALFLIP) - z = actor->z + actor->height - FixedMul(vertoff*FRACUNIT, actor->scale) - FixedMul(mobjinfo[type].height, actor->scale); + z = actor->z + actor->height - FixedMul(vertoff*FRACUNIT, actor->scale) - FixedMul(mobjinfo[type]->height, actor->scale); else z = actor->z + FixedMul(vertoff*FRACUNIT, actor->scale); @@ -11394,7 +11394,7 @@ void A_VileTarget(mobj_t *actor) return; // Determine object to spawn - if (locvar1 <= 0 || locvar1 >= NUMMOBJTYPES) + if (locvar1 <= 0 || (size_t)locvar1 >= nummobjinfo) fogtype = MT_CYBRAKDEMON_TARGET_RETICULE; else fogtype = (mobjtype_t)locvar1; @@ -11403,7 +11403,7 @@ void A_VileTarget(mobj_t *actor) { fog = P_SpawnMobj(actor->target->x, actor->target->y, - actor->target->z + ((actor->target->eflags & MFE_VERTICALFLIP) ? actor->target->height - mobjinfo[fogtype].height : 0), + actor->target->z + ((actor->target->eflags & MFE_VERTICALFLIP) ? actor->target->height - mobjinfo[fogtype]->height : 0), fogtype); if (!P_MobjWasRemoved(fog)) { @@ -11436,7 +11436,7 @@ void A_VileTarget(mobj_t *actor) fog = P_SpawnMobj(players[i].mo->x, players[i].mo->y, - players[i].mo->z + ((players[i].mo->eflags & MFE_VERTICALFLIP) ? players[i].mo->height - mobjinfo[fogtype].height : 0), + players[i].mo->z + ((players[i].mo->eflags & MFE_VERTICALFLIP) ? players[i].mo->height - mobjinfo[fogtype]->height : 0), fogtype); if (!P_MobjWasRemoved(fog)) { @@ -11491,7 +11491,7 @@ void A_VileAttack(mobj_t *actor) else soundtoplay = (sfxenum_t)locvar1; - if ((locvar2 & 0xFFFF) > 0 && (locvar2 & 0xFFFF) <= NUMMOBJTYPES) + if ((locvar2 & 0xFFFF) > 0 && (locvar2 & 0xFFFF) <= nummobjinfo) { explosionType = (mobjtype_t)(locvar2 & 0xFFFF); } @@ -11931,7 +11931,7 @@ void A_BrakLobShot(mobj_t *actor) if (P_MobjWasRemoved(actor)) return; - if (locvar1 <= 0 || locvar1 >= NUMMOBJTYPES) + if (locvar1 <= 0 || locvar1 >= (INT32)nummobjinfo) typeOfShot = MT_CANNONBALL; else typeOfShot = (mobjtype_t)locvar1; shot = P_SpawnMobj(actor->x, actor->y, actor->z + FixedMul(locvar2*FRACUNIT, actor->scale), typeOfShot); @@ -11979,7 +11979,7 @@ void A_NapalmScatter(mobj_t *actor) return; // Some quick sanity-checking - if (typeOfShot >= NUMMOBJTYPES) // I'd add a <0 check, too, but 0x0000FFFF isn't negative in this case + if (typeOfShot >= nummobjinfo) // I'd add a <0 check, too, but 0x0000FFFF isn't negative in this case typeOfShot = MT_NULL; if (numToShoot <= 0) // Presumably you forgot to set var1 up; else, why are you calling this to shoot nothing? numToShoot = 8; @@ -12061,7 +12061,7 @@ mobj_t *P_InternalFlickySpawn(mobj_t *actor, mobjtype_t flickytype, fixed_t momz if (moveforward) { - fixed_t scal = mobjinfo[flickytype].radius*((fixed_t)moveforward); + fixed_t scal = mobjinfo[flickytype]->radius*((fixed_t)moveforward); offsx = P_ReturnThrustX(actor, actor->angle, scal); offsy = P_ReturnThrustY(actor, actor->angle, scal); } @@ -12273,13 +12273,13 @@ void P_InternalFlickyBubble(mobj_t *actor) { mobj_t *overlay; - if (!((actor->z + 3*actor->height/2) < actor->watertop) || !mobjinfo[actor->type].raisestate || actor->tracer) + if (!((actor->z + 3*actor->height/2) < actor->watertop) || !mobjinfo[actor->type]->raisestate || actor->tracer) return; overlay = P_SpawnMobj(actor->x, actor->y, actor->z, MT_OVERLAY); if (P_MobjWasRemoved(overlay)) return; - P_SetMobjStateNF(overlay, mobjinfo[actor->type].raisestate); + P_SetMobjStateNF(overlay, mobjinfo[actor->type]->raisestate); P_SetTarget(&actor->tracer, overlay); P_SetTarget(&overlay->target, actor); return; @@ -12465,7 +12465,7 @@ void A_FlickyCoast(mobj_t *actor) } actor->flags &= ~MF_NOGRAVITY; - P_SetMobjState(actor, mobjinfo[actor->type].spawnstate); + P_SetMobjState(actor, mobjinfo[actor->type]->spawnstate); } // Internal Flicky hopping function. @@ -12550,15 +12550,15 @@ void A_FlickyCheck(mobj_t *actor) actor->flags |= MF_NOGRAVITY; } actor->flags |= MF_NOCLIP | MF_NOBLOCKMAP | MF_SCENERY; - P_SetMobjState(actor, mobjinfo[actor->type].seestate); + P_SetMobjState(actor, mobjinfo[actor->type]->seestate); } else if (locvar2 && P_MobjFlip(actor)*actor->momz < 1) P_SetMobjState(actor, locvar2); else if (locvar1 && ((!(actor->eflags & MFE_VERTICALFLIP) && actor->z <= actor->floorz) || ((actor->eflags & MFE_VERTICALFLIP) && actor->z + actor->height >= actor->ceilingz))) P_SetMobjState(actor, locvar1); - else if (mobjinfo[actor->type].meleestate && (actor->eflags & MFE_UNDERWATER)) - P_SetMobjState(actor, mobjinfo[actor->type].meleestate); + else if (mobjinfo[actor->type]->meleestate && (actor->eflags & MFE_UNDERWATER)) + P_SetMobjState(actor, mobjinfo[actor->type]->meleestate); P_InternalFlickyBubble(actor); } @@ -12587,7 +12587,7 @@ void A_FlickyHeightCheck(mobj_t *actor) actor->flags |= MF_NOGRAVITY; } actor->flags |= MF_NOCLIP | MF_NOBLOCKMAP | MF_SCENERY; - P_SetMobjState(actor, mobjinfo[actor->type].seestate); + P_SetMobjState(actor, mobjinfo[actor->type]->seestate); } else if (locvar1 && actor->target && P_MobjFlip(actor)*actor->momz < 1 && ((P_MobjFlip(actor)*((actor->z + actor->height/2) - (actor->target->z + actor->target->height/2)) < locvar2) @@ -12636,7 +12636,7 @@ void A_FlickyFlutter(mobj_t *actor) // void A_FlameParticle(mobj_t *actor) { - mobjtype_t type = (mobjtype_t)(mobjinfo[actor->type].painchance); + mobjtype_t type = (mobjtype_t)(mobjinfo[actor->type]->painchance); fixed_t rad, hei; mobj_t *particle; @@ -12913,10 +12913,10 @@ void A_ConnectToGround(mobj_t *actor) if (work) work->old_z = work->z; // Don't copy old_z from the actor - actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar2].height, actor->scale); + actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar2]->height, actor->scale); } - if (!locvar1 || !mobjinfo[locvar1].height) // Can't tile the middle object? + if (!locvar1 || !mobjinfo[locvar1]->height) // Can't tile the middle object? { actor->z = endz; return; @@ -12933,7 +12933,7 @@ void A_ConnectToGround(mobj_t *actor) } ang += ANGLE_90; - actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar1].height, actor->scale); + actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar1]->height, actor->scale); } actor->old_z = actor->z; // Reset Z interpolation - the spawned objects intentionally don't have any Z interpolation either, after all @@ -12973,7 +12973,7 @@ void A_SpawnParticleRelative(mobj_t *actor) // NOTE: Doing actor->z + actor->height is the bottom of the object while the object has reverse gravity. - Flame mo = P_SpawnMobj(actor->x + FixedMul(x<<FRACBITS, actor->scale), actor->y + FixedMul(y<<FRACBITS, actor->scale), - (actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[MT_PARTICLE].height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), MT_PARTICLE); + (actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[MT_PARTICLE]->height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), MT_PARTICLE); if (P_MobjWasRemoved(mo)) return; diff --git a/src/p_floor.c b/src/p_floor.c index 118b4bdbc7c11f7030380dd0472bcf74ecba5b5b..2a66b57b866d0ca9a3f30d85d2f44c4235154868 100644 --- a/src/p_floor.c +++ b/src/p_floor.c @@ -1020,7 +1020,7 @@ static mobj_t *SearchMarioNode(msecnode_t *node) } // Ignore popped monitors, too. if (node->m_thing->health == 0 // this only really applies for monitors - || (!(node->m_thing->flags & MF_MONITOR) && (mobjinfo[node->m_thing->type].flags & MF_MONITOR))) // gold monitor support + || (!(node->m_thing->flags & MF_MONITOR) && (mobjinfo[node->m_thing->type]->flags & MF_MONITOR))) // gold monitor support continue; // Okay, we found something valid. if (!thing // take either the first thing @@ -1884,7 +1884,7 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover) } sec->soundorg.z = (controlsec->floorheight + controlsec->ceilingheight)/2; - S_StartSound(&sec->soundorg, mobjinfo[type].activesound); + S_StartSound(&sec->soundorg, mobjinfo[type]->activesound); #undef controlsec diff --git a/src/p_inter.c b/src/p_inter.c index e73cd1fce675ee17721e6236e7dc764ede8e9d69..fc137f7d70978c61a5591bd87582c810b3fe6ea7 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1131,7 +1131,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) if (player->powers[pw_nights_superloop]) { gatherradius *= 2; - sparklestate = mobjinfo[MT_NIGHTSPARKLE].seestate; + sparklestate = mobjinfo[MT_NIGHTSPARKLE]->seestate; } if (gatherradius < 30*FRACUNIT) // Player is probably just sitting there. @@ -2607,7 +2607,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget { UINT8 locscoreadd = source->player->scoreadd + target->info->spawnhealth; mobj_t *scoremobj; - UINT32 scorestate = mobjinfo[MT_SCORE].spawnstate; + UINT32 scorestate = mobjinfo[MT_SCORE]->spawnstate; scoremobj = P_SpawnMobj(target->x, target->y, target->z + (target->height / 2), MT_SCORE); @@ -3233,7 +3233,7 @@ static boolean P_TagDamage(mobj_t *target, mobj_t *inflictor, mobj_t *source, IN if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers. { P_SwitchShield(player, SH_PINK); - S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound); + S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound); } } return false; @@ -3248,7 +3248,7 @@ static boolean P_TagDamage(mobj_t *target, mobj_t *inflictor, mobj_t *source, IN if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers. { P_SwitchShield(player, SH_PINK); - S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound); + S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound); } } else if (!(inflictor->flags & MF_FIRE)) @@ -3333,7 +3333,7 @@ static boolean P_PlayerHitsPlayer(mobj_t *target, mobj_t *inflictor, mobj_t *sou if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers. { P_SwitchShield(player, SH_PINK); - S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound); + S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound); } } return false; @@ -3356,7 +3356,7 @@ static boolean P_PlayerHitsPlayer(mobj_t *target, mobj_t *inflictor, mobj_t *sou if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers. { P_SwitchShield(player, SH_PINK); - S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound); + S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound); } } else if (!(inflictor->flags & MF_FIRE)) @@ -3618,7 +3618,7 @@ void P_SpecialStageDamage(player_t *player, mobj_t *inflictor, mobj_t *source) if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers. { P_SwitchShield(player, SH_PINK); - S_StartSound(player->mo, mobjinfo[MT_PITY_ICON].seesound); + S_StartSound(player->mo, mobjinfo[MT_PITY_ICON]->seesound); } } @@ -3982,15 +3982,15 @@ void P_PlayerRingBurst(player_t *player, INT32 num_rings) for (i = 0; i < num_rings; i++) { - INT32 objType = mobjinfo[MT_RING].reactiontime; + INT32 objType = mobjinfo[MT_RING]->reactiontime; if (mariomode) - objType = mobjinfo[MT_COIN].reactiontime; + objType = mobjinfo[MT_COIN]->reactiontime; else if (player->powers[pw_carry] == CR_NIGHTSFALL) - objType = mobjinfo[(nightsreplace ? MT_NIGHTSCHIP : MT_BLUESPHERE)].reactiontime; + objType = mobjinfo[(nightsreplace ? MT_NIGHTSCHIP : MT_BLUESPHERE)]->reactiontime; z = player->mo->z; if (player->mo->eflags & MFE_VERTICALFLIP) - z += player->mo->height - mobjinfo[objType].height; + z += player->mo->height - mobjinfo[objType]->height; mo = P_SpawnMobj(player->mo->x, player->mo->y, z, objType); if (P_MobjWasRemoved(mo)) @@ -4115,8 +4115,8 @@ void P_PlayerWeaponPanelBurst(player_t *player) if (!weptype) // ??? continue; - if (player->powers[power] >= mobjinfo[weptype].reactiontime) - ammoamt = (UINT16)mobjinfo[weptype].reactiontime; + if (player->powers[power] >= mobjinfo[weptype]->reactiontime) + ammoamt = (UINT16)mobjinfo[weptype]->reactiontime; else ammoamt = player->powers[power]; @@ -4124,7 +4124,7 @@ void P_PlayerWeaponPanelBurst(player_t *player) z = player->mo->z; if (player->mo->eflags & MFE_VERTICALFLIP) - z += player->mo->height - mobjinfo[weptype].height; + z += player->mo->height - mobjinfo[weptype]->height; mo = P_SpawnMobj(player->mo->x, player->mo->y, z, weptype); if (P_MobjWasRemoved(mo)) @@ -4210,7 +4210,7 @@ void P_PlayerWeaponAmmoBurst(player_t *player) z = player->mo->z; if (player->mo->eflags & MFE_VERTICALFLIP) - z += player->mo->height - mobjinfo[weptype].height; + z += player->mo->height - mobjinfo[weptype]->height; mo = P_SpawnMobj(player->mo->x, player->mo->y, z, weptype); if (P_MobjWasRemoved(mo)) @@ -4253,7 +4253,7 @@ void P_PlayerWeaponPanelOrAmmoBurst(player_t *player) #define SETUP_DROP(thingtype) \ z = player->mo->z; \ if (player->mo->eflags & MFE_VERTICALFLIP) \ - z += player->mo->height - mobjinfo[thingtype].height; \ + z += player->mo->height - mobjinfo[thingtype]->height; \ fa = ((i*FINEANGLES/16) + (player->mo->angle>>ANGLETOFINESHIFT)) & FINEMASK; \ ns = FixedMul(3*FRACUNIT, player->mo->scale); \ @@ -4407,7 +4407,7 @@ void P_PlayerEmeraldBurst(player_t *player, boolean toss) z = player->mo->z + player->mo->height; if (player->mo->eflags & MFE_VERTICALFLIP) - z -= mobjinfo[MT_FLINGEMERALD].height + player->mo->height; + z -= mobjinfo[MT_FLINGEMERALD]->height + player->mo->height; ns = FixedMul(8*FRACUNIT, player->mo->scale); } else @@ -4416,7 +4416,7 @@ void P_PlayerEmeraldBurst(player_t *player, boolean toss) z = player->mo->z + (player->mo->height / 2); if (player->mo->eflags & MFE_VERTICALFLIP) - z -= mobjinfo[MT_FLINGEMERALD].height; + z -= mobjinfo[MT_FLINGEMERALD]->height; ns = FixedMul(4*FRACUNIT, player->mo->scale); } diff --git a/src/p_map.c b/src/p_map.c index f97ddfa3cd8aa3fa9f7e9dbb3e6d76b041aca164..09ae7db2ff11fb5d650c0d540806143ab1a4205b 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -486,7 +486,7 @@ springstate: if (object->player && spring->reactiontime && !(spring->info->flags & MF_ENEMY)) { if (object->player->powers[pw_carry] != CR_NIGHTSMODE) // don't make graphic in NiGHTS - P_SetMobjState(P_SpawnMobj(spring->x, spring->y, spring->z + (spring->height/2), MT_SCORE), mobjinfo[MT_SCORE].spawnstate+11); + P_SetMobjState(P_SpawnMobj(spring->x, spring->y, spring->z + (spring->height/2), MT_SCORE), mobjinfo[MT_SCORE]->spawnstate+11); P_AddPlayerScore(object->player, 10); spring->reactiontime--; } diff --git a/src/p_mobj.c b/src/p_mobj.c index 9cdd2628db8cfec3ee8af83a6f96b3713879b164..e6c3c94e9afdee7093604ee811a8162b6c47e0a1 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -775,7 +775,7 @@ void P_EmeraldManager(void) if (mo->threshold || mo->target) // Either has the emerald spawned or is spawning { numwithemerald++; - emeraldsspawned |= mobjinfo[mo->reactiontime].speed; + emeraldsspawned |= mobjinfo[mo->reactiontime]->speed; } else if (numspawnpoints < MAXHUNTEMERALDS) spawnpoints[numspawnpoints++] = mo; // empty spawn points @@ -3229,7 +3229,7 @@ void P_MobjCheckWater(mobj_t *mobj) mobjtype_t splishtype = (mobj->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH; if (mobj->eflags & MFE_VERTICALFLIP) { - splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype].height, mobj->scale), splishtype); + splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype]->height, mobj->scale), splishtype); if (!P_MobjWasRemoved(splish)) { splish->flags2 |= MF2_OBJECTFLIP; @@ -3268,7 +3268,7 @@ void P_MobjCheckWater(mobj_t *mobj) mobjtype_t splishtype = (mobj->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH; if (mobj->eflags & MFE_VERTICALFLIP) { - splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype].height, mobj->scale), splishtype); + splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype]->height, mobj->scale), splishtype); if (!P_MobjWasRemoved(splish)) { splish->flags2 |= MF2_OBJECTFLIP; @@ -4185,7 +4185,7 @@ static void P_Boss2Thinker(mobj_t *mobj) if (mobj->state == &states[mobj->info->spawnstate] && mobj->health > mobj->info->damage) A_Boss2Chase(mobj); - else if (mobj->health > 0 && mobj->state != &states[mobj->info->painstate] && mobj->state != &states[mobjinfo[mobj->info->missilestate].raisestate]) + else if (mobj->health > 0 && mobj->state != &states[mobj->info->painstate] && mobj->state != &states[mobjinfo[mobj->info->missilestate]->raisestate]) { mobj->flags &= ~MF_NOGRAVITY; A_Boss2Pogo(mobj); @@ -4710,7 +4710,7 @@ static void P_Boss4Thinker(mobj_t *mobj) mobj_t *seg, *base = mobj; // First frame init, spawn all the things. mobj->watertop = mobj->z; - z = mobj->z + mobj->height/2 - mobjinfo[MT_EGGMOBILE4_MACE].height/2; + z = mobj->z + mobj->height/2 - mobjinfo[MT_EGGMOBILE4_MACE]->height/2; for (arm = 0; arm <3 ; arm++) { seg = P_SpawnMobj(mobj->x, mobj->y, z, MT_EGGMOBILE4_MACE); @@ -4777,7 +4777,7 @@ static void P_Boss4Thinker(mobj_t *mobj) mobj->movedir++; } - z = mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE].height - mobj->height/2; + z = mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE]->height - mobj->height/2; if (z < (8<<FRACBITS)) // We haven't risen high enough to pull the spikeballs along yet P_Boss4MoveSpikeballs(mobj, FixedAngle(mobj->movecount), 0); // So don't pull the spikeballs along yet. else @@ -4809,7 +4809,7 @@ static void P_Boss4Thinker(mobj_t *mobj) if (P_MobjWasRemoved(mobj)) return; - P_Boss4PinchSpikeballs(mobj, FixedAngle(mobj->movecount), mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE].height - mobj->height/2); + P_Boss4PinchSpikeballs(mobj, FixedAngle(mobj->movecount), mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE]->height - mobj->height/2); if (!mobj->target || !mobj->target->health) P_SupermanLook4Players(mobj); @@ -6168,7 +6168,7 @@ void P_SpawnHoopOfSomething(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT x = xypos.x; y = xypos.y; - hoopcenter.z = z - mobjinfo[type].height/2; + hoopcenter.z = z - mobjinfo[type]->height/2; hoopcenter.x = x; hoopcenter.y = y; @@ -6435,7 +6435,7 @@ void P_MaceRotate(mobj_t *center, INT32 baserot, INT32 baseprevrot) FV4_Load(&pos_lengthways, 0, 0, 0, 0); - dist = ((mobj->info->speed) ? mobj->info->speed : mobjinfo[MT_SMALLMACECHAIN].speed); + dist = ((mobj->info->speed) ? mobj->info->speed : mobjinfo[MT_SMALLMACECHAIN]->speed); dist = ((center->scale == FRACUNIT) ? dist : FixedMul(dist, center->scale)); fa = (FixedAngle(center->movefactor*FRACUNIT) >> ANGLETOFINESHIFT); @@ -7232,17 +7232,17 @@ static boolean P_ParticleGenSceneryThink(mobj_t *mobj) if (line != -1) { bottomheight = lines[line].frontsector->floorheight; - topheight = lines[line].frontsector->ceilingheight - mobjinfo[(mobjtype_t)type].height; + topheight = lines[line].frontsector->ceilingheight - mobjinfo[(mobjtype_t)type]->height; } else if (mobj->flags2 & MF2_OBJECTFLIP) { bottomheight = mobj->z - mobj->extravalue1; - topheight = mobj->z - mobjinfo[(mobjtype_t)type].height; + topheight = mobj->z - mobjinfo[(mobjtype_t)type]->height; } else { bottomheight = mobj->z; - topheight = mobj->z + mobj->extravalue1 - mobjinfo[(mobjtype_t)type].height; + topheight = mobj->z + mobj->extravalue1 - mobjinfo[(mobjtype_t)type]->height; } @@ -8877,9 +8877,9 @@ static void P_NiGHTSDroneThink(mobj_t *mobj) if (!(droneman->flags2 & MF2_DONTDRAW)) droneman->flags2 |= MF2_DONTDRAW; if (goalpost->state == &states[S_INVISIBLE]) - P_SetMobjState(goalpost, mobjinfo[goalpost->type].meleestate); + P_SetMobjState(goalpost, mobjinfo[goalpost->type]->meleestate); if (sparkle->state == &states[S_INVISIBLE]) - P_SetMobjState(sparkle, mobjinfo[sparkle->type].meleestate); + P_SetMobjState(sparkle, mobjinfo[sparkle->type]->meleestate); } else if (!G_IsSpecialStage(gamemap)) { @@ -8897,8 +8897,8 @@ static void P_NiGHTSDroneThink(mobj_t *mobj) P_SetMobjState(goalpost, S_INVISIBLE); if (sparkle->state != &states[S_INVISIBLE]) P_SetMobjState(sparkle, S_INVISIBLE); - if (droneman->state != &states[mobjinfo[droneman->type].meleestate]) - P_SetMobjState(droneman, mobjinfo[droneman->type].meleestate); + if (droneman->state != &states[mobjinfo[droneman->type]->meleestate]) + P_SetMobjState(droneman, mobjinfo[droneman->type]->meleestate); if (droneman->flags2 & MF2_DONTDRAW) droneman->flags2 &= ~MF2_DONTDRAW; } @@ -9901,12 +9901,12 @@ static void P_FiringThink(mobj_t *mobj) if (mobj->target->player && mobj->target->player->powers[pw_carry] == CR_NIGHTSMODE) { - fixed_t oldval = mobjinfo[mobj->extravalue1].speed; + fixed_t oldval = mobjinfo[mobj->extravalue1]->speed; mobj->angle = R_PointToAngle2(mobj->x, mobj->y, mobj->target->x + mobj->target->momx, mobj->target->y + mobj->target->momy); - mobjinfo[mobj->extravalue1].speed = FixedMul(60*FRACUNIT, mobj->scale); + mobjinfo[mobj->extravalue1]->speed = FixedMul(60*FRACUNIT, mobj->scale); missile = P_SpawnMissile(mobj, mobj->target, mobj->extravalue1); - mobjinfo[mobj->extravalue1].speed = oldval; + mobjinfo[mobj->extravalue1]->speed = oldval; } else { @@ -9985,7 +9985,7 @@ static void P_FlagFuseThink(mobj_t *mobj) z = mobj->spawnpoint->z << FRACBITS; ss = R_PointInSubsector(x, y); if (mobj->spawnpoint->options & MTF_OBJECTFLIP) - z = ss->sector->ceilingheight - mobjinfo[mobj->type].height - z; + z = ss->sector->ceilingheight - mobjinfo[mobj->type]->height - z; else z = ss->sector->floorheight + z; flagmo = P_SpawnMobj(x, y, z, mobj->type); @@ -10620,7 +10620,7 @@ static fixed_t P_DefaultMobjShadowScale (mobj_t *thing) // mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...) { - const mobjinfo_t *info = &mobjinfo[type]; + const mobjinfo_t *info = mobjinfo[type]; SINT8 sc = -1; state_t *st; mobj_t *mobj; @@ -11097,11 +11097,11 @@ static precipmobj_t *P_SpawnPrecipMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype mobj->x = x; mobj->y = y; - mobj->flags = mobjinfo[type].flags; + mobj->flags = mobjinfo[type]->flags; // do not set the state with P_SetMobjState, // because action routines can not be called yet - st = &states[mobjinfo[type].spawnstate]; + st = &states[mobjinfo[type]->spawnstate]; mobj->state = st; mobj->tics = st->tics; @@ -11119,7 +11119,7 @@ static precipmobj_t *P_SpawnPrecipMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype mobj->ceilingrover = NULL; mobj->z = z; - mobj->momz = mobjinfo[type].speed; + mobj->momz = mobjinfo[type]->speed; mobj->thinker.function.acp1 = (actionf_p1)P_NullPrecipThinker; P_AddThinker(THINK_PRECIP, &mobj->thinker); @@ -11548,8 +11548,8 @@ void P_PrecipitationEffects(void) mobjtype_t P_GetMobjtype(UINT16 mthingtype) { mobjtype_t i; - for (i = 0; i < NUMMOBJTYPES; i++) - if (mthingtype == mobjinfo[i].doomednum) + for (i = 0; i < nummobjinfo; i++) + if (mthingtype == mobjinfo[i]->doomednum) return i; return MT_UNKNOWN; } @@ -11718,7 +11718,7 @@ void P_SpawnPlayer(INT32 playernum) { idya->health = 0; // for identification P_SetTarget(&idya->target, mobj); - P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD].missilestate); + P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD]->missilestate); P_SetTarget(&mobj->tracer, idya); } } @@ -11800,7 +11800,7 @@ void P_MovePlayerToSpawn(INT32 playernum, mapthing_t *mthing) floor = P_GetSectorFloorZAt (sector, x, y); ceiling = P_GetSectorCeilingZAt(sector, x, y); - ceilingspawn = ceiling - mobjinfo[MT_PLAYER].height; + ceilingspawn = ceiling - mobjinfo[MT_PLAYER]->height; if (mthing) { @@ -11919,7 +11919,7 @@ fixed_t P_GetMobjSpawnHeight(const mobjtype_t mobjtype, const fixed_t x, const f // Establish height. if (flip) - return (absolutez ? dz : P_GetSectorCeilingZAt(ss->sector, x, y) - dz) - FixedMul(scale, offset + mobjinfo[mobjtype].height); + return (absolutez ? dz : P_GetSectorCeilingZAt(ss->sector, x, y) - dz) - FixedMul(scale, offset + mobjinfo[mobjtype]->height); else return (absolutez ? dz : P_GetSectorFloorZAt(ss->sector, x, y) + dz) + FixedMul(scale, offset); } @@ -11928,7 +11928,7 @@ fixed_t P_GetMapThingSpawnHeight(const mobjtype_t mobjtype, const mapthing_t* mt { fixed_t dz = mthing->z << FRACBITS; // Base offset from the floor. fixed_t offset = 0; // Specific scaling object offset. - boolean flip = (!!(mobjinfo[mobjtype].flags & MF_SPAWNCEILING) ^ !!(mthing->options & MTF_OBJECTFLIP)); + boolean flip = (!!(mobjinfo[mobjtype]->flags & MF_SPAWNCEILING) ^ !!(mthing->options & MTF_OBJECTFLIP)); boolean absolutez = !!(mthing->options & MTF_ABSOLUTEZ); switch (mobjtype) @@ -12038,7 +12038,7 @@ static boolean P_SpawnNonMobjMapThing(mapthing_t *mthing) } return true; } - else if (metalrecording && mthing->type == mobjinfo[MT_METALSONIC_RACE].doomednum) + else if (metalrecording && mthing->type == mobjinfo[MT_METALSONIC_RACE]->doomednum) { // If recording, you ARE Metal Sonic. Do not spawn it, do not save normal spawnpoints. playerstarts[0] = mthing; return true; @@ -12047,7 +12047,7 @@ static boolean P_SpawnNonMobjMapThing(mapthing_t *mthing) || (mthing->type >= 600 && mthing->type <= 611) // Special placement patterns || mthing->type == 1713) // Hoops return true; // These are handled elsewhere. - else if (mthing->type == mobjinfo[MT_EMERHUNT].doomednum) + else if (mthing->type == mobjinfo[MT_EMERHUNT]->doomednum) { // Emerald Hunt is Coop only. Don't spawn the emerald yet, but save the spawnpoint for later. if ((gametyperules & GTR_EMERALDHUNT) && numhuntemeralds < MAXHUNTEMERALDS) @@ -12075,7 +12075,7 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i) if (metalrecording) return false; // Metal Sonic isn't for collecting emeralds. - if (emeralds & mobjinfo[i].speed) // You already have this emerald! + if (emeralds & mobjinfo[i]->speed) // You already have this emerald! return false; break; @@ -12117,13 +12117,13 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i) if (metalrecording) // Metal Sonic can't use these things. { - if ((mobjinfo[i].flags & (MF_ENEMY|MF_BOSS)) || i == MT_TOKEN || i == MT_STARPOST + if ((mobjinfo[i]->flags & (MF_ENEMY|MF_BOSS)) || i == MT_TOKEN || i == MT_STARPOST || i == MT_RING || i == MT_BLUETEAMRING || i == MT_REDTEAMRING || i == MT_COIN || i == MT_BLUESPHERE || i == MT_BOMBSPHERE || i == MT_NIGHTSCHIP || i == MT_NIGHTSSTAR) return false; } - if (((mobjinfo[i].flags & MF_ENEMY) || (mobjinfo[i].flags & MF_BOSS)) && !(gametyperules & GTR_SPAWNENEMIES)) + if (((mobjinfo[i]->flags & MF_ENEMY) || (mobjinfo[i]->flags & MF_BOSS)) && !(gametyperules & GTR_SPAWNENEMIES)) return false; // No enemies in ringslinger modes if (!(gametyperules & GTR_ALLOWEXIT) && (i == MT_SIGN)) @@ -12182,7 +12182,7 @@ static mobjtype_t P_GetMobjtypeSubstitute(mapthing_t *mthing, mobjtype_t i) // If MF_GRENADEBOUNCE is set in the monitor's info, // skip this step. (Used for gold monitors) // Yeah, this is a dirty hack. - if ((mobjinfo[i].flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR) + if ((mobjinfo[i]->flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR) { if (gametyperules & GTR_RACE) { @@ -12655,13 +12655,13 @@ static boolean P_SetupNiGHTSDrone(mapthing_t *mthing, mobj_t *mobj) if (hitboxheight > 0) mobj->height = hitboxheight; else - mobj->height = mobjinfo[MT_NIGHTSDRONE].height; + mobj->height = mobjinfo[MT_NIGHTSDRONE]->height; if (mthing->args[4]) mobj->flags2 |= MF2_AMBUSH; //Kill player upon time up - droneboxmandiff = max(mobj->height - mobjinfo[MT_NIGHTSDRONE_MAN].height, 0); - dronemangoaldiff = max(mobjinfo[MT_NIGHTSDRONE_MAN].height - mobjinfo[MT_NIGHTSDRONE_GOAL].height, 0); + droneboxmandiff = max(mobj->height - mobjinfo[MT_NIGHTSDRONE_MAN]->height, 0); + dronemangoaldiff = max(mobjinfo[MT_NIGHTSDRONE_MAN]->height - mobjinfo[MT_NIGHTSDRONE_GOAL]->height, 0); if (flip && mobj->height != oldheight) P_SetOrigin(mobj, mobj->x, mobj->y, mobj->z - (mobj->height - oldheight)); @@ -13683,7 +13683,7 @@ static void P_SpawnItemRow(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 numi for (r = 0; r < numitemtypes; r++) { dummything = *mthing; - dummything.type = mobjinfo[itemtypes[r]].doomednum; + dummything.type = mobjinfo[itemtypes[r]]->doomednum; // Skip all returning/substitution code in objectplace. if (!objectplacing) { @@ -13703,7 +13703,7 @@ static void P_SpawnItemRow(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 numi mobjtype_t itemtype = itemtypes[r % numitemtypes]; if (itemtype == MT_NULL) continue; - dummything.type = mobjinfo[itemtype].doomednum; + dummything.type = mobjinfo[itemtype]->doomednum; x += FixedMul(horizontalspacing, FINECOSINE(fineangle)); y += FixedMul(horizontalspacing, FINESINE(fineangle)); @@ -13742,7 +13742,7 @@ static void P_SpawnItemCircle(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 n for (i = 0; i < numitemtypes; i++) { dummything = *mthing; - dummything.type = mobjinfo[itemtypes[i]].doomednum; + dummything.type = mobjinfo[itemtypes[i]]->doomednum; // Skip all returning/substitution code in objectplace. if (!objectplacing) { @@ -13762,7 +13762,7 @@ static void P_SpawnItemCircle(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 n mobjtype_t itemtype = itemtypes[i % numitemtypes]; if (itemtype == MT_NULL) continue; - dummything.type = mobjinfo[itemtype].doomednum; + dummything.type = mobjinfo[itemtype]->doomednum; fa = i*FINEANGLES/numitems; v.x = FixedMul(FINECOSINE(fa), size); @@ -13916,7 +13916,7 @@ mobj_t *P_SpawnXYZMissile(mobj_t *source, mobj_t *dest, mobjtype_t type, I_Assert(dest != NULL); if (source->eflags & MFE_VERTICALFLIP) - z -= FixedMul(mobjinfo[type].height, source->scale); + z -= FixedMul(mobjinfo[type]->height, source->scale); th = P_SpawnMobj(x, y, z, type); if (P_MobjWasRemoved(th)) @@ -13932,7 +13932,7 @@ mobj_t *P_SpawnXYZMissile(mobj_t *source, mobj_t *dest, mobjtype_t type, if (speed == 0) { CONS_Debug(DBG_GAMELOGIC, "P_SpawnXYZMissile - projectile has 0 speed! (mobj type %d)\n", type); - speed = mobjinfo[MT_ROCKET].speed; + speed = mobjinfo[MT_ROCKET]->speed; } if (th->info->seesound) @@ -13979,7 +13979,7 @@ mobj_t *P_SpawnAlteredDirectionMissile(mobj_t *source, mobjtype_t type, fixed_t return NULL; if (source->eflags & MFE_VERTICALFLIP) - z -= FixedMul(mobjinfo[type].height, source->scale); + z -= FixedMul(mobjinfo[type]->height, source->scale); th = P_SpawnMobj(x, y, z, type); if (P_MobjWasRemoved(th)) @@ -13995,7 +13995,7 @@ mobj_t *P_SpawnAlteredDirectionMissile(mobj_t *source, mobjtype_t type, fixed_t if (speed == 0) // Backwards compatibility with 1.09.2 { CONS_Printf("P_SpawnAlteredDirectionMissile - projectile has 0 speed! (mobj type %d)\nPlease update this SOC.", type); - speed = mobjinfo[MT_ROCKET].speed; + speed = mobjinfo[MT_ROCKET]->speed; } if (th->info->seesound) @@ -14045,7 +14045,7 @@ mobj_t *P_SpawnPointMissile(mobj_t *source, fixed_t xa, fixed_t ya, fixed_t za, I_Assert(source != NULL); if (source->eflags & MFE_VERTICALFLIP) - z -= FixedMul(mobjinfo[type].height, source->scale); + z -= FixedMul(mobjinfo[type]->height, source->scale); th = P_SpawnMobj(x, y, z, type); if (P_MobjWasRemoved(th)) @@ -14061,7 +14061,7 @@ mobj_t *P_SpawnPointMissile(mobj_t *source, fixed_t xa, fixed_t ya, fixed_t za, if (speed == 0) // Backwards compatibility with 1.09.2 { CONS_Printf("P_SpawnPointMissile - projectile has 0 speed! (mobj type %d)\nPlease update this SOC.", type); - speed = mobjinfo[MT_ROCKET].speed; + speed = mobjinfo[MT_ROCKET]->speed; } if (th->info->seesound) @@ -14116,7 +14116,7 @@ mobj_t *P_SpawnMissile(mobj_t *source, mobj_t *dest, mobjtype_t type) z = source->z + source->height/2; if (source->eflags & MFE_VERTICALFLIP) - z -= FixedMul(mobjinfo[type].height, source->scale); + z -= FixedMul(mobjinfo[type]->height, source->scale); th = P_SpawnMobj(source->x, source->y, z, type); if (P_MobjWasRemoved(th)) @@ -14135,7 +14135,7 @@ mobj_t *P_SpawnMissile(mobj_t *source, mobj_t *dest, mobjtype_t type) if (speed == 0) { CONS_Debug(DBG_GAMELOGIC, "P_SpawnMissile - projectile has 0 speed! (mobj type %d)\n", type); - speed = FixedMul(mobjinfo[MT_TURRETLASER].speed, th->scale); + speed = FixedMul(mobjinfo[MT_TURRETLASER]->speed, th->scale); } if (th->info->seesound) @@ -14216,7 +14216,7 @@ mobj_t *P_SPMAngle(mobj_t *source, mobjtype_t type, angle_t angle, UINT8 allowai y = source->y; if (source->eflags & MFE_VERTICALFLIP) - z = source->z + 2*source->height/3 - FixedMul(mobjinfo[type].height, source->scale); + z = source->z + 2*source->height/3 - FixedMul(mobjinfo[type]->height, source->scale); else z = source->z + source->height/3; diff --git a/src/p_saveg.c b/src/p_saveg.c index 5e4d6d0760441e6bc94c6815824b8b7e1ab38c80..5d9b3ec9020c1df0a309792dafc17c182b53790f 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -3026,10 +3026,10 @@ static thinker_t* LoadMobjThinker(actionf_p1 thinker) mobj->type = READUINT32(save_p); else { - for (i = 0; i < NUMMOBJTYPES; i++) - if (mobj->spawnpoint && mobj->spawnpoint->type == mobjinfo[i].doomednum) + for (i = 0; (size_t)i < nummobjinfo; i++) + if (mobj->spawnpoint && mobj->spawnpoint->type == mobjinfo[i]->doomednum) break; - if (i == NUMMOBJTYPES) + if ((size_t)i == nummobjinfo) { if (mobj->spawnpoint) CONS_Alert(CONS_ERROR, "Found mobj with unknown map thing type %d\n", mobj->spawnpoint->type); @@ -3039,7 +3039,7 @@ static thinker_t* LoadMobjThinker(actionf_p1 thinker) } mobj->type = i; } - mobj->info = &mobjinfo[mobj->type]; + mobj->info = mobjinfo[mobj->type]; if (diff & MD_POS) { mobj->x = READFIXED(save_p); @@ -4231,7 +4231,7 @@ static inline void P_FinishMobjs(void) continue; mobj = (mobj_t *)currentthinker; - mobj->info = &mobjinfo[mobj->type]; + mobj->info = mobjinfo[mobj->type]; } } diff --git a/src/p_setup.c b/src/p_setup.c index 41487d702f265c7e5164c61be8d0b8f8c059aa38..2c9ca50b65cbbd4454495eefd11c84f5cebd3567 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -723,9 +723,9 @@ void P_ReloadRings(void) for (i = 0; i < nummapthings; i++, mt++) { // Notice an omission? We handle hoops differently. - if (mt->type == mobjinfo[MT_RING].doomednum || mt->type == mobjinfo[MT_COIN].doomednum - || mt->type == mobjinfo[MT_REDTEAMRING].doomednum || mt->type == mobjinfo[MT_BLUETEAMRING].doomednum - || mt->type == mobjinfo[MT_BLUESPHERE].doomednum || mt->type == mobjinfo[MT_BOMBSPHERE].doomednum) + if (mt->type == mobjinfo[MT_RING]->doomednum || mt->type == mobjinfo[MT_COIN]->doomednum + || mt->type == mobjinfo[MT_REDTEAMRING]->doomednum || mt->type == mobjinfo[MT_BLUETEAMRING]->doomednum + || mt->type == mobjinfo[MT_BLUESPHERE]->doomednum || mt->type == mobjinfo[MT_BOMBSPHERE]->doomednum) { mt->mobj = NULL; P_SetBonusTime(P_SpawnMapThing(mt)); @@ -850,7 +850,7 @@ static void P_SpawnEmeraldHunt(void) y = huntemeralds[emer[i]]->y<<FRACBITS; z = P_GetMapThingSpawnHeight(MT_EMERHUNT, huntemeralds[emer[i]], x, y); P_SetMobjStateNF(P_SpawnMobj(x, y, z, MT_EMERHUNT), - mobjinfo[MT_EMERHUNT].spawnstate+i); + mobjinfo[MT_EMERHUNT]->spawnstate+i); } } @@ -884,7 +884,7 @@ static void P_SpawnMapThings(boolean spawnemblems) || mt->type == 1702) // MT_AXISTRANSFERLINE continue; // These were already spawned - if (!spawnemblems && mt->type == mobjinfo[MT_EMBLEM].doomednum) + if (!spawnemblems && mt->type == mobjinfo[MT_EMBLEM]->doomednum) continue; mt->mobj = NULL; @@ -6359,12 +6359,12 @@ static void P_ConvertBinaryThingTypes(void) mobjtype_t mobjtypeofthing[4096] = {0}; mobjtype_t mobjtype; - for (i = 0; i < NUMMOBJTYPES; i++) + for (i = 0; i < nummobjinfo; i++) { - if (mobjinfo[i].doomednum < 0 || mobjinfo[i].doomednum >= 4096) + if (mobjinfo[i]->doomednum < 0 || mobjinfo[i]->doomednum >= 4096) continue; - mobjtypeofthing[mobjinfo[i].doomednum] = (mobjtype_t)i; + mobjtypeofthing[mobjinfo[i]->doomednum] = (mobjtype_t)i; } for (i = 0; i < nummapthings; i++) @@ -6372,7 +6372,7 @@ static void P_ConvertBinaryThingTypes(void) mobjtype = mobjtypeofthing[mapthings[i].type]; if (mobjtype) { - if (mobjinfo[mobjtype].flags & MF_BOSS) + if (mobjinfo[mobjtype]->flags & MF_BOSS) { INT32 paramoffset = mapthings[i].extrainfo*LE_PARAMWIDTH; mapthings[i].args[0] = mapthings[i].extrainfo; @@ -6381,14 +6381,14 @@ static void P_ConvertBinaryThingTypes(void) mapthings[i].args[3] = LE_ALLBOSSESDEAD + paramoffset; mapthings[i].args[4] = LE_PINCHPHASE + paramoffset; } - if (mobjinfo[mobjtype].flags & MF_NIGHTSITEM) + if (mobjinfo[mobjtype]->flags & MF_NIGHTSITEM) { if (mapthings[i].options & MTF_OBJECTSPECIAL) mapthings[i].args[0] |= TMNI_BONUSONLY; if (mapthings[i].options & MTF_AMBUSH) mapthings[i].args[0] |= TMNI_REVEAL; } - if (mobjinfo[mobjtype].flags & MF_PUSHABLE) + if (mobjinfo[mobjtype]->flags & MF_PUSHABLE) { if ((mapthings[i].options & (MTF_OBJECTSPECIAL|MTF_AMBUSH)) == (MTF_OBJECTSPECIAL|MTF_AMBUSH)) mapthings[i].args[0] = TMP_CLASSIC; @@ -6399,14 +6399,14 @@ static void P_ConvertBinaryThingTypes(void) else mapthings[i].args[0] = TMP_NORMAL; } - if ((mobjinfo[mobjtype].flags & MF_SPRING) && mobjinfo[mobjtype].painchance == 3) + if ((mobjinfo[mobjtype]->flags & MF_SPRING) && mobjinfo[mobjtype]->painchance == 3) mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH); - if (mobjinfo[mobjtype].flags & MF_MONITOR) + if (mobjinfo[mobjtype]->flags & MF_MONITOR) { if ((mapthings[i].options & MTF_EXTRA) && mapthings[i].angle & 16384) mapthings[i].args[0] = mapthings[i].angle & 16383; - if (mobjinfo[mobjtype].speed != 0) + if (mobjinfo[mobjtype]->speed != 0) { if (mapthings[i].options & MTF_OBJECTSPECIAL) mapthings[i].args[1] = TMMR_STRONG; @@ -6565,7 +6565,7 @@ static void P_ConvertBinaryThingTypes(void) case 522: //Wall spike if (mapthings[i].options & MTF_OBJECTSPECIAL) { - mapthings[i].args[0] = mobjinfo[MT_WALLSPIKE].speed + mapthings[i].angle/360; + mapthings[i].args[0] = mobjinfo[MT_WALLSPIKE]->speed + mapthings[i].angle/360; mapthings[i].args[1] = (16 - mapthings[i].extrainfo) * mapthings[i].args[0]/16; if (mapthings[i].options & MTF_EXTRA) mapthings[i].args[2] |= TMSF_RETRACTED; @@ -6576,7 +6576,7 @@ static void P_ConvertBinaryThingTypes(void) case 523: //Spike if (mapthings[i].options & MTF_OBJECTSPECIAL) { - mapthings[i].args[0] = mobjinfo[MT_SPIKE].speed + mapthings[i].angle; + mapthings[i].args[0] = mobjinfo[MT_SPIKE]->speed + mapthings[i].angle; mapthings[i].args[1] = (16 - mapthings[i].extrainfo) * mapthings[i].args[0]/16; if (mapthings[i].options & MTF_EXTRA) mapthings[i].args[2] |= TMSF_RETRACTED; diff --git a/src/p_spec.c b/src/p_spec.c index 805817fb033c465b33059c24fbefb52432173444..67c33f203101fb99c257311fa0807f0657125e7d 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -2055,13 +2055,13 @@ void P_SwitchWeather(INT32 weathernum) if (weathernum == PRECIP_RAIN || weathernum == PRECIP_STORM || weathernum == PRECIP_STORM_NOSTRIKES) // Snow To Rain { - precipmobj->flags = mobjinfo[MT_RAIN].flags; - st = &states[mobjinfo[MT_RAIN].spawnstate]; + precipmobj->flags = mobjinfo[MT_RAIN]->flags; + st = &states[mobjinfo[MT_RAIN]->spawnstate]; precipmobj->state = st; precipmobj->tics = st->tics; precipmobj->sprite = st->sprite; precipmobj->frame = st->frame; - precipmobj->momz = mobjinfo[MT_RAIN].speed; + precipmobj->momz = mobjinfo[MT_RAIN]->speed; precipmobj->precipflags &= ~PCF_INVISIBLE; @@ -2072,7 +2072,7 @@ void P_SwitchWeather(INT32 weathernum) { INT32 z; - precipmobj->flags = mobjinfo[MT_SNOWFLAKE].flags; + precipmobj->flags = mobjinfo[MT_SNOWFLAKE]->flags; z = M_RandomByte(); if (z < 64) @@ -2082,12 +2082,12 @@ void P_SwitchWeather(INT32 weathernum) else z = 0; - st = &states[mobjinfo[MT_SNOWFLAKE].spawnstate+z]; + st = &states[mobjinfo[MT_SNOWFLAKE]->spawnstate+z]; precipmobj->state = st; precipmobj->tics = st->tics; precipmobj->sprite = st->sprite; precipmobj->frame = st->frame; - precipmobj->momz = mobjinfo[MT_SNOWFLAKE].speed; + precipmobj->momz = mobjinfo[MT_SNOWFLAKE]->speed; precipmobj->precipflags &= ~(PCF_INVISIBLE|PCF_RAIN); @@ -2909,7 +2909,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec) statenum_t state = NUMSTATES; mobj_t *thing; - if (type < 0 || type >= NUMMOBJTYPES) + if (type < 0 || type >= nummobjinfo) break; if (!line->args[1]) @@ -4944,10 +4944,10 @@ static void P_EvaluateSpecialFlags(player_t *player, sector_t *sector, sector_t P_ProcessTeamBase(player, false); if (sector->specialflags & SSF_FAN) { - player->mo->momz += mobjinfo[MT_FAN].mass/4; + player->mo->momz += mobjinfo[MT_FAN]->mass/4; - if (player->mo->momz > mobjinfo[MT_FAN].mass) - player->mo->momz = mobjinfo[MT_FAN].mass; + if (player->mo->momz > mobjinfo[MT_FAN]->mass) + player->mo->momz = mobjinfo[MT_FAN]->mass; if (!player->powers[pw_carry]) { diff --git a/src/p_tick.c b/src/p_tick.c index 56e0fd897bfbba718885a1104224d1554790f227..652b107055b8db11f7d25700c53781bbe301b0c1 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -152,9 +152,9 @@ void Command_CountMobjs_f(void) for (j = 1; j < COM_Argc(); j++) { i = atoi(COM_Argv(j)); - if (i >= NUMMOBJTYPES) + if (i >= nummobjinfo) { - CONS_Printf(M_GetText("Object number %d out of range (max %d).\n"), i, NUMMOBJTYPES-1); + CONS_Printf(M_GetText("Object number %d out of range (max %zu).\n"), i, nummobjinfo-1); continue; } @@ -176,7 +176,7 @@ void Command_CountMobjs_f(void) CONS_Printf(M_GetText("Count of active objects in level:\n")); - for (i = 0; i < NUMMOBJTYPES; i++) + for (i = 0; i < nummobjinfo; i++) { count = 0; @@ -237,12 +237,10 @@ static const char *MobjTypeName(const mobj_t *mobj) else return "<Not a mobj>"; - if (type < 0 || type >= NUMMOBJTYPES || (type >= MT_FIRSTFREESLOT && !FREE_MOBJS[type - MT_FIRSTFREESLOT])) + if (type < 0 || type >= nummobjinfo) return "<Invalid mobj type>"; - else if (type >= MT_FIRSTFREESLOT) - return FREE_MOBJS[type - MT_FIRSTFREESLOT]; // This doesn't include "MT_"... else - return MOBJTYPE_LIST[type]; + return mobjinfo[type]->name; } static const char *MobjThinkerName(const mobj_t *mobj) diff --git a/src/p_user.c b/src/p_user.c index 7cd128cf080792f64df4a56ca4aeb4e9076e6b94..445e1246f86374521b2d17cf777a48aabc1b8b6c 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -349,7 +349,7 @@ void P_GiveEmerald(boolean spawnObj) if (!emmo) continue; P_SetTarget(&emmo->target, players[i].mo); - P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em); + P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD]->meleestate + em); // Make sure we're not being carried before our tracer is changed if (players[i].powers[pw_carry] != CR_NIGHTSMODE) @@ -2138,14 +2138,14 @@ void P_SpawnThokMobj(player_t *player) else { if (player->mo->eflags & MFE_VERTICALFLIP) - zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type].height, player->mo->scale); + zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type]->height, player->mo->scale); else zheight = player->mo->z - FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT); - if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT)) + if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT)) zheight = player->mo->floorz; - else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type].height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT)) - zheight = player->mo->ceilingz - FixedMul(mobjinfo[type].height, player->mo->scale); + else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type]->height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT)) + zheight = player->mo->ceilingz - FixedMul(mobjinfo[type]->height, player->mo->scale); mobj = P_SpawnMobj(player->mo->x, player->mo->y, zheight, type); if (P_MobjWasRemoved(mobj)) @@ -2202,14 +2202,14 @@ void P_SpawnSpinMobj(player_t *player, mobjtype_t type) else { if (player->mo->eflags & MFE_VERTICALFLIP) - zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type].height, player->mo->scale); + zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type]->height, player->mo->scale); else zheight = player->mo->z - FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT); - if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT)) + if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT)) zheight = player->mo->floorz; - else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type].height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT)) - zheight = player->mo->ceilingz - FixedMul(mobjinfo[type].height, player->mo->scale); + else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type]->height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT)) + zheight = player->mo->ceilingz - FixedMul(mobjinfo[type]->height, player->mo->scale); mobj = P_SpawnMobj(player->mo->x, player->mo->y, zheight, type); if (P_MobjWasRemoved(mobj)) @@ -2483,7 +2483,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff) i++; throwang += ANG30; } - if (mobjinfo[type].seesound && missile) + if (mobjinfo[type]->seesound && missile) S_StartSound(missile, missile->info->seesound); } } @@ -3029,7 +3029,7 @@ static void P_CheckUnderwaterAndSpaceTimer(player_t *player) || (timeleft == 1*TICRATE) // 0 ) { fixed_t height = (player->mo->eflags & MFE_VERTICALFLIP) - ? player->mo->z - FixedMul(8*FRACUNIT + mobjinfo[MT_DROWNNUMBERS].height, FixedMul(player->mo->scale, player->shieldscale)) + ? player->mo->z - FixedMul(8*FRACUNIT + mobjinfo[MT_DROWNNUMBERS]->height, FixedMul(player->mo->scale, player->shieldscale)) : player->mo->z + player->mo->height + FixedMul(8*FRACUNIT, FixedMul(player->mo->scale, player->shieldscale)); mobj_t *numbermobj = P_SpawnMobj(player->mo->x, player->mo->y, height, MT_DROWNNUMBERS); @@ -3254,8 +3254,8 @@ static void P_DoPlayerHeadSigns(player_t *player) } else { - sign->z -= mobjinfo[MT_TAG].height; - sign->old_z -= mobjinfo[MT_TAG].height; + sign->z -= mobjinfo[MT_TAG]->height; + sign->old_z -= mobjinfo[MT_TAG]->height; } } } @@ -3272,7 +3272,7 @@ static void P_DoPlayerHeadSigns(player_t *player) zofs = player->mo->momz; if (player_is_flipped) { - zofs += player->mo->height - P_GetPlayerHeight(player) - mobjinfo[MT_GOTFLAG].height - FixedMul(16 * FRACUNIT, player->mo->scale); + zofs += player->mo->height - P_GetPlayerHeight(player) - mobjinfo[MT_GOTFLAG]->height - FixedMul(16 * FRACUNIT, player->mo->scale); } else { @@ -4813,7 +4813,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd) P_SetMobjState(player->mo, S_PLAY_FIRE); -#define zpos(posmo) (posmo->z + (posmo->height - mobjinfo[player->revitem].height)/2) +#define zpos(posmo) (posmo->z + (posmo->height - mobjinfo[player->revitem]->height)/2) if (lockon) { player->mo->angle = R_PointToAngle2(player->mo->x, player->mo->y, lockon->x, lockon->y); @@ -6369,10 +6369,10 @@ static void P_ShootLine(mobj_t *source, mobj_t *dest, fixed_t height) temp = dest->z; dest->z = height; - seesound = mobjinfo[MT_REDRING].seesound; - speed = mobjinfo[MT_REDRING].speed; - mobjinfo[MT_REDRING].seesound = sfx_None; - mobjinfo[MT_REDRING].speed = 20*FRACUNIT; + seesound = mobjinfo[MT_REDRING]->seesound; + speed = mobjinfo[MT_REDRING]->speed; + mobjinfo[MT_REDRING]->seesound = sfx_None; + mobjinfo[MT_REDRING]->speed = 20*FRACUNIT; mo = P_SpawnXYZMissile(source, dest, MT_REDRING, source->x, source->y, height); @@ -6408,13 +6408,13 @@ static void P_ShootLine(mobj_t *source, mobj_t *dest, fixed_t height) } else { - mobjinfo[MT_REDRING].seesound = seesound; - mobjinfo[MT_REDRING].speed = speed; + mobjinfo[MT_REDRING]->seesound = seesound; + mobjinfo[MT_REDRING]->speed = speed; return; } } - mobjinfo[MT_REDRING].seesound = seesound; - mobjinfo[MT_REDRING].speed = speed; + mobjinfo[MT_REDRING]->seesound = seesound; + mobjinfo[MT_REDRING]->speed = speed; } #define MAXDRILLSPEED 14000 @@ -7030,7 +7030,7 @@ static void P_DoNiGHTSCapsule(player_t *player) emmo = P_SpawnMobj(players[i].mo->x, players[i].mo->y, players[i].mo->z + players[i].mo->info->height, MT_GOTEMERALD); P_SetTarget(&emmo->target, players[i].mo); - P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em); + P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD]->meleestate + em); }*/ if (player->powers[pw_carry] == CR_NIGHTSMODE) @@ -7043,7 +7043,7 @@ static void P_DoNiGHTSCapsule(player_t *player) { emmo->health = em; // for identification P_SetTarget(&emmo->target, player->mo); - P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em); + P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD]->meleestate + em); P_SetTarget(&player->mo->tracer, emmo); } } @@ -7073,7 +7073,7 @@ static void P_DoNiGHTSCapsule(player_t *player) idya->extravalue2 = player->mare/5; idya->health = player->mare + 1; // for identification P_SetTarget(&idya->target, player->mo); - P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD].missilestate + ((player->mare + 1) % 5)); + P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD]->missilestate + ((player->mare + 1) % 5)); if (player->mo->tracer) { @@ -7405,7 +7405,7 @@ static void P_NiGHTSMovement(player_t *player) fixed_t z = player->mo->z + player->mo->height/2; if (player->mo->eflags & MFE_VERTICALFLIP) - z -= FixedMul(mobjinfo[MT_NIGHTSPARKLE].height, player->mo->scale); + z -= FixedMul(mobjinfo[MT_NIGHTSPARKLE]->height, player->mo->scale); firstmobj = P_SpawnMobj(player->mo->x + P_ReturnThrustX(player->mo, player->mo->angle+ANGLE_90, spawndist), player->mo->y + P_ReturnThrustY(player->mo, player->mo->angle+ANGLE_90, spawndist), z, MT_NIGHTSPARKLE); if (!P_MobjWasRemoved(firstmobj)) @@ -7414,7 +7414,7 @@ static void P_NiGHTSMovement(player_t *player) P_SetScale(firstmobj, player->mo->scale, true); // Superloop turns sparkles red if (player->powers[pw_nights_superloop]) - P_SetMobjState(firstmobj, mobjinfo[MT_NIGHTSPARKLE].seestate); + P_SetMobjState(firstmobj, mobjinfo[MT_NIGHTSPARKLE]->seestate); } secondmobj = P_SpawnMobj(player->mo->x + P_ReturnThrustX(player->mo, player->mo->angle-ANGLE_90, spawndist), player->mo->y + P_ReturnThrustY(player->mo, player->mo->angle-ANGLE_90, spawndist), z, MT_NIGHTSPARKLE); if (!P_MobjWasRemoved(secondmobj)) @@ -7423,7 +7423,7 @@ static void P_NiGHTSMovement(player_t *player) P_SetScale(secondmobj, player->mo->scale, true); // Superloop turns sparkles red if (player->powers[pw_nights_superloop]) - P_SetMobjState(secondmobj, mobjinfo[MT_NIGHTSPARKLE].seestate); + P_SetMobjState(secondmobj, mobjinfo[MT_NIGHTSPARKLE]->seestate); } } @@ -7621,7 +7621,7 @@ static void P_NiGHTSMovement(player_t *player) { mobjtype_t splishtype = (player->mo->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH; mobj_t *water = P_SpawnMobj(player->mo->x, player->mo->y, - ((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype].height, player->mo->scale) : player->mo->watertop), splishtype); + ((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype]->height, player->mo->scale) : player->mo->watertop), splishtype); if (!P_MobjWasRemoved(water)) { if (player->mo->eflags & MFE_GOOWATER) @@ -7859,7 +7859,7 @@ void P_ElementalFire(player_t *player, boolean cropcircle) I_Assert(!P_MobjWasRemoved(player->mo)); if (player->mo->eflags & MFE_VERTICALFLIP) - ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_SPINFIRE].height, player->mo->scale); + ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_SPINFIRE]->height, player->mo->scale); else ground = player->mo->floorz; @@ -7906,7 +7906,7 @@ void P_ElementalFire(player_t *player, boolean cropcircle) { ground = P_GetSlopeZAt(player->mo->standingslope, newx, newy); if (player->mo->eflags & MFE_VERTICALFLIP) - ground -= FixedMul(mobjinfo[MT_SPINFIRE].height, player->mo->scale); + ground -= FixedMul(mobjinfo[MT_SPINFIRE]->height, player->mo->scale); } flame = P_SpawnMobj(newx, newy, ground, MT_SPINFIRE); @@ -8539,7 +8539,7 @@ void P_MovePlayer(player_t *player) { mobjtype_t splishtype = (player->mo->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH; mobj_t *water = P_SpawnMobj(player->mo->x - P_ReturnThrustX(NULL, player->mo->angle, player->mo->radius), player->mo->y - P_ReturnThrustY(NULL, player->mo->angle, player->mo->radius), - ((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype].height, player->mo->scale) : player->mo->watertop), splishtype); + ((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype]->height, player->mo->scale) : player->mo->watertop), splishtype); if (!P_MobjWasRemoved(water)) { if (player->mo->eflags & MFE_GOOWATER) @@ -10836,7 +10836,7 @@ void P_DoPityCheck(player_t *player) P_SwitchShield(player, SH_PITY); if (player->pity > 0) - S_StartSound(player->mo, mobjinfo[MT_PITY_ICON].seesound); + S_StartSound(player->mo, mobjinfo[MT_PITY_ICON]->seesound); player->pity = 0; } diff --git a/src/r_skins.c b/src/r_skins.c index d0d2eed6287ed69b27fef7eb7fe3acc4c7c61b3c..d5531b72fe1b5629d31a389652fdd06a3ebfd43b 100644 --- a/src/r_skins.c +++ b/src/r_skins.c @@ -230,8 +230,8 @@ static void Sk_SetDefaultValue(skin_t *skin) skin->mindash = 15<<FRACBITS; skin->maxdash = 70<<FRACBITS; - skin->radius = mobjinfo[MT_PLAYER].radius; - skin->height = mobjinfo[MT_PLAYER].height; + skin->radius = mobjinfo[MT_PLAYER]->radius; + skin->height = mobjinfo[MT_PLAYER]->height; skin->spinheight = FixedMul(skin->height, 2*FRACUNIT/3); skin->shieldscale = FRACUNIT; @@ -426,9 +426,9 @@ static void SetSkin(player_t *player, INT32 skinnum) player->charflags = (UINT32)skin->flags; - player->thokitem = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem; - player->spinitem = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem; - player->revitem = skin->revitem < 0 ? (mobjtype_t)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem; + player->thokitem = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->painchance : (UINT32)skin->thokitem; + player->spinitem = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->damage : (UINT32)skin->spinitem; + player->revitem = skin->revitem < 0 ? (mobjtype_t)mobjinfo[MT_PLAYER]->raisestate : (UINT32)skin->revitem; player->followitem = skin->followitem; if (((player->powers[pw_shield] & SH_NOSTACK) == SH_PINK) && (player->revitem == MT_LHRT || player->spinitem == MT_LHRT || player->thokitem == MT_LHRT)) // Healers can't keep their buff.