mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-13 21:31:32 +00:00
Merge branch 'respawnspecials-mobjtype-hotfix' into 'next'
P_RespawnSpecials mobj type hotfix See merge request STJr/SRB2!217
This commit is contained in:
commit
fa507ee939
2 changed files with 24 additions and 0 deletions
|
@ -231,6 +231,8 @@ boolean LUAh_MobjHook(mobj_t *mo, enum hook which)
|
|||
if (!gL || !(hooksAvailable[which/8] & (1<<(which%8))))
|
||||
return false;
|
||||
|
||||
I_Assert(mo->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic mobj hooks
|
||||
|
@ -406,6 +408,8 @@ UINT8 LUAh_MobjCollideHook(mobj_t *thing1, mobj_t *thing2, enum hook which)
|
|||
if (!gL || !(hooksAvailable[which/8] & (1<<(which%8))))
|
||||
return 0;
|
||||
|
||||
I_Assert(thing1->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic mobj collision hooks
|
||||
|
@ -479,6 +483,8 @@ boolean LUAh_MobjThinker(mobj_t *mo)
|
|||
if (!gL || !(hooksAvailable[hook_MobjThinker/8] & (1<<(hook_MobjThinker%8))))
|
||||
return false;
|
||||
|
||||
I_Assert(mo->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic mobj thinker hooks
|
||||
|
@ -532,6 +538,8 @@ boolean LUAh_TouchSpecial(mobj_t *special, mobj_t *toucher)
|
|||
if (!gL || !(hooksAvailable[hook_TouchSpecial/8] & (1<<(hook_TouchSpecial%8))))
|
||||
return 0;
|
||||
|
||||
I_Assert(special->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic touch special hooks
|
||||
|
@ -595,6 +603,8 @@ UINT8 LUAh_ShouldDamage(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32
|
|||
if (!gL || !(hooksAvailable[hook_ShouldDamage/8] & (1<<(hook_ShouldDamage%8))))
|
||||
return 0;
|
||||
|
||||
I_Assert(target->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic should damage hooks
|
||||
|
@ -676,6 +686,8 @@ boolean LUAh_MobjDamage(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32
|
|||
if (!gL || !(hooksAvailable[hook_MobjDamage/8] & (1<<(hook_MobjDamage%8))))
|
||||
return 0;
|
||||
|
||||
I_Assert(target->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic mobj damage hooks
|
||||
|
@ -747,6 +759,8 @@ boolean LUAh_MobjDeath(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|
|||
if (!gL || !(hooksAvailable[hook_MobjDeath/8] & (1<<(hook_MobjDeath%8))))
|
||||
return 0;
|
||||
|
||||
I_Assert(target->type < NUMMOBJTYPES);
|
||||
|
||||
lua_settop(gL, 0);
|
||||
|
||||
// Look for all generic mobj death hooks
|
||||
|
|
10
src/p_mobj.c
10
src/p_mobj.c
|
@ -8332,6 +8332,16 @@ void P_RespawnSpecials(void)
|
|||
if (mthing->type == mobjinfo[i].doomednum)
|
||||
break;
|
||||
|
||||
if (i == NUMMOBJTYPES) // prevent creation of objects with this type -- Monster Iestyn 17/12/17
|
||||
{
|
||||
// 3D Mode start Thing is unlikely to be added to the que,
|
||||
// so don't bother checking for that specific type
|
||||
CONS_Alert(CONS_WARNING, M_GetText("P_RespawnSpecials: Unknown thing type %d attempted to respawn at (%d, %d)\n"), mthing->type, mthing->x, mthing->y);
|
||||
// pull it from the que
|
||||
iquetail = (iquetail+1)&(ITEMQUESIZE-1);
|
||||
return;
|
||||
}
|
||||
|
||||
//CTF rings should continue to respawn as normal rings outside of CTF.
|
||||
if (gametype != GT_CTF)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue