diff --git a/TR5Main/Game/inventory.cpp b/TR5Main/Game/inventory.cpp index b570d533c..3bf9cbb2d 100644 --- a/TR5Main/Game/inventory.cpp +++ b/TR5Main/Game/inventory.cpp @@ -152,7 +152,7 @@ Inventory::Inventory() m_objectsTable[INV_OBJECT_FLARES] = InventoryObjectDefinition(ID_FLARE_INV_ITEM, STRING_FLARES, -1, 0); m_objectsTable[INV_OBJECT_TIMEX] = InventoryObjectDefinition(ID_COMPASS_ITEM, STRING_TIMEX, -1, 0); m_objectsTable[INV_OBJECT_CROWBAR] = InventoryObjectDefinition(ID_CROWBAR_ITEM, STRING_CROWBAR, -1, 0); - m_objectsTable[INV_OBJECT_GRENADE_LAUNCHER] = InventoryObjectDefinition(ID_GRENADE_ITEM, STRING_GRENADE_LAUNCHER, -1, 0); + m_objectsTable[INV_OBJECT_GRENADE_LAUNCHER] = InventoryObjectDefinition(ID_GRENADE_GUN_ITEM, STRING_GRENADE_LAUNCHER, -1, 0); m_objectsTable[INV_OBJECT_GRENADE_AMMO1] = InventoryObjectDefinition(ID_GRENADE_AMMO1_ITEM, STRING_GRENADE_AMMO1, -1, 0); m_objectsTable[INV_OBJECT_GRENADE_AMMO2] = InventoryObjectDefinition(ID_GRENADE_AMMO2_ITEM, STRING_GRENADE_AMMO2, -1, 0); m_objectsTable[INV_OBJECT_GRENADE_AMMO3] = InventoryObjectDefinition(ID_GRENADE_AMMO3_ITEM, STRING_GRENADE_AMMO3, -1, 0); @@ -170,7 +170,7 @@ Inventory::Inventory() m_objectsTable[INV_OBJECT_SUNGLASSES] = InventoryObjectDefinition(ID_INVENTORY_SUNGLASSES, STRING_DISPLAY, -1, 0); m_objectsTable[INV_OBJECT_POLAROID] = InventoryObjectDefinition(ID_INVENTORY_POLAROID, STRING_LARA_HOME, -1, 0); m_objectsTable[INV_OBJECT_HEADPHONES] = InventoryObjectDefinition(ID_INVENTORY_HEADPHONES, STRING_SOUND, -1, 0); - m_objectsTable[INV_OBJECT_DIARY] = InventoryObjectDefinition(ID_DIARY, STRING_DIARY, -1, 0); + m_objectsTable[INV_OBJECT_DIARY] = InventoryObjectDefinition(ID_DIARY_ITEM, STRING_DIARY, -1, 0); m_objectsTable[INV_OBJECT_WATERSKIN1] = InventoryObjectDefinition(ID_WATERSKIN1_EMPTY, STRING_WATERSKIN1_EMPTY, -1, 0); m_objectsTable[INV_OBJECT_WATERSKIN2] = InventoryObjectDefinition(ID_WATERSKIN2_EMPTY, STRING_WATERSKIN2_EMPTY, -1, 0); @@ -1639,7 +1639,7 @@ void Inventory::UseCurrentItem() } // Grenade launcher - if (objectNumber == ID_GRENADE_ITEM) + if (objectNumber == ID_GRENADE_GUN_ITEM) { if (canUseWeapons) { diff --git a/TR5Main/Game/pickup.cpp b/TR5Main/Game/pickup.cpp index ef3359b68..308954bc9 100644 --- a/TR5Main/Game/pickup.cpp +++ b/TR5Main/Game/pickup.cpp @@ -186,7 +186,7 @@ void PickedUpObject(short objectNumber) break; - case ID_GRENADE_ITEM: + case ID_GRENADE_GUN_ITEM: if (!(g_LaraExtra.Weapons[WEAPON_GRENADE_LAUNCHER].Present)) { g_LaraExtra.Weapons[WEAPON_GRENADE_LAUNCHER].Present = true; @@ -343,7 +343,7 @@ void PickedUpObject(short objectNumber) g_LaraExtra.Crowbar = true; break; - case ID_DIARY: + case ID_DIARY_ITEM: g_LaraExtra.Diary.Present = true; break; diff --git a/TR5Main/Global/objectslist.h b/TR5Main/Global/objectslist.h index 9bf926ec0..4dd96573a 100644 --- a/TR5Main/Global/objectslist.h +++ b/TR5Main/Global/objectslist.h @@ -655,8 +655,8 @@ typedef enum GAME_OBJECT_ID ID_SNOWMOBILE, ID_QUAD_LARA_ANIMS, ID_QUAD, - ID_BOAT_LARA_ANIMS, - ID_BOAT, + ID_SPEEDBOAT_LARA_ANIMS, + ID_SPEEDBOAT, ID_KAYAK_LARA_ANIMS, ID_KAYAK, ID_UPV_LARA_ANIMS, @@ -667,6 +667,11 @@ typedef enum GAME_OBJECT_ID ID_JEEP, // TR4 - 95% Working ID_MOTORBIKE_LARA_ANIMS, ID_MOTORBIKE, + ID_RUBBER_BOAT_LARA_ANIMS, + ID_RUBBER_BOAT_BOAT, + + ID_VEHICLE_SMASHABLE_FLOOR = 90, // NEW + ID_VEHICLE_SMASHABLE_WALL, // NEW /* Enemy */ @@ -932,6 +937,18 @@ typedef enum GAME_OBJECT_ID ID_SEARCH_OBJECT4, ID_SARCOPHAGUS, + ID_ENEMY_PIECE, // NEW + ID_EXPANDING_PLATFORM, // NEW + ID_SQUISHY_BLOCK1, // NEW + ID_SQUISHY_BLOCK2, // NEW + ID_TRIPWIRE, // NEW + ID_MINE_DETECTOR, // NEW + ID_MAP, // NEW + ID_SECRET_MAP, // NEW + ID_SETH_DOOR, // NEW + ID_HORUS_STATUE, // NEW + ID_STATUE_PLINTH, // NEW + /* Items */ ID_PUZZLE_ITEM1 = 500, ID_PUZZLE_ITEM2, @@ -1242,8 +1259,14 @@ typedef enum GAME_OBJECT_ID ID_KICK_DOOR2, ID_KICK_DOOR3, ID_KICK_DOOR4, - ID_UNDERWATER_DOOR, - ID_DOUBLE_DOORS, + ID_UNDERWATER_DOOR1, // NEW + ID_UNDERWATER_DOOR2, + ID_UNDERWATER_DOOR3, + ID_UNDERWATER_DOOR4, + ID_DOUBLE_DOORS1, + ID_DOUBLE_DOORS2, + ID_DOUBLE_DOORS3, + ID_DOUBLE_DOORS4, ID_SEQUENCE_DOOR1, ID_SEQUENCE_SWITCH1, ID_SEQUENCE_SWITCH2, @@ -1268,7 +1291,7 @@ typedef enum GAME_OBJECT_ID ID_CROSSBOW_BOLT, ID_HK_ITEM, ID_HK_AMMO_ITEM, - ID_GRENADE_ITEM, + ID_GRENADE_GUN_ITEM, ID_GRENADE_AMMO1_ITEM, ID_GRENADE_AMMO2_ITEM, ID_GRENADE_AMMO3_ITEM, @@ -1288,7 +1311,7 @@ typedef enum GAME_OBJECT_ID ID_FLARE_ITEM, ID_FLARE_INV_ITEM, ID_COMPASS_ITEM, - ID_DIARY, + ID_DIARY_ITEM, /* Inventory main objects */ ID_INVENTORY_PASSPORT = 1000, @@ -1445,8 +1468,74 @@ typedef enum GAME_OBJECT_ID ID_ANIMATING62, ID_ANIMATING63, ID_ANIMATING64, + ID_ANIMATING65, + ID_ANIMATING66, + ID_ANIMATING67, + ID_ANIMATING68, + ID_ANIMATING69, + ID_ANIMATING70, + ID_ANIMATING71, + ID_ANIMATING72, + ID_ANIMATING73, + ID_ANIMATING74, + ID_ANIMATING75, + ID_ANIMATING76, + ID_ANIMATING77, + ID_ANIMATING78, + ID_ANIMATING79, + ID_ANIMATING80, + ID_ANIMATING81, + ID_ANIMATING82, + ID_ANIMATING83, + ID_ANIMATING84, + ID_ANIMATING85, + ID_ANIMATING86, + ID_ANIMATING87, + ID_ANIMATING88, + ID_ANIMATING89, + ID_ANIMATING90, + ID_ANIMATING91, + ID_ANIMATING92, + ID_ANIMATING93, + ID_ANIMATING94, + ID_ANIMATING95, + ID_ANIMATING96, + ID_ANIMATING97, + ID_ANIMATING98, + ID_ANIMATING99, + ID_ANIMATING100, + ID_ANIMATING101, + ID_ANIMATING102, + ID_ANIMATING103, + ID_ANIMATING104, + ID_ANIMATING105, + ID_ANIMATING106, + ID_ANIMATING107, + ID_ANIMATING108, + ID_ANIMATING109, + ID_ANIMATING110, + ID_ANIMATING111, + ID_ANIMATING112, + ID_ANIMATING113, + ID_ANIMATING114, + ID_ANIMATING115, + ID_ANIMATING116, + ID_ANIMATING117, + ID_ANIMATING118, + ID_ANIMATING119, + ID_ANIMATING120, + ID_ANIMATING121, + ID_ANIMATING122, + ID_ANIMATING123, + ID_ANIMATING124, + ID_ANIMATING125, + ID_ANIMATING126, + ID_ANIMATING127, + ID_ANIMATING128, + ID_GUARDIAN_BASE, + ID_GUARDIAN_TENTACLE, - ID_BRIDGE_FLAT = 1300, + ID_BRIDGE_FLAT = 1340, ID_BRIDGE_TILT1, ID_BRIDGE_TILT2, ID_BRIDGE_TILT3, @@ -1461,6 +1550,15 @@ typedef enum GAME_OBJECT_ID ID_MISC_SPRITES, ID_CUSTOM_SPRITES, + ID_PANEL_BORDER = 1400, + ID_PANEL_MIDDLE, + ID_PANEL_CORNER, + ID_PANEL_DIAGONAL, + ID_PANEL_STRIP, + ID_PANEL_HALF_BORDER1, + ID_PANEL_HALF_BORDER2, + ID_PANEL_MIDDLE_CORNER, + ID_NUMBER_OBJECTS, // NEED TO BE AT THE END !!!! }; diff --git a/TR5Main/Objects/TR5/tr5_laser_head.cpp b/TR5Main/Objects/TR5/tr5_laser_head.cpp index 16d2e31cc..8870faa4a 100644 --- a/TR5Main/Objects/TR5/tr5_laser_head.cpp +++ b/TR5Main/Objects/TR5/tr5_laser_head.cpp @@ -47,7 +47,7 @@ void InitialiseLaserHead(short itemNumber) for (int i = 0; i < LevelItems; i++) { - if (Items[i].objectNumber == ID_ANIMATING12) + if (Items[i].objectNumber == ID_ANIMATING1) { info->baseItem = i; break; @@ -59,7 +59,7 @@ void InitialiseLaserHead(short itemNumber) for (int i = 0; i < LevelItems; i++) { // ID_WINGED_MUMMY beccause we recycled MIP slots - if (Items[i].objectNumber == ID_WINGED_MUMMY && Items[i].pos.yRot == rotation) + if (Items[i].objectNumber == ID_ANIMATING2 && Items[i].pos.yRot == rotation) { info->arcsItems[j] = i; rotation += ANGLE(45); diff --git a/TR5Main/Objects/Vehicles/boat.cpp b/TR5Main/Objects/Vehicles/boat.cpp index 49b62f741..a5b272408 100644 --- a/TR5Main/Objects/Vehicles/boat.cpp +++ b/TR5Main/Objects/Vehicles/boat.cpp @@ -100,7 +100,7 @@ void GetBoatGetOff(ITEM_INFO* boat) LaraItem->pos.yPos = y; /* Set boat to still anim */ - boat->animNumber = Objects[ID_BOAT].animIndex; + boat->animNumber = Objects[ID_SPEEDBOAT].animIndex; boat->frameNumber = Anims[boat->animNumber].frameBase; } } @@ -246,7 +246,7 @@ void DoBoatCollision(int itemNum) { item = &Items[item_number]; - if (item->objectNumber == ID_BOAT && item_number != itemNum && g_LaraExtra.Vehicle != item_number) + if (item->objectNumber == ID_SPEEDBOAT && item_number != itemNum && g_LaraExtra.Vehicle != item_number) { // other boat x = item->pos.xPos - boat->pos.xPos; @@ -689,7 +689,7 @@ void BoatAnimation(ITEM_INFO* boat, int collide) { if (LaraItem->currentAnimState != BOAT_DEATH) { - LaraItem->animNumber = Objects[ID_BOAT_LARA_ANIMS].animIndex + BOAT_DEATH_ANIM; + LaraItem->animNumber = Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + BOAT_DEATH_ANIM; LaraItem->frameNumber = Anims[LaraItem->animNumber].frameBase; LaraItem->currentAnimState = LaraItem->goalAnimState = BOAT_DEATH; } @@ -698,7 +698,7 @@ void BoatAnimation(ITEM_INFO* boat, int collide) { if (LaraItem->currentAnimState != BOAT_FALL) { - LaraItem->animNumber = Objects[ID_BOAT_LARA_ANIMS].animIndex + BOAT_FALL_ANIM; + LaraItem->animNumber = Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + BOAT_FALL_ANIM; LaraItem->frameNumber = Anims[LaraItem->animNumber].frameBase; LaraItem->currentAnimState = LaraItem->goalAnimState = BOAT_FALL; } @@ -707,7 +707,7 @@ void BoatAnimation(ITEM_INFO* boat, int collide) { if (LaraItem->currentAnimState != BOAT_HIT) { - LaraItem->animNumber = (short)(Objects[ID_BOAT_LARA_ANIMS].animIndex + collide); + LaraItem->animNumber = (short)(Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + collide); LaraItem->frameNumber = Anims[LaraItem->animNumber].frameBase; LaraItem->currentAnimState = LaraItem->goalAnimState = BOAT_HIT; } @@ -825,13 +825,13 @@ void BoatCollision(short itemNum, ITEM_INFO* litem, COLL_INFO* coll) } if (geton == 2) - litem->animNumber = Objects[ID_BOAT_LARA_ANIMS].animIndex + BOAT_GETONLW_ANIM; + litem->animNumber = Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + BOAT_GETONLW_ANIM; else if (geton == 1) - litem->animNumber = Objects[ID_BOAT_LARA_ANIMS].animIndex + BOAT_GETONRW_ANIM; + litem->animNumber = Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + BOAT_GETONRW_ANIM; else if (geton == 3) - litem->animNumber = Objects[ID_BOAT_LARA_ANIMS].animIndex + BOAT_GETONJ_ANIM; + litem->animNumber = Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + BOAT_GETONJ_ANIM; else - litem->animNumber = Objects[ID_BOAT_LARA_ANIMS].animIndex + BOAT_GETON_START; + litem->animNumber = Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex + BOAT_GETON_START; Lara.waterStatus = LW_ABOVE_WATER; litem->pos.xPos = boat->pos.xPos; @@ -988,7 +988,7 @@ void BoatControl(short itemNumber) /* Set boat on the exact same anim frame */ if (LaraItem->hitPoints > 0) { - boat->animNumber = Objects[ID_BOAT].animIndex + (LaraItem->animNumber - Objects[ID_BOAT_LARA_ANIMS].animIndex); + boat->animNumber = Objects[ID_SPEEDBOAT].animIndex + (LaraItem->animNumber - Objects[ID_SPEEDBOAT_LARA_ANIMS].animIndex); boat->frameNumber = Anims[boat->animNumber].frameBase + (LaraItem->frameNumber - Anims[LaraItem->animNumber].frameBase); } diff --git a/TR5Main/Specific/setup.cpp b/TR5Main/Specific/setup.cpp index 3f693d9ec..7aab822fb 100644 --- a/TR5Main/Specific/setup.cpp +++ b/TR5Main/Specific/setup.cpp @@ -588,7 +588,7 @@ void NewObjects() obj->saveFlags = true; } - obj = &Objects[ID_GRENADE_ITEM]; + obj = &Objects[ID_GRENADE_GUN_ITEM]; if (obj->loaded) { obj->collision = PickupCollision; @@ -1121,7 +1121,7 @@ void NewObjects() obj->savePosition = true; } - obj = &Objects[ID_BOAT]; + obj = &Objects[ID_SPEEDBOAT]; if (obj->loaded) { obj->initialise = InitialiseBoat; @@ -2211,24 +2211,30 @@ void ObjectObjects() obj->saveFlags = true; } - obj = &Objects[ID_DOUBLE_DOORS]; - if (obj->loaded) + for (int i = ID_DOUBLE_DOORS1; i <= ID_DOUBLE_DOORS4; i++) { - obj->initialise = InitialiseDoor; - obj->collision = DoubleDoorCollision; - obj->control = PushPullKickDoorControl; - obj->saveAnim = true; - obj->saveFlags = true; + obj = &Objects[i]; + if (obj->loaded) + { + obj->initialise = InitialiseDoor; + obj->collision = DoubleDoorCollision; + obj->control = PushPullKickDoorControl; + obj->saveAnim = true; + obj->saveFlags = true; + } } - obj = &Objects[ID_UNDERWATER_DOOR]; - if (obj->loaded) + for (int i = ID_UNDERWATER_DOOR1; i <= ID_UNDERWATER_DOOR4; i++) { - obj->initialise = InitialiseDoor; - obj->collision = UnderwaterDoorCollision; - obj->control = PushPullKickDoorControl; - obj->saveAnim = true; - obj->saveFlags = true; + obj = &Objects[i]; + if (obj->loaded) + { + obj->initialise = InitialiseDoor; + obj->collision = UnderwaterDoorCollision; + obj->control = PushPullKickDoorControl; + obj->saveAnim = true; + obj->saveFlags = true; + } } for (int objNum = ID_PUSHPULL_DOOR1; objNum <= ID_KICK_DOOR4; objNum++) @@ -2469,11 +2475,14 @@ void ObjectObjects() INIT_PUZZLEDONE(objNum); } - for (int objNum = ID_ANIMATING1; objNum <= ID_ANIMATING64; objNum++) + for (int objNum = ID_ANIMATING1; objNum <= ID_ANIMATING128; objNum++) { INIT_ANIMATING(objNum); } + INIT_ANIMATING(ID_GUARDIAN_BASE); + INIT_ANIMATING(ID_GUARDIAN_TENTACLE); + obj = &Objects[ID_ANIMATING13]; if (obj->loaded) { @@ -3040,7 +3049,7 @@ void PickupObjects() INIT_PICKUP(ID_CROSSBOW_AMMO1_ITEM); INIT_PICKUP(ID_CROSSBOW_AMMO2_ITEM); INIT_PICKUP(ID_CROSSBOW_AMMO3_ITEM); - INIT_PICKUP(ID_GRENADE_ITEM); + INIT_PICKUP(ID_GRENADE_GUN_ITEM); INIT_PICKUP(ID_GRENADE_AMMO1_ITEM); INIT_PICKUP(ID_GRENADE_AMMO2_ITEM); INIT_PICKUP(ID_GRENADE_AMMO3_ITEM);