diff --git a/TR5Main/Game/health.cpp b/TR5Main/Game/health.cpp index 498ef86d5..70cfdffb1 100644 --- a/TR5Main/Game/health.cpp +++ b/TR5Main/Game/health.cpp @@ -193,7 +193,7 @@ int DrawAllPickups() { if (PickupX > 0) { - PickupX += -PickupX / 32; + PickupX += -PickupX >> 3; g_Renderer.drawPickup(Pickups[CurrentPickup].objectNumber); } else diff --git a/TR5Main/Objects/TR4/tr4_objects.cpp b/TR5Main/Objects/TR4/tr4_objects.cpp index dab703457..767a1c0d1 100644 --- a/TR5Main/Objects/TR4/tr4_objects.cpp +++ b/TR5Main/Objects/TR4/tr4_objects.cpp @@ -1,5 +1,6 @@ #include "framework.h" #include "tr4_objects.h" +#include "pickup.h" /// entities #include "tr4_ahmet.h" // OK #include "tr4_baddy.h" // OK @@ -781,6 +782,7 @@ static void StartObject(OBJECT_INFO* obj) obj->control = MapperControl; obj->saveFlags = true; obj->saveAnim = true; + obj->drawRoutine = nullptr; } obj = &Objects[ID_ELEMENT_PUZZLE]; @@ -844,6 +846,19 @@ static void StartObject(OBJECT_INFO* obj) { obj->initialise = 0; obj->control = ClockworkBeetleControl; + obj->collision = PickupCollision; + } + + obj = &Objects[ID_CLOCKWORK_BEETLE_COMBO1]; + if (obj->loaded) + { + obj->collision = PickupCollision; + } + + obj = &Objects[ID_CLOCKWORK_BEETLE_COMBO2]; + if (obj->loaded) + { + obj->collision = PickupCollision; } } diff --git a/TR5Main/Objects/TR5/tr5_objects.cpp b/TR5Main/Objects/TR5/tr5_objects.cpp index bd6634330..6378329d1 100644 --- a/TR5Main/Objects/TR5/tr5_objects.cpp +++ b/TR5Main/Objects/TR5/tr5_objects.cpp @@ -1259,9 +1259,6 @@ static void StartPickup(OBJECT_INFO *obj) InitPickup(obj, ID_FLARE_INV_ITEM); InitPickup(obj, ID_WATERSKIN1_EMPTY); InitPickup(obj, ID_WATERSKIN2_EMPTY); - InitPickup(obj, ID_CLOCKWORK_BEETLE); - InitPickup(obj, ID_CLOCKWORK_BEETLE_COMBO1); - InitPickup(obj, ID_CLOCKWORK_BEETLE_COMBO2); InitPickup(obj, ID_GOLDROSE_ITEM); }