mirror of https://github.com/zeldaret/mm.git
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:
parent
3f49adb91d
commit
9449ced63f
|
@ -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))
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -199,8 +199,8 @@ void Sram_ClearHighscores(void) {
|
|||
gSaveContext.save.unk_EE8 = (gSaveContext.save.unk_EE8 & 0xFFFF) | 0x130000;
|
||||
gSaveContext.save.unk_EE8 = (gSaveContext.save.unk_EE8 & 0xFFFF0000) | 0xA;
|
||||
gSaveContext.save.horseBackBalloonHighScore = 6000; // 60 seconds
|
||||
gSaveContext.save.unk_EF4 = (gSaveContext.save.unk_EF4 & 0xFFFF0000) | 0x27;
|
||||
gSaveContext.save.unk_EF4 = (gSaveContext.save.unk_EF4 & 0xFFFF) | 0xA0000;
|
||||
SET_TOWN_SHOOTING_GALLERY_HIGH_SCORE(39);
|
||||
SET_SWAMP_SHOOTING_GALLERY_HIGH_SCORE(10);
|
||||
|
||||
gSaveContext.save.dekuPlaygroundHighScores[0] = 7500; // 75 seconds
|
||||
gSaveContext.save.dekuPlaygroundHighScores[1] = 7500; // 75 seconds
|
||||
|
|
|
@ -90,7 +90,7 @@ void EnSyatekiCrow_Init(Actor* thisx, PlayState* play2) {
|
|||
path = &play->setupPathList[path->unk1];
|
||||
}
|
||||
|
||||
for (i = 0; i < EN_SYATEKI_CROW_GET_PARAM_FF00(&this->actor); i++) {
|
||||
for (i = 0; i < EN_SYATEKI_CROW_GET_NUMBER(&this->actor); i++) {
|
||||
path = &play->setupPathList[path->unk1];
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ void EnSyatekiCrow_Init(Actor* thisx, PlayState* play2) {
|
|||
this->unk_23C.elements->dim.worldSphere.radius = sJntSphInit.elements[0].dim.modelSphere.radius;
|
||||
ActorShape_Init(&this->actor.shape, 2000.0f, ActorShadow_DrawCircle, 20.0f);
|
||||
|
||||
if ((path == NULL) || (EN_SYATEKI_CROW_GET_PARAM_FF00(&this->actor) >= 0x80)) {
|
||||
if ((path == NULL) || (EN_SYATEKI_CROW_GET_NUMBER(&this->actor) >= 0x80)) {
|
||||
Actor_MarkForDeath(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
@ -136,14 +136,14 @@ void func_809CA5D4(EnSyatekiCrow* this) {
|
|||
void func_809CA67C(EnSyatekiCrow* this, PlayState* play) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if ((syatekiMan->unk_26A == 1) && (this->unk_1C2 == 1) &&
|
||||
(syatekiMan->unk_274 & (1 << EN_SYATEKI_CROW_GET_PARAM_FF00(&this->actor)))) {
|
||||
if ((syatekiMan->shootingGameState == SG_GAME_STATE_RUNNING) && (this->unk_1C2 == 1) &&
|
||||
(syatekiMan->guayFlags & (1 << EN_SYATEKI_CROW_GET_NUMBER(&this->actor)))) {
|
||||
func_809CA71C(this);
|
||||
} else if (syatekiMan->unk_26A != 1) {
|
||||
} else if (syatekiMan->shootingGameState != SG_GAME_STATE_RUNNING) {
|
||||
this->unk_1C2 = 1;
|
||||
}
|
||||
|
||||
if ((syatekiMan->unk_274 == 0) && (syatekiMan->unk_274 == 0)) {
|
||||
if ((syatekiMan->guayFlags == 0) && (syatekiMan->guayFlags == 0)) {
|
||||
this->unk_1C2 = 1;
|
||||
}
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ void func_809CA8E4(EnSyatekiCrow* this, PlayState* play) {
|
|||
f32 sp30;
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if (syatekiMan->unk_26A != 1) {
|
||||
if (syatekiMan->shootingGameState != SG_GAME_STATE_RUNNING) {
|
||||
func_809CA5D4(this);
|
||||
return;
|
||||
}
|
||||
|
@ -207,13 +207,13 @@ void func_809CA8E4(EnSyatekiCrow* this, PlayState* play) {
|
|||
this->unk_1CC++;
|
||||
} else {
|
||||
this->unk_1C2 = 0;
|
||||
syatekiMan->unk_274 &= ~(1 << EN_SYATEKI_CROW_GET_PARAM_FF00(&this->actor));
|
||||
syatekiMan->guayFlags &= ~(1 << EN_SYATEKI_CROW_GET_NUMBER(&this->actor));
|
||||
func_809CA5D4(this);
|
||||
}
|
||||
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
this->actor.shape.yOffset = (fabsf(this->skelAnime.curFrame - 3.0f) * 150.0f) + 1700.0f;
|
||||
if ((syatekiMan->unk_26C % 90) == 0) {
|
||||
if ((syatekiMan->perGameVar1.guaySpawnTimer % 90) == 0) {
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_KAICHO_CRY);
|
||||
}
|
||||
}
|
||||
|
@ -221,7 +221,7 @@ void func_809CA8E4(EnSyatekiCrow* this, PlayState* play) {
|
|||
void func_809CAAF8(EnSyatekiCrow* this) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
syatekiMan->unk_280 += 60;
|
||||
syatekiMan->score += 60;
|
||||
this->unk_1C2 = 0;
|
||||
this->actor.speedXZ *= Math_CosS(this->actor.world.rot.x);
|
||||
this->actor.velocity.y = 0.0f;
|
||||
|
@ -245,8 +245,8 @@ void func_809CABC0(EnSyatekiCrow* this, PlayState* play) {
|
|||
|
||||
if (this->unk_1C4 > 20) {
|
||||
func_800B3030(play, &this->actor.world.pos, &D_809CB050, &D_809CB050, this->actor.scale.x * 10000.0f, 0, 0);
|
||||
syatekiMan->unk_27A++;
|
||||
syatekiMan->unk_274 &= ~(1 << EN_SYATEKI_CROW_GET_PARAM_FF00(&this->actor));
|
||||
syatekiMan->guayHitCounter++;
|
||||
syatekiMan->guayFlags &= ~(1 << EN_SYATEKI_CROW_GET_NUMBER(&this->actor));
|
||||
func_809CA5D4(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
|
||||
#define EN_SYATEKI_CROW_GET_PARAM_F(thisx) ((thisx)->params & 0xF)
|
||||
#define EN_SYATEKI_CROW_GET_PARAM_F0(thisx) (((thisx)->params & 0xF0) >> 4)
|
||||
#define EN_SYATEKI_CROW_GET_PARAM_FF00(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
#define EN_SYATEKI_CROW_GET_NUMBER(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
#define EN_SYATEKI_CROW_PARAMS(number, unkF0, unkF) (((number << 8) & 0xFF00) | ((unkF0 << 4) & 0xF0) | (unkF & 0xF))
|
||||
|
||||
struct EnSyatekiCrow;
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ void EnSyatekiDekunuts_Init(Actor* thisx, PlayState* play2) {
|
|||
}
|
||||
|
||||
this->unk_1E4 = Lib_SegmentedToVirtual(path->points);
|
||||
this->unk_1E8 = EN_SYATEKI_DEKUNUTS_GET_PARAM_F0(&this->actor);
|
||||
this->unk_1E8 = EN_SYATEKI_DEKUNUTS_GET_NUMBER(&this->actor);
|
||||
this->unk_1EA = path->count;
|
||||
this->unk_1D8 = 0;
|
||||
this->unk_1DC = 0;
|
||||
|
@ -166,13 +166,14 @@ void func_80A2BE54(EnSyatekiDekunuts* this) {
|
|||
void func_80A2BF18(EnSyatekiDekunuts* this, PlayState* play) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if ((syatekiMan->unk_26A == 1) && (this->unk_1E2 == 1) && ((syatekiMan->unk_272 & (1 << this->unk_1E8)) != 0)) {
|
||||
if ((syatekiMan->shootingGameState == SG_GAME_STATE_RUNNING) && (this->unk_1E2 == 1) &&
|
||||
((syatekiMan->dekuScrubFlags & (1 << this->unk_1E8)) != 0)) {
|
||||
func_80A2BFC4(this);
|
||||
} else if (syatekiMan->unk_26A != 1) {
|
||||
} else if (syatekiMan->shootingGameState != SG_GAME_STATE_RUNNING) {
|
||||
this->unk_1E2 = 1;
|
||||
}
|
||||
|
||||
if ((syatekiMan->unk_272 == 0) && (syatekiMan->unk_274 == 0) &&
|
||||
if ((syatekiMan->dekuScrubFlags == 0) && (syatekiMan->guayFlags == 0) &&
|
||||
(EN_SYATEKI_DEKUNUTS_GET_PARAM_F(&this->actor) != 1)) {
|
||||
this->unk_1E2 = 1;
|
||||
}
|
||||
|
@ -189,9 +190,9 @@ void func_80A2BFC4(EnSyatekiDekunuts* this) {
|
|||
this->actor.world.pos = this->actor.prevPos = sp14;
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
||||
this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
|
||||
this->unk_1EE = 140 - (syatekiMan->unk_27C * 20);
|
||||
this->unk_1EE = 140 - (syatekiMan->currentWave * 20);
|
||||
|
||||
if ((syatekiMan->unk_27C & 1) != 0) {
|
||||
if ((syatekiMan->currentWave & 1) != 0) {
|
||||
this->unk_1F0 = 1;
|
||||
this->unk_1F2 = 0;
|
||||
} else {
|
||||
|
@ -260,7 +261,7 @@ void func_80A2C27C(EnSyatekiDekunuts* this) {
|
|||
void func_80A2C2E0(EnSyatekiDekunuts* this, PlayState* play) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if ((this->unk_1EE < this->unk_1D8) || (syatekiMan->unk_26A != 1)) {
|
||||
if ((this->unk_1EE < this->unk_1D8) || (syatekiMan->shootingGameState != SG_GAME_STATE_RUNNING)) {
|
||||
func_80A2C3AC(this);
|
||||
}
|
||||
|
||||
|
@ -270,7 +271,7 @@ void func_80A2C2E0(EnSyatekiDekunuts* this, PlayState* play) {
|
|||
void func_80A2C33C(EnSyatekiDekunuts* this, PlayState* play) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if ((gSaveContext.unk_3DE0[1] <= 0) || (syatekiMan->unk_26A != 1)) {
|
||||
if ((gSaveContext.unk_3DE0[1] <= 0) || (syatekiMan->shootingGameState != SG_GAME_STATE_RUNNING)) {
|
||||
func_80A2C3AC(this);
|
||||
}
|
||||
|
||||
|
@ -287,7 +288,7 @@ void func_80A2C3AC(EnSyatekiDekunuts* this) {
|
|||
void func_80A2C3F0(EnSyatekiDekunuts* this, PlayState* play) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if (syatekiMan->unk_26A == 1) {
|
||||
if (syatekiMan->shootingGameState == SG_GAME_STATE_RUNNING) {
|
||||
if (this->unk_1D8 > 160 && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
|
||||
this->unk_1D8 = 0;
|
||||
func_80A2C150(this);
|
||||
|
@ -319,12 +320,12 @@ void func_80A2C4D0(EnSyatekiDekunuts* this, PlayState* play) {
|
|||
|
||||
if (EN_SYATEKI_DEKUNUTS_GET_PARAM_F(&this->actor) == 1) {
|
||||
EffectSsExtra_Spawn(play, &this->actor.world.pos, &D_80A2CBA0, &D_80A2CBAC, 5, 2);
|
||||
syatekiMan->unk_280 += 100;
|
||||
syatekiMan->unk_26E++;
|
||||
syatekiMan->score += 100;
|
||||
syatekiMan->perGameVar2.bonusDekuScrubHitCounter++;
|
||||
} else {
|
||||
EffectSsExtra_Spawn(play, &this->actor.world.pos, &D_80A2CBA0, &D_80A2CBAC, 5, 0);
|
||||
syatekiMan->unk_280 += 30;
|
||||
syatekiMan->unk_278++;
|
||||
syatekiMan->score += 30;
|
||||
syatekiMan->dekuScrubHitCounter++;
|
||||
}
|
||||
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_DAMAGE);
|
||||
|
@ -356,7 +357,7 @@ void func_80A2C5DC(EnSyatekiDekunuts* this, PlayState* play) {
|
|||
EffectSsHahen_SpawnBurst(play, &sp40, 3.0f, 0, 12, 3, 15, HAHEN_OBJECT_DEFAULT, 10, NULL);
|
||||
|
||||
if (EN_SYATEKI_DEKUNUTS_GET_PARAM_F(&this->actor) != 1) {
|
||||
syatekiMan->unk_272 &= ~(1 << this->unk_1E8);
|
||||
syatekiMan->dekuScrubFlags &= ~(1 << this->unk_1E8);
|
||||
}
|
||||
|
||||
func_80A2BE54(this);
|
||||
|
|
|
@ -5,8 +5,9 @@
|
|||
#include "objects/object_dekunuts/object_dekunuts.h"
|
||||
|
||||
#define EN_SYATEKI_DEKUNUTS_GET_PARAM_F(thisx) ((thisx)->params & 0xF)
|
||||
#define EN_SYATEKI_DEKUNUTS_GET_PARAM_F0(thisx) (((thisx)->params & 0xF0) >> 4)
|
||||
#define EN_SYATEKI_DEKUNUTS_GET_NUMBER(thisx) (((thisx)->params & 0xF0) >> 4)
|
||||
#define EN_SYATEKI_DEKUNUTS_GET_PARAM_FF00(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
#define EN_SYATEKI_DEKUNUTS_PARAMS(unkFF00, number, unkF) (((unkFF00 << 8) & 0xFF00) | ((number << 4) & 0xF0) | (unkF & 0xF))
|
||||
|
||||
struct EnSyatekiDekunuts;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,49 +4,70 @@
|
|||
#include "global.h"
|
||||
#include "objects/object_shn/object_shn.h"
|
||||
|
||||
|
||||
struct EnSyatekiMan;
|
||||
|
||||
typedef void (*EnSyatekiManActionFunc)(struct EnSyatekiMan*, PlayState*);
|
||||
|
||||
#define ENSYATEKIMAN_GET_FF00(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
#define EN_SYATEKI_MAN_GET_PATH(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 index;
|
||||
/* 0x04 */ f32 x;
|
||||
/* 0x08 */ f32 y;
|
||||
/* 0x0C */ f32 z;
|
||||
/* 0x10 */ s32 variable;
|
||||
} EnSyatekiManUnkStruct; // size = 0x14
|
||||
typedef enum {
|
||||
/* 0 */ SG_GAME_STATE_NONE, // None of the states below apply.
|
||||
/* 1 */ SG_GAME_STATE_RUNNING, // The shooting game is in-progress.
|
||||
/* 2 */ SG_GAME_STATE_EXPLAINING_RULES, // For the Town Shooting Gallery, this state is also used for explaining the current high score.
|
||||
/* 3 */ SG_GAME_STATE_NOT_PLAYING, // Either the player said "No" to playing, or they said "Yes" but don't have enough rupees.
|
||||
/* 4 */ SG_GAME_STATE_ONE_MORE_GAME, // The player failed to get a new high score (Town) and/or perfect score (Swamp and Town).
|
||||
/* 5 */ SG_GAME_STATE_GIVING_BONUS, // The player gets bonus points at the end of the Swamp game if they get a perfect score.
|
||||
/* 6 */ SG_GAME_STATE_ENDED, // The player got a new high score and/or perfect score (Town), or the game is over (Swamp).
|
||||
/* 7 */ SG_GAME_STATE_MOVING_PLAYER, // The player is automatically moving towards the spot to play the game.
|
||||
} ShootingGalleryGameState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SG_OCTO_STATE_SPAWNING,
|
||||
/* 1 */ SG_OCTO_STATE_SPAWNED,
|
||||
/* 70 */ SG_OCTO_STATE_INITIAL = 70,
|
||||
/* 80 */ SG_OCTO_STATE_HIDING = 80,
|
||||
} ShootingGalleryOctorokState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SG_OCTO_HIT_TYPE_NONE,
|
||||
/* 1 */ SG_OCTO_HIT_TYPE_RED,
|
||||
/* 2 */ SG_OCTO_HIT_TYPE_BLUE,
|
||||
} ShootingGalleryoctorokHitType;
|
||||
|
||||
typedef struct EnSyatekiMan {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ EnSyatekiManActionFunc actionFunc;
|
||||
/* 0x18C */ Path* path;
|
||||
/* 0x190 */ s32 unk_190;
|
||||
/* 0x194 */ s32 unk_194;
|
||||
/* 0x190 */ s32 octorokFlags;
|
||||
/* 0x194 */ s32 swampTargetActorListIndex; // used but never initialized, so the value is implicitly always 0
|
||||
/* 0x198 */ Vec3s jointTable[BURLY_GUY_LIMB_MAX];
|
||||
/* 0x1F8 */ Vec3s morphTable[BURLY_GUY_LIMB_MAX];
|
||||
/* 0x258 */ Vec3s unk_258;
|
||||
/* 0x25E */ Vec3s unk_25E;
|
||||
/* 0x258 */ Vec3s headRot;
|
||||
/* 0x25E */ Vec3s torsoRot;
|
||||
/* 0x264 */ s16 eyeIndex;
|
||||
/* 0x266 */ s16 blinkTimer;
|
||||
/* 0x268 */ UNK_TYPE1 unk268[0x2];
|
||||
/* 0x26A */ s16 unk_26A;
|
||||
/* 0x26C */ s16 unk_26C;
|
||||
/* 0x26E */ s16 unk_26E;
|
||||
/* 0x270 */ s16 unk_270;
|
||||
/* 0x272 */ s16 unk_272;
|
||||
/* 0x274 */ s16 unk_274;
|
||||
/* 0x276 */ s16 unk_276;
|
||||
/* 0x278 */ s16 unk_278;
|
||||
/* 0x27A */ s16 unk_27A;
|
||||
/* 0x27C */ s16 unk_27C;
|
||||
/* 0x27E */ s16 unk_27E;
|
||||
/* 0x280 */ s16 unk_280;
|
||||
/* 0x282 */ s16 unk_282;
|
||||
/* 0x284 */ s16 unk_284;
|
||||
/* 0x26A */ s16 shootingGameState;
|
||||
/* 0x26C */ union {
|
||||
s16 guaySpawnTimer;
|
||||
s16 octorokState;
|
||||
} perGameVar1;
|
||||
/* 0x26E */ union {
|
||||
s16 bonusDekuScrubHitCounter;
|
||||
s16 octorokHitType;
|
||||
} perGameVar2;
|
||||
/* 0x270 */ s16 talkWaitTimer;
|
||||
/* 0x272 */ s16 dekuScrubFlags;
|
||||
/* 0x274 */ s16 guayFlags;
|
||||
/* 0x276 */ s16 wolfosFlags;
|
||||
/* 0x278 */ s16 dekuScrubHitCounter;
|
||||
/* 0x27A */ s16 guayHitCounter;
|
||||
/* 0x27C */ s16 currentWave;
|
||||
/* 0x27E */ s16 flagsIndex; // Used for Octoroks in Town and Guays in Swamp
|
||||
/* 0x280 */ s16 score;
|
||||
/* 0x282 */ s16 talkFlags;
|
||||
/* 0x284 */ s16 prevTextId;
|
||||
} EnSyatekiMan; // size = 0x288
|
||||
|
||||
extern const ActorInit En_Syateki_Man_InitVars;
|
||||
|
|
|
@ -137,7 +137,7 @@ s32 func_80A361F4(EnSyatekiOkuta* this) {
|
|||
|
||||
temp_v1 = EN_SYATEKI_OKUTA_GET_F(&this->actor);
|
||||
if ((temp_v1 == 1) || (temp_v1 == 4)) {
|
||||
temp_a0 = syatekiMan->unk_190;
|
||||
temp_a0 = syatekiMan->octorokFlags;
|
||||
temp_a1 = (temp_v1 * 2) + 6;
|
||||
|
||||
if ((temp_a0 >> temp_a1) & 3) {
|
||||
|
@ -212,7 +212,7 @@ void func_80A36444(EnSyatekiOkuta* this) {
|
|||
void func_80A36488(EnSyatekiOkuta* this, PlayState* play) {
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if (syatekiMan->unk_26C >= 0x46) {
|
||||
if (syatekiMan->perGameVar1.octorokState >= SG_OCTO_STATE_INITIAL) {
|
||||
func_80A364C0(this);
|
||||
}
|
||||
}
|
||||
|
@ -341,9 +341,10 @@ void func_80A36AF8(EnSyatekiOkuta* this, PlayState* play) {
|
|||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
s16 temp_v1_2;
|
||||
|
||||
if ((this->actionFunc != func_80A36488) && (this->actionFunc != func_80A363B4) && (syatekiMan->unk_26A == 1) &&
|
||||
(syatekiMan->unk_26C == 0)) {
|
||||
temp_v1_2 = (syatekiMan->unk_190 >> (EN_SYATEKI_OKUTA_GET_F(&this->actor) * 2)) & 3;
|
||||
if ((this->actionFunc != func_80A36488) && (this->actionFunc != func_80A363B4) &&
|
||||
(syatekiMan->shootingGameState == SG_GAME_STATE_RUNNING) &&
|
||||
(syatekiMan->perGameVar1.octorokState == SG_OCTO_STATE_SPAWNING)) {
|
||||
temp_v1_2 = (syatekiMan->octorokFlags >> (EN_SYATEKI_OKUTA_GET_F(&this->actor) * 2)) & 3;
|
||||
if (temp_v1_2 > 0) {
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
this->unk_2A6 = temp_v1_2;
|
||||
|
@ -370,11 +371,11 @@ void EnSyatekiOkuta_Update(Actor* thisx, PlayState* play) {
|
|||
if (this->unk_2A6 == 1) {
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
|
||||
play->interfaceCtx.unk_25C++;
|
||||
syatekiMan->unk_280++;
|
||||
syatekiMan->unk_26E = 1;
|
||||
syatekiMan->score++;
|
||||
syatekiMan->perGameVar2.octorokHitType = SG_OCTO_HIT_TYPE_RED;
|
||||
} else {
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_ERROR);
|
||||
syatekiMan->unk_26E = 2;
|
||||
syatekiMan->perGameVar2.octorokHitType = SG_OCTO_HIT_TYPE_BLUE;
|
||||
}
|
||||
|
||||
func_80A3657C(this);
|
||||
|
|
|
@ -151,7 +151,7 @@ void EnSyatekiWf_Init(Actor* thisx, PlayState* play) {
|
|||
path = &play->setupPathList[path->unk1];
|
||||
}
|
||||
|
||||
for (i = 0; i < EN_SYATEKI_WF_GET_PARAM_FF00(&this->actor); i++) {
|
||||
for (i = 0; i < EN_SYATEKI_WF_GET_NUMBER(&this->actor); i++) {
|
||||
path = &play->setupPathList[path->unk1];
|
||||
}
|
||||
|
||||
|
@ -224,7 +224,7 @@ void func_80A201CC(EnSyatekiWf* this) {
|
|||
this->actor.draw = NULL;
|
||||
this->unk_2A4 = 1;
|
||||
this->unk_298 = 0;
|
||||
syatekiMan->unk_276 &= ~(1 << EN_SYATEKI_WF_GET_PARAM_FF00(&this->actor));
|
||||
syatekiMan->wolfosFlags &= ~(1 << EN_SYATEKI_WF_GET_NUMBER(&this->actor));
|
||||
this->actionFunc = func_80A20284;
|
||||
}
|
||||
|
||||
|
@ -233,10 +233,10 @@ void func_80A20284(EnSyatekiWf* this, PlayState* play) {
|
|||
|
||||
if (this->actor.parent != NULL) {
|
||||
syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
if ((syatekiMan->unk_26A == 1) && (this->unk_298 == 1)) {
|
||||
if ((syatekiMan->shootingGameState == SG_GAME_STATE_RUNNING) && (this->unk_298 == 1)) {
|
||||
func_80A200E0(this);
|
||||
func_80A2030C(this);
|
||||
} else if (syatekiMan->unk_276 & (1 << EN_SYATEKI_WF_GET_PARAM_FF00(&this->actor))) {
|
||||
} else if (syatekiMan->wolfosFlags & (1 << EN_SYATEKI_WF_GET_NUMBER(&this->actor))) {
|
||||
this->unk_298 = 1;
|
||||
}
|
||||
}
|
||||
|
@ -270,7 +270,7 @@ void func_80A203DC(EnSyatekiWf* this, PlayState* play) {
|
|||
s16 temp_v0;
|
||||
EnSyatekiMan* syatekiMan = (EnSyatekiMan*)this->actor.parent;
|
||||
|
||||
if (syatekiMan->unk_26A != 1) {
|
||||
if (syatekiMan->shootingGameState != SG_GAME_STATE_RUNNING) {
|
||||
func_80A201CC(this);
|
||||
}
|
||||
|
||||
|
@ -375,7 +375,7 @@ void func_80A20858(EnSyatekiWf* this, PlayState* play) {
|
|||
EffectSsExtra_Spawn(play, &this->actor.world.pos, &D_80A20EDC, &D_80A20EE8, 5, 2);
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_WOLFOS_DEAD);
|
||||
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 6);
|
||||
syatekiMan->unk_280 += 100;
|
||||
syatekiMan->score += 100;
|
||||
this->actionFunc = func_80A208F8;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
#include "objects/object_wf/object_wf.h"
|
||||
|
||||
#define EN_SYATEKI_WF_GET_PARAM_F0(thisx) (((thisx)->params & 0xF0) >> 4)
|
||||
#define EN_SYATEKI_WF_GET_PARAM_FF00(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
#define EN_SYATEKI_WF_GET_NUMBER(thisx) (((thisx)->params & 0xFF00) >> 8)
|
||||
#define EN_SYATEKI_WF_PARAMS(number, unkF0, unused) (((number << 8) & 0xFF00) | ((unkF0 << 4) & 0xF0) | (unused & 0xF))
|
||||
|
||||
struct EnSyatekiWf;
|
||||
|
||||
|
|
|
@ -9080,33 +9080,33 @@
|
|||
0x809C5E14:("EnBomBowlMan_Update",),
|
||||
0x809C5F44:("EnBomBowlMan_OverrideLimbDraw",),
|
||||
0x809C5FC4:("EnBomBowlMan_Draw",),
|
||||
0x809C64C0:("func_809C64C0",),
|
||||
0x809C64C0:("EnSyatekiMan_Swamp_SpawnTargetActors",),
|
||||
0x809C6578:("EnSyatekiMan_Init",),
|
||||
0x809C66FC:("EnSyatekiMan_Destroy",),
|
||||
0x809C6720:("func_809C6720",),
|
||||
0x809C6810:("func_809C6810",),
|
||||
0x809C6848:("func_809C6848",),
|
||||
0x809C6A04:("func_809C6A04",),
|
||||
0x809C6C2C:("func_809C6C2C",),
|
||||
0x809C6E30:("func_809C6E30",),
|
||||
0x809C6F98:("func_809C6F98",),
|
||||
0x809C72D8:("func_809C72D8",),
|
||||
0x809C7380:("func_809C7380",),
|
||||
0x809C7620:("func_809C7620",),
|
||||
0x809C7990:("func_809C7990",),
|
||||
0x809C7A90:("func_809C7A90",),
|
||||
0x809C7C14:("func_809C7C14",),
|
||||
0x809C7D14:("func_809C7D14",),
|
||||
0x809C7EB4:("func_809C7EB4",),
|
||||
0x809C7FFC:("func_809C7FFC",),
|
||||
0x809C80C0:("func_809C80C0",),
|
||||
0x809C81D0:("func_809C81D0",),
|
||||
0x809C8488:("func_809C8488",),
|
||||
0x809C8610:("func_809C8610",),
|
||||
0x809C8710:("func_809C8710",),
|
||||
0x809C8808:("func_809C8808",),
|
||||
0x809C898C:("func_809C898C",),
|
||||
0x809C8BF0:("func_809C8BF0",),
|
||||
0x809C6720:("EnSyatekiMan_MovePlayerToPos",),
|
||||
0x809C6810:("EnSyatekiMan_SetupIdle",),
|
||||
0x809C6848:("EnSyatekiMan_Swamp_Idle",),
|
||||
0x809C6A04:("EnSyatekiMan_Swamp_HandleChoice",),
|
||||
0x809C6C2C:("EnSyatekiMan_Swamp_HandleNormalMessage",),
|
||||
0x809C6E30:("EnSyatekiMan_Swamp_Talk",),
|
||||
0x809C6F98:("EnSyatekiMan_Town_StartIntroTextbox",),
|
||||
0x809C72D8:("EnSyatekiMan_Town_Idle",),
|
||||
0x809C7380:("EnSyatekiMan_Town_HandleChoice",),
|
||||
0x809C7620:("EnSyatekiMan_Town_HandleNormalMessage",),
|
||||
0x809C7990:("EnSyatekiMan_Town_Talk",),
|
||||
0x809C7A90:("EnSyatekiMan_Swamp_SetupGiveReward",),
|
||||
0x809C7C14:("EnSyatekiMan_Swamp_GiveReward",),
|
||||
0x809C7D14:("EnSyatekiMan_Town_SetupGiveReward",),
|
||||
0x809C7EB4:("EnSyatekiMan_Town_GiveReward",),
|
||||
0x809C7FFC:("EnSyatekiMan_Swamp_MovePlayerAndExplainRules",),
|
||||
0x809C80C0:("EnSyatekiMan_Swamp_StartGame",),
|
||||
0x809C81D0:("EnSyatekiMan_Swamp_RunGame",),
|
||||
0x809C8488:("EnSyatekiMan_Swamp_EndGame",),
|
||||
0x809C8610:("EnSyatekiMan_Swamp_AddBonusPoints",),
|
||||
0x809C8710:("EnSyatekiMan_Town_MovePlayerAndSayHighScore",),
|
||||
0x809C8808:("EnSyatekiMan_Town_StartGame",),
|
||||
0x809C898C:("EnSyatekiMan_Town_RunGame",),
|
||||
0x809C8BF0:("EnSyatekiMan_Town_EndGame",),
|
||||
0x809C8DE8:("EnSyatekiMan_Blink",),
|
||||
0x809C8E44:("EnSyatekiMan_Update",),
|
||||
0x809C8EE4:("EnSyatekiMan_OverrideLimbDraw",),
|
||||
|
|
|
@ -9922,23 +9922,23 @@
|
|||
0x809C6264:("D_809C6264","f32","",0x4),
|
||||
0x809C6268:("D_809C6268","f32","",0x4),
|
||||
0x809C9160:("En_Syateki_Man_InitVars","UNK_TYPE1","",0x1),
|
||||
0x809C9180:("D_809C9180","UNK_TYPE1","",0x1),
|
||||
0x809C91C8:("D_809C91C8","UNK_TYPE1","",0x1),
|
||||
0x809C91D0:("D_809C91D0","UNK_TYPE1","",0x1),
|
||||
0x809C934C:("D_809C934C","UNK_TYPE1","",0x1),
|
||||
0x809C9464:("D_809C9464","UNK_PTR","",0x4),
|
||||
0x809C946C:("D_809C946C","UNK_TYPE1","",0x1),
|
||||
0x809C9474:("D_809C9474","UNK_TYPE4","",0x4),
|
||||
0x809C9480:("D_809C9480","UNK_TYPE4","",0x4),
|
||||
0x809C948C:("D_809C948C","UNK_TYPE4","",0x4),
|
||||
0x809C9498:("D_809C9498","UNK_TYPE2","",0x2),
|
||||
0x809C949C:("D_809C949C","UNK_TYPE2","",0x2),
|
||||
0x809C94A0:("D_809C94A0","UNK_TYPE4","",0x4),
|
||||
0x809C94A4:("D_809C94A4","UNK_TYPE2","",0x2),
|
||||
0x809C94A8:("D_809C94A8","UNK_TYPE4","",0x4),
|
||||
0x809C94AC:("D_809C94AC","UNK_TYPE4","",0x4),
|
||||
0x809C94B8:("D_809C94B8","UNK_PTR","",0x4),
|
||||
0x809C94D0:("D_809C94D0","UNK_TYPE1","",0x1),
|
||||
0x809C9180:("sAnimations","UNK_TYPE1","",0x1),
|
||||
0x809C91C8:("sGuayFlagsPerWave","UNK_TYPE1","",0x1),
|
||||
0x809C91D0:("sNormalSwampTargetActorList","UNK_TYPE1","",0x1),
|
||||
0x809C934C:("sUnusedSwampTargetActorList","UNK_TYPE1","",0x1),
|
||||
0x809C9464:("sSwampTargetActorLists","UNK_PTR","",0x4),
|
||||
0x809C946C:("sSwampTargetActorListLengths","UNK_TYPE1","",0x1),
|
||||
0x809C9474:("sSwampPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C9480:("sTownFierceDietyPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C948C:("sTownPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C9498:("sGameStartTimer","s16","",0x2),
|
||||
0x809C949C:("sHasSpawnedGuaysForThisWave","UNK_TYPE2","",0x2),
|
||||
0x809C94A0:("sBonusTimer","s32","",0x4),
|
||||
0x809C94A4:("sGameStartTimer","s16","",0x2),
|
||||
0x809C94A8:("sModFromLosingTime","s32","",0x4),
|
||||
0x809C94AC:("sFocusOffset","UNK_TYPE4","",0x4),
|
||||
0x809C94B8:("sEyeTextures","UNK_PTR","",0x4),
|
||||
0x809C94D0:("sOctorokFlagsPerWave","UNK_TYPE1","",0x1),
|
||||
0x809C950C:("jtbl_809C950C","UNK_PTR","",0x4),
|
||||
0x809C9544:("jtbl_809C9544","UNK_PTR","",0x4),
|
||||
0x809C9570:("jtbl_809C9570","UNK_PTR","",0x4),
|
||||
|
|
Loading…
Reference in New Issue