mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-10 23:01:59 +00:00
Revert "- avoid double linking to and unlinking from the world for actors."
This reverts commit 8fc9f1e5ef
.
As I already feared, this does not work right. The entire linking/unlinking code is simply too fragile. So no protection here against inept tinkering.
This commit is contained in:
parent
3ef806c2e9
commit
043de8c780
3 changed files with 1 additions and 15 deletions
|
@ -414,7 +414,6 @@ enum ActorFlag8
|
||||||
MF8_STOPRAILS = 0x00000200, // [MC] Prevent rails from going further if an actor has this flag.
|
MF8_STOPRAILS = 0x00000200, // [MC] Prevent rails from going further if an actor has this flag.
|
||||||
MF8_ABSVIEWANGLES = 0x00000400, // [MC] By default view angle/pitch/roll is an offset. This will make it absolute instead.
|
MF8_ABSVIEWANGLES = 0x00000400, // [MC] By default view angle/pitch/roll is an offset. This will make it absolute instead.
|
||||||
MF8_FALLDAMAGE = 0x00000800, // Monster will take fall damage regardless of map settings.
|
MF8_FALLDAMAGE = 0x00000800, // Monster will take fall damage regardless of map settings.
|
||||||
MF8_LINKEDTOWORLD = 0x00010000, // actor is currently linked to the blockmap and sector chain.
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -286,12 +286,6 @@ void P_LineOpening (FLineOpening &open, AActor *actor, const line_t *linedef, co
|
||||||
void AActor::UnlinkFromWorld (FLinkContext *ctx)
|
void AActor::UnlinkFromWorld (FLinkContext *ctx)
|
||||||
{
|
{
|
||||||
if (ctx != nullptr) ctx->sector_list = nullptr;
|
if (ctx != nullptr) ctx->sector_list = nullptr;
|
||||||
if (!(flags8 & MF8_LINKEDTOWORLD))
|
|
||||||
{
|
|
||||||
//assert(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
flags8 &= ~MF8_LINKEDTOWORLD;
|
|
||||||
if (!(flags & MF_NOSECTOR))
|
if (!(flags & MF_NOSECTOR))
|
||||||
{
|
{
|
||||||
// invisible things don't need to be in sector list
|
// invisible things don't need to be in sector list
|
||||||
|
@ -449,12 +443,6 @@ bool AActor::FixMapthingPos()
|
||||||
|
|
||||||
void AActor::LinkToWorld(FLinkContext *ctx, bool spawningmapthing, sector_t *sector)
|
void AActor::LinkToWorld(FLinkContext *ctx, bool spawningmapthing, sector_t *sector)
|
||||||
{
|
{
|
||||||
if (flags8 & MF8_LINKEDTOWORLD)
|
|
||||||
{
|
|
||||||
//assert(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool spawning = spawningmapthing;
|
bool spawning = spawningmapthing;
|
||||||
|
|
||||||
if (spawning)
|
if (spawning)
|
||||||
|
@ -480,7 +468,6 @@ void AActor::LinkToWorld(FLinkContext *ctx, bool spawningmapthing, sector_t *sec
|
||||||
Sector = sector;
|
Sector = sector;
|
||||||
subsector = Level->PointInRenderSubsector(Pos()); // this is from the rendering nodes, not the gameplay nodes!
|
subsector = Level->PointInRenderSubsector(Pos()); // this is from the rendering nodes, not the gameplay nodes!
|
||||||
section = subsector->section;
|
section = subsector->section;
|
||||||
flags8 |= MF8_LINKEDTOWORLD;
|
|
||||||
|
|
||||||
if (!(flags & MF_NOSECTOR))
|
if (!(flags & MF_NOSECTOR))
|
||||||
{
|
{
|
||||||
|
|
|
@ -371,7 +371,7 @@ void AActor::Serialize(FSerializer &arc)
|
||||||
|
|
||||||
SerializeTerrain(arc, "floorterrain", floorterrain, &def->floorterrain);
|
SerializeTerrain(arc, "floorterrain", floorterrain, &def->floorterrain);
|
||||||
SerializeArgs(arc, "args", args, def->args, special);
|
SerializeArgs(arc, "args", args, def->args, special);
|
||||||
if (arc.isReading()) flags8 &= ~MF8_LINKEDTOWORLD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef A
|
#undef A
|
||||||
|
|
Loading…
Reference in a new issue