Refactored doors in multiple files

This commit is contained in:
MontyTRC89 2021-09-05 05:52:50 +02:00
parent 986ee1d510
commit d5ea0becf1
25 changed files with 1380 additions and 1151 deletions

View file

@ -15,10 +15,19 @@
#include "pulley_switch.h"
#include "fullblock_switch.h"
// Doors
#include "generic_doors.h"
#include "double_doors.h"
#include "pushpull_kick_door.h"
#include "sequence_door.h"
#include "steel_door.h"
#include "underwater_door.h"
/// necessary import
#include "setup.h"
using namespace TEN::Entities::Switches;
using namespace TEN::Entities::Doors;
static void StartObject()
{
@ -275,8 +284,111 @@ void StartSwitches()
}
}
void StartDoors()
{
OBJECT_INFO* obj;
for (int objNum = ID_DOOR_TYPE1; objNum <= ID_CLOSED_DOOR6; objNum++)
{
obj = &Objects[objNum];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->control = DoorControl;
obj->collision = DoorCollision;
obj->hitEffect = HIT_RICOCHET;
obj->saveAnim = true;
obj->saveFlags = true;
obj->saveMesh = true;
}
}
obj = &Objects[ID_LIFT_DOORS1];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->control = DoorControl;
obj->hitEffect = HIT_RICOCHET;
obj->saveFlags = true;
}
obj = &Objects[ID_LIFT_DOORS2];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->control = DoorControl;
obj->hitEffect = HIT_RICOCHET;
obj->saveFlags = true;
}
obj = &Objects[ID_SEQUENCE_DOOR1];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->collision = DoorCollision;
obj->control = SequenceDoorControl;
obj->hitEffect = HIT_RICOCHET;
obj->saveAnim = true;
obj->saveFlags = true;
}
for (int i = ID_DOUBLE_DOORS1; i <= ID_DOUBLE_DOORS4; i++)
{
obj = &Objects[i];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->collision = DoubleDoorCollision;
obj->control = PushPullKickDoorControl;
obj->hitEffect = HIT_RICOCHET;
obj->saveAnim = true;
obj->saveFlags = true;
}
}
for (int i = ID_UNDERWATER_DOOR1; i <= ID_UNDERWATER_DOOR4; i++)
{
obj = &Objects[i];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->collision = UnderwaterDoorCollision;
obj->control = PushPullKickDoorControl;
obj->hitEffect = HIT_RICOCHET;
obj->saveAnim = true;
obj->saveFlags = true;
}
}
for (int objNum = ID_PUSHPULL_DOOR1; objNum <= ID_KICK_DOOR4; objNum++)
{
obj = &Objects[objNum];
if (obj->loaded)
{
obj->initialise = InitialiseDoor;
obj->collision = PushPullKickDoorCollision;
obj->control = PushPullKickDoorControl;
obj->hitEffect = HIT_RICOCHET;
obj->saveAnim = true;
obj->saveFlags = true;
}
}
obj = &Objects[ID_STEEL_DOOR];
if (obj->loaded)
{
obj->initialise = InitialiseSteelDoor;
obj->collision = SteelDoorCollision;
obj->saveAnim = true;
obj->saveFlags = true;
obj->saveMesh = true;
obj->savePosition = true;
}
}
void InitialiseGenericObjects()
{
StartObject();
StartSwitches();
StartDoors();
}