diff --git a/TR5Main/Game/camera.cpp b/TR5Main/Game/camera.cpp index 92830b930..a301bda81 100644 --- a/TR5Main/Game/camera.cpp +++ b/TR5Main/Game/camera.cpp @@ -1716,7 +1716,7 @@ void CalculateCamera() if (Camera.type && Camera.flags != CHASE_OBJECT - && (SniperCamActive = Camera.fixed[Camera.number].flags & 3, Camera.fixed[Camera.number].flags & 2)) + && (Camera.number != -1 &&(SniperCamActive = Camera.fixed[Camera.number].flags & 3, Camera.fixed[Camera.number].flags & 2))) { PHD_VECTOR pos; pos.x = 0; diff --git a/TR5Main/Game/pickup.cpp b/TR5Main/Game/pickup.cpp index 87016fd99..9722bc004 100644 --- a/TR5Main/Game/pickup.cpp +++ b/TR5Main/Game/pickup.cpp @@ -597,12 +597,12 @@ void PuzzleHoleCollision(short itemNum, ITEM_INFO* l, COLL_INFO* coll) { if (g_Inventory->GetSelectedObject() == NO_ITEM) { - if (g_Inventory->IsObjectPresentInInventory(item->objectNumber - 70)) - g_Inventory->SetEnterObject(item->objectNumber - 70); + if (g_Inventory->IsObjectPresentInInventory(item->objectNumber - (ID_PUZZLE_HOLE1 - ID_PUZZLE_ITEM1))) + g_Inventory->SetEnterObject(item->objectNumber - (ID_PUZZLE_HOLE1 - ID_PUZZLE_ITEM1)); item->pos.yRot = oldYrot; return; } - if (g_Inventory->GetSelectedObject() != item->objectNumber - 70) + if (g_Inventory->GetSelectedObject() != item->objectNumber - (ID_PUZZLE_HOLE1 - ID_PUZZLE_ITEM1)) { item->pos.yRot = oldYrot; return; @@ -704,11 +704,11 @@ void KeyHoleCollision(short itemNum, ITEM_INFO* l, COLL_INFO* coll) return; if (g_Inventory->GetSelectedObject() == NO_ITEM) { - if (g_Inventory->IsObjectPresentInInventory(item->objectNumber - 62)) - g_Inventory->SetEnterObject(item->objectNumber - 62); + if (g_Inventory->IsObjectPresentInInventory(item->objectNumber - (ID_KEY_HOLE1 - ID_KEY_ITEM1))) + g_Inventory->SetEnterObject(item->objectNumber - (ID_KEY_HOLE1 - ID_KEY_ITEM1)); return; } - if (g_Inventory->GetSelectedObject() != item->objectNumber - 62) + if (g_Inventory->GetSelectedObject() != item->objectNumber - (ID_KEY_HOLE1 - ID_KEY_ITEM1)) return; } @@ -1374,7 +1374,7 @@ short* FindPlinth(ITEM_INFO* item) void PuzzleDone(ITEM_INFO* item, short itemNum) { - item->objectNumber += 8; + item->objectNumber += (ID_PUZZLE_DONE1 - ID_PUZZLE_HOLE1); item->animNumber = Objects[item->objectNumber].animIndex; item->frameNumber = Anims[item->animNumber].frameBase; item->requiredAnimState = 0;