diff --git a/src/lua_baselib.c b/src/lua_baselib.c index f320cfdce..b3f826532 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -921,14 +921,14 @@ static int lib_pCreateFloorSpriteSlope(lua_State *L) return 1; } -static int lib_pDeleteFloorSpriteSlope(lua_State *L) +static int lib_pRemoveFloorSpriteSlope(lua_State *L) { mobj_t *mobj = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ)); NOHUD INLEVEL if (!mobj) return LUA_ErrInvalid(L, "mobj_t"); - P_DeleteFloorSpriteSlope(mobj); + P_RemoveFloorSpriteSlope(mobj); return 1; } @@ -3559,7 +3559,7 @@ static luaL_Reg lib[] = { {"P_CanRunOnWater",lib_pCanRunOnWater}, {"P_MaceRotate",lib_pMaceRotate}, {"P_CreateFloorSpriteSlope",lib_pCreateFloorSpriteSlope}, - {"P_DeleteFloorSpriteSlope",lib_pDeleteFloorSpriteSlope}, + {"P_RemoveFloorSpriteSlope",lib_pRemoveFloorSpriteSlope}, {"P_RailThinker",lib_pRailThinker}, {"P_XYMovement",lib_pXYMovement}, {"P_RingXYMovement",lib_pRingXYMovement}, diff --git a/src/p_mobj.c b/src/p_mobj.c index 7529b196a..84d9a70b6 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10884,7 +10884,7 @@ void *P_CreateFloorSpriteSlope(mobj_t *mobj) return (void *)mobj->floorspriteslope; } -void P_DeleteFloorSpriteSlope(mobj_t *mobj) +void P_RemoveFloorSpriteSlope(mobj_t *mobj) { if (mobj->floorspriteslope) Z_Free(mobj->floorspriteslope); @@ -10947,14 +10947,13 @@ void P_RemoveMobj(mobj_t *mobj) P_DelSeclist(sector_list); sector_list = NULL; } + mobj->flags |= MF_NOSECTOR|MF_NOBLOCKMAP; mobj->subsector = NULL; mobj->state = NULL; mobj->player = NULL; - if (mobj->floorspriteslope) - Z_Free(mobj->floorspriteslope); - mobj->floorspriteslope = NULL; + P_RemoveFloorSpriteSlope(mobj); // stop any playing sound S_StopSound(mobj); diff --git a/src/p_mobj.h b/src/p_mobj.h index a60da67d3..5bb7c908e 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -477,7 +477,7 @@ void P_SpawnHoopOfSomething(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT void P_SpawnPrecipitation(void); void P_SpawnParaloop(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32 number, mobjtype_t type, statenum_t nstate, angle_t rotangle, boolean spawncenter); void *P_CreateFloorSpriteSlope(mobj_t *mobj); -void P_DeleteFloorSpriteSlope(mobj_t *mobj); +void P_RemoveFloorSpriteSlope(mobj_t *mobj); boolean P_BossTargetPlayer(mobj_t *actor, boolean closest); boolean P_SupermanLook4Players(mobj_t *actor); void P_DestroyRobots(void);