mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Separate underwater switch objects
This commit is contained in:
parent
15a9c0f76e
commit
b884c8e69b
6 changed files with 32 additions and 32 deletions
|
@ -4,8 +4,9 @@ Version 1.3
|
|||
* Fix crash if title logo is removed from Textures folder.
|
||||
* Fix crash if unknown player state ID is encountered.
|
||||
* Fix bug with OCB 2 on pushables.
|
||||
* Fix pushables "stop" sound bug.
|
||||
* Fix pushables camera during edge slips bug.
|
||||
* Fix pushable "stop" sound bug.
|
||||
* Fix pushable camera bug during edge slip.
|
||||
* Separate underwater wall and ceiling switch objects into two slots each.
|
||||
|
||||
Version 1.2
|
||||
===========
|
||||
|
|
|
@ -57,17 +57,7 @@ namespace TEN::Entities::Switches
|
|||
)
|
||||
};
|
||||
|
||||
void UnderwaterSwitchCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
||||
{
|
||||
auto* switchItem = &g_Level.Items[itemNumber];
|
||||
|
||||
if (switchItem->TriggerFlags == 0)
|
||||
WallUnderwaterSwitchCollision(itemNumber, laraItem, coll);
|
||||
else
|
||||
CeilingUnderwaterSwitchCollision(itemNumber, laraItem, coll);
|
||||
}
|
||||
|
||||
void WallUnderwaterSwitchCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
||||
void CollideUnderwaterWallSwitch(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
||||
{
|
||||
auto* lara = GetLaraInfo(laraItem);
|
||||
auto* switchItem = &g_Level.Items[itemNumber];
|
||||
|
@ -106,7 +96,7 @@ namespace TEN::Entities::Switches
|
|||
}
|
||||
}
|
||||
|
||||
void CeilingUnderwaterSwitchCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
||||
void CollideUnderwaterCeilingSwitch(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
||||
{
|
||||
auto* lara = GetLaraInfo(laraItem);
|
||||
auto* switchItem = &g_Level.Items[itemNumber];
|
||||
|
|
|
@ -5,7 +5,6 @@ struct ItemInfo;
|
|||
|
||||
namespace TEN::Entities::Switches
|
||||
{
|
||||
void UnderwaterSwitchCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll);
|
||||
void CeilingUnderwaterSwitchCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll);
|
||||
void WallUnderwaterSwitchCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll);
|
||||
void CollideUnderwaterWallSwitch(short itemNumber, ItemInfo* playerItem, CollisionInfo* coll);
|
||||
void CollideUnderwaterCeilingSwitch(short itemNumber, ItemInfo* playerItem, CollisionInfo* coll);
|
||||
}
|
||||
|
|
|
@ -218,13 +218,23 @@ void StartSwitches(ObjectInfo* object)
|
|||
object->shadowType = ShadowMode::All;
|
||||
}
|
||||
|
||||
for (int objectNumber = ID_UNDERWATER_SWITCH1; objectNumber <= ID_UNDERWATER_SWITCH4; objectNumber++)
|
||||
for (int objectID = ID_UNDERWATER_WALL_SWITCH_1; objectID <= ID_UNDERWATER_WALL_SWITCH_2; objectID++)
|
||||
{
|
||||
object = &Objects[objectNumber];
|
||||
object = &Objects[objectID];
|
||||
if (object->loaded)
|
||||
{
|
||||
object->control = SwitchControl;
|
||||
object->collision = UnderwaterSwitchCollision;
|
||||
object->collision = CollideUnderwaterWallSwitch;
|
||||
}
|
||||
}
|
||||
|
||||
for (int objectID = ID_UNDERWATER_CEILING_SWITCH_1; objectID <= ID_UNDERWATER_CEILING_SWITCH_2; objectID++)
|
||||
{
|
||||
object = &Objects[objectID];
|
||||
if (object->loaded)
|
||||
{
|
||||
object->control = SwitchControl;
|
||||
object->collision = CollideUnderwaterCeilingSwitch;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -622,10 +622,10 @@ enum GAME_OBJECT_ID : short
|
|||
ID_SHOOT_SWITCH3,
|
||||
ID_SHOOT_SWITCH4,
|
||||
ID_AIRLOCK_SWITCH,
|
||||
ID_UNDERWATER_SWITCH1,
|
||||
ID_UNDERWATER_SWITCH2,
|
||||
ID_UNDERWATER_SWITCH3,
|
||||
ID_UNDERWATER_SWITCH4,
|
||||
ID_UNDERWATER_WALL_SWITCH_1,
|
||||
ID_UNDERWATER_WALL_SWITCH_2,
|
||||
ID_UNDERWATER_CEILING_SWITCH_1,
|
||||
ID_UNDERWATER_CEILING_SWITCH_2,
|
||||
ID_TURN_SWITCH,
|
||||
ID_COG_SWITCH,
|
||||
ID_LEVER_SWITCH,
|
||||
|
|
|
@ -623,10 +623,10 @@ The following constants are inside ObjID.
|
|||
SHOOT_SWITCH3
|
||||
SHOOT_SWITCH4
|
||||
AIRLOCK_SWITCH
|
||||
UNDERWATER_SWITCH1
|
||||
UNDERWATER_SWITCH2
|
||||
UNDERWATER_SWITCH3
|
||||
UNDERWATER_SWITCH4
|
||||
ID_UNDERWATER_WALL_SWITCH_1
|
||||
ID_UNDERWATER_WALL_SWITCH_2
|
||||
ID_UNDERWATER_CEILING_SWITCH_1
|
||||
ID_UNDERWATER_CEILING_SWITCH_2
|
||||
TURN_SWITCH
|
||||
COG_SWITCH
|
||||
LEVER_SWITCH
|
||||
|
@ -1796,10 +1796,10 @@ static const std::unordered_map<std::string, GAME_OBJECT_ID> kObjIDs {
|
|||
{ "SHOOT_SWITCH3", ID_SHOOT_SWITCH3 },
|
||||
{ "SHOOT_SWITCH4", ID_SHOOT_SWITCH4 },
|
||||
{ "AIRLOCK_SWITCH", ID_AIRLOCK_SWITCH },
|
||||
{ "UNDERWATER_SWITCH1", ID_UNDERWATER_SWITCH1 },
|
||||
{ "UNDERWATER_SWITCH2", ID_UNDERWATER_SWITCH2 },
|
||||
{ "UNDERWATER_SWITCH3", ID_UNDERWATER_SWITCH3 },
|
||||
{ "UNDERWATER_SWITCH4", ID_UNDERWATER_SWITCH4 },
|
||||
{ "UNDERWATER_WALL_SWITCH_1", ID_UNDERWATER_WALL_SWITCH_1 },
|
||||
{ "UNDERWATER_WALL_SWITCH_2", ID_UNDERWATER_WALL_SWITCH_2 },
|
||||
{ "UNDERWATER_CEILING_SWITCH_1", ID_UNDERWATER_CEILING_SWITCH_1 },
|
||||
{ "UNDERWATER_CEILING_SWITCH_2", ID_UNDERWATER_CEILING_SWITCH_2 },
|
||||
{ "TURN_SWITCH", ID_TURN_SWITCH },
|
||||
{ "COG_SWITCH", ID_COG_SWITCH },
|
||||
{ "LEVER_SWITCH", ID_LEVER_SWITCH },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue