mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
En_Syateki_Man (Shooting Gallery Man) documented (#894)
* Document a ton of syateki_man * Document swamp actor lists * Document animations * Document player positions * Document talk flags * Name wave and spawn index * Name everything involved in the swamp game * A hex score I missed * Some slight town game doc * Document octorok flags * Better way of doing octorok flags * Macros for getting/setting high scores * Update a variable I missed * Name remaining struct vars * Create enum for shootingGameState * Remove anonymous unions * hitState -> hitType * Comment for values next to enums * Name some more stuff * Name stuff in Town-RunGame * Name sGameStartTimer * Name some more stuff * Name all static variables * One more round of comments and such * Respond to hensldm's review * GET_INDEX -> GET_ID * Respond to Elliptic's review (or at least the parts I can respond to right now) * More review responses * Add some stuff to z64saves.h I missed
This commit is contained in:
@@ -29,13 +29,6 @@
|
||||
|
||||
#define GET_FIRST_ENEMY(play) ((Actor*)(play)->actorCtx.actorLists[ACTORCAT_ENEMY].first)
|
||||
|
||||
// linkAge still exists in MM, but is always set to 0 (always adult)
|
||||
// There are remnants of these macros from OOT, but they are essentially useless
|
||||
#define LINK_IS_CHILD (gSaveContext.save.linkAge == 1)
|
||||
#define LINK_IS_ADULT (gSaveContext.save.linkAge == 0)
|
||||
|
||||
#define CURRENT_DAY (((void)0, gSaveContext.save.day) % 5)
|
||||
|
||||
#define CLOCK_TIME(hr, min) (s32)(((hr) * 60 + (min)) * 0x10000 / (24 * 60))
|
||||
#define CLOCK_TIME_MINUTE (CLOCK_TIME(0, 1))
|
||||
#define DAY_LENGTH (CLOCK_TIME(24, 0))
|
||||
@@ -46,66 +39,6 @@
|
||||
#define TIME_TO_MINUTES_ALT_F(time) ((time) / (0x10000 / (24.0f * 60.0f)))
|
||||
#define CLOCK_TIME_ALT_F(hr, min) (((hr) * 60.0f + (min)) / (24.0f * 60.0f / 0x10000))
|
||||
|
||||
#define SLOT(item) gItemSlots[item]
|
||||
#define AMMO(item) gSaveContext.save.inventory.ammo[SLOT(item)]
|
||||
#define INV_CONTENT(item) gSaveContext.save.inventory.items[SLOT(item)]
|
||||
#define GET_INV_CONTENT(item) ((void)0, gSaveContext.save.inventory.items)[SLOT(item)]
|
||||
|
||||
#define CUR_FORM ((gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) ? 0 : gSaveContext.save.playerForm)
|
||||
|
||||
#define GET_SAVE_EQUIPS_EQUIPMENT ((void)0, gSaveContext.save.equips.equipment)
|
||||
#define GET_SAVE_INVENTORY_UPGRADES ((void)0, gSaveContext.save.inventory.upgrades)
|
||||
#define GET_SAVE_INVENTORY_QUEST_ITEMS ((void)0, gSaveContext.save.inventory.questItems)
|
||||
|
||||
#define GET_CUR_EQUIP_VALUE(equip) ((GET_SAVE_EQUIPS_EQUIPMENT & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
|
||||
#define CUR_UPG_VALUE(upg) ((gSaveContext.save.inventory.upgrades & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
#define GET_CUR_UPG_VALUE(upg) ((GET_SAVE_INVENTORY_UPGRADES & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
|
||||
#define SET_EQUIP_VALUE(equip, value) (gSaveContext.save.equips.equipment = ((GET_SAVE_EQUIPS_EQUIPMENT & gEquipNegMasks[equip]) | (u16)((u16)(value) << gEquipShifts[equip])))
|
||||
|
||||
#define BUTTON_ITEM_EQUIP(form, button) (gSaveContext.save.equips.buttonItems[form][button])
|
||||
#define CUR_FORM_EQUIP(button) BUTTON_ITEM_EQUIP(CUR_FORM, button)
|
||||
|
||||
#define C_SLOT_EQUIP(form, button) (gSaveContext.save.equips.cButtonSlots[form][button])
|
||||
#define CHECK_QUEST_ITEM(item) (GET_SAVE_INVENTORY_QUEST_ITEMS & gBitFlags[item])
|
||||
#define SET_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS | gBitFlags[item]))
|
||||
#define REMOVE_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS & (-1 - gBitFlags[item])))
|
||||
|
||||
#define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
|
||||
#define SET_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] |= (u8)gBitFlags[item])
|
||||
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.save.inventory.dungeonKeys[(void)0, dungeonIndex])
|
||||
|
||||
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn)))
|
||||
#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == EQUIP_SLOT_B ? C_SLOT_EQUIP(CUR_FORM, btn) : C_SLOT_EQUIP(0, btn)))
|
||||
|
||||
|
||||
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
BUTTON_ITEM_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define SET_CUR_FORM_BTN_SLOT(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
C_SLOT_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
C_SLOT_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define STOLEN_ITEM_NONE (0)
|
||||
|
||||
#define STOLEN_ITEM_1 ((gSaveContext.save.stolenItems & 0xFF000000) >> 0x18)
|
||||
#define STOLEN_ITEM_2 ((gSaveContext.save.stolenItems & 0x00FF0000) >> 0x10)
|
||||
|
||||
#define SET_STOLEN_ITEM_1(itemId) \
|
||||
(gSaveContext.save.stolenItems = (gSaveContext.save.stolenItems & ~0xFF000000) | ((itemId & 0xFF) << 0x18))
|
||||
#define SET_STOLEN_ITEM_2(itemId) \
|
||||
(gSaveContext.save.stolenItems = (gSaveContext.save.stolenItems & ~0x00FF0000) | ((itemId & 0xFF) << 0x10))
|
||||
|
||||
#define CAPACITY(upg, value) gUpgradeCapacities[upg][value]
|
||||
#define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg))
|
||||
|
||||
|
||||
+73
-1
@@ -160,7 +160,7 @@ typedef struct Save {
|
||||
/* 0x0EE8 */ u32 unk_EE8;
|
||||
/* 0x0EEC */ u32 horseBackBalloonHighScore;
|
||||
/* 0x0EF0 */ u32 lotteryCodeGuess; // Lottery code chosen by player (only uses lower three hex digits)
|
||||
/* 0x0EF4 */ u32 unk_EF4; // Shooting Gallery Man Flags
|
||||
/* 0x0EF4 */ u32 shootingGalleryHighScores; // High scores for both shooting galleries. Town uses lower 16 bits, Swamp uses higher 16 bits.
|
||||
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
|
||||
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
|
||||
/* 0x0F60 */ u32 mapsVisible; // "cloud_clear"
|
||||
@@ -273,6 +273,78 @@ typedef enum SunsSongState {
|
||||
/* 3 */ SUNSSONG_SPECIAL // time does not advance, but signals the song was played. used for freezing redeads
|
||||
} SunsSongState;
|
||||
|
||||
// linkAge still exists in MM, but is always set to 0 (always adult)
|
||||
// There are remnants of these macros from OOT, but they are essentially useless
|
||||
#define LINK_IS_CHILD (gSaveContext.save.linkAge == 1)
|
||||
#define LINK_IS_ADULT (gSaveContext.save.linkAge == 0)
|
||||
|
||||
#define CURRENT_DAY (((void)0, gSaveContext.save.day) % 5)
|
||||
|
||||
#define SLOT(item) gItemSlots[item]
|
||||
#define AMMO(item) gSaveContext.save.inventory.ammo[SLOT(item)]
|
||||
#define INV_CONTENT(item) gSaveContext.save.inventory.items[SLOT(item)]
|
||||
#define GET_INV_CONTENT(item) ((void)0, gSaveContext.save.inventory.items)[SLOT(item)]
|
||||
|
||||
#define CUR_FORM ((gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) ? 0 : gSaveContext.save.playerForm)
|
||||
|
||||
#define GET_SAVE_EQUIPS_EQUIPMENT ((void)0, gSaveContext.save.equips.equipment)
|
||||
#define GET_SAVE_INVENTORY_UPGRADES ((void)0, gSaveContext.save.inventory.upgrades)
|
||||
#define GET_SAVE_INVENTORY_QUEST_ITEMS ((void)0, gSaveContext.save.inventory.questItems)
|
||||
|
||||
#define GET_CUR_EQUIP_VALUE(equip) ((GET_SAVE_EQUIPS_EQUIPMENT & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
|
||||
#define CUR_UPG_VALUE(upg) ((gSaveContext.save.inventory.upgrades & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
#define GET_CUR_UPG_VALUE(upg) ((GET_SAVE_INVENTORY_UPGRADES & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
|
||||
#define SET_EQUIP_VALUE(equip, value) (gSaveContext.save.equips.equipment = ((GET_SAVE_EQUIPS_EQUIPMENT & gEquipNegMasks[equip]) | (u16)((u16)(value) << gEquipShifts[equip])))
|
||||
|
||||
#define BUTTON_ITEM_EQUIP(form, button) (gSaveContext.save.equips.buttonItems[form][button])
|
||||
#define CUR_FORM_EQUIP(button) BUTTON_ITEM_EQUIP(CUR_FORM, button)
|
||||
|
||||
#define C_SLOT_EQUIP(form, button) (gSaveContext.save.equips.cButtonSlots[form][button])
|
||||
#define CHECK_QUEST_ITEM(item) (GET_SAVE_INVENTORY_QUEST_ITEMS & gBitFlags[item])
|
||||
#define SET_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS | gBitFlags[item]))
|
||||
#define REMOVE_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS & (-1 - gBitFlags[item])))
|
||||
|
||||
#define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
|
||||
#define SET_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] |= (u8)gBitFlags[item])
|
||||
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.save.inventory.dungeonKeys[(void)0, dungeonIndex])
|
||||
|
||||
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn)))
|
||||
#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == EQUIP_SLOT_B ? C_SLOT_EQUIP(CUR_FORM, btn) : C_SLOT_EQUIP(0, btn)))
|
||||
|
||||
|
||||
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
BUTTON_ITEM_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define SET_CUR_FORM_BTN_SLOT(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
C_SLOT_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
C_SLOT_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define STOLEN_ITEM_NONE (0)
|
||||
|
||||
#define STOLEN_ITEM_1 ((gSaveContext.save.stolenItems & 0xFF000000) >> 0x18)
|
||||
#define STOLEN_ITEM_2 ((gSaveContext.save.stolenItems & 0x00FF0000) >> 0x10)
|
||||
|
||||
#define SET_STOLEN_ITEM_1(itemId) \
|
||||
(gSaveContext.save.stolenItems = (gSaveContext.save.stolenItems & ~0xFF000000) | ((itemId & 0xFF) << 0x18))
|
||||
#define SET_STOLEN_ITEM_2(itemId) \
|
||||
(gSaveContext.save.stolenItems = (gSaveContext.save.stolenItems & ~0x00FF0000) | ((itemId & 0xFF) << 0x10))
|
||||
|
||||
#define GET_TOWN_SHOOTING_GALLERY_HIGH_SCORE() ((s32)(gSaveContext.save.shootingGalleryHighScores & 0xFFFF))
|
||||
#define GET_SWAMP_SHOOTING_GALLERY_HIGH_SCORE() ((s32)((gSaveContext.save.shootingGalleryHighScores & 0xFFFF0000) >> 0x10))
|
||||
#define SET_TOWN_SHOOTING_GALLERY_HIGH_SCORE(score) (gSaveContext.save.shootingGalleryHighScores = (gSaveContext.save.shootingGalleryHighScores & 0xFFFF0000) | ((u16)(score)))
|
||||
#define SET_SWAMP_SHOOTING_GALLERY_HIGH_SCORE(score) (gSaveContext.save.shootingGalleryHighScores = ((gSaveContext.save.shootingGalleryHighScores) & 0xFFFF) | ((u16)(score) << 0x10))
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ DUNGEON_INDEX_WOODFALL_TEMPLE,
|
||||
/* 1 */ DUNGEON_INDEX_SNOWHEAD_TEMPLE,
|
||||
|
||||
Reference in New Issue
Block a user