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:
@@ -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
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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.
Reference in New Issue
Block a user