1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-12 16:14:25 +02:00

#368 save/load inventory items, remove unused sound samples (PCM gym sequence, secret and underwater ambient sound)

This commit is contained in:
XProger
2022-02-05 07:19:38 +03:00
parent 3d0f82ba6b
commit 5d99b4001f
6 changed files with 20 additions and 2 deletions

View File

@@ -1661,7 +1661,7 @@ struct ItemObj
#define TRACK_FLAG_ONCE 32
#define TRACK_FLAG_MASK 31
#define SAVEGAME_VER 1
#define SAVEGAME_VER 2
#define SAVEGAME_SIZE (8 * 1024) // 8k EWRAM
struct SaveGame
@@ -1681,7 +1681,8 @@ struct SaveGame
uint16 ammoUsed;
uint16 kills;
uint16 flipped;
uint8 tracks[64];
uint8 tracks[64];
uint16 invSlots[64];
};
#define SETTINGS_VER 3

View File

@@ -30,6 +30,9 @@ bool gameSave()
gSaveGame.randSeedLogic = gRandSeedLogic;
gSaveGame.randSeedDraw = gRandSeedDraw;
memset(gSaveGame.invSlots, 0, sizeof(gSaveGame.invSlots));
memcpy(gSaveGame.invSlots, inventory.counts, sizeof(inventory.counts));
uint8* ptr = gSaveData;
ItemObj* item = items;
for (int32 i = 0; i < level.itemsCount; i++, item++)
@@ -54,6 +57,8 @@ bool gameLoad()
startLevel(gLevelInfo[gLevelID].name);
gSaveGame = tmp;
inventory.setSlots(gSaveGame.invSlots);
ItemObj::sFirstActive = NULL;
ItemObj::sFirstFree = items + level.itemsCount;

View File

@@ -337,6 +337,18 @@ struct Inventory
}
}
void setSlots(uint16* invSlots)
{
numKeys = 0;
memcpy(counts, invSlots, sizeof(counts));
for (int32 i = 0; i < SLOT_COMPASS; i++)
{
numKeys += counts[i];
}
}
bool applyItem(ItemObj* hole)
{
#define CHECK_CASE(A, B) case A: { if (useSlot != B) return false; break; }

Binary file not shown.

Binary file not shown.

Binary file not shown.