diff --git a/TombEngine/Game/control/trigger.cpp b/TombEngine/Game/control/trigger.cpp index b064977d9..46f72b262 100644 --- a/TombEngine/Game/control/trigger.cpp +++ b/TombEngine/Game/control/trigger.cpp @@ -64,17 +64,15 @@ int TriggerActive(ItemInfo* item) bool GetKeyTrigger(ItemInfo* item) { - auto triggerIndex = GetTriggerIndex(item); - - if (triggerIndex == nullptr) + short* triggerIndexPtr = GetTriggerIndex(item); + if (triggerIndexPtr == nullptr) return false; - short* trigger = triggerIndex; - - if (*trigger & END_BIT) + short* triggerPtr = triggerIndexPtr; + if (*triggerPtr & END_BIT) return false; - for (short* j = &trigger[2]; (*j >> 8) & 0x3C || item != &g_Level.Items[*j & VALUE_BITS]; j++) + for (short* j = &triggerPtr[2]; (*j >> 8) & 0x3C || item != &g_Level.Items[*j & VALUE_BITS]; j++) { if (*j & END_BIT) return false; @@ -86,13 +84,11 @@ bool GetKeyTrigger(ItemInfo* item) // NOTE: attatchedToSwitch parameter unused. int GetSwitchTrigger(ItemInfo* item, short* itemNumbersPtr, int attatchedToSwitch) { - auto triggerIndex = GetTriggerIndex(item); - - if (triggerIndex == nullptr) + short* triggerIndexPtr = GetTriggerIndex(item); + if (triggerIndexPtr == nullptr) return 0; - short* trigger = triggerIndex; - + short* trigger = triggerIndexPtr; if (*trigger & END_BIT) return 0; diff --git a/TombEngine/Game/items.h b/TombEngine/Game/items.h index 86fbafd59..6a4e79f32 100644 --- a/TombEngine/Game/items.h +++ b/TombEngine/Game/items.h @@ -44,12 +44,12 @@ enum ItemStatus enum ItemFlags { - IFLAG_TRIGGERED = (1 << 5), - IFLAG_CLEAR_BODY = (1 << 7), - IFLAG_INVISIBLE = (1 << 8), + IFLAG_TRIGGERED = (1 << 5), + IFLAG_CLEAR_BODY = (1 << 7), + IFLAG_INVISIBLE = (1 << 8), IFLAG_ACTIVATION_MASK = (0x1F << 9), // Bits 9-13 (IFLAG_CODEBITS) - IFLAG_REVERSE = (1 << 14), - IFLAG_KILLED = (1 << 15) + IFLAG_REVERSE = (1 << 14), + IFLAG_KILLED = (1 << 15) }; enum class EffectType diff --git a/TombEngine/Objects/Generic/puzzles_keys.cpp b/TombEngine/Objects/Generic/puzzles_keys.cpp index 6dddda428..4a9c7b931 100644 --- a/TombEngine/Objects/Generic/puzzles_keys.cpp +++ b/TombEngine/Objects/Generic/puzzles_keys.cpp @@ -230,15 +230,14 @@ void PuzzleDoneCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* co auto& player = GetLaraInfo(*laraItem); // NOTE: Only execute code below if Triggertype is switch trigger. - auto triggerIndex = GetTriggerIndex(&receptacleItem); - - if (triggerIndex == nullptr) + short* triggerIndexPtr = GetTriggerIndex(&receptacleItem); + if (triggerIndexPtr == nullptr) return; - int triggerType = (*(triggerIndex++) >> 8) & TRIGGER_BITS; - + int triggerType = (*(triggerIndexPtr++) >> 8) & TRIGGER_BITS; if (triggerType != TRIGGER_TYPES::SWITCH) return; + AnimateItem(&receptacleItem); // Start level with correct object when loading game. @@ -330,8 +329,8 @@ void PuzzleDoneCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* co void PuzzleDone(ItemInfo* item, short itemNumber) { - auto triggerIndex = GetTriggerIndex(item); - short triggerType = (triggerIndex != nullptr) ? (*(triggerIndex++) >> 8) & TRIGGER_BITS : TRIGGER_TYPES::TRIGGER; + short* triggerIndexPtr = GetTriggerIndex(item); + short triggerType = (triggerIndexPtr != nullptr) ? (*(triggerIndexPtr++) >> 8) & TRIGGER_BITS : TRIGGER_TYPES::TRIGGER; if (triggerType == TRIGGER_TYPES::SWITCH) {