Misc Cleanup 6 (#1307)

* more cleanup

* 3 more brackets

* PR Suggestions
This commit is contained in:
engineer124 2023-07-05 12:09:01 +10:00 committed by GitHub
parent 857a0cfdaf
commit 532ec30973
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
69 changed files with 674 additions and 462 deletions

View File

@ -6,10 +6,10 @@
<DList Name="gFsnToupeeDL" Offset="0x2D88" />
<DList Name="gFsnHeadDL" Offset="0x2EF0" />
<DList Name="gFsnRightUpperArmDL" Offset="0x34C8" />
<DList Name="gFsnRightForeArmDL" Offset="0x3600" />
<DList Name="gFsnRightForearmDL" Offset="0x3600" />
<DList Name="gFsnRightHandDL" Offset="0x3718" />
<DList Name="gFsnLeftUpperArmDL" Offset="0x3860" />
<DList Name="gFsnLeftForeArmDL" Offset="0x3998" />
<DList Name="gFsnLeftForearmDL" Offset="0x3998" />
<DList Name="gFsnLeftHandDL" Offset="0x3AB0" />
<DList Name="gFsnPelvisDL" Offset="0x3BF8" />
<DList Name="gFsnRightThighDL" Offset="0x3CF0" />

View File

@ -55,10 +55,10 @@
<DList Name="gMoonChildChestDL" Offset="0x14DA0" />
<DList Name="gMoonChildHeadDL" Offset="0x14F18" />
<DList Name="gMoonChildLeftArmDL" Offset="0x15380" />
<DList Name="gMoonChildLeftForeArmDL" Offset="0x154B0" />
<DList Name="gMoonChildLeftForearmDL" Offset="0x154B0" />
<DList Name="gMoonChildLeftHandDL" Offset="0x155D0" />
<DList Name="gMoonChildRightArmDL" Offset="0x15758" />
<DList Name="gMoonChildRightForeArmDL" Offset="0x15888" />
<DList Name="gMoonChildRightForearmDL" Offset="0x15888" />
<DList Name="gMoonChildRightHandDL" Offset="0x159A8" />
<!-- Moonchild Textures -->

View File

@ -43,14 +43,14 @@ u32 gUpgradeMasks[] = {
// 3 = two-bit masks
// 7 = three-bit masks
u32 gUpgradeNegMasks[] = {
~(7 << 0), // Quivers
~(7 << 3), // Bomb Bags
~(7 << 6), // Unused (Strength)
~(7 << 9), // Unused (Scale)
~(3 << 12), // Wallets
~(7 << 14), // Unused (Deku Seed Bullet Bags)
~(7 << 17), // Unused (Deku Stick)
~(7 << 20), // Unused (Deku Nut)
~(7 << 0), // UPG_QUIVER
~(7 << 3), // UPG_BOMB_BAG
~(7 << 6), // UPG_STRENGTH
~(7 << 9), // UPG_SCALE
~(3 << 12), // UPG_WALLET
~(7 << 14), // UPG_BULLET_BAG
~(7 << 17), // UPG_DEKU_STICKS
~(7 << 20), // UPG_DEKU_NUTS
};
u8 gEquipShifts[] = {
@ -61,25 +61,25 @@ u8 gEquipShifts[] = {
};
u8 gUpgradeShifts[] = {
0, // Quivers
3, // Bomb Bags
6, // Unused (Strength)
9, // Unused (Scale)
12, // Wallets
14, // Unused (Deku Seed Bullet Bags)
17, // Unused (Deku Stick)
20, // Unused (Deku Nut)
0, // UPG_QUIVER
3, // UPG_BOMB_BAG
6, // UPG_STRENGTH
9, // UPG_SCALE
12, // UPG_WALLET
14, // UPG_BULLET_BAG
17, // UPG_DEKU_STICKS
20, // UPG_DEKU_NUTS
};
u16 gUpgradeCapacities[][4] = {
{ 0, 30, 40, 50 }, // Quivers
{ 0, 20, 30, 40 }, // Bomb Bags
{ 0, 0, 0, 0 }, // Unused (Strength)
{ 0, 0, 0, 0 }, // Unused (Scale)
{ 99, 200, 500, 500 }, // Wallets
{ 0, 30, 40, 50 }, // Unused (Deku Seed Bullet Bags)
{ 0, 10, 20, 30 }, // Unused (Deku Stick)
{ 0, 20, 30, 40 }, // Unused (Deku Nut)
{ 0, 30, 40, 50 }, // UPG_QUIVER
{ 0, 20, 30, 40 }, // UPG_BOMB_BAG
{ 0, 0, 0, 0 }, // UPG_STRENGTH
{ 0, 0, 0, 0 }, // UPG_SCALE
{ 99, 200, 500, 500 }, // UPG_WALLET
{ 0, 30, 40, 50 }, // UPG_BULLET_BAG
{ 0, 10, 20, 30 }, // UPG_DEKU_STICKS
{ 0, 20, 30, 40 }, // UPG_DEKU_NUTS
};
// eight-bit masks
@ -512,7 +512,7 @@ u8 Inventory_DeleteEquipment(PlayState* play, s16 equipment) {
}
void Inventory_ChangeUpgrade(s16 upgrade, u32 value) {
u32 upgrades = gSaveContext.save.saveInfo.inventory.upgrades;
u32 upgrades = GET_SAVE_INVENTORY_UPGRADES;
upgrades &= gUpgradeNegMasks[upgrade];
upgrades |= value << gUpgradeShifts[upgrade];

View File

@ -301,7 +301,7 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
break;
case CS_MISC_PLAYER_FORM_HUMAN:
sCutsceneStoredPlayerForm = gSaveContext.save.playerForm;
sCutsceneStoredPlayerForm = GET_PLAYER_FORM;
gSaveContext.save.playerForm = PLAYER_FORM_HUMAN;
gSaveContext.save.equippedMask = PLAYER_MASK_NONE;
break;

View File

@ -1331,16 +1331,19 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP
dropQuantity = sDropTableAmounts[params + dropTableIndex];
if (dropId == ITEM00_MASK) {
switch (gSaveContext.save.playerForm) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_HUMAN:
dropId = ITEM00_ARROWS_10;
break;
case PLAYER_FORM_ZORA:
dropId = ITEM00_RECOVERY_HEART;
break;
case PLAYER_FORM_GORON:
dropId = ITEM00_MAGIC_JAR_SMALL;
break;
default:
dropId = ITEM00_RUPEE_GREEN;
break;

View File

@ -2020,10 +2020,10 @@ void Interface_UpdateButtonsPart2(PlayState* play) {
}
// C buttons
if (gSaveContext.save.playerForm == player->transformation) {
if (GET_PLAYER_FORM == player->transformation) {
for (i = EQUIP_SLOT_C_LEFT; i <= EQUIP_SLOT_C_RIGHT; i++) {
// Individual C button
if (!gPlayerFormItemRestrictions[(void)0, gSaveContext.save.playerForm][GET_CUR_FORM_BTN_ITEM(i)]) {
if (!gPlayerFormItemRestrictions[GET_PLAYER_FORM][GET_CUR_FORM_BTN_ITEM(i)]) {
// Item not usable in current playerForm
if (gSaveContext.buttonStatus[i] != BTN_DISABLED) {
gSaveContext.buttonStatus[i] = BTN_DISABLED;
@ -2182,7 +2182,7 @@ void Interface_UpdateButtonsPart1(PlayState* play) {
if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
gSaveContext.hudVisibilityForceButtonAlphasByStatus = false;
if ((player->stateFlags1 & PLAYER_STATE1_800000) || CHECK_WEEKEVENTREG(WEEKEVENTREG_08_01) ||
(!(CHECK_EVENTINF(EVENTINF_41)) && (play->unk_1887C >= 2))) {
(!CHECK_EVENTINF(EVENTINF_41) && (play->unk_1887C >= 2))) {
// Riding Epona OR Honey & Darling minigame OR Horseback balloon minigame OR related to swamp boat
// (non-minigame?)
if ((player->stateFlags1 & PLAYER_STATE1_800000) && (player->currentMask == PLAYER_MASK_BLAST) &&
@ -2255,8 +2255,7 @@ void Interface_UpdateButtonsPart1(PlayState* play) {
(gSaveContext.save.entrance == ENTRANCE(ROMANI_RANCH, 0)) &&
(Cutscene_GetSceneLayer(play) != 0) && (play->transitionTrigger == TRANS_TRIGGER_OFF)) {
Interface_SetHudVisibility(HUD_VISIBILITY_A_B_MINIMAP);
} else if ((gSaveContext.minigameStatus == MINIGAME_STATUS_ACTIVE) &&
(CHECK_EVENTINF(EVENTINF_35))) {
} else if ((gSaveContext.minigameStatus == MINIGAME_STATUS_ACTIVE) && CHECK_EVENTINF(EVENTINF_35)) {
Interface_SetHudVisibility(HUD_VISIBILITY_B_MINIMAP);
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_82_08) &&
(gSaveContext.minigameStatus == MINIGAME_STATUS_ACTIVE)) {
@ -2345,8 +2344,8 @@ void Interface_UpdateButtonsPart1(PlayState* play) {
restoreHudVisibility = true;
sPictoState = PICTO_BOX_STATE_OFF;
} else if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, BTN_A) || (func_801A5100() == 1)) {
if (!(CHECK_EVENTINF(EVENTINF_41)) ||
((CHECK_EVENTINF(EVENTINF_41)) && (CutsceneManager_GetCurrentCsId() == CS_ID_NONE))) {
if (!CHECK_EVENTINF(EVENTINF_41) ||
(CHECK_EVENTINF(EVENTINF_41) && (CutsceneManager_GetCurrentCsId() == CS_ID_NONE))) {
Audio_PlaySfx(NA_SE_SY_CAMERA_SHUTTER);
SREG(89) = 1;
play->haltAllActors = true;
@ -3145,10 +3144,8 @@ void Inventory_UpdateDeitySwordEquip(PlayState* play) {
interfaceCtx->unk_21C = 0;
interfaceCtx->bButtonDoAction = 0;
// Is simply checking if (gSaveContext.save.playerForm == PLAYER_FORM_FIERCE_DEITY)
if ((((gSaveContext.save.playerForm > 0) && (gSaveContext.save.playerForm < 4))
? 1
: gSaveContext.save.playerForm >> 1) == 0) {
// Is simply checking if (GET_PLAYER_FORM == PLAYER_FORM_FIERCE_DEITY)
if ((((GET_PLAYER_FORM > 0) && (GET_PLAYER_FORM < 4)) ? 1 : GET_PLAYER_FORM >> 1) == 0) {
CUR_FORM_EQUIP(EQUIP_SLOT_B) = ITEM_SWORD_DEITY;
} else if (CUR_FORM_EQUIP(EQUIP_SLOT_B) == ITEM_SWORD_DEITY) {
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) == EQUIP_VALUE_SWORD_NONE) {
@ -4104,7 +4101,7 @@ void Interface_DrawBButtonIcons(PlayState* play) {
(play->sceneId != SCENE_BOWLING) &&
((gSaveContext.minigameStatus != MINIGAME_STATUS_ACTIVE) ||
(gSaveContext.save.entrance != ENTRANCE(ROMANI_RANCH, 0))) &&
((gSaveContext.minigameStatus != MINIGAME_STATUS_ACTIVE) || !(CHECK_EVENTINF(EVENTINF_35))) &&
((gSaveContext.minigameStatus != MINIGAME_STATUS_ACTIVE) || !CHECK_EVENTINF(EVENTINF_35)) &&
(!CHECK_WEEKEVENTREG(WEEKEVENTREG_31_80) || (play->unk_1887C != 100))) {
Interface_DrawAmmoCount(play, EQUIP_SLOT_B, interfaceCtx->bAlpha);
}
@ -6409,7 +6406,7 @@ void Interface_Draw(PlayState* play) {
Interface_DrawItemButtons(play);
if (player->transformation == ((void)0, gSaveContext.save.playerForm)) {
if (player->transformation == GET_PLAYER_FORM) {
Interface_DrawBButtonIcons(play);
}
Interface_DrawCButtonIcons(play);

View File

@ -800,16 +800,91 @@ ItemEquips sSaveDefaultItemEquips = {
Inventory sSaveDefaultInventory = {
// items
{
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
ITEM_NONE, // SLOT_OCARINA
ITEM_NONE, // SLOT_BOW
ITEM_NONE, // SLOT_ARROW_FIRE
ITEM_NONE, // SLOT_ARROW_ICE
ITEM_NONE, // SLOT_ARROW_LIGHT
ITEM_NONE, // SLOT_TRADE_DEED
ITEM_NONE, // SLOT_BOMB
ITEM_NONE, // SLOT_BOMBCHU
ITEM_NONE, // SLOT_DEKU_STICK
ITEM_NONE, // SLOT_DEKU_NUT
ITEM_NONE, // SLOT_MAGIC_BEANS
ITEM_NONE, // SLOT_TRADE_KEY_MAMA
ITEM_NONE, // SLOT_POWDER_KEG
ITEM_NONE, // SLOT_PICTOGRAPH_BOX
ITEM_NONE, // SLOT_LENS_OF_TRUTH
ITEM_NONE, // SLOT_HOOKSHOT
ITEM_NONE, // SLOT_SWORD_GREAT_FAIRY
ITEM_NONE, // SLOT_TRADE_COUPLE
ITEM_NONE, // SLOT_BOTTLE_1
ITEM_NONE, // SLOT_BOTTLE_2
ITEM_NONE, // SLOT_BOTTLE_3
ITEM_NONE, // SLOT_BOTTLE_4
ITEM_NONE, // SLOT_BOTTLE_5
ITEM_NONE, // SLOT_BOTTLE_6
ITEM_NONE, // SLOT_MASK_POSTMAN
ITEM_NONE, // SLOT_MASK_ALL_NIGHT
ITEM_NONE, // SLOT_MASK_BLAST
ITEM_NONE, // SLOT_MASK_STONE
ITEM_NONE, // SLOT_MASK_GREAT_FAIRY
ITEM_NONE, // SLOT_MASK_DEKU
ITEM_NONE, // SLOT_MASK_KEATON
ITEM_NONE, // SLOT_MASK_BREMEN
ITEM_NONE, // SLOT_MASK_BUNNY
ITEM_NONE, // SLOT_MASK_DON_GERO
ITEM_NONE, // SLOT_MASK_SCENTS
ITEM_NONE, // SLOT_MASK_GORON
ITEM_NONE, // SLOT_MASK_ROMANI
ITEM_NONE, // SLOT_MASK_CIRCUS_LEADER
ITEM_NONE, // SLOT_MASK_KAFEIS_MASK
ITEM_NONE, // SLOT_MASK_COUPLE
ITEM_NONE, // SLOT_MASK_TRUTH
ITEM_NONE, // SLOT_MASK_ZORA
ITEM_NONE, // SLOT_MASK_KAMARO
ITEM_NONE, // SLOT_MASK_GIBDO
ITEM_NONE, // SLOT_MASK_GARO
ITEM_NONE, // SLOT_MASK_CAPTAIN
ITEM_NONE, // SLOT_MASK_GIANT
ITEM_NONE, // SLOT_MASK_FIERCE_DEITY
},
// ammo
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{
0, // SLOT_OCARINA
0, // SLOT_BOW
0, // SLOT_ARROW_FIRE
0, // SLOT_ARROW_ICE
0, // SLOT_ARROW_LIGHT
0, // SLOT_TRADE_DEED
0, // SLOT_BOMB
0, // SLOT_BOMBCHU
0, // SLOT_DEKU_STICK
0, // SLOT_DEKU_NUT
0, // SLOT_MAGIC_BEANS
0, // SLOT_TRADE_KEY_MAMA
0, // SLOT_POWDER_KEG
0, // SLOT_PICTOGRAPH_BOX
0, // SLOT_LENS_OF_TRUTH
0, // SLOT_HOOKSHOT
0, // SLOT_SWORD_GREAT_FAIRY
0, // SLOT_TRADE_COUPLE
0, // SLOT_BOTTLE_1
0, // SLOT_BOTTLE_2
0, // SLOT_BOTTLE_3
0, // SLOT_BOTTLE_4
0, // SLOT_BOTTLE_5
0, // SLOT_BOTTLE_6
},
// upgrades
0x120000,
(0 << 0) | // UPG_QUIVER
(0 << 3) | // UPG_BOMB_BAG
(0 << 6) | // UPG_STRENGTH
(0 << 9) | // UPG_SCALE
(0 << 12) | // UPG_WALLET
(0 << 14) | // UPG_BULLET_BAG
(1 << 17) | // UPG_DEKU_STICKS
(1 << 20), // UPG_DEKU_NUTS
// questItems
0,
// dungeonItems
@ -901,59 +976,91 @@ ItemEquips sSaveDebugItemEquips = {
Inventory sSaveDebugInventory = {
// items
{
ITEM_OCARINA_OF_TIME,
ITEM_BOW,
ITEM_ARROW_FIRE,
ITEM_ARROW_ICE,
ITEM_ARROW_LIGHT,
ITEM_MOONS_TEAR,
ITEM_BOMB,
ITEM_BOMBCHU,
ITEM_DEKU_STICK,
ITEM_DEKU_NUT,
ITEM_MAGIC_BEANS,
ITEM_ROOM_KEY,
ITEM_POWDER_KEG,
ITEM_PICTOGRAPH_BOX,
ITEM_LENS_OF_TRUTH,
ITEM_HOOKSHOT,
ITEM_SWORD_GREAT_FAIRY,
ITEM_LETTER_TO_KAFEI,
ITEM_BOTTLE,
ITEM_POTION_RED,
ITEM_POTION_GREEN,
ITEM_POTION_BLUE,
ITEM_NONE,
ITEM_NONE,
ITEM_MASK_POSTMAN,
ITEM_MASK_ALL_NIGHT,
ITEM_MASK_BLAST,
ITEM_MASK_STONE,
ITEM_MASK_GREAT_FAIRY,
ITEM_MASK_DEKU,
ITEM_MASK_KEATON,
ITEM_MASK_BREMEN,
ITEM_MASK_BUNNY,
ITEM_MASK_DON_GERO,
ITEM_MASK_SCENTS,
ITEM_MASK_GORON,
ITEM_MASK_ROMANI,
ITEM_MASK_CIRCUS_LEADER,
ITEM_MASK_KAFEIS_MASK,
ITEM_MASK_COUPLE,
ITEM_MASK_TRUTH,
ITEM_MASK_ZORA,
ITEM_MASK_KAMARO,
ITEM_MASK_GIBDO,
ITEM_MASK_GARO,
ITEM_MASK_CAPTAIN,
ITEM_MASK_GIANT,
ITEM_MASK_FIERCE_DEITY,
ITEM_OCARINA_OF_TIME, // SLOT_OCARINA
ITEM_BOW, // SLOT_BOW
ITEM_ARROW_FIRE, // SLOT_ARROW_FIRE
ITEM_ARROW_ICE, // SLOT_ARROW_ICE
ITEM_ARROW_LIGHT, // SLOT_ARROW_LIGHT
ITEM_MOONS_TEAR, // SLOT_TRADE_DEED
ITEM_BOMB, // SLOT_BOMB
ITEM_BOMBCHU, // SLOT_BOMBCHU
ITEM_DEKU_STICK, // SLOT_DEKU_STICK
ITEM_DEKU_NUT, // SLOT_DEKU_NUT
ITEM_MAGIC_BEANS, // SLOT_MAGIC_BEANS
ITEM_ROOM_KEY, // SLOT_TRADE_KEY_MAMA
ITEM_POWDER_KEG, // SLOT_POWDER_KEG
ITEM_PICTOGRAPH_BOX, // SLOT_PICTOGRAPH_BOX
ITEM_LENS_OF_TRUTH, // SLOT_LENS_OF_TRUTH
ITEM_HOOKSHOT, // SLOT_HOOKSHOT
ITEM_SWORD_GREAT_FAIRY, // SLOT_SWORD_GREAT_FAIRY
ITEM_LETTER_TO_KAFEI, // SLOT_TRADE_COUPLE
ITEM_BOTTLE, // SLOT_BOTTLE_1
ITEM_POTION_RED, // SLOT_BOTTLE_2
ITEM_POTION_GREEN, // SLOT_BOTTLE_3
ITEM_POTION_BLUE, // SLOT_BOTTLE_4
ITEM_NONE, // SLOT_BOTTLE_5
ITEM_NONE, // SLOT_BOTTLE_6
ITEM_MASK_POSTMAN, // SLOT_MASK_POSTMAN
ITEM_MASK_ALL_NIGHT, // SLOT_MASK_ALL_NIGHT
ITEM_MASK_BLAST, // SLOT_MASK_BLAST
ITEM_MASK_STONE, // SLOT_MASK_STONE
ITEM_MASK_GREAT_FAIRY, // SLOT_MASK_GREAT_FAIRY
ITEM_MASK_DEKU, // SLOT_MASK_DEKU
ITEM_MASK_KEATON, // SLOT_MASK_KEATON
ITEM_MASK_BREMEN, // SLOT_MASK_BREMEN
ITEM_MASK_BUNNY, // SLOT_MASK_BUNNY
ITEM_MASK_DON_GERO, // SLOT_MASK_DON_GERO
ITEM_MASK_SCENTS, // SLOT_MASK_SCENTS
ITEM_MASK_GORON, // SLOT_MASK_GORON
ITEM_MASK_ROMANI, // SLOT_MASK_ROMANI
ITEM_MASK_CIRCUS_LEADER, // SLOT_MASK_CIRCUS_LEADER
ITEM_MASK_KAFEIS_MASK, // SLOT_MASK_KAFEIS_MASK
ITEM_MASK_COUPLE, // SLOT_MASK_COUPLE
ITEM_MASK_TRUTH, // SLOT_MASK_TRUTH
ITEM_MASK_ZORA, // SLOT_MASK_ZORA
ITEM_MASK_KAMARO, // SLOT_MASK_KAMARO
ITEM_MASK_GIBDO, // SLOT_MASK_GIBDO
ITEM_MASK_GARO, // SLOT_MASK_GARO
ITEM_MASK_CAPTAIN, // SLOT_MASK_CAPTAIN
ITEM_MASK_GIANT, // SLOT_MASK_GIANT
ITEM_MASK_FIERCE_DEITY, // SLOT_MASK_FIERCE_DEITY
},
// ammo
{ 1, 30, 1, 1, 1, 1, 30, 30, 30, 30, 1, 1, 1, 1, 30, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
{
1, // SLOT_OCARINA
30, // SLOT_BOW
1, // SLOT_ARROW_FIRE
1, // SLOT_ARROW_ICE
1, // SLOT_ARROW_LIGHT
1, // SLOT_TRADE_DEED
30, // SLOT_BOMB
30, // SLOT_BOMBCHU
30, // SLOT_DEKU_STICK
30, // SLOT_DEKU_NUT
1, // SLOT_MAGIC_BEANS
1, // SLOT_TRADE_KEY_MAMA
1, // SLOT_POWDER_KEG
1, // SLOT_PICTOGRAPH_BOX
30, // SLOT_LENS_OF_TRUTH
1, // SLOT_HOOKSHOT
1, // SLOT_SWORD_GREAT_FAIRY
1, // SLOT_TRADE_COUPLE
1, // SLOT_BOTTLE_1
1, // SLOT_BOTTLE_2
1, // SLOT_BOTTLE_3
1, // SLOT_BOTTLE_4
0, // SLOT_BOTTLE_5
0, // SLOT_BOTTLE_6
},
// upgrades
0x120009,
(1 << 0) | // UPG_QUIVER
(1 << 3) | // UPG_BOMB_BAG
(0 << 6) | // UPG_STRENGTH
(0 << 9) | // UPG_SCALE
(0 << 12) | // UPG_WALLET
(0 << 14) | // UPG_BULLET_BAG
(1 << 17) | // UPG_DEKU_STICKS
(1 << 20), // UPG_DEKU_NUTS
// questItems
(1 << QUEST_SONG_SONATA) | (1 << QUEST_SONG_LULLABY) | (1 << QUEST_SONG_BOSSA_NOVA) | (1 << QUEST_SONG_ELEGY) |
(1 << QUEST_SONG_OATH) | (1 << QUEST_SONG_TIME) | (1 << QUEST_SONG_HEALING) | (1 << QUEST_SONG_EPONA) |
@ -991,12 +1098,20 @@ Inventory sSaveDebugInventory = {
u16 sSaveDebugChecksum = 0;
u8 D_801C6A48[] = {
ITEM_MASK_FIERCE_DEITY, ITEM_MASK_GORON, ITEM_MASK_ZORA, ITEM_MASK_DEKU, ITEM_MASK_FIERCE_DEITY,
u8 D_801C6A48[PLAYER_FORM_MAX] = {
ITEM_MASK_FIERCE_DEITY, // PLAYER_FORM_FIERCE_DEITY
ITEM_MASK_GORON, // PLAYER_FORM_GORON
ITEM_MASK_ZORA, // PLAYER_FORM_ZORA
ITEM_MASK_DEKU, // PLAYER_FORM_DEKU
ITEM_MASK_FIERCE_DEITY, // PLAYER_FORM_HUMAN
};
u8 D_801C6A50[] = {
SLOT_MASK_FIERCE_DEITY, SLOT_MASK_GORON, SLOT_MASK_ZORA, SLOT_MASK_DEKU, SLOT_MASK_FIERCE_DEITY,
u8 D_801C6A50[PLAYER_FORM_MAX] = {
SLOT_MASK_FIERCE_DEITY, // PLAYER_FORM_FIERCE_DEITY
SLOT_MASK_GORON, // PLAYER_FORM_GORON
SLOT_MASK_ZORA, // PLAYER_FORM_ZORA
SLOT_MASK_DEKU, // PLAYER_FORM_DEKU
SLOT_MASK_FIERCE_DEITY, // PLAYER_FORM_HUMAN
};
/**

View File

@ -70,7 +70,7 @@ void DemoTreLgt_Init(Actor* thisx, PlayState* play) {
this->colorAlpha2 = 255;
this->status = 0;
//! @bug Zora Link should also use animationType 0
if (gSaveContext.save.playerForm == PLAYER_FORM_FIERCE_DEITY) {
if (GET_PLAYER_FORM == PLAYER_FORM_FIERCE_DEITY) {
this->animationType = 0;
} else {
this->animationType = 1;

View File

@ -1190,7 +1190,7 @@ s32 func_80A97274(EnAz* this, PlayState* play) {
case 0:
default:
CLEAR_WEEKEVENTREG(WEEKEVENTREG_24_04);
if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_16_40))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_16_40)) {
textId = 0x10CE;
} else {
textId = 0x10D4;

View File

@ -89,7 +89,7 @@ void func_80C22DEC(EnBh* this, PlayState* play) {
}
} else {
SkelAnime_Update(&this->skelanime);
if ((this->timer == 0) && (Animation_OnFrame(&this->skelanime, 6.0f))) {
if ((this->timer == 0) && Animation_OnFrame(&this->skelanime, 6.0f)) {
this->skelanime.playSpeed = 0.0f;
this->timer = Rand_ZeroFloat(50.0f) + 50.0f;
}

View File

@ -119,7 +119,7 @@ void func_809CD028(EnBji01* this, PlayState* play) {
switch (this->actor.params) {
case SHIKASHI_TYPE_DEFAULT:
case SHIKASHI_TYPE_FINISHED_CONVERSATION:
switch (gSaveContext.save.playerForm) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_17_10)) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_74_80)) {
@ -132,6 +132,7 @@ void func_809CD028(EnBji01* this, PlayState* play) {
SET_WEEKEVENTREG(WEEKEVENTREG_17_10);
}
break;
case PLAYER_FORM_HUMAN:
if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) {
this->textId = 0x236A;
@ -142,6 +143,7 @@ void func_809CD028(EnBji01* this, PlayState* play) {
SET_WEEKEVENTREG(WEEKEVENTREG_74_10);
}
break;
case PLAYER_FORM_GORON:
case PLAYER_FORM_ZORA:
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_75_08)) {
@ -151,10 +153,14 @@ void func_809CD028(EnBji01* this, PlayState* play) {
SET_WEEKEVENTREG(WEEKEVENTREG_75_08);
}
break;
default:
break;
}
break;
case SHIKASHI_TYPE_LOOKED_THROUGH_TELESCOPE:
switch (gSaveContext.save.playerForm) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_74_80)) {
this->textId = 0x5F2;
@ -164,18 +170,22 @@ void func_809CD028(EnBji01* this, PlayState* play) {
func_800B8500(&this->actor, play, this->actor.xzDistToPlayer, this->actor.playerHeightRel,
PLAYER_IA_NONE);
break;
case PLAYER_FORM_HUMAN:
this->textId = 0x5F7;
break;
case PLAYER_FORM_GORON:
case PLAYER_FORM_ZORA:
switch (CURRENT_DAY) {
case 1:
this->textId = 0x5E9;
break;
case 2:
this->textId = 0x5EA;
break;
case 3:
timeUntilMoonCrash = TIME_UNTIL_MOON_CRASH;
if (timeUntilMoonCrash < CLOCK_TIME_F(1, 0)) {
@ -184,9 +194,19 @@ void func_809CD028(EnBji01* this, PlayState* play) {
this->textId = 0x5EB;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
SubS_ChangeAnimationBySpeedInfo(&this->skelAnime, sAnimationInfo, 2, &this->animIndex);
this->actionFunc = EnBji01_DialogueHandler;
@ -201,6 +221,7 @@ void EnBji01_DialogueHandler(EnBji01* this, PlayState* play) {
Message_StartTextbox(play, this->textId, &this->actor);
}
break;
case TEXT_STATE_CHOICE:
if (Message_ShouldAdvance(play)) {
this->actor.flags &= ~ACTOR_FLAG_10000;
@ -211,24 +232,34 @@ void EnBji01_DialogueHandler(EnBji01* this, PlayState* play) {
Message_CloseTextbox(play);
func_809CD634(this, play);
break;
case 1:
Audio_PlaySfx_MessageCancel();
switch (gSaveContext.save.playerForm) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
Message_ContinueTextbox(play, 0x5F0);
break;
case PLAYER_FORM_HUMAN:
Message_ContinueTextbox(play, 0x5F8);
break;
case PLAYER_FORM_GORON:
case PLAYER_FORM_ZORA:
Message_ContinueTextbox(play, 0x5E1);
break;
default:
break;
}
break;
default:
break;
}
}
break;
case TEXT_STATE_5:
if (Message_ShouldAdvance(play)) {
this->actor.flags &= ~ACTOR_FLAG_10000;
@ -237,15 +268,19 @@ void EnBji01_DialogueHandler(EnBji01* this, PlayState* play) {
SubS_ChangeAnimationBySpeedInfo(&this->skelAnime, sAnimationInfo, 3, &this->animIndex);
Message_ContinueTextbox(play, 0x5DF);
break;
case 0x5E4:
Message_ContinueTextbox(play, 0x5E7);
break;
case 0x5E5:
Message_ContinueTextbox(play, 0x5E0);
break;
case 0x5E7:
Message_ContinueTextbox(play, 0x5E5);
break;
case 0x5DC:
case 0x5DD:
case 0x5DF:
@ -256,10 +291,12 @@ void EnBji01_DialogueHandler(EnBji01* this, PlayState* play) {
case 0x5F5:
Message_ContinueTextbox(play, play->msgCtx.currentTextId + 1);
break;
case 0x5F0:
case 0x5F6:
Message_ContinueTextbox(play, 0x5EF);
break;
case 0x5E1:
case 0x5E8:
case 0x5E9:
@ -275,14 +312,21 @@ void EnBji01_DialogueHandler(EnBji01* this, PlayState* play) {
this->actor.params = SHIKASHI_TYPE_FINISHED_CONVERSATION;
func_809CCE98(this, play);
break;
default:
break;
}
}
break;
case TEXT_STATE_DONE:
this->actor.params = SHIKASHI_TYPE_FINISHED_CONVERSATION;
this->actor.flags &= ~ACTOR_FLAG_10000;
func_809CCE98(this, play);
break;
default:
break;
}
if ((this->animIndex == 3) && (this->skelAnime.curFrame == this->skelAnime.endFrame)) {
SubS_ChangeAnimationBySpeedInfo(&this->skelAnime, sAnimationInfo, 2, &this->animIndex);

View File

@ -109,7 +109,7 @@ s32 EnBjt_ChangeAnim(EnBjt* this, s32 animIndex) {
s32 changed = false;
if ((animIndex == TOILET_HAND_ANIM_WAITING) || (animIndex == TOILET_HAND_ANIM_WAITING_MORPH)) {
if (!((this->animIndex == TOILET_HAND_ANIM_WAITING) || (this->animIndex == TOILET_HAND_ANIM_WAITING_MORPH))) {
if ((this->animIndex != TOILET_HAND_ANIM_WAITING) && (this->animIndex != TOILET_HAND_ANIM_WAITING_MORPH)) {
changeAnim = true;
}
} else if (this->animIndex != animIndex) {

View File

@ -72,17 +72,6 @@ static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 0, ICHAIN_STOP),
};
typedef struct {
/* 0x0 */ f32 data[5];
} EnBox_PlaybackSpeed; // 0x14
static EnBox_PlaybackSpeed sPlaybackSpeed = { { 1.5f, 1.0f, 1.5f, 1.0f, 1.5f } };
static AnimationHeader* sBigChestAnimations[5] = {
&gBoxBigChestOpenAdultAnim, &gBoxBigChestOpenGoronAnim, &gBoxBigChestOpenAdultAnim,
&gBoxBigChestOpenDekuAnim, &gBoxBigChestOpenChildAnim,
};
void EnBox_SetupAction(EnBox* this, EnBoxActionFunc func) {
this->actionFunc = func;
}
@ -452,13 +441,17 @@ void func_80868B74(EnBox* this, PlayState* play) {
}
void EnBox_WaitOpen(EnBox* this, PlayState* play) {
static AnimationHeader* sBigChestAnimations[PLAYER_FORM_MAX] = {
&gBoxBigChestOpenAdultAnim, // PLAYER_FORM_FIERCE_DEITY
&gBoxBigChestOpenGoronAnim, // PLAYER_FORM_GORON
&gBoxBigChestOpenAdultAnim, // PLAYER_FORM_ZORA
&gBoxBigChestOpenDekuAnim, // PLAYER_FORM_DEKU
&gBoxBigChestOpenChildAnim, // PLAYER_FORM_HUMAN
};
s32 pad;
AnimationHeader* animHeader;
f32 frameCount;
f32 playbackSpeed;
EnBox_PlaybackSpeed playbackSpeedTable;
Player* player;
Vec3f offset;
this->alpha = 255;
this->movementFlags |= ENBOX_MOVE_IMMOBILE;
@ -468,12 +461,16 @@ void EnBox_WaitOpen(EnBox* this, PlayState* play) {
animHeader = &gBoxChestOpenAnim;
playbackSpeed = 1.5f;
} else {
u8 playerForm;
f32 sPlaybackSpeeds[PLAYER_FORM_MAX] = {
1.5f, // PLAYER_FORM_FIERCE_DEITY
1.0f, // PLAYER_FORM_GORON
1.5f, // PLAYER_FORM_ZORA
1.0f, // PLAYER_FORM_DEKU
1.5f, // PLAYER_FORM_HUMAN
};
playbackSpeedTable = sPlaybackSpeed;
playerForm = gSaveContext.save.playerForm;
animHeader = sBigChestAnimations[playerForm];
playbackSpeed = playbackSpeedTable.data[playerForm];
animHeader = sBigChestAnimations[GET_PLAYER_FORM];
playbackSpeed = sPlaybackSpeeds[GET_PLAYER_FORM];
}
frameCount = Animation_GetLastFrame(animHeader);
@ -496,9 +493,11 @@ void EnBox_WaitOpen(EnBox* this, PlayState* play) {
Flags_SetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor));
}
} else {
player = GET_PLAYER(play);
Player* player = GET_PLAYER(play);
Vec3f offset;
Actor_OffsetOfPointInActorCoords(&this->dyna.actor, &offset, &player->actor.world.pos);
if (offset.z > -50.0f && offset.z < 0.0f && fabsf(offset.y) < 10.0f && fabsf(offset.x) < 20.0f &&
if ((offset.z > -50.0f) && (offset.z < 0.0f) && (fabsf(offset.y) < 10.0f) && (fabsf(offset.x) < 20.0f) &&
Player_IsFacingActor(&this->dyna.actor, 0x3000, play)) {
if (((this->getItemId == GI_HEART_PIECE) || (this->getItemId == GI_BOTTLE)) &&
Flags_GetCollectible(play, this->collectableFlag)) {
@ -550,10 +549,9 @@ void EnBox_Open(EnBox* this, PlayState* play) {
s32 bgId;
u16 sfxId = 0;
if (Animation_OnFrame(&this->skelAnime, gSaveContext.save.playerForm == PLAYER_FORM_DEKU ? 14.0f : 30.0f)) {
if (Animation_OnFrame(&this->skelAnime, GET_PLAYER_FORM == PLAYER_FORM_DEKU ? 14.0f : 30.0f)) {
sfxId = NA_SE_EV_TBOX_UNLOCK;
} else if (Animation_OnFrame(&this->skelAnime,
gSaveContext.save.playerForm == PLAYER_FORM_DEKU ? 15.0f : 90.0f)) {
} else if (Animation_OnFrame(&this->skelAnime, GET_PLAYER_FORM == PLAYER_FORM_DEKU ? 15.0f : 90.0f)) {
sfxId = NA_SE_EV_TBOX_OPEN;
}
if (sfxId != NA_SE_NONE) {

View File

@ -450,8 +450,8 @@ s32 func_8089AE00(EnDinofos* this, PlayState* play) {
return true;
}
if ((gSaveContext.save.playerForm == PLAYER_FORM_GORON) && (player->actor.velocity.y < -5.0f) &&
(player->unk_AE7 == 1) && (this->unk_28B == 0)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_GORON) && (player->actor.velocity.y < -5.0f) && (player->unk_AE7 == 1) &&
(this->unk_28B == 0)) {
this->unk_28B = 1;
for (i = 0; i < ARRAY_COUNT(this->colliderJntSphElement) - 3; i++) {
this->colliderJntSph.elements[i].info.bumper.dmgFlags &= ~0x400;

View File

@ -558,7 +558,7 @@ void func_80A3A8F8(EnElfgrp* this, PlayState* play) {
}
if (this->actor.xzDistToPlayer < 30.0f) {
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
this->actor.flags &= ~ACTOR_FLAG_10000;
player->actor.freezeTimer = 100;
player->stateFlags1 |= PLAYER_STATE1_20000000;

View File

@ -385,7 +385,7 @@ void EnElforg_CirclePlayer(EnElforg* this, PlayState* play) {
Player* player = GET_PLAYER(play);
f32 distanceFromPlayer;
if (gSaveContext.save.playerForm == PLAYER_FORM_GORON) {
if (GET_PLAYER_FORM == PLAYER_FORM_GORON) {
distanceFromPlayer = 40.0f;
} else {
distanceFromPlayer = 20.0f;

View File

@ -4306,7 +4306,7 @@ void EnFishing_UpdatePondProps(PlayState* play) {
actor = play->actorCtx.actorLists[ACTORCAT_NPC].first;
while (actor != NULL) {
if (!((actor->id == ACTOR_EN_FISHING) && (actor->params >= 100))) {
if ((actor->id != ACTOR_EN_FISHING) || (actor->params < 100)) {
actor = actor->next;
} else {
EnFishing_HandleReedContact(prop, &actor->world.pos);
@ -4320,7 +4320,7 @@ void EnFishing_UpdatePondProps(PlayState* play) {
actor = play->actorCtx.actorLists[ACTORCAT_NPC].first;
while (actor != NULL) {
if (!((actor->id == ACTOR_EN_FISHING) && (actor->params >= 100))) {
if ((actor->id != ACTOR_EN_FISHING) || (actor->params < 100)) {
actor = actor->next;
} else {
EnFishing_HandleLilyPadContact(prop, &actor->world.pos, ((EnFishing*)actor)->unk_149);

View File

@ -134,9 +134,12 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP),
};
static Vec3f D_808D3900[] = {
{ 25.0f, 45.0f, -7.0f }, { 25.0f, 40.0f, -12.0f }, { 25.0f, 35.0f, -2.0f },
{ 10.0f, 20.0f, -4.0f }, { 15.0f, 25.0f, -2.0f },
static Vec3f D_808D3900[PLAYER_FORM_MAX] = {
{ 25.0f, 45.0f, -7.0f }, // PLAYER_FORM_FIERCE_DEITY
{ 25.0f, 40.0f, -12.0f }, // PLAYER_FORM_GORON
{ 25.0f, 35.0f, -2.0f }, // PLAYER_FORM_ZORA
{ 10.0f, 20.0f, -4.0f }, // PLAYER_FORM_DEKU
{ 15.0f, 25.0f, -2.0f }, // PLAYER_FORM_HUMAN
};
static s8 D_808D393C[] = {

View File

@ -111,7 +111,7 @@ void func_809616E0(EnFu* this, PlayState* play) {
s16 spA0 = false;
Vec3f sp94;
if ((gSaveContext.save.playerForm == PLAYER_FORM_DEKU) && (CURRENT_DAY == 3)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_DEKU) && (CURRENT_DAY == 3)) {
spA0 = true;
}
this->unk_54C = 0;
@ -385,7 +385,7 @@ void func_80962340(EnFu* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (this->unk_54A == 2) {
if (this->unk_552 == 0x287D) {
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
Message_StartTextbox(play, 0x287E, &this->actor);
this->unk_552 = 0x287E;
} else if ((CURRENT_DAY == 3) && CHECK_WEEKEVENTREG(WEEKEVENTREG_22_10) &&
@ -653,7 +653,7 @@ void func_80962A10(EnFu* this, PlayState* play) {
this->unk_546 = 1;
}
if ((gSaveContext.save.playerForm == PLAYER_FORM_DEKU) && gSaveContext.save.saveInfo.playerData.isMagicAcquired) {
if ((GET_PLAYER_FORM == PLAYER_FORM_DEKU) && gSaveContext.save.saveInfo.playerData.isMagicAcquired) {
Magic_Add(play, MAGIC_FILL_TO_CAPACITY);
}
@ -748,7 +748,7 @@ void func_80962F4C(EnFu* this, PlayState* play) {
switch (this->unk_542) {
case 0:
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
player->stateFlags3 |= PLAYER_STATE3_400;
}
break;
@ -821,7 +821,7 @@ void func_8096326C(EnFu* this, PlayState* play) {
}
void func_809632D0(EnFu* this) {
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
Interface_SetHudVisibility(HUD_VISIBILITY_ALL);
}
@ -897,7 +897,7 @@ void func_80963630(EnFu* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_22_10) && CHECK_WEEKEVENTREG(WEEKEVENTREG_22_20) && (CURRENT_DAY == 3) &&
(gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
(GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_22_40)) {
Message_StartTextbox(play, 0x2884, &this->actor);
this->unk_552 = 0x2884;
@ -918,7 +918,7 @@ void func_80963630(EnFu* this, PlayState* play) {
this->actor.child->freezeTimer = 0;
func_809628BC(this);
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
switch (CURRENT_DAY) {
case 1:
SET_WEEKEVENTREG(WEEKEVENTREG_22_10);
@ -1016,7 +1016,7 @@ s32 func_809638F8(PlayState* play) {
void func_809639D0(EnFu* this, PlayState* play) {
switch (CURRENT_DAY) {
case 1:
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
if (CUR_UPG_VALUE(UPG_BOMB_BAG) == 0) {
Message_StartTextbox(play, 0x2853, &this->actor);
this->unk_552 = 0x2853;
@ -1038,7 +1038,7 @@ void func_809639D0(EnFu* this, PlayState* play) {
break;
case 2:
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
Message_StartTextbox(play, 0x286F, &this->actor);
this->unk_552 = 0x286F;
} else if (CUR_UPG_VALUE(UPG_BOMB_BAG) == 0) {
@ -1067,8 +1067,8 @@ void func_809639D0(EnFu* this, PlayState* play) {
break;
case 3:
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
func_80963EAC(this, play);
} else {
Message_StartTextbox(play, 0x2841, &this->actor);
@ -1118,7 +1118,7 @@ void func_809639D0(EnFu* this, PlayState* play) {
void func_80963DE4(EnFu* this, PlayState* play) {
switch (this->unk_542) {
case 0:
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
Message_StartTextbox(play, 0x2875, &this->actor);
this->unk_552 = 0x2875;
} else {

View File

@ -373,7 +373,7 @@ s32 func_80ACF04C(EnFuMato* this, PlayState* play) {
Actor_PlaySfx(&this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR);
fu->unk_548++;
if ((fu->unk_542 == 2) || (gSaveContext.save.playerForm == PLAYER_FORM_DEKU)) {
if ((fu->unk_542 == 2) || (GET_PLAYER_FORM == PLAYER_FORM_DEKU)) {
fu->unk_546 = 1;
func_80ACE680(this);
} else {

View File

@ -97,10 +97,10 @@ void EnGinkoMan_Idle(EnGinkoMan* this, PlayState* play) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
if ((CURRENT_DAY == 3) && (gSaveContext.save.isNight == true)) {
Message_StartTextbox(play, 0x467, &this->actor);
this->curTextId = 0x467; // "What's this? You need somethin' on a day like this?
this->curTextId = 0x467;
} else {
Message_StartTextbox(play, 0x466, &this->actor);
this->curTextId = 0x466; // What's this? You need somethin'?
this->curTextId = 0x466;
}
}
EnGinkoMan_SetupDialogue(this);
@ -116,25 +116,26 @@ void EnGinkoMan_DepositDialogue(EnGinkoMan* this, PlayState* play) {
}
switch (this->curTextId) {
case 0x44C: // "Hey there, little guy! Won't you deposit some Rupees? (first dialogue)
case 0x44C:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_10_08)) {
Message_StartTextbox(play, 0x44E, &this->actor);
this->curTextId = 0x44E; //" ...So, what'll it be? Deposit Rupees Don't deposit Rupees"
this->curTextId = 0x44E;
} else {
Message_StartTextbox(play, 0x44D, &this->actor);
this->curTextId =
0x44D; // "For example, if you deposit 200 Rupees, you'll get an item that holds a lot of Rupees."
this->curTextId = 0x44D;
}
break;
case 0x44D: // "For example, if you deposit 200 Rupees, you'll get an item that holds a lot of Rupees."
case 0x44D:
Message_StartTextbox(play, 0x44E, &this->actor);
this->curTextId = 0x44E; //" ...So, what'll it be? Deposit Rupees Don't deposit Rupees"
this->curTextId = 0x44E;
break;
case 0x44F: // "...So, what'll it be? Deposit Rupees Don't deposit Rupees"
case 0x44F:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_LEGSMACKING);
Message_StartTextbox(play, 0x450, &this->actor);
this->curTextId = 0x450; // "How much? How much? [rupee prompt]
this->curTextId = 0x450;
break;
case 0x453: // you deposited a tiny amount
@ -142,59 +143,61 @@ void EnGinkoMan_DepositDialogue(EnGinkoMan* this, PlayState* play) {
case 0x455: // you deposited a lot
if (this->isNewAccount == true) {
this->isNewAccount = false;
if (this->curTextId != 0x453) { // "That's it? That ain't nothing at all, big spender!
if (this->curTextId != 0x453) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
}
Message_StartTextbox(play, 0x461, &this->actor);
this->curTextId = 0x461; // So, little guy, what's your name?
this->curTextId = 0x461;
} else {
if (this->curTextId == 0x453) { // "That's it? That ain't nothing at all, big spender!
if (this->curTextId == 0x453) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_LEGSMACKING);
}
play->msgCtx.bankRupees = gSaveContext.save.saveInfo.bankRupees & 0xFFFF;
Message_StartTextbox(play, 0x45A, &this->actor);
this->curTextId = 0x45A; // "All right, little guy, now I've got a total of [rupees] from you!"
this->curTextId = 0x45A;
}
break;
case 0x456: // "Is that so? Think about it, little guy!"
case 0x459: // "Heyyy! You don't have that much!
case 0x456:
case 0x459:
Message_StartTextbox(play, 0x44E, &this->actor);
this->curTextId = 0x44E; //" ...So, what'll it be? Deposit Rupees Don't deposit Rupees"
this->curTextId = 0x44E;
break;
case 0x45A: // "All right, little guy, now I've got a total of [rupees] from you!"
case 0x45A:
if (((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) >= 200) && (this->previousBankValue < 200) &&
!CHECK_WEEKEVENTREG(WEEKEVENTREG_59_40)) {
SET_WEEKEVENTREG(WEEKEVENTREG_59_40);
Message_StartTextbox(play, 0x45B, &this->actor);
this->curTextId = 0x45B; // "What's this? You've already saved up 200 Rupees!?!
this->curTextId = 0x45B;
} else if (((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) >= 1000) &&
((this->previousBankValue) < 1000) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_59_80)) {
SET_WEEKEVENTREG(WEEKEVENTREG_59_80);
Message_StartTextbox(play, 0x45C, &this->actor);
this->curTextId = 0x45C; // "What's this? You've already saved up 1000 Rupees!?!
this->curTextId = 0x45C;
} else if ((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) >= 5000) {
if ((this->previousBankValue < 5000) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_60_01)) {
SET_WEEKEVENTREG(WEEKEVENTREG_60_01);
Message_StartTextbox(play, 0x45D, &this->actor);
this->curTextId = 0x45D; // "What's this? You've already saved up 5000 Rupees?!
this->curTextId = 0x45D;
} else if (this->previousBankValue < (s16)(gSaveContext.save.saveInfo.bankRupees & 0xFFFF)) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
Message_StartTextbox(play, 0x45E, &this->actor);
this->curTextId =
0x45E; // "...Hang on there, little guy. I can't take any more deposits. Sorry..."
this->curTextId = 0x45E;
} else {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_LEGSMACKING);
Message_StartTextbox(play, 0x460, &this->actor);
this->curTextId = 0x460; // "Come back and deposit some after you save up a bunch!"
this->curTextId = 0x460;
}
} else {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_LEGSMACKING);
Message_StartTextbox(play, 0x460, &this->actor);
this->curTextId = 0x460; // "Come back and deposit some after you save up a bunch!"
this->curTextId = 0x460;
}
break;
case 0x45B: // given 200 reward
case 0x45C: // given 1000 reward
case 0x45D: // given 5000 reward
@ -203,121 +206,134 @@ void EnGinkoMan_DepositDialogue(EnGinkoMan* this, PlayState* play) {
EnGinkoMan_SetupBankAward(this);
EnGinkoMan_BankAward(this, play);
break;
case 0x461: // So, little guy, what's your name?
case 0x461:
Message_StartTextbox(play, 0x462, &this->actor);
this->curTextId = 0x462; // Hmm... Link is it?
this->curTextId = 0x462;
break;
case 0x462: // Hmm.. Link is it?
case 0x462:
Message_StartTextbox(play, 0x463, &this->actor);
this->curTextId = 0x463; // Got it... I won't forget your deposits. Let me stamp you
this->curTextId = 0x463;
break;
case 0x463: // Got it... I won't forget your deposits. Let me stamp you
case 0x463:
Message_StartTextbox(play, 0x464, &this->actor);
this->curTextId = 0x464; // Hey, relax! It doesn't leave any marks
this->curTextId = 0x464;
break;
case 0x464: // Hey, relax! It doesn't leave any marks
case 0x464:
play->msgCtx.msgMode = 0x44;
EnGinkoMan_SetupStamp(this); // stamp player
break;
case 0x465: // "There! Now I'll know you when I see you!"
case 0x465:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_LEGSMACKING);
play->msgCtx.bankRupees = gSaveContext.save.saveInfo.bankRupees & 0xFFFF;
Message_StartTextbox(play, 0x45A, &this->actor);
this->curTextId = 0x45A; // "All right, little guy, now I've got a total of [rupees] from you!"
this->curTextId = 0x45A;
break;
case 0x466: // What's this? You need somethin'?
case 0x467: // "What's this? You need somethin' on a day like this? You haven't evacuated yet?
case 0x466:
case 0x467:
Message_StartTextbox(play, 0x468, &this->actor);
this->curTextId = 0x468; // " Deposit Rupees Withdraw Rupees Nothing really"
this->curTextId = 0x468;
break;
case 0x469: // "Excuse me, but let me take a look at you..."
case 0x469:
EnGinkoMan_SetupStamp(this); // stamp player
break;
case 0x46A: // "Ah, yes...[Link]. If I remember, you're the little guy who deposited [rupees]."
case 0x46C: // "Ah, yes...[Link], right? If I remember, you're the little guy who deposited [rupees]."
case 0x47E: // "Your deposits total [rupees]."
case 0x46A:
case 0x46C:
case 0x47E:
if (this->choiceDepositWithdrawl == GINKOMAN_CHOICE_DEPOSIT) {
if ((u32)(gSaveContext.save.saveInfo.bankRupees & 0xFFFF) >= 5000) {
Message_StartTextbox(play, 0x45F, &this->actor);
this->curTextId = 0x45F; // "Excuuuse me! But I can't take anymore deposits!
this->curTextId = 0x45F;
} else if (gSaveContext.save.saveInfo.playerData.rupees == 0) {
Message_StartTextbox(play, 0x458, &this->actor);
this->curTextId =
0x458; // "Hmm...You play mean jokes, little guy! You haven't even got a single Rupee!
this->curTextId = 0x458;
} else {
Message_StartTextbox(play, 0x479, &this->actor);
this->curTextId = 0x479; // "Well, are you gonna make a deposit?"
this->curTextId = 0x479;
}
} else if ((CURRENT_DAY == 3) && (gSaveContext.save.isNight == true)) {
Message_StartTextbox(play, 0x46D, &this->actor);
// "Look, little guy, if it's 'cause of the bad rumors going around, forget it! They're just rumors!"
this->curTextId = 0x46D;
} else { // GINKOMAN_CHOICE_WITHDRAWL
Message_StartTextbox(play, 0x46B, &this->actor);
this->curTextId = 0x46B; // "So..."
this->curTextId = 0x46B;
}
this->choiceDepositWithdrawl = GINKOMAN_CHOICE_RESET;
break;
case 0x46B: // So...
case 0x46B:
Message_StartTextbox(play, 0x46E, &this->actor);
this->curTextId = 0x46E; // "How much do you want? [rupee prompt]
this->curTextId = 0x46E;
break;
case 0x46D: // "Look, little guy, if it's 'cause of the bad rumors going around, forget it! They're just
// rumors!"
case 0x46D:
Message_StartTextbox(play, 0x46B, &this->actor);
this->curTextId = 0x46B; // So...
this->curTextId = 0x46B;
break;
case 0x470: // "Is that so? Come back and deposit some after saving up a bunch!"
case 0x470:
if (Message_ShouldAdvance(play)) {
Message_CloseTextbox(play);
this->isStampChecked = false;
EnGinkoMan_SetupIdle(this); // change to waiting for approach
}
break;
case 0x476: // "...You haven't deposited that many Rupees, so that much isn't available for withdrawal. Do the
// math!
case 0x476:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
case 0x475: // "What's this? Look, little guy, you can't hold this many rupees! You got that?"
case 0x47C: // "Is that so? Think it over, little guy! So what are you gonna do?"
case 0x47D: // duplicate of 48
// fallthrough
case 0x475:
case 0x47C:
case 0x47D:
Message_StartTextbox(play, 0x468, &this->actor);
this->curTextId = 0x468; // " Deposit Rupees Withdraw Rupees Nothing really"
this->curTextId = 0x468;
break;
case 0x472: // "What's this? It's a waste to take out such a tiny bit! ...But if you say so!"
case 0x473: // Use it wisely...
case 0x474: // "Aw, you're taking out all that? If you spend it like that, it'll all be gone before you know
// it!"
case 0x472:
case 0x473:
case 0x474:
if ((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) == 0) {
Message_StartTextbox(play, 0x478, &this->actor);
// "Look, little guy, all the Rupees you deposited are gone, so you can't use that stamp anymore."
this->curTextId = 0x478;
} else {
play->msgCtx.bankRupees = gSaveContext.save.saveInfo.bankRupees & 0xFFFF;
Message_StartTextbox(play, 0x45A, &this->actor);
this->curTextId = 0x45A; // "All right, little guy, now I've got a total of [rupees] from you!"
this->curTextId = 0x45A;
}
break;
case 0x477: // "...You know, at this time of day there's a 4 Rupee service charge on withdrawals!"
case 0x477:
Message_StartTextbox(play, 0x471, &this->actor);
this->curTextId = 0x471; // "Are you really withdrawing [rupees selected]? Y/n"
this->curTextId = 0x471;
this->serviceFee = play->msgCtx.unk1206C;
break;
case 0x479: // Well, are you gonna make a deposit?
case 0x479:
Message_StartTextbox(play, 0x44F, &this->actor);
this->curTextId = 0x44F; // "All right! So..."
this->curTextId = 0x44F;
break;
default:
break;
}
}
// actionfunc: wait for player dialogue input
void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, PlayState* play) {
if (!Message_ShouldAdvance(play)) {
return;
}
switch (this->curTextId) {
case 0x44E: // "...So, what'll it be?
case 0x44E:
if (play->msgCtx.choiceIndex == GINKOMAN_CHOICE_YES) {
if ((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) >= 5000) {
Audio_PlaySfx(NA_SE_SY_ERROR);
@ -327,7 +343,7 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, PlayState* play) {
if (gSaveContext.save.saveInfo.playerData.rupees > 0) {
Audio_PlaySfx_MessageDecide();
Message_StartTextbox(play, 0x44F, &this->actor);
this->curTextId = 0x44F; // "All right! so..."
this->curTextId = 0x44F;
} else {
Audio_PlaySfx(NA_SE_SY_ERROR);
Message_StartTextbox(play, 0x458, &this->actor);
@ -337,28 +353,29 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, PlayState* play) {
} else { // GINKOMAN_CHOICE_NO
Audio_PlaySfx_MessageCancel();
Message_StartTextbox(play, 0x451, &this->actor);
this->curTextId = 0x451; // dont say that, come on, trust me!
this->curTextId = 0x451;
}
break;
case 0x452: // Really? are you really depositing rupees?
case 0x452:
if (play->msgCtx.choiceIndex == GINKOMAN_CHOICE_YES) {
if (gSaveContext.save.saveInfo.playerData.rupees < play->msgCtx.bankRupeesSelected) {
Audio_PlaySfx(NA_SE_SY_ERROR);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
Message_StartTextbox(play, 0x459, &this->actor);
this->curTextId = 0x459; // HEY you dont have that much
this->curTextId = 0x459;
} else {
Audio_PlaySfx_MessageDecide();
if (play->msgCtx.bankRupeesSelected >= 100) {
Message_StartTextbox(play, 0x455, &this->actor);
this->curTextId = 0x455; // You're really going to be give me that much? Rich little guy!
this->curTextId = 0x455;
} else if (play->msgCtx.bankRupeesSelected >= 10) {
Message_StartTextbox(play, 0x454, &this->actor);
this->curTextId = 0x454; // Seriously? that's a lot. A lot!
this->curTextId = 0x454;
} else {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
Message_StartTextbox(play, 0x453, &this->actor);
this->curTextId = 0x453; // That's it? That aint nothing at all
this->curTextId = 0x453;
}
if ((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) == 0) {
@ -376,56 +393,58 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, PlayState* play) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
if ((gSaveContext.save.saveInfo.bankRupees & 0xFFFF) == 0) {
Message_StartTextbox(play, 0x456, &this->actor);
this->curTextId = 0x456; // Is that so? think about it
this->curTextId = 0x456;
} else {
Message_StartTextbox(play, 0x47D, &this->actor);
this->curTextId = 0x47D; // is that so? think it over
this->curTextId = 0x47D;
}
}
break;
case 0x468: // Deposit OR withdrawl OR cancel screen
case 0x468:
if (play->msgCtx.choiceIndex == GINKOMAN_CHOICE_CANCEL) {
Audio_PlaySfx_MessageCancel();
Message_StartTextbox(play, 0x470, &this->actor);
this->curTextId = 0x470; // "Is that so? Come back and deposit some after saving up a bunch!"
this->curTextId = 0x470;
} else {
Audio_PlaySfx_MessageDecide();
this->choiceDepositWithdrawl = play->msgCtx.choiceIndex;
if (!this->isStampChecked) {
this->isStampChecked = true;
Message_StartTextbox(play, 0x469, &this->actor);
this->curTextId = 0x469; // "Excuse me, but let me take a look at you..."
this->curTextId = 0x469;
} else {
Message_StartTextbox(play, 0x47E, &this->actor);
this->curTextId = 0x47E; // "Your deposits total [rupees]."
this->curTextId = 0x47E;
}
}
break;
case 0x471: // Are you really withdrawling [selected rupees]?
case 0x471:
if (play->msgCtx.choiceIndex == GINKOMAN_CHOICE_YES) {
if ((s32)((gSaveContext.save.saveInfo.bankRupees & 0xFFFF)) <
((s32)(play->msgCtx.bankRupeesSelected + this->serviceFee))) {
Audio_PlaySfx(NA_SE_SY_ERROR);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_LEGSMACKING);
Message_StartTextbox(play, 0x476, &this->actor);
this->curTextId = 0x476; // you dont have enough deposited to withdrawl
this->curTextId = 0x476;
} else if (CUR_CAPACITY(UPG_WALLET) <
(play->msgCtx.bankRupeesSelected + gSaveContext.save.saveInfo.playerData.rupees)) {
// check if wallet is big enough
Audio_PlaySfx(NA_SE_SY_ERROR);
Message_StartTextbox(play, 0x475, &this->actor);
this->curTextId = 0x475; // You can't hold that many in your wallet
this->curTextId = 0x475;
} else {
Audio_PlaySfx_MessageDecide();
if (play->msgCtx.bankRupeesSelected >= 100) {
Message_StartTextbox(play, 0x474, &this->actor);
this->curTextId = 0x474; // Aw, you're taking out all that?
this->curTextId = 0x474;
} else if (play->msgCtx.bankRupeesSelected >= 10) {
Message_StartTextbox(play, 0x473, &this->actor);
this->curTextId = 0x473; // use it wisely
this->curTextId = 0x473;
} else {
Message_StartTextbox(play, 0x472, &this->actor);
this->curTextId = 0x472; // It's a waste to take out such a tiny bit
this->curTextId = 0x472;
}
this->previousBankValue = (s16)(gSaveContext.save.saveInfo.bankRupees & 0xFFFF);
@ -438,38 +457,45 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, PlayState* play) {
} else {
Audio_PlaySfx_MessageCancel();
Message_StartTextbox(play, 0x47C, &this->actor);
this->curTextId = 0x47C; // "Is that so? Think it over, little guy! So what are you gonna do?"
this->curTextId = 0x47C;
}
break;
default:
break;
}
}
void EnGinkoMan_WaitForRupeeCount(EnGinkoMan* this, PlayState* play) {
if (Message_ShouldAdvance(play)) {
switch (this->curTextId) {
case 0x450: // "How much? How much?" [rupee prompt] Set the amount with [Control Stick] and
case 0x450:
if (play->msgCtx.bankRupeesSelected == 0) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
Message_StartTextbox(play, 0x457, &this->actor);
this->curTextId = 0x457; // Zero Rupees? Cruel joke!
this->curTextId = 0x457;
} else {
Message_StartTextbox(play, 0x452, &this->actor);
this->curTextId = 0x452; // Really? are you really depositing [x]? Y/n
this->curTextId = 0x452;
}
break;
case 0x46E: // "How much do you want?" [rupee prompt] Set the amount with [Control Stick]
case 0x46E:
if (play->msgCtx.bankRupeesSelected == 0) {
Message_StartTextbox(play, 0x46F, &this->actor);
this->curTextId = 0x46F; // "Zero Rupees?!? That's a cruel joke!"
this->curTextId = 0x46F;
} else if (gSaveContext.save.isNight == true) {
Message_StartTextbox(play, 0x477, &this->actor);
this->curTextId = 0x477; // "...You know, at this time of day there's a 4 Rupee service charge...
this->curTextId = 0x477;
} else {
Message_StartTextbox(play, 0x471, &this->actor);
this->curTextId = 0x471; // "Are you really withdrawing [rupees selected]? Y/n
this->curTextId = 0x471;
this->serviceFee = 0;
}
break;
default:
break;
}
}
}
@ -523,13 +549,13 @@ void EnGinkoMan_BankAward(EnGinkoMan* this, PlayState* play) {
// Parent is the player when starting to receive the award
this->actor.parent = NULL;
EnGinkoMan_SetupBankAward2(this);
} else if (this->curTextId == 0x45B) { // "Whats this, you already saved up 200?"
} else if (this->curTextId == 0x45B) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_10_08)) {
Actor_OfferGetItem(&this->actor, play, GI_WALLET_ADULT + CUR_UPG_VALUE(UPG_WALLET), 500.0f, 100.0f);
} else {
Actor_OfferGetItem(&this->actor, play, GI_RUPEE_BLUE, 500.0f, 100.0f);
}
} else if (this->curTextId == 0x45C) { // "Whats this, you already saved up 5000?"
} else if (this->curTextId == 0x45C) {
Actor_OfferGetItem(&this->actor, play, GI_RUPEE_BLUE, 500.0f, 100.0f);
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_59_08)) {
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 500.0f, 100.0f);
@ -547,8 +573,6 @@ void EnGinkoMan_SetupBankAward2(EnGinkoMan* this) {
void EnGinkoMan_BankAward2(EnGinkoMan* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_10_08) && (this->curTextId == 0x45B)) {
// "What's this? You've already saved up 200 Rupees!?! Well, little guy, here's your special gift. Take
// it!"
SET_WEEKEVENTREG(WEEKEVENTREG_10_08);
Message_StartTextbox(play, 0x47A, &this->actor);
this->curTextId = 0x47A; // Message after receiving reward for depositing 200 rupees.
@ -577,29 +601,32 @@ void EnGinkoMan_SetupStamp(EnGinkoMan* this) {
}
void EnGinkoMan_Stamp(EnGinkoMan* this, PlayState* play) {
if ((this->curTextId == 0x464) // "Hey, relax! It doesn't leave any marks, and it's not gonna hurt."
&& (Animation_OnFrame(&this->skelAnime, 10.0f))) {
if ((this->curTextId == 0x464) && Animation_OnFrame(&this->skelAnime, 10.0f)) {
Actor_PlaySfx(&this->actor, NA_SE_EV_HANKO); // "stamp"
}
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
switch (this->curTextId) {
case 0x464: // "Hey, relax! It doesn't leave any marks, and it's not gonna hurt."
case 0x464:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
Message_StartTextbox(play, 0x465, &this->actor);
this->curTextId = 0x465; // "There! Now I'll know you when I see you!"
this->curTextId = 0x465;
break;
case 0x469: // "Excuse me, but let me take a look at you..."
case 0x469:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, GINKO_ANIM_SITTING);
play->msgCtx.bankRupees = (gSaveContext.save.saveInfo.bankRupees & 0xFFFF);
if ((CURRENT_DAY == 3) && (gSaveContext.save.isNight == true)) {
Message_StartTextbox(play, 0x46C, &this->actor);
this->curTextId = 0x46C; // "Ah, yes...[Link], right?
this->curTextId = 0x46C;
} else {
Message_StartTextbox(play, 0x46A, &this->actor);
this->curTextId = 0x46A; // "Ah, yes...[Link].
this->curTextId = 0x46A;
}
break;
default:
break;
}
EnGinkoMan_SetupDialogue(this);

View File

@ -1781,7 +1781,7 @@ void EnGo_ChangeToShiveringAnimation(EnGo* this, PlayState* play) {
void EnGo_SetupAthletic(EnGo* this, PlayState* play) {
if (((gSaveContext.save.entrance == ENTRANCE(GORON_RACETRACK, 0)) ||
(gSaveContext.save.entrance == ENTRANCE(GORON_RACETRACK, 2))) &&
(CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_SNOWHEAD_TEMPLE))) {
CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_SNOWHEAD_TEMPLE)) {
EnGo_ChangeToStretchingAnimation(this, play);
this->actionFunc = EnGo_Idle;
} else {

View File

@ -298,7 +298,7 @@ void func_8099807C(EnGs* this, PlayState* play) {
break;
case OCARINA_SONG_SONATA:
if ((this->actor.params == ENGS_1) && (gSaveContext.save.playerForm == PLAYER_FORM_DEKU)) {
if ((this->actor.params == ENGS_1) && (GET_PLAYER_FORM == PLAYER_FORM_DEKU)) {
this->unk_194 = 1;
this->unk_19C = 5;
this->unk_19A |= 1;
@ -308,7 +308,7 @@ void func_8099807C(EnGs* this, PlayState* play) {
break;
case OCARINA_SONG_NEW_WAVE:
if ((this->actor.params == ENGS_1) && (gSaveContext.save.playerForm == PLAYER_FORM_ZORA)) {
if ((this->actor.params == ENGS_1) && (GET_PLAYER_FORM == PLAYER_FORM_ZORA)) {
this->unk_194 = 3;
this->unk_19C = 5;
this->unk_19A |= 1;
@ -318,7 +318,7 @@ void func_8099807C(EnGs* this, PlayState* play) {
break;
case OCARINA_SONG_GORON_LULLABY:
if ((this->actor.params == ENGS_1) && (gSaveContext.save.playerForm == PLAYER_FORM_GORON)) {
if ((this->actor.params == ENGS_1) && (GET_PLAYER_FORM == PLAYER_FORM_GORON)) {
this->unk_194 = 2;
this->unk_19C = 5;
this->unk_19A |= 1;

View File

@ -390,8 +390,7 @@ void EnHg_WaitForPlayerAction(EnHg* this, PlayState* play) {
}
if (play->msgCtx.ocarinaMode == 3) {
if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) &&
(gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
if (INV_CONTENT(ITEM_MASK_GIBDO) == ITEM_MASK_GIBDO) {
this->csIdIndex = HG_CS_SONG_OF_HEALING;
} else {

View File

@ -159,7 +159,7 @@ void EnHgo_Talk(EnHgo* this, PlayState* play) {
Message_StartTextbox(play, 0x15A7, &this->actor);
this->textId = 0x15A7; // can I research that mask
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
if (!(this->talkFlags & TALK_FLAG_HAS_SPOKEN_WITH_HUMAN)) {
this->talkFlags |= TALK_FLAG_HAS_SPOKEN_WITH_HUMAN;
Message_StartTextbox(play, 0x158F, &this->actor);

View File

@ -479,10 +479,9 @@ u16 func_808F3DD4(PlayState* play, EnIn* this, u32 arg2) {
switch (arg2) {
case 0:
if ((gSaveContext.save.playerForm == PLAYER_FORM_ZORA) ||
(gSaveContext.save.playerForm == PLAYER_FORM_GORON)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_ZORA) || (GET_PLAYER_FORM == PLAYER_FORM_GORON)) {
textId = 0x345C;
} else if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
textId = 0x3460;
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_15_08)) {
textId = 0x3458;
@ -500,10 +499,9 @@ u16 func_808F3DD4(PlayState* play, EnIn* this, u32 arg2) {
break;
case 3:
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
textId = 0x3485;
} else if ((gSaveContext.save.playerForm == PLAYER_FORM_ZORA) ||
(gSaveContext.save.playerForm == PLAYER_FORM_GORON)) {
} else if ((GET_PLAYER_FORM == PLAYER_FORM_ZORA) || (GET_PLAYER_FORM == PLAYER_FORM_GORON)) {
textId = 0x3484;
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_56_04)) {
textId = 0x346D;
@ -513,10 +511,9 @@ u16 func_808F3DD4(PlayState* play, EnIn* this, u32 arg2) {
break;
case 4:
if ((gSaveContext.save.playerForm == PLAYER_FORM_ZORA) ||
(gSaveContext.save.playerForm == PLAYER_FORM_GORON)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_ZORA) || (GET_PLAYER_FORM == PLAYER_FORM_GORON)) {
textId = 0x348A;
} else if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
textId = 0x348B;
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_16_01)) {
textId = 0x3486;
@ -536,10 +533,9 @@ u16 func_808F3DD4(PlayState* play, EnIn* this, u32 arg2) {
break;
case 7:
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
textId = 0x34A8;
} else if ((gSaveContext.save.playerForm == PLAYER_FORM_ZORA) ||
(gSaveContext.save.playerForm == PLAYER_FORM_GORON)) {
} else if ((GET_PLAYER_FORM == PLAYER_FORM_ZORA) || (GET_PLAYER_FORM == PLAYER_FORM_GORON)) {
textId = 0x34A7;
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_16_04)) {
textId = 0x3495;

View File

@ -501,8 +501,8 @@ void EnJg_Talk(EnJg* this, PlayState* play) {
play->msgCtx.stateTimer = 4;
this->flags &= ~FLAG_LOOKING_AT_PLAYER;
this->actionFunc = EnJg_SetupWalk;
} else if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_24_40)) ||
(CHECK_QUEST_ITEM(QUEST_SONG_LULLABY) || CHECK_QUEST_ITEM(QUEST_SONG_LULLABY_INTRO))) {
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_24_40) || CHECK_QUEST_ITEM(QUEST_SONG_LULLABY) ||
CHECK_QUEST_ITEM(QUEST_SONG_LULLABY_INTRO)) {
// The player already has the Lullaby or Lullaby Intro, so say "I'm counting on you"
this->textId = EnJg_GetNextTextId(this);
Message_StartTextbox(play, this->textId, &this->actor);
@ -678,8 +678,8 @@ void EnJg_LullabyIntroCutsceneAction(EnJg* this, PlayState* play) {
SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, this->cutsceneAnimIndex);
}
if ((!(this->flags & FLAG_DRUM_SPAWNED)) &&
(((this->cutsceneAnimIndex == EN_JG_ANIM_TAKING_OUT_DRUM) && (Animation_OnFrame(&this->skelAnime, 14.0f)) &&
if (!(this->flags & FLAG_DRUM_SPAWNED) &&
(((this->cutsceneAnimIndex == EN_JG_ANIM_TAKING_OUT_DRUM) && Animation_OnFrame(&this->skelAnime, 14.0f) &&
(this->action != EN_JG_ACTION_LULLABY_INTRO_CS)) ||
(((this->cutsceneAnimIndex == EN_JG_ANIM_DRUM_IDLE) ||
(this->cutsceneAnimIndex == EN_JG_ANIM_PLAYING_DRUM)) &&

View File

@ -190,8 +190,7 @@ void func_80C13BB8(EnJgameTsn* this, PlayState* play) {
}
if ((player->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && !(player->stateFlags1 & PLAYER_STATE1_2000) &&
(this->unk_2FE == 0) && (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) &&
func_80C149B0(play, &this->unk_1F8)) {
(this->unk_2FE == 0) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) && func_80C149B0(play, &this->unk_1F8)) {
this->unk_2FE = 1;
func_80C13E6C(this);
} else if (!(player->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) {

View File

@ -631,7 +631,7 @@ void func_80969898(EnJs* this, PlayState* play) {
void func_80969AA0(EnJs* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
textId = 0x220B;
} else {
textId = 0x2215;
@ -807,7 +807,7 @@ void func_80969DA4(EnJs* this, PlayState* play) {
void func_8096A080(EnJs* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
textId = 0x2218;
} else {
textId = 0x221B;
@ -837,7 +837,7 @@ void func_8096A104(EnJs* this, PlayState* play) {
void func_8096A184(EnJs* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
textId = 0x220B;
} else if (func_80968E38(0) >= 20) {
textId = 0x2202;

View File

@ -235,8 +235,6 @@ void func_80B3415C(EnKbt* this) {
}
void func_80B34314(EnKbt* this, PlayState* play) {
s32 playerForm;
func_80B34078(this);
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
@ -250,10 +248,9 @@ void func_80B34314(EnKbt* this, PlayState* play) {
} else if (this->actor.xzDistToPlayer < 250.0f) {
if ((this->unk_278 != NULL) && (this->unk_278->xzDistToPlayer < 250.0f)) {
if (this->unk_27C & 4) {
playerForm = gSaveContext.save.playerForm;
if (((playerForm ^ 0) != PLAYER_FORM_HUMAN) || ((CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_KOKIRI) &&
(CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_RAZOR) &&
(CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_GILDED))) {
if ((GET_PLAYER_FORM != PLAYER_FORM_HUMAN) || ((CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_KOKIRI) &&
(CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_RAZOR) &&
(CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_GILDED))) {
this->actor.textId = 0xC38;
} else if (CURRENT_DAY == 3) {
this->actor.textId = 0xC39;
@ -264,17 +261,27 @@ void func_80B34314(EnKbt* this, PlayState* play) {
}
}
if (this->actor.textId != 0xC37) {
if (((this->actor.textId == 0xC4E) || (this->actor.textId == 0xC4F) || (this->actor.textId == 0xC50)) &&
(gSaveContext.save.playerForm != PLAYER_FORM_HUMAN)) {
this->actor.textId = 0xC37;
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (func_80B33E8C(play)) {
this->actor.textId = 0xC50;
} else {
this->actor.textId = 0xC4E;
}
switch (this->actor.textId) {
case 0xC4E:
case 0xC4F:
case 0xC50:
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
this->actor.textId = 0xC37;
}
break;
case 0xC37:
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
if (func_80B33E8C(play)) {
this->actor.textId = 0xC50;
} else {
this->actor.textId = 0xC4E;
}
}
break;
default:
break;
}
func_800B8614(&this->actor, play, 260.0f);
}

View File

@ -169,8 +169,8 @@ void func_80B2654C(EnKendoJs* this, PlayState* play) {
if (ENKENDOJS_GET_FF(&this->actor) == ENKENDOJS_FF_1) {
Message_StartTextbox(play, 0x273C, &this->actor);
this->unk_288 = 0x273C;
} else if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
switch (gSaveContext.save.playerForm) {
} else if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
phi_v0 = 0;
break;

View File

@ -361,7 +361,7 @@ void func_80B413C8(EnKgy* this) {
}
s32 func_80B41460(void) {
if ((gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) ||
if ((GET_PLAYER_FORM != PLAYER_FORM_HUMAN) ||
((CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_KOKIRI) && (CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_RAZOR) &&
(CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_GILDED))) {
return 0xC38;

View File

@ -201,7 +201,7 @@ void func_80AE9BCC(EnLiftNuts* this, PlayState* play) {
(this->actionFunc != func_80AEACF8) && (this->actionFunc != func_80AEAC64) &&
(this->actionFunc != func_80AEA044) && (this->actionFunc != func_80AEB598) &&
(this->actionFunc != func_80AEB698) && !func_80AE9B4C(0, 3) && (func_80AE9B8C() == 3) &&
(gSaveContext.save.playerForm == PLAYER_FORM_DEKU) && (this->actor.xzDistToPlayer < 150.0f)) {
(GET_PLAYER_FORM == PLAYER_FORM_DEKU) && (this->actor.xzDistToPlayer < 150.0f)) {
func_80AEB828(this);
}
}
@ -322,7 +322,7 @@ void func_80AEA1A0(EnLiftNuts* this, PlayState* play) {
func_80AE9FC8(this);
}
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
if (func_80AE9B4C(0, 0)) {
switch (CURRENT_DAY) {
case 1:

View File

@ -608,7 +608,7 @@ void EnMa4_ChooseNextDialogue(EnMa4* this, PlayState* play) {
break;
case 0x3358:
if ((gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) || !CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
if ((GET_PLAYER_FORM != PLAYER_FORM_HUMAN) || !CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
Message_StartTextbox(play, 0x335C, &this->actor);
this->textId = 0x335C;
Message_BombersNotebookQueueEvent(play, BOMBERS_NOTEBOOK_EVENT_MET_ROMANI);
@ -883,7 +883,7 @@ void EnMa4_StartDialogue(EnMa4* this, PlayState* play) {
switch (this->type) {
case MA4_TYPE_DAY1:
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_21_80)) {
EnMa4_SetFaceExpression(this, 3, 3);
Message_StartTextbox(play, 0x3337, &this->actor);
@ -939,7 +939,7 @@ void EnMa4_StartDialogue(EnMa4* this, PlayState* play) {
break;
case MA4_TYPE_ALIENS_DEFEATED:
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_21_80)) {
EnMa4_SetFaceExpression(this, 3, 3);
Message_StartTextbox(play, 0x3337, &this->actor);

View File

@ -1109,7 +1109,7 @@ void EnMaYto_PostMilkRunEnd(EnMaYto* this, PlayState* play) {
void EnMaYto_DefaultStartDialogue(EnMaYto* this, PlayState* play) {
if (CURRENT_DAY == 1) {
if ((Player_GetMask(play) != PLAYER_MASK_NONE) && (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
if ((Player_GetMask(play) != PLAYER_MASK_NONE) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
switch (Player_GetMask(play)) {
case PLAYER_MASK_ROMANI:
Message_StartTextbox(play, 0x235D, &this->actor);
@ -1168,7 +1168,7 @@ void EnMaYto_DefaultStartDialogue(EnMaYto* this, PlayState* play) {
void EnMaYto_DinnerStartDialogue(EnMaYto* this, PlayState* play) {
switch (CURRENT_DAY) {
case 1:
if ((Player_GetMask(play) != PLAYER_MASK_NONE) && (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
if ((Player_GetMask(play) != PLAYER_MASK_NONE) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
switch (Player_GetMask(play)) {
case PLAYER_MASK_ROMANI:
Message_StartTextbox(play, 0x235D, &this->actor);

View File

@ -302,7 +302,7 @@ void EnMaYts_StartDialogue(EnMaYts* this, PlayState* play) {
s16 sp26 = this->actor.shape.rot.y - this->actor.yawTowardsPlayer;
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (!(gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_65_80)) {
// Saying to non-human Link: "Cremia went to town."
SET_WEEKEVENTREG(WEEKEVENTREG_65_80);

View File

@ -135,6 +135,9 @@ void func_8095954C(EnMk* this, PlayState* play) {
case 5:
func_809592E0(this, play->csCtx.actorCues[Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_127)]->id - 1);
break;
default:
break;
}
} else {
func_809592E0(this, 0);
@ -144,7 +147,7 @@ void func_8095954C(EnMk* this, PlayState* play) {
void func_80959624(EnMk* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (this->unk_27A & 4) {
textId = 0xFB9;
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE)) {
@ -209,7 +212,7 @@ void func_80959844(EnMk* this, PlayState* play) {
} else if (func_80959524(play) >= 7) {
textId = 0xFB3;
} else {
switch (gSaveContext.save.playerForm) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_19_10)) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE)) {
@ -411,7 +414,7 @@ void func_80959E18(EnMk* this, PlayState* play) {
if (func_800B8718(&this->actor, &play->state)) {
play->msgCtx.ocarinaMode = 4;
this->actionFunc = func_80959D28;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
this->actor.csId = this->csIdList[0];
SET_WEEKEVENTREG(WEEKEVENTREG_20_40);
Item_Give(play, ITEM_SONG_NOVA);

View File

@ -458,8 +458,8 @@ void func_80A6FEEC(EnMm3* this, PlayState* play) {
}
s32 func_80A6FFAC(EnMm3* this, PlayState* play) {
switch (gSaveContext.save.playerForm) {
case 4:
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_HUMAN:
if (Player_GetMask(play) == PLAYER_MASK_BUNNY) {
if (this->unk_2B2 & 0x10) {
return true;
@ -469,31 +469,34 @@ s32 func_80A6FFAC(EnMm3* this, PlayState* play) {
}
break;
case 3:
case PLAYER_FORM_DEKU:
if (this->unk_2B2 & 2) {
return true;
}
break;
case 2:
case PLAYER_FORM_ZORA:
if (this->unk_2B2 & 4) {
return true;
}
break;
case 1:
case PLAYER_FORM_GORON:
if (this->unk_2B2 & 8) {
return true;
}
break;
default:
break;
}
return false;
}
void func_80A70084(EnMm3* this, PlayState* play) {
switch (gSaveContext.save.playerForm) {
case 4:
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_HUMAN:
if (Player_GetMask(play) == PLAYER_MASK_BUNNY) {
this->unk_2B2 |= 0x10;
this->unk_2B2 |= 1;
@ -502,17 +505,20 @@ void func_80A70084(EnMm3* this, PlayState* play) {
}
break;
case 3:
case PLAYER_FORM_DEKU:
this->unk_2B2 |= 2;
break;
case 2:
case PLAYER_FORM_ZORA:
this->unk_2B2 |= 4;
break;
case 1:
case PLAYER_FORM_GORON:
this->unk_2B2 |= 8;
break;
default:
break;
}
}

View File

@ -603,7 +603,7 @@ void func_80BD994C(EnPamera* this, PlayState* play) {
Message_StartTextbox(play, 0x15A8, &this->actor);
this->unk_324 = 0x15A8;
} else if ((gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) ||
} else if ((GET_PLAYER_FORM != PLAYER_FORM_HUMAN) ||
(CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE) &&
!CHECK_WEEKEVENTREG(WEEKEVENTREG_75_20))) {
func_80BD93CC(this, 1, 0);

View File

@ -66,7 +66,13 @@ static DamageTable sDamageTable = {
/* Powder Keg */ DMG_ENTRY(1, 0xF),
};
f32 D_80A338C0[PLAYER_FORM_MAX] = { 30.0f, 30.0f, 30.0f, 15.0f, 15.0f };
f32 D_80A338C0[PLAYER_FORM_MAX] = {
30.0f, // PLAYER_FORM_FIERCE_DEITY
30.0f, // PLAYER_FORM_GORON
30.0f, // PLAYER_FORM_ZORA
15.0f, // PLAYER_FORM_DEKU
15.0f, // PLAYER_FORM_HUMAN
};
ActorInit En_Pr_InitVars = {
ACTOR_EN_PR,

View File

@ -60,7 +60,13 @@ static DamageTable sDamageTable = {
/* Powder Keg */ DMG_ENTRY(1, 0xF),
};
f32 D_80A771E0[] = { 40.0f, 40.0f, 40.0f, 30.0f, 30.0f };
f32 D_80A771E0[PLAYER_FORM_MAX] = {
40.0f, // PLAYER_FORM_FIERCE_DEITY
40.0f, // PLAYER_FORM_GORON
40.0f, // PLAYER_FORM_ZORA
30.0f, // PLAYER_FORM_DEKU
30.0f, // PLAYER_FORM_HUMAN
};
static ColliderCylinderInit sCylinderInit = {
{

View File

@ -382,8 +382,7 @@ void EnRailgibud_WalkToPlayer(EnRailgibud* this, PlayState* play) {
if (EnRailgibud_PlayerInRangeWithCorrectState(this, play) && Actor_IsFacingPlayer(&this->actor, 0x38E3)) {
if ((this->grabWaitTimer == 0) && (this->actor.xzDistToPlayer <= 45.0f)) {
player->actor.freezeTimer = 0;
if ((gSaveContext.save.playerForm == PLAYER_FORM_GORON) ||
(gSaveContext.save.playerForm == PLAYER_FORM_DEKU)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_GORON) || (GET_PLAYER_FORM == PLAYER_FORM_DEKU)) {
// If the Gibdo/Redead tries to grab Goron or Deku Link, it will fail to
// do so. It will appear to take damage and shake its head side-to-side.
EnRailgibud_SetupGrabFail(this);
@ -555,7 +554,7 @@ void EnRailgibud_WalkToHome(EnRailgibud* this, PlayState* play) {
this->actor.world.rot = this->actor.shape.rot;
}
if (EnRailgibud_PlayerInRangeWithCorrectState(this, play)) {
if ((gSaveContext.save.playerForm != PLAYER_FORM_GORON) && (gSaveContext.save.playerForm != PLAYER_FORM_DEKU) &&
if ((GET_PLAYER_FORM != PLAYER_FORM_GORON) && (GET_PLAYER_FORM != PLAYER_FORM_DEKU) &&
Actor_IsFacingPlayer(&this->actor, 0x38E3)) {
EnRailgibud_SetupWalkToPlayer(this);
}
@ -869,7 +868,7 @@ s32 EnRailgibud_MoveToIdealGrabPositionAndRotation(EnRailgibud* this, PlayState*
distanceFromTargetPos = Math_Vec3f_StepTo(&this->actor.world.pos, &targetPos, 10.0f);
distanceFromTargetAngle = Math_SmoothStepToS(&this->actor.shape.rot.y, player->actor.shape.rot.y, 1, 0x1770, 0x64);
this->actor.world.rot.y = this->actor.shape.rot.y;
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
distanceFromTargetYOffset = Math_SmoothStepToF(&this->actor.shape.yOffset, -1500.0f, 1.0f, 150.0f, 0.0f);
}

View File

@ -700,7 +700,7 @@ void EnRat_ChasePlayer(EnRat* this, PlayState* play) {
func_800B1210(play, &this->actor.world.pos, &sDustVelocity, &gZeroVec3f, 550, 50);
}
if ((this->actor.floorPoly == NULL) && (Animation_OnFrame(&this->skelAnime, 0.0f))) {
if ((this->actor.floorPoly == NULL) && Animation_OnFrame(&this->skelAnime, 0.0f)) {
EnRat_SpawnWaterEffects(this, play);
}

View File

@ -305,7 +305,7 @@ void func_808FA4F4(EnRr* this, PlayState* play) {
this->unk_210 = 0.0f;
this->unk_20C = 0x800;
if (((this->unk_1E2 == 0) && (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) &&
if (((this->unk_1E2 == 0) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) &&
(GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) == EQUIP_VALUE_SHIELD_HERO)) {
sp34 = true;
this->unk_1E2 = Inventory_DeleteEquipment(play, EQUIP_VALUE_SHIELD_HERO);

View File

@ -505,7 +505,7 @@ void func_80AE7F34(EnStopheishi* this, PlayState* play) {
}
void func_80AE854C(EnStopheishi* this, PlayState* play) {
if (((this->unk_265 != 0) || (CHECK_WEEKEVENTREG(WEEKEVENTREG_12_20))) &&
if (((this->unk_265 != 0) || CHECK_WEEKEVENTREG(WEEKEVENTREG_12_20)) &&
(this->currentAnim != SOLDIER_ANIM_STAND_HAND_ON_HIP)) {
EnStopHeishi_ChangeAnim(this, SOLDIER_ANIM_STAND_HAND_ON_HIP);
}

View File

@ -513,7 +513,7 @@ void EnSyatekiMan_Swamp_Talk(EnSyatekiMan* this, PlayState* play) {
}
void EnSyatekiMan_Town_StartIntroTextbox(EnSyatekiMan* this, PlayState* play) {
switch (gSaveContext.save.playerForm) {
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_HUMAN:
Flags_SetAllTreasure(play, Flags_GetAllTreasure(play) + 1);
if (CURRENT_DAY != 3) {
@ -610,6 +610,9 @@ void EnSyatekiMan_Town_StartIntroTextbox(EnSyatekiMan* this, PlayState* play) {
this->prevTextId = 0x3F5;
}
break;
default:
break;
}
}
@ -1209,7 +1212,7 @@ void EnSyatekiMan_Swamp_AddBonusPoints(EnSyatekiMan* this, PlayState* play) {
void EnSyatekiMan_Town_MovePlayerAndSayHighScore(EnSyatekiMan* this, PlayState* play) {
Vec3f targetPlayerPos;
if (gSaveContext.save.playerForm == PLAYER_FORM_FIERCE_DEITY) {
if (GET_PLAYER_FORM == PLAYER_FORM_FIERCE_DEITY) {
targetPlayerPos = sTownFierceDeityPlayerPos;
} else {
targetPlayerPos = sTownPlayerPos;

View File

@ -345,8 +345,7 @@ void EnTalkGibud_WalkToPlayer(EnTalkGibud* this, PlayState* play) {
if (EnTalkGibud_PlayerInRangeWithCorrectState(this, play) && Actor_IsFacingPlayer(&this->actor, 0x38E3)) {
if ((this->grabWaitTimer == 0) && (this->actor.xzDistToPlayer <= 45.0f)) {
player->actor.freezeTimer = 0;
if ((gSaveContext.save.playerForm == PLAYER_FORM_GORON) ||
(gSaveContext.save.playerForm == PLAYER_FORM_DEKU)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_GORON) || (GET_PLAYER_FORM == PLAYER_FORM_DEKU)) {
// If the Gibdo/Redead tries to grab Goron or Deku Link, it will fail to
// do so. It will appear to take damage and shake its head side-to-side.
EnTalkGibud_SetupGrabFail(this);
@ -516,7 +515,7 @@ void EnTalkGibud_WalkToHome(EnTalkGibud* this, PlayState* play) {
this->actor.world.rot = this->actor.shape.rot;
}
if (EnTalkGibud_PlayerInRangeWithCorrectState(this, play)) {
if ((gSaveContext.save.playerForm != PLAYER_FORM_GORON) && (gSaveContext.save.playerForm != PLAYER_FORM_DEKU) &&
if ((GET_PLAYER_FORM != PLAYER_FORM_GORON) && (GET_PLAYER_FORM != PLAYER_FORM_DEKU) &&
Actor_IsFacingPlayer(&this->actor, 0x38E3)) {
EnTalkGibud_SetupWalkToPlayer(this);
}
@ -994,7 +993,7 @@ s32 EnTalkGibud_MoveToIdealGrabPositionAndRotation(EnTalkGibud* this, PlayState*
distanceFromTargetPos = Math_Vec3f_StepTo(&this->actor.world.pos, &targetPos, 10.0f);
distanceFromTargetAngle = Math_SmoothStepToS(&this->actor.shape.rot.y, player->actor.shape.rot.y, 1, 0x1770, 0x64);
this->actor.world.rot.y = this->actor.shape.rot.y;
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
distanceFromTargetYOffset = Math_SmoothStepToF(&this->actor.shape.yOffset, -1500.0f, 1.0f, 150.0f, 0.0f);
}

View File

@ -138,8 +138,7 @@ void EnTanron4_FlyNearHome(EnTanron4* this, PlayState* play) {
switch (this->flyState) {
case SEAGULL_FLY_FLAP:
if ((this->timers[SEAGULL_TIMER_FLY_STATE] == 0) &&
(Animation_OnFrame(&this->skelAnime, 2.0f + KREG(42)))) {
if ((this->timers[SEAGULL_TIMER_FLY_STATE] == 0) && Animation_OnFrame(&this->skelAnime, 2.0f + KREG(42))) {
this->flyState = SEAGULL_FLY_GLIDE;
this->timers[SEAGULL_TIMER_FLY_STATE] = Rand_ZeroFloat(50.0f) + 50.0f;
Animation_MorphToLoop(&this->skelAnime, &gSeagullFlapAnim, -15.0f + KREG(43));
@ -217,8 +216,7 @@ void EnTanron4_FlyNearActor(EnTanron4* this, PlayState* play) {
switch (this->flyState) {
case SEAGULL_FLY_FLAP:
if ((this->timers[SEAGULL_TIMER_FLY_STATE] == 0) &&
(Animation_OnFrame(&this->skelAnime, 2.0f + KREG(42)))) {
if ((this->timers[SEAGULL_TIMER_FLY_STATE] == 0) && Animation_OnFrame(&this->skelAnime, 2.0f + KREG(42))) {
this->flyState = SEAGULL_FLY_GLIDE;
this->timers[SEAGULL_TIMER_FLY_STATE] = Rand_ZeroFloat(50.0f) + 50.0f;
Animation_MorphToLoop(&this->skelAnime, &gSeagullFlapAnim, -15.0f + KREG(43));

View File

@ -231,7 +231,7 @@ s32 func_80C10B0C(EnThiefbird* this, PlayState* play) {
}
}
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
phi_a3 = GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD);
if (INV_CONTENT(ITEM_SWORD_GREAT_FAIRY) == ITEM_SWORD_GREAT_FAIRY) {
phi_a3 += 4;

View File

@ -256,7 +256,7 @@ void EnTimeTag_Diary_Cutscene(EnTimeTag* this, PlayState* play) {
void EnTimeTag_Diary_Wait(EnTimeTag* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (TIMETAG_DIARY_GET_TYPE(&this->actor) == TIMETAG_DIARY_LULU) {
Message_StartTextbox(play, 0x101C, &this->actor);
} else {

View File

@ -548,16 +548,16 @@ s32 func_80BA46D8(EnToto* this, PlayState* play) {
s32 func_80BA4740(EnToto* this, PlayState* play) {
if (play->msgCtx.ocarinaMode == 4) {
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
SET_WEEKEVENTREG(WEEKEVENTREG_56_10);
}
if (gSaveContext.save.playerForm == PLAYER_FORM_DEKU) {
if (GET_PLAYER_FORM == PLAYER_FORM_DEKU) {
SET_WEEKEVENTREG(WEEKEVENTREG_56_20);
}
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
SET_WEEKEVENTREG(WEEKEVENTREG_56_40);
}
if (gSaveContext.save.playerForm == PLAYER_FORM_GORON) {
if (GET_PLAYER_FORM == PLAYER_FORM_GORON) {
SET_WEEKEVENTREG(WEEKEVENTREG_56_80);
}
return 1;
@ -583,7 +583,7 @@ s32 func_80BA47E0(EnToto* this, PlayState* play) {
this->unk2B3 += 8;
}
for (i = 0; i < ARRAY_COUNT(D_80BA50DC); i++) {
if ((gSaveContext.save.playerForm != (i + 1)) && (D_80BA5128[i] & this->unk2B3)) {
if ((GET_PLAYER_FORM != (i + 1)) && (D_80BA5128[i] & this->unk2B3)) {
Math_Vec3s_ToVec3f(&spawnPos, &D_80BA50DC[i].unk6);
Actor_Spawn(&play->actorCtx, play, ACTOR_PLAYER, spawnPos.x, spawnPos.y, spawnPos.z, i + 2, 0, 0,

View File

@ -160,7 +160,7 @@ void func_80ADFF84(EnTsn* this, PlayState* play) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_26_08)) {
textId = 0x107E;
} else if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_25_80)) {
textId = 0x1083;
} else {

View File

@ -128,7 +128,13 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32_DIV1000(gravity, -1500, ICHAIN_STOP),
};
static f32 sYOffsetPerForm[] = { 50.0f, 55.0f, 50.0f, 20.0f, 30.0f };
static f32 sYOffsetPerForm[PLAYER_FORM_MAX] = {
50.0f, // PLAYER_FORM_FIERCE_DEITY
55.0f, // PLAYER_FORM_GORON
50.0f, // PLAYER_FORM_ZORA
20.0f, // PLAYER_FORM_DEKU
30.0f, // PLAYER_FORM_HUMAN
};
/**
* This maps a given limb based on its limbIndex to its appropriate index

View File

@ -359,7 +359,7 @@ void EnYb_Idle(EnYb* this, PlayState* play) {
EnYb_UpdateAnimation(this, play);
if ((this->actor.xzDistToPlayer < 180.0f) && (fabsf(this->actor.playerHeightRel) < 50.0f) &&
(play->msgCtx.ocarinaMode == 3) && (play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) &&
(gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
(GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
this->actionFunc = EnYb_TeachingDance;
this->teachingCutsceneTimer = 200;
EnYb_ChangeCutscene(this, 0);

View File

@ -210,7 +210,7 @@ void func_80B9FA3C(EnZob* this, PlayState* play) {
this->unk_2F4 |= 1;
if (gSaveContext.save.playerForm != PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM != PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_30_02)) {
textId = 0x11F9;
} else {
@ -563,7 +563,7 @@ void func_80BA0728(EnZob* this, PlayState* play) {
func_80B9F86C(this);
if (func_800B8718(&this->actor, &play->state)) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
Message_StartTextbox(play, 0x1208, NULL);
SET_WEEKEVENTREG(WEEKEVENTREG_30_08);
} else {
@ -594,7 +594,7 @@ void func_80BA0728(EnZob* this, PlayState* play) {
void func_80BA08E8(EnZob* this, PlayState* play) {
s32 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_79_01)) {
textId = 0x1257;
this->unk_304 = 3;

View File

@ -124,7 +124,7 @@ void EnZod_Init(Actor* thisx, PlayState* play) {
}
this->actionFunc = func_80BAFB84;
if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE)) {
Actor_Kill(&this->actor);
break;
}
@ -154,7 +154,7 @@ void EnZod_Destroy(Actor* thisx, PlayState* play) {
void EnZod_HandleRoomConversation(EnZod* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm != PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM != PLAYER_FORM_ZORA) {
textId = 0x1227;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_32_08)) {
textId = 0x1229;
@ -393,7 +393,7 @@ void EnZod_PlayDrumsSequence(EnZod* this, PlayState* play) {
void func_80BAFA44(EnZod* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_79_01)) {
textId = 0x1253;
} else {

View File

@ -628,8 +628,7 @@ void func_80B9451C(EnZog* this, PlayState* play) {
this->unk_300 = 2;
this->actionFunc = func_80B94470;
} else if ((play->msgCtx.ocarinaMode == 3) && (this->actor.xzDistToPlayer < 120.0f)) {
if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) &&
(gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
func_80B93BA8(this, 2);
this->actionFunc = func_80B943C0;
this->actor.shape.shadowDraw = NULL;
@ -717,8 +716,7 @@ void func_80B948A8(EnZog* this, PlayState* play) {
this->unk_300 = 2;
this->actionFunc = func_80B946FC;
} else if ((play->msgCtx.ocarinaMode == 3) && (this->actor.xzDistToPlayer < 120.0f)) {
if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) &&
(gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) {
if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_HEALING) && (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) {
func_80B93BA8(this, 2);
this->actionFunc = func_80B943C0;
this->actor.shape.shadowDraw = NULL;

View File

@ -214,7 +214,7 @@ void func_80BBB0D4(EnZos* this, PlayState* play) {
void func_80BBB15C(EnZos* this, PlayState* play) {
s32 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (this->unk_2B6 & 8) {
textId = 0x1235;
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
@ -499,7 +499,7 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
void func_80BBBB84(EnZos* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
this->actor.flags &= ~ACTOR_FLAG_10000;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
Message_StartTextbox(play, 0x1248, &this->actor);
this->actionFunc = func_80BBB8AC;
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
@ -587,7 +587,7 @@ void func_80BBBDE0(EnZos* this, PlayState* play) {
void func_80BBBFBC(EnZos* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_79_01)) {
textId = 0x125B;
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_78_80)) {

View File

@ -361,7 +361,7 @@ void func_80B97100(EnZot* this, PlayState* play) {
void func_80B97110(EnZot* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
textId = 0x125F;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_28_80)) {
textId = 0x1261;
@ -412,7 +412,7 @@ void func_80B972E8(EnZot* this, PlayState* play) {
u16 textId;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_29_10)) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
textId = 0x126A;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_29_01)) {
textId = 0x126D;
@ -427,7 +427,7 @@ void func_80B972E8(EnZot* this, PlayState* play) {
SET_WEEKEVENTREG(WEEKEVENTREG_29_02);
}
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
textId = 0x1265;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_29_04)) {
textId = 0x1266;
@ -564,12 +564,12 @@ void func_80B97708(EnZot* this, PlayState* play) {
SET_WEEKEVENTREG(WEEKEVENTREG_29_10);
this->actor.flags |= ACTOR_FLAG_10000;
if (phi_v1 == 5) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
this->actor.textId = 0x126E;
} else {
this->actor.textId = 0x1272;
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
this->actor.textId = 0x1273;
} else {
this->actor.textId = 0x1276;
@ -586,7 +586,7 @@ void func_80B9787C(EnZot* this, PlayState* play) {
u16 textId;
if (this->actor.textId == 0) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
switch (ENZOT_GET_1F(&this->actor)) {
case 2:
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_37_40)) {
@ -709,7 +709,7 @@ void func_80B97B5C(EnZot* this, PlayState* play) {
void func_80B97BF8(EnZot* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
textId = 0x128C;
} else {
textId = 0x128B;
@ -808,7 +808,7 @@ void func_80B97FD0(EnZot* this, PlayState* play) {
this->actionFunc = func_80B97E4C;
func_80B97BF8(this, play);
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_38_08)) {
if ((this->actor.xzDistToPlayer < 120.0f) && (gSaveContext.save.playerForm == PLAYER_FORM_ZORA)) {
if ((this->actor.xzDistToPlayer < 120.0f) && (GET_PLAYER_FORM == PLAYER_FORM_ZORA)) {
this->unk_2F2 |= 4;
this->actionFunc = func_80B97E0C;
func_80B96BEC(this, 6, ANIMMODE_ONCE);
@ -838,7 +838,7 @@ void func_80B98178(EnZot* this, PlayState* play) {
switch (ENZOT_GET_1F(&this->actor)) {
case 6:
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CURRENT_DAY == 3) {
textId = 0x129D;
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_39_01)) {
@ -856,7 +856,7 @@ void func_80B98178(EnZot* this, PlayState* play) {
break;
case 7:
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_39_04)) {
textId = 0x12AA;
} else {
@ -885,14 +885,14 @@ void func_80B98178(EnZot* this, PlayState* play) {
phi_v0 += 2;
}
if (gSaveContext.save.playerForm != PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM != PLAYER_FORM_ZORA) {
phi_v0++;
}
textId = phi_v0 + 0x1302;
break;
default:
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
textId = 0x129F;
} else {
textId = 0x1295;
@ -1080,7 +1080,7 @@ void func_80B98998(EnZot* this, PlayState* play) {
void func_80B98A4C(EnZot* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_39_80)) {
textId = 0x12B6;
} else {
@ -1158,7 +1158,7 @@ void func_80B98CA8(EnZot* this, PlayState* play) {
func_800B8614(&this->actor, play, 120.0f);
}
if ((gSaveContext.save.playerForm == PLAYER_FORM_ZORA) || (this->actor.xzDistToPlayer < 100.0f)) {
if ((GET_PLAYER_FORM == PLAYER_FORM_ZORA) || (this->actor.xzDistToPlayer < 100.0f)) {
func_800B874C(&this->actor, play, 120.0, 100.0f);
}
}
@ -1171,7 +1171,7 @@ void func_80B98CA8(EnZot* this, PlayState* play) {
void func_80B98E10(EnZot* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (Flags_GetSwitch(play, this->actor.home.rot.z & 0x7F)) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_40_04)) {
textId = 0x12C5;
@ -1258,7 +1258,7 @@ void func_80B990A4(EnZot* this, PlayState* play) {
void func_80B99160(EnZot* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_40_10)) {
textId = 0x12CD;
} else {

View File

@ -187,7 +187,7 @@ void func_80BD160C(EnZov* this, PlayState* play) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_53_20)) {
this->unk_320 &= ~2;
if (gSaveContext.save.playerForm != PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM != PLAYER_FORM_ZORA) {
textId = 0x1024;
if ((this->unk_322 == 0) || (this->unk_322 == 4)) {
func_80BD1570(this, 4, ANIMMODE_ONCE);
@ -201,7 +201,7 @@ void func_80BD160C(EnZov* this, PlayState* play) {
this->unk_320 |= 4;
func_80BD1570(this, 3, ANIMMODE_ONCE);
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
func_80BD1570(this, 2, ANIMMODE_ONCE);
this->actionFunc = func_80BD19FC;
this->unk_324 = 10;
@ -390,7 +390,7 @@ void func_80BD1C84(EnZov* this, PlayState* play) {
void func_80BD1D30(EnZov* this, PlayState* play) {
u16 textId;
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_79_01)) {
textId = 0x1032;
} else {

View File

@ -361,7 +361,7 @@ void func_80BDD1E0(EnZow* this, PlayState* play) {
if (ENZOW_GET_F(&this->actor) == ENZOW_F_1) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE)) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_78_04)) {
phi_a1 = 0x12FD;
} else {
@ -374,7 +374,7 @@ void func_80BDD1E0(EnZow* this, PlayState* play) {
SET_WEEKEVENTREG(WEEKEVENTREG_78_10);
phi_a1 = 0x12FF;
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_78_08)) {
phi_a1 = 0x12F8;
} else {
@ -388,12 +388,12 @@ void func_80BDD1E0(EnZow* this, PlayState* play) {
phi_a1 = 0x12FF;
}
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE)) {
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
phi_a1 = 0x12EC;
} else {
phi_a1 = 0x12F1;
}
} else if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
} else if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_78_02)) {
phi_a1 = 0x12EB;
} else {

View File

@ -911,7 +911,7 @@ s32 func_80B79734(PlayState* play, ObjUm* this, s32 arg2) {
u16 ObjUm_RanchGetDialogue(PlayState* play, ObjUm* this, s32 arg2) {
u16 textId = 0;
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM == PLAYER_FORM_HUMAN) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_31_40)) {
// "Want a ride?"
textId = 0x33CF;

View File

@ -117,11 +117,7 @@ void OceffSpot_Update(Actor* thisx, PlayState* play) {
temp = (1.0f - cosf(this->unk16C * M_PI)) * 0.5f;
this->actionFunc(this, play);
switch (gSaveContext.save.playerForm) {
default:
scale = 1.0f;
break;
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
scale = 1.3f;
break;
@ -133,6 +129,10 @@ void OceffSpot_Update(Actor* thisx, PlayState* play) {
case PLAYER_FORM_GORON:
scale = 2.0f;
break;
default:
scale = 1.0f;
break;
}
this->actor.scale.z = (scale * 0.42f) * temp;

View File

@ -100,11 +100,7 @@ void OceffStorm_Destroy(Actor* thisx, PlayState* play) {
void OceffStorm_DefaultAction(OceffStorm* this, PlayState* play) {
f32 cylinderScale;
switch (gSaveContext.save.playerForm) {
default:
cylinderScale = 1.0f;
break;
switch (GET_PLAYER_FORM) {
case PLAYER_FORM_DEKU:
cylinderScale = 1.3f;
break;
@ -116,6 +112,10 @@ void OceffStorm_DefaultAction(OceffStorm* this, PlayState* play) {
case PLAYER_FORM_GORON:
cylinderScale = 2.0f;
break;
default:
cylinderScale = 1.0f;
break;
}
if (this->counter < 10) {

View File

@ -10348,7 +10348,7 @@ void Player_Init(Actor* thisx, PlayState* play) {
Actor_SetObjectDependency(play, &this->actor);
} else {
this->transformation = gSaveContext.save.playerForm;
this->transformation = GET_PLAYER_FORM;
if (this->transformation == PLAYER_FORM_HUMAN) {
if (gSaveContext.save.equippedMask == PLAYER_MASK_GIANT) {
gSaveContext.save.equippedMask = PLAYER_MASK_NONE;
@ -10765,10 +10765,10 @@ void Player_SetDoAction(PlayState* play, Player* this) {
!Player_IsGoronOrDeku(this)) {
if ((this->transformation != PLAYER_FORM_GORON) &&
!(this->stateFlags1 & (PLAYER_STATE1_4 | PLAYER_STATE1_4000)) && (sp28 <= 0) &&
((func_80123420(this)) ||
(func_80123420(this) ||
((sPlayerFloorType != FLOOR_TYPE_7) &&
((func_80123434(this)) || ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) &&
!(this->stateFlags1 & PLAYER_STATE1_400000) && (sp28 == 0)))))) {
(func_80123434(this) || ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) &&
!(this->stateFlags1 & PLAYER_STATE1_400000) && (sp28 == 0)))))) {
doActionA = DO_ACTION_ATTACK;
} else if ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_2) && sp24 && (sp28 > 0)) {
doActionA = DO_ACTION_JUMP;
@ -13768,7 +13768,7 @@ void func_8084A8E8(Player* this, PlayState* play) {
func_8083AF8C(this, sp3A, play);
}
} else if ((this->linearVelocity < 3.6f) && (sp3C < 4.0f)) {
if ((func_80123420(this) == 0) && (func_80123434(this))) {
if (!func_80123420(this) && func_80123434(this)) {
func_8083AF30(this, play);
} else {
func_80836988(this, play);
@ -17669,14 +17669,14 @@ void func_808553F4(Player* this, PlayState* play) {
this->actor.draw = NULL;
this->unk_AE7 = 0;
Play_DisableMotionBlurPriority();
SET_WEEKEVENTREG(D_8085D908[gSaveContext.save.playerForm]);
SET_WEEKEVENTREG(D_8085D908[GET_PLAYER_FORM]);
}
} else if ((this->unk_AE7++ > ((this->transformation == PLAYER_FORM_HUMAN) ? 0x53 : 0x37)) ||
((this->unk_AE7 >= 5) &&
(sp48 = ((this->transformation != PLAYER_FORM_HUMAN) ||
CHECK_WEEKEVENTREG(D_8085D908[gSaveContext.save.playerForm])) &&
CHECK_BTN_ANY(sPlayerControlInput->press.button,
BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP | BTN_B | BTN_A)))) {
(sp48 =
((this->transformation != PLAYER_FORM_HUMAN) || CHECK_WEEKEVENTREG(D_8085D908[GET_PLAYER_FORM])) &&
CHECK_BTN_ANY(sPlayerControlInput->press.button,
BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP | BTN_B | BTN_A)))) {
R_PLAY_FILL_SCREEN_ON = 45;
R_PLAY_FILL_SCREEN_R = 220;
R_PLAY_FILL_SCREEN_G = 220;
@ -19681,7 +19681,7 @@ void Player_CsAction_22(PlayState* play, Player* this, CsCmdActorCue* cue) {
void Player_CsAction_23(PlayState* play, Player* this, CsCmdActorCue* cue) {
PlayerAnimation_Update(play, &this->skelAnime);
if (gSaveContext.save.playerForm != this->transformation) {
if (GET_PLAYER_FORM != this->transformation) {
this->actor.update = func_8012301C;
this->actor.draw = NULL;
}
@ -19724,7 +19724,7 @@ void Player_CsAction_25(PlayState* play, Player* this, CsCmdActorCue* cue) {
void Player_CsAction_26(PlayState* play, Player* this, CsCmdActorCue* cue) {
PlayerAnimation_Update(play, &this->skelAnime);
if (gSaveContext.save.playerForm != this->transformation) {
if (GET_PLAYER_FORM != this->transformation) {
this->actor.update = func_8012301C;
this->actor.draw = NULL;
}

View File

@ -525,7 +525,7 @@ void MapSelect_UpdateMenu(MapSelectState* this) {
}
if (CHECK_BTN_ALL(controller1->press.button, BTN_B)) {
playerForm = gSaveContext.save.playerForm - 1;
playerForm = GET_PLAYER_FORM - 1;
if (playerForm < PLAYER_FORM_FIERCE_DEITY) {
playerForm = PLAYER_FORM_HUMAN;
}

View File

@ -16,7 +16,7 @@ s16 sEquipMagicArrowSlotHoldTimer = 0;
s16 sEquipAnimTimer = 10;
u8 gPlayerFormSlotRestrictions[PLAYER_FORM_MAX][ITEM_NUM_SLOTS] = {
// Fierce Deity
// PLAYER_FORM_FIERCE_DEITY
{
false, // SLOT_OCARINA
false, // SLOT_BOW
@ -43,7 +43,7 @@ u8 gPlayerFormSlotRestrictions[PLAYER_FORM_MAX][ITEM_NUM_SLOTS] = {
true, // SLOT_BOTTLE_5
true, // SLOT_BOTTLE_6
},
// Goron
// PLAYER_FORM_GORON
{
true, // SLOT_OCARINA
false, // SLOT_BOW
@ -70,7 +70,7 @@ u8 gPlayerFormSlotRestrictions[PLAYER_FORM_MAX][ITEM_NUM_SLOTS] = {
true, // SLOT_BOTTLE_5
true, // SLOT_BOTTLE_6
},
// Zora
// PLAYER_FORM_ZORA
{
true, // SLOT_OCARINA
false, // SLOT_BOW
@ -97,7 +97,7 @@ u8 gPlayerFormSlotRestrictions[PLAYER_FORM_MAX][ITEM_NUM_SLOTS] = {
true, // SLOT_BOTTLE_5
true, // SLOT_BOTTLE_6
},
// Deku
// PLAYER_FORM_DEKU
{
true, // SLOT_OCARINA
false, // SLOT_BOW
@ -124,7 +124,7 @@ u8 gPlayerFormSlotRestrictions[PLAYER_FORM_MAX][ITEM_NUM_SLOTS] = {
true, // SLOT_BOTTLE_5
true, // SLOT_BOTTLE_6
},
// Human
// PLAYER_FORM_HUMAN
{
true, // SLOT_OCARINA
true, // SLOT_BOW
@ -193,7 +193,7 @@ void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx,
gDPPipeSync(POLY_OPA_DISP++);
if (!gPlayerFormSlotRestrictions[((void)0, gSaveContext.save.playerForm)][SLOT(item)]) {
if (!gPlayerFormSlotRestrictions[GET_PLAYER_FORM][SLOT(item)]) {
// Ammo item is restricted
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 100, 100, 100, pauseCtx->alpha);
} else {
@ -277,8 +277,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
if (((void)0, gSaveContext.save.saveInfo.inventory.items[i]) != ITEM_NONE) {
if ((pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) && (pauseCtx->pageIndex == PAUSE_ITEM) &&
(pauseCtx->cursorSpecialPos == 0) &&
gPlayerFormSlotRestrictions[(void)0, gSaveContext.save.playerForm][i]) {
(pauseCtx->cursorSpecialPos == 0) && gPlayerFormSlotRestrictions[GET_PLAYER_FORM][i]) {
if ((sEquipState == EQUIP_STATE_MAGIC_ARROW_HOVER_OVER_BOW_SLOT) && (i == SLOT_ARROW_ICE)) {
// Possible bug:
// Supposed to be `SLOT_BOW`, unchanged from OoT, instead increase size of ice arrow icon
@ -339,8 +338,12 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
CLOSE_DISPS(play->state.gfxCtx);
}
u8 sPlayerFormItems[] = {
ITEM_MASK_FIERCE_DEITY, ITEM_MASK_GORON, ITEM_MASK_ZORA, ITEM_MASK_DEKU, ITEM_NONE,
u8 sPlayerFormItems[PLAYER_FORM_MAX] = {
ITEM_MASK_FIERCE_DEITY, // PLAYER_FORM_FIERCE_DEITY
ITEM_MASK_GORON, // PLAYER_FORM_GORON
ITEM_MASK_ZORA, // PLAYER_FORM_ZORA
ITEM_MASK_DEKU, // PLAYER_FORM_DEKU
ITEM_NONE, // PLAYER_FORM_HUMAN
};
void KaleidoScope_UpdateItemCursor(PlayState* play) {
@ -599,23 +602,20 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
CHECK_BTN_ANY(CONTROLLER1(&play->state)->press.button, BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) {
// Ensure that a transformation mask can not be unequipped while being used
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) {
if (1) {}
if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, BTN_CLEFT)) {
if (sPlayerFormItems[((void)0, gSaveContext.save.playerForm)] ==
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT)) {
if (sPlayerFormItems[GET_PLAYER_FORM] == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT)) {
Audio_PlaySfx(NA_SE_SY_ERROR);
return;
}
} else if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, BTN_CDOWN)) {
if (sPlayerFormItems[((void)0, gSaveContext.save.playerForm)] ==
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN)) {
if (sPlayerFormItems[GET_PLAYER_FORM] == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN)) {
Audio_PlaySfx(NA_SE_SY_ERROR);
return;
}
} else if (CHECK_BTN_ALL(CONTROLLER1(&play->state)->press.button, BTN_CRIGHT)) {
if (sPlayerFormItems[((void)0, gSaveContext.save.playerForm)] ==
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT)) {
if (sPlayerFormItems[GET_PLAYER_FORM] == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT)) {
Audio_PlaySfx(NA_SE_SY_ERROR);
return;
}

View File

@ -16,7 +16,7 @@ s16 sMaskEquipMagicArrowSlotHoldTimer = 0;
s16 sMaskEquipAnimTimer = 10;
u8 gMaskPlayerFormSlotRestrictions[PLAYER_FORM_MAX][MASK_NUM_SLOTS] = {
// Fierce Deity
// PLAYER_FORM_FIERCE_DEITY
{
false, // SLOT_MASK_POSTMAN
false, // SLOT_MASK_ALL_NIGHT
@ -43,7 +43,7 @@ u8 gMaskPlayerFormSlotRestrictions[PLAYER_FORM_MAX][MASK_NUM_SLOTS] = {
false, // SLOT_MASK_GIANT
true, // SLOT_MASK_FIERCE_DEITY
},
// Goron
// PLAYER_FORM_GORON
{
false, // SLOT_MASK_POSTMAN
false, // SLOT_MASK_ALL_NIGHT
@ -70,7 +70,7 @@ u8 gMaskPlayerFormSlotRestrictions[PLAYER_FORM_MAX][MASK_NUM_SLOTS] = {
false, // SLOT_MASK_GIANT
true, // SLOT_MASK_FIERCE_DEITY
},
// Zora
// PLAYER_FORM_ZORA
{
false, // SLOT_MASK_POSTMAN
false, // SLOT_MASK_ALL_NIGHT
@ -97,7 +97,7 @@ u8 gMaskPlayerFormSlotRestrictions[PLAYER_FORM_MAX][MASK_NUM_SLOTS] = {
false, // SLOT_MASK_GIANT
true, // SLOT_MASK_FIERCE_DEITY
},
// Deku
// PLAYER_FORM_DEKU
{
false, // SLOT_MASK_POSTMAN
false, // SLOT_MASK_ALL_NIGHT
@ -124,7 +124,7 @@ u8 gMaskPlayerFormSlotRestrictions[PLAYER_FORM_MAX][MASK_NUM_SLOTS] = {
false, // SLOT_MASK_GIANT
true, // SLOT_MASK_FIERCE_DEITY
},
// Human
// PLAYER_FORM_HUMAN
{
true, // SLOT_MASK_POSTMAN
true, // SLOT_MASK_ALL_NIGHT
@ -224,8 +224,7 @@ void KaleidoScope_DrawMaskSelect(PlayState* play) {
if (((void)0, gSaveContext.save.saveInfo.inventory.items[i + ITEM_NUM_SLOTS]) != ITEM_NONE) {
if (!CHECK_GIVEN_MASK_ON_MOON(i)) {
if ((pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) && (pauseCtx->pageIndex == PAUSE_MASK) &&
(pauseCtx->cursorSpecialPos == 0) &&
gMaskPlayerFormSlotRestrictions[(void)0, gSaveContext.save.playerForm][i]) {
(pauseCtx->cursorSpecialPos == 0) && gMaskPlayerFormSlotRestrictions[GET_PLAYER_FORM][i]) {
if ((sMaskEquipState == EQUIP_STATE_MAGIC_ARROW_HOVER_OVER_BOW_SLOT) && (i == SLOT_ARROW_ICE)) {
// Possible bug:
// Supposed to be `SLOT_BOW`, unchanged from OoT, instead increase size of ice arrow icon
@ -267,8 +266,12 @@ void KaleidoScope_DrawMaskSelect(PlayState* play) {
CLOSE_DISPS(play->state.gfxCtx);
}
u8 sMaskPlayerFormItems[] = {
ITEM_MASK_FIERCE_DEITY, ITEM_MASK_GORON, ITEM_MASK_ZORA, ITEM_MASK_DEKU, ITEM_NONE,
u8 sMaskPlayerFormItems[PLAYER_FORM_MAX] = {
ITEM_MASK_FIERCE_DEITY, // PLAYER_FORM_FIERCE_DEITY
ITEM_MASK_GORON, // PLAYER_FORM_GORON
ITEM_MASK_ZORA, // PLAYER_FORM_ZORA
ITEM_MASK_DEKU, // PLAYER_FORM_DEKU
ITEM_NONE, // PLAYER_FORM_HUMAN
};
void KaleidoScope_UpdateMaskCursor(PlayState* play) {
@ -543,27 +546,24 @@ void KaleidoScope_UpdateMaskCursor(PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_CLEFT)) {
if (((Player_GetCurMaskItemId(play) != ITEM_NONE) &&
(Player_GetCurMaskItemId(play) == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT))) ||
((sMaskPlayerFormItems[((void)0, gSaveContext.save.playerForm)] != ITEM_NONE) &&
(sMaskPlayerFormItems[((void)0, gSaveContext.save.playerForm)] ==
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT)))) {
((sMaskPlayerFormItems[GET_PLAYER_FORM] != ITEM_NONE) &&
(sMaskPlayerFormItems[GET_PLAYER_FORM] == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT)))) {
Audio_PlaySfx(NA_SE_SY_ERROR);
return;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_CDOWN)) {
if (((Player_GetCurMaskItemId(play) != ITEM_NONE) &&
(Player_GetCurMaskItemId(play) == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN))) ||
((sMaskPlayerFormItems[((void)0, gSaveContext.save.playerForm)] != ITEM_NONE) &&
(sMaskPlayerFormItems[((void)0, gSaveContext.save.playerForm)] ==
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN)))) {
((sMaskPlayerFormItems[GET_PLAYER_FORM] != ITEM_NONE) &&
(sMaskPlayerFormItems[GET_PLAYER_FORM] == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN)))) {
Audio_PlaySfx(NA_SE_SY_ERROR);
return;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) {
if (((Player_GetCurMaskItemId(play) != ITEM_NONE) &&
(Player_GetCurMaskItemId(play) == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT))) ||
((sMaskPlayerFormItems[((void)0, gSaveContext.save.playerForm)] != ITEM_NONE) &&
(sMaskPlayerFormItems[((void)0, gSaveContext.save.playerForm)] ==
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT)))) {
((sMaskPlayerFormItems[GET_PLAYER_FORM] != ITEM_NONE) &&
(sMaskPlayerFormItems[GET_PLAYER_FORM] == BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT)))) {
Audio_PlaySfx(NA_SE_SY_ERROR);
return;
}

View File

@ -2858,7 +2858,7 @@ void KaleidoScope_Update(PlayState* play) {
gSegments[0x08] = VIRTUAL_TO_PHYSICAL(pauseCtx->iconItemSegment);
for (itemId = 0; itemId <= ITEM_BOW_FIRE; itemId++) {
if (!gPlayerFormItemRestrictions[(void)0, gSaveContext.save.playerForm][(s32)itemId]) {
if (!gPlayerFormItemRestrictions[GET_PLAYER_FORM][(s32)itemId]) {
KaleidoScope_GrayOutTextureRGBA32(Lib_SegmentedToVirtual(gItemIcons[(s32)itemId]), 0x400);
}
}