Fix: Ceiling and Floor trapdoors (#972)

Although the trapdoor code were correct, looks like that at some moment, someone merged all the trapdoors to initialize them together with the same values.

But Ceiling and Floor Trapdoors must use different Collision functions. So this fix separate those objects from the normal trapdoors and put their right collision functions.
This commit is contained in:
Adngel 2023-01-28 00:00:56 +01:00 committed by GitHub
parent c72cdf8e50
commit 1ba34ae83a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -43,7 +43,7 @@ using namespace TEN::Entities::Generic;
static void StartObject(ObjectInfo* object)
{
for (int objectNumber = ID_TRAPDOOR1; objectNumber <= ID_CEILING_TRAPDOOR2; objectNumber++)
for (int objectNumber = ID_TRAPDOOR1; objectNumber <= ID_TRAPDOOR3; objectNumber++)
{
object = &Objects[objectNumber];
if (object->loaded)
@ -59,6 +59,51 @@ static void StartObject(ObjectInfo* object)
}
}
for (int objectNumber = ID_FLOOR_TRAPDOOR1; objectNumber <= ID_FLOOR_TRAPDOOR2; objectNumber++)
{
object = &Objects[objectNumber];
if (object->loaded)
{
object->initialise = InitialiseTrapDoor;
object->collision = FloorTrapDoorCollision;
object->control = TrapDoorControl;
object->floorBorder = TrapDoorFloorBorder;
object->ceilingBorder = TrapDoorCeilingBorder;
object->floor = TrapDoorFloor;
object->ceiling = TrapDoorCeiling;
object->SetupHitEffect(true);
}
}
for (int objectNumber = ID_CEILING_TRAPDOOR1; objectNumber <= ID_CEILING_TRAPDOOR2; objectNumber++)
{
object = &Objects[objectNumber];
if (object->loaded)
{
object->initialise = InitialiseTrapDoor;
object->collision = CeilingTrapDoorCollision;
object->control = TrapDoorControl;
object->floorBorder = TrapDoorFloorBorder;
object->ceilingBorder = TrapDoorCeilingBorder;
object->floor = TrapDoorFloor;
object->ceiling = TrapDoorCeiling;
object->SetupHitEffect(true);
}
}
/*object = &Objects[ID_SCALING_TRAPDOOR]; //I don't know what this Object purpose.
if (object->loaded)
{
object->initialise = InitialiseTrapDoor;
object->collision = TrapDoorCollision;
object->control = TrapDoorControl;
object->floorBorder = TrapDoorFloorBorder;
object->ceilingBorder = TrapDoorCeilingBorder;
object->floor = TrapDoorFloor;
object->ceiling = TrapDoorCeiling;
object->SetupHitEffect(true);
}*/
object = &Objects[ID_BRIDGE_FLAT];
if (object->loaded)
{