mirror of https://github.com/zeldaret/mm.git
Misc Cleanup 6 (#1307)
* more cleanup * 3 more brackets * PR Suggestions
This commit is contained in:
parent
857a0cfdaf
commit
532ec30973
|
|
@ -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" />
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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[] = {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)) &&
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 = {
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue