- do not update the sector for sector effectors moving themselves.

They need to stay in their originally assigned sector forever, or really bad things can happen.
If due to some math imprecisions they change their sector, they can screw up the entire map.
This commit is contained in:
Christoph Oelckers 2022-01-30 12:25:15 +01:00
parent b8ea49ee0e
commit 63f1a968d6

View file

@ -2914,7 +2914,8 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
}
ms(actor);
SetActor(actor, actor->spr.pos);
// I have no idea why this is here, but the SE's sector must never, *EVER* change, or the map will corrupt.
//SetActor(actor, actor->spr.pos);
if ((sc->floorz - sc->ceilingz) < (108 << 8))
{
@ -3078,7 +3079,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
}
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
if ((sc->floorz - sc->ceilingz) < (108 << 8))
{
@ -3197,7 +3198,7 @@ void handle_se02(DDukeActor* actor)
}
}
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
}
}
@ -3404,7 +3405,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER)
sc->addceilingz(actor->spr.zvel);
sector[actor->temp_data[0]].addceilingz(actor->spr.zvel);
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
}
//---------------------------------------------------------------------------
@ -3561,7 +3562,7 @@ void handle_se11(DDukeActor *actor)
actor->temp_data[2] += k;
actor->temp_data[4] += k;
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
for(auto& wal : wallsofsector(sc))
{
@ -3574,7 +3575,7 @@ void handle_se11(DDukeActor *actor)
actor->temp_data[2] -= k;
actor->temp_data[4] -= k;
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
return;
}
}
@ -3585,7 +3586,7 @@ void handle_se11(DDukeActor *actor)
actor->temp_data[4] = 0;
actor->temp_data[2] &= 0xffffff00;
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
}
}
}
@ -3775,7 +3776,7 @@ void handle_se15(DDukeActor* actor)
}
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
}
}
@ -3819,7 +3820,7 @@ void handle_se16(DDukeActor* actor, int REACTOR, int REACTOR2)
else sc->addceilingz(-512);
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
}
//---------------------------------------------------------------------------
@ -4313,7 +4314,7 @@ void handle_se26(DDukeActor* actor)
}
ms(actor);
SetActor(actor, actor->spr.pos);
//SetActor(actor, actor->spr.pos);
}
//---------------------------------------------------------------------------