summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHenny022p <info@henny022.de>2023-08-02 22:19:34 +0200
committerHenny022p <info@henny022.de>2023-08-02 22:19:34 +0200
commitea30d2264bf578767f12262105be5d0c3b6a75ef (patch)
treeb3aefb01c27f792c3622ca9a81accfe2e6d593a0 /include
parent1e02286d2c2822d24f67954c7763ac1e402f21cc (diff)
SaveFile cleanup part 3
Diffstat (limited to 'include')
-rw-r--r--include/player.h2
-rw-r--r--include/save.h65
2 files changed, 38 insertions, 29 deletions
diff --git a/include/player.h b/include/player.h
index 1e706d6b..147ec5cb 100644
--- a/include/player.h
+++ b/include/player.h
@@ -367,7 +367,7 @@ typedef struct {
/*0x1c*/ u16 charmTimer;
/*0x1e*/ u16 picolyteTimer;
/*0x20*/ u16 effectTimer;
- /*0x22*/ u8 filler4[6];
+ /*0x22*/ u8 filler22[2];
} Stats;
#define SLOT_A 0
diff --git a/include/save.h b/include/save.h
index bb109574..fef0b9ae 100644
--- a/include/save.h
+++ b/include/save.h
@@ -33,48 +33,57 @@ extern SaveResult HandleSave(u32 idx);
* The contents of this structure are read from and written to EEPROM.
*/
typedef struct {
- /*0x000*/ u8 invalid; /**< File is invalid. */
- /*0x001*/ u8 initialized; /**< File is initialized. */
- /*0x002*/ u8 msg_speed; /**< Message speed. */
- /*0x003*/ u8 brightness; /**< Brightness. */
- /*0x004*/ u8 filler4[0x2]; /**< unused filler */
+ /*0x000*/ u8 invalid; /**< save file is invalid */
+ /*0x001*/ u8 initialized; /**< save file is initialized */
+ /*0x002*/ u8 msg_speed; /**< message speed setting */
+ /*0x003*/ u8 brightness; /**< brightness setting */
+ /*0x004*/ u8 filler4[2]; /**< unused filler */
/*0x006*/ u8 saw_staffroll; /**< beat the game and watched the credits */
/*0x007*/ u8 dws_barrel_state; /**< state of the big barrel in DWS, 0 or 2 */
/*0x008*/ u8 global_progress; /**< @see UpdateGlobalProgress */
/*0x009*/ u8 available_figurines; /**< figurines available to get */
- /*0x00A*/ u8 fillerA[0x16]; /**< unused filler */
+ /*0x00A*/ u8 fillerA[22]; /**< unused filler */
/*0x020*/ u16 map_hints; /**< bitmask, used by subtask MapHint */
- /*0x022*/ u8 filler22[0x1e]; /**< unused filler */
+ /*0x022*/ u8 filler22[30]; /**< unused filler */
/*0x040*/ u32 windcrests; /**< upper 8 bit Windcrest flags @see WindcrestID
* lower bits used for other things */
- /*0x044*/ u8 filler44[0xC]; /**< unused filler */
+ /*0x044*/ u8 filler44[12]; /**< unused filler */
/*0x050*/ u32 enemies_killed; /**< number of enemies killed */
- /*0x054*/ u8 filler54[0x8]; /**< unused filler */
+ /*0x054*/ u8 filler54[8]; /**< unused filler */
/*0x05C*/ u32 items_bought; /**< number of items bought in stockwells shop */
/*0x060*/ u32 areaVisitFlags[8]; /**< Area visit flags. */
/*0x080*/ char name[FILENAME_LENGTH]; /**< Save file name. */
/*0x086*/ u8 filler86[2]; /**< unused filler */
/*0x088*/ PlayerRoomStatus saved_status; /**< Player room status. */
/*0x0A8*/ Stats stats; /**< Player stats. */
- /*0x0D0*/ u8 fillerD0[34];
- /*0x0F2*/ u8 inventory[36];
- /*0x116*/ u8 didAllFusions;
- /*0x117*/ u8 fusedKinstoneCount;
- /*0x118*/ u8 kinstoneTypes[0x13]; // 0x65-0x75 for each kinstone type present in kinstone bag
- /*0x12B*/ u8 kinstoneAmounts[0x13]; // amount of each kinstone type above
- /*0x13E*/ u8 filler13E[3];
- /*0x141*/ u8 fuserProgress[128]; // indexed by fuser id, incremented after fusion
- /*0x1C1*/ u8 fuserOffers[128]; // available kinstone fusion for each fuser
- /*0x241*/ u8 fusedKinstones[13]; /**< Bitfield for fused kinstones. @see CheckKinstoneFused */
- /*0x24E*/ u8 fusionUnmarked[13]; /**< Bitfield for disabled fusion map markers. @see CheckFusionMapMarkerDisabled */
- /*0x25B*/ u8 filler25B;
- /*0x25C*/ u8 flags[0x200]; /**< Flags. */
- /*0x45C*/ u8 dungeonKeys[0x10]; // TODO Indexed by dungeon id, keys per dungeon
- /*0x46C*/ u8 dungeonItems[0x10]; // TODO items in the dungeon. 4: compass, 2: big key, 1: small key
- /*0x47C*/ u8 dungeonWarps[0x10]; // TODO indexed by dungeon id, EnableDungeonWarp, IsDungeonWarpActive
- /*0x48C*/ u32 timers[7];
- /*0x4A8*/ u32 demo_timer; /**< Demo timer. */
- /*0x4AC*/ u8 filler4ac[0x8];
+ /*0x0CC*/ u8 fillerCC[2]; /**< unused filler */
+ /*0x0D0*/ u8 figurines[36]; /**< figurine bitset */
+ /*0x0F2*/ u8 inventory[36]; /**< 2 bit per item @see Item */
+ /*0x116*/ u8 didAllFusions; /**< completed all 100 kinstone fusions */
+ /*0x117*/ u8 fusedKinstoneCount; /**< number of kinstones fused */
+ /*0x118*/ u8 kinstoneTypes[19]; /**< item id for each kinstone type present in kinstone bag */
+ /*0x12B*/ u8 kinstoneAmounts[19]; /**< amount of each kinstone type above */
+ /*0x13E*/ u8 filler13E[3]; /**< unused filler */
+ /*0x141*/ u8 fuserProgress[128]; /**< indexed by fuser id, incremented after fusion */
+ /*0x1C1*/ u8 fuserOffers[128]; /**< available kinstone fusion for each fuser */
+ /*0x241*/ u8 fusedKinstones[13]; /**< bitfield for fused kinstones
+ * @see CheckKinstoneFused */
+ /*0x24E*/ u8 fusionUnmarked[13]; /**< bitfield for disabled fusion map markers
+ * @see CheckFusionMapMarkerDisabled */
+ /*0x25B*/ u8 filler25B; /**< unused filler */
+ /*0x25C*/ u8 flags[0x200]; /**< flags */
+ /*0x45C*/ u8 dungeonKeys[0x10]; /**< indexed by dungeon id, keys per dungeon */
+ /*0x46C*/ u8 dungeonItems[0x10]; /**< dungeon items 4: compass, 2: big key, 1: small key */
+ /*0x47C*/ u8 dungeonWarps[0x10]; /**< indexed by dungeon id */
+ /*0x48C*/ u32 darknut_timer; /**< timer for darknut fight before Vaati fight */
+ /*0x490*/ u32 drug_kill_count; /**< "timer" enemy kill count when turning in the last drug quest item */
+ /*0x494*/ u32 biggoron_timer; /**< timer for biggoron mirror shield */
+ /*0x498*/ u32 vaati_timer; /**< timer for vaati wrath fight */
+ /*0x49C*/ u32 timer4; /**< "timer4" unused */
+ /*0x4A0*/ u32 timer5; /**< "timer5" unused */
+ /*0x4A4*/ u32 timer6; /**< "timer6" unused */
+ /*0x4A8*/ u32 demo_timer; /**< timer for US demo version playtime limit */
+ /*0x4AC*/ u8 filler4ac[8]; /**< unused filler */
} SaveFile;
/**