Merge branch 'master' into voice

This commit is contained in:
engineer124
2022-02-05 12:56:18 +11:00
76 changed files with 3282 additions and 875 deletions
+136
View File
@@ -0,0 +1,136 @@
<Root>
<File Name="parameter_static" Segment="2">
<Texture Name="gHeartEmptyTex" OutName="heart_empty" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<Texture Name="gHeartQuarterTex" OutName="heart_quarter" Format="ia8" Width="16" Height="16" Offset="0x100"/>
<Texture Name="gHeartHalfTex" OutName="heart_half" Format="ia8" Width="16" Height="16" Offset="0x200"/>
<Texture Name="gHeartThreeQuarterTex" OutName="heart_three_quarter" Format="ia8" Width="16" Height="16" Offset="0x300"/>
<Texture Name="gHeartFullTex" OutName="heart_full" Format="ia8" Width="16" Height="16" Offset="0x400"/>
<Texture Name="gDefenseHeartEmptyTex" OutName="defense_heart_empty" Format="ia8" Width="16" Height="16" Offset="0x500"/>
<Texture Name="gDefenseHeartQuarterTex" OutName="defense_heart_quarter" Format="ia8" Width="16" Height="16" Offset="0x600"/>
<Texture Name="gDefenseHeartHalfTex" OutName="defense_heart_half" Format="ia8" Width="16" Height="16" Offset="0x700"/>
<Texture Name="gDefenseHeartThreeQuarterTex" OutName="defense_heart_three_quarter" Format="ia8" Width="16" Height="16" Offset="0x800"/>
<Texture Name="gDefenseHeartFullTex" OutName="defense_heart_full" Format="ia8" Width="16" Height="16" Offset="0x900"/>
<Texture Name="gFishermanMinigameTorchIconTex" OutName="fisherman_minigame_torch_icon" Format="ia8" Width="16" Height="30" Offset="0xA00"/>
<Texture Name="gSwordTrainingLogIconTex" OutName="sword_training_log_icon" Format="ia8" Width="24" Height="16" Offset="0xBE0"/>
<Texture Name="gSmallKeyCounterIconTex" OutName="small_key_counter_icon" Format="ia8" Width="16" Height="16" Offset="0xD60"/>
<Texture Name="gRupeeCounterIconTex" OutName="rupee_counter_icon" Format="ia8" Width="16" Height="16" Offset="0xE60"/>
<Texture Name="gButtonBackgroundTex" OutName="button_background" Format="ia8" Width="32" Height="32" Offset="0xF60"/>
<Texture Name="gEquippedItemOutlineTex" OutName="equipped_item_outline" Format="ia8" Width="32" Height="32" Offset="0x1360"/>
<Texture Name="gEmptyCLeftArrowTex" OutName="empty_c_left_arrow" Format="ia8" Width="32" Height="32" Offset="0x1760"/>
<Texture Name="gEmptyCDownArrowTex" OutName="empty_c_down_arrow" Format="ia8" Width="32" Height="32" Offset="0x1B60"/>
<Texture Name="gEmptyCRightArrowTex" OutName="empty_c_right_arrow" Format="ia8" Width="32" Height="32" Offset="0x1F60"/>
<Texture Name="gTimerClockIconTex" OutName="timer_clock_icon" Format="ia8" Width="16" Height="16" Offset="0x2360"/>
<Texture Name="gMapBossIconTex" OutName="map_boss_icon" Format="ia8" Width="8" Height="8" Offset="0x2460"/>
<Texture Name="gOcarinaATex" OutName="ocarina_a" Format="ia8" Width="16" Height="16" Offset="0x24A0"/>
<Texture Name="gOcarinaCDownTex" OutName="ocarina_c_down" Format="ia8" Width="16" Height="16" Offset="0x25A0"/>
<Texture Name="gOcarinaCRightTex" OutName="ocarina_c_right" Format="ia8" Width="16" Height="16" Offset="0x26A0"/>
<Texture Name="gOcarinaCLeftTex" OutName="ocarina_c_left" Format="ia8" Width="16" Height="16" Offset="0x27A0"/>
<Texture Name="gOcarinaCUpTex" OutName="ocarina_c_up" Format="ia8" Width="16" Height="16" Offset="0x28A0"/>
<Texture Name="gOcarinaTrebleClefTex" OutName="ocarina_treble_clef" Format="i4" Width="16" Height="32" Offset="0x29A0"/>
<Texture Name="gSceneTitleCardGradientTex" OutName="scene_title_card_gradient" Format="i8" Width="64" Height="1" Offset="0x2AA0"/>
<!-- All four versions of Tatl textures are identical -->
<Texture Name="gTatlCUpENGTex" OutName="tatl_c_up_eng" Format="ia4" Width="32" Height="12" Offset="0x2AE0"/>
<Texture Name="gTatlCUpGERTex" OutName="tatl_c_up_ger" Format="ia4" Width="32" Height="12" Offset="0x2BA0"/>
<Texture Name="gTatlCUpFRATex" OutName="tatl_c_up_fra" Format="ia4" Width="32" Height="12" Offset="0x2C60"/>
<Texture Name="gTatlCUpESPTex" OutName="tatl_c_up_esp" Format="ia4" Width="32" Height="12" Offset="0x2D20"/>
<Texture Name="gCarrotIconTex" OutName="carrot_icon" Format="rgba32" Width="16" Height="16" Offset="0x2DE0"/>
<Texture Name="gGoldSkulltulaCounterIconTex" OutName="gold_skulltula_counter_icon" Format="rgba32" Width="24" Height="18" Offset="0x31E0"/>
<Texture Name="gBeaverRingIconTex" OutName="beaver_ring_icon" Format="rgba32" Width="24" Height="16" Offset="0x38A0"/>
<Texture Name="gMapDungeonEntranceIconTex" OutName="map_dungeon_entrance_icon" Format="rgba16" Width="8" Height="8" Offset="0x3EA0"/>
<Texture Name="gMapChestIconTex" OutName="map_chest_icon" Format="rgba16" Width="8" Height="8" Offset="0x3F20"/>
<Texture Name="gArcheryScoreIconTex" OutName="archery_score_icon" Format="rgba16" Width="24" Height="16" Offset="0x3FA0"/>
<!-- Looking through the lens of the pictograph box -->
<Texture Name="gPictoBoxFocusIconTex" OutName="picto_box_focus_icon" Format="i4" Width="32" Height="16" Offset="0x42A0"/>
<Texture Name="gPictoBoxFocusBorderTex" OutName="picto_box_focus_border" Format="ia4" Width="16" Height="16" Offset="0x43A0"/>
<Texture Name="gPictoBoxFocusTextTex" OutName="picto_box_focus_text" Format="i4" Width="32" Height="8" Offset="0x4420"/>
<Texture Name="gCounterDigit0Tex" OutName="counter_digit_0" Format="i8" Width="8" Height="16" Offset="0x44A0"/>
<Texture Name="gCounterDigit1Tex" OutName="counter_digit_1" Format="i8" Width="8" Height="16" Offset="0x4520"/>
<Texture Name="gCounterDigit2Tex" OutName="counter_digit_2" Format="i8" Width="8" Height="16" Offset="0x45A0"/>
<Texture Name="gCounterDigit3Tex" OutName="counter_digit_3" Format="i8" Width="8" Height="16" Offset="0x4620"/>
<Texture Name="gCounterDigit4Tex" OutName="counter_digit_4" Format="i8" Width="8" Height="16" Offset="0x46A0"/>
<Texture Name="gCounterDigit5Tex" OutName="counter_digit_5" Format="i8" Width="8" Height="16" Offset="0x4720"/>
<Texture Name="gCounterDigit6Tex" OutName="counter_digit_6" Format="i8" Width="8" Height="16" Offset="0x47A0"/>
<Texture Name="gCounterDigit7Tex" OutName="counter_digit_7" Format="i8" Width="8" Height="16" Offset="0x4820"/>
<Texture Name="gCounterDigit8Tex" OutName="counter_digit_8" Format="i8" Width="8" Height="16" Offset="0x48A0"/>
<Texture Name="gCounterDigit9Tex" OutName="counter_digit_9" Format="i8" Width="8" Height="16" Offset="0x4920"/>
<Texture Name="gCounterColonTex" OutName="counter_colon" Format="i8" Width="8" Height="16" Offset="0x49A0"/>
<Texture Name="gStrayFairyMapCounterSlashTex" OutName="stray_fairy_map_counter_slash" Format="i8" Width="8" Height="16" Offset="0x4A20"/>
<Texture Name="gAmmoDigit0Tex" OutName="ammo_digit_0" Format="ia8" Width="8" Height="8" Offset="0x4AA0"/>
<Texture Name="gAmmoDigit1Tex" OutName="ammo_digit_1" Format="ia8" Width="8" Height="8" Offset="0x4AE0"/>
<Texture Name="gAmmoDigit2Tex" OutName="ammo_digit_2" Format="ia8" Width="8" Height="8" Offset="0x4B20"/>
<Texture Name="gAmmoDigit3Tex" OutName="ammo_digit_3" Format="ia8" Width="8" Height="8" Offset="0x4B60"/>
<Texture Name="gAmmoDigit4Tex" OutName="ammo_digit_4" Format="ia8" Width="8" Height="8" Offset="0x4BA0"/>
<Texture Name="gAmmoDigit5Tex" OutName="ammo_digit_5" Format="ia8" Width="8" Height="8" Offset="0x4BE0"/>
<Texture Name="gAmmoDigit6Tex" OutName="ammo_digit_6" Format="ia8" Width="8" Height="8" Offset="0x4C20"/>
<Texture Name="gAmmoDigit7Tex" OutName="ammo_digit_7" Format="ia8" Width="8" Height="8" Offset="0x4C60"/>
<Texture Name="gAmmoDigit8Tex" OutName="ammo_digit_8" Format="ia8" Width="8" Height="8" Offset="0x4CA0"/>
<Texture Name="gAmmoDigit9Tex" OutName="ammo_digit_9" Format="ia8" Width="8" Height="8" Offset="0x4CE0"/>
<Texture Name="gAmmoDigitHalfTex" OutName="ammo_digit_half" Format="ia8" Width="16" Height="8" Offset="0x4D20"/>
<Texture Name="gMagicBarEndTex" OutName="magic_bar_end" Format="ia8" Width="8" Height="16" Offset="0x4DA0"/>
<Texture Name="gMagicBarMidTex" OutName="magic_bar_mid" Format="ia8" Width="24" Height="16" Offset="0x4E20"/>
<Texture Name="gMagicBarFillTex" OutName="magic_bar_fill" Format="ia8" Width="8" Height="8" Offset="0x4FA0"/>
<!-- The analog clock from day one until midnight of the final day -->
<Texture Name="gThreeDayClockDiamondTex" OutName="three_day_clock_diamond" Format="ia8" Width="40" Height="32" Offset="0x4FE0"/>
<Texture Name="gThreeDayClockMoonHourTex" OutName="three_day_clock_moon_hour" Format="ia8" Width="24" Height="24" Offset="0x54E0"/>
<Texture Name="gThreeDayClockSunHourTex" OutName="three_day_clock_sun_hour" Format="ia8" Width="24" Height="24" Offset="0x5720"/>
<Texture Name="gThreeDayClockBorderTex" OutName="three_day_clock_border" Format="i4" Width="64" Height="48" Offset="0x5960"/>
<Texture Name="gThreeDayClockHourLinesTex" OutName="three_day_clock_hour_lines" Format="i4" Width="64" Height="35" Offset="0x5F60"/>
<Texture Name="gThreeDayClockStarMinuteTex" OutName="three_day_clock_star_minute" Format="i4" Width="16" Height="16" Offset="0x63C0"/>
<Texture Name="gThreeDayClockHour12Tex" OutName="three_day_clock_hour_12" Format="i4" Width="16" Height="11" Offset="0x6440"/>
<Texture Name="gThreeDayClockHour1Tex" OutName="three_day_clock_hour_1" Format="i4" Width="16" Height="11" Offset="0x6498"/>
<Texture Name="gThreeDayClockHour2Tex" OutName="three_day_clock_hour_2" Format="i4" Width="16" Height="11" Offset="0x64F0"/>
<Texture Name="gThreeDayClockHour3Tex" OutName="three_day_clock_hour_3" Format="i4" Width="16" Height="11" Offset="0x6548"/>
<Texture Name="gThreeDayClockHour4Tex" OutName="three_day_clock_hour_4" Format="i4" Width="16" Height="11" Offset="0x65A0"/>
<Texture Name="gThreeDayClockHour5Tex" OutName="three_day_clock_hour_5" Format="i4" Width="16" Height="11" Offset="0x65F8"/>
<Texture Name="gThreeDayClockHour6Tex" OutName="three_day_clock_hour_6" Format="i4" Width="16" Height="11" Offset="0x6650"/>
<Texture Name="gThreeDayClockHour7Tex" OutName="three_day_clock_hour_7" Format="i4" Width="16" Height="11" Offset="0x66A8"/>
<Texture Name="gThreeDayClockHour8Tex" OutName="three_day_clock_hour_8" Format="i4" Width="16" Height="11" Offset="0x6700"/>
<Texture Name="gThreeDayClockHour9Tex" OutName="three_day_clock_hour_9" Format="i4" Width="16" Height="11" Offset="0x6758"/>
<Texture Name="gThreeDayClockHour10Tex" OutName="three_day_clock_hour_10" Format="i4" Width="16" Height="11" Offset="0x67B0"/>
<Texture Name="gThreeDayClockHour11Tex" OutName="three_day_clock_hour_11" Format="i4" Width="16" Height="11" Offset="0x6808"/>
<!-- The digital clock until moon crash after midnight of the final day -->
<Texture Name="gFinalHoursClockDigit0Tex" OutName="final_hours_clock_digit_0" Format="i8" Width="8" Height="8" Offset="0x6860"/>
<Texture Name="gFinalHoursClockDigit1Tex" OutName="final_hours_clock_digit_1" Format="i8" Width="8" Height="8" Offset="0x68A0"/>
<Texture Name="gFinalHoursClockDigit2Tex" OutName="final_hours_clock_digit_2" Format="i8" Width="8" Height="8" Offset="0x68E0"/>
<Texture Name="gFinalHoursClockDigit3Tex" OutName="final_hours_clock_digit_3" Format="i8" Width="8" Height="8" Offset="0x6920"/>
<Texture Name="gFinalHoursClockDigit4Tex" OutName="final_hours_clock_digit_4" Format="i8" Width="8" Height="8" Offset="0x6960"/>
<Texture Name="gFinalHoursClockDigit5Tex" OutName="final_hours_clock_digit_5" Format="i8" Width="8" Height="8" Offset="0x69A0"/>
<Texture Name="gFinalHoursClockDigit6Tex" OutName="final_hours_clock_digit_6" Format="i8" Width="8" Height="8" Offset="0x69E0"/>
<Texture Name="gFinalHoursClockDigit7Tex" OutName="final_hours_clock_digit_7" Format="i8" Width="8" Height="8" Offset="0x6A20"/>
<Texture Name="gFinalHoursClockDigit8Tex" OutName="final_hours_clock_digit_8" Format="i8" Width="8" Height="8" Offset="0x6A60"/>
<Texture Name="gFinalHoursClockDigit9Tex" OutName="final_hours_clock_digit_9" Format="i8" Width="8" Height="8" Offset="0x6AA0"/>
<Texture Name="gFinalHoursClockColonTex" OutName="final_hours_clock_colon" Format="i8" Width="8" Height="8" Offset="0x6AE0"/>
<Texture Name="gFinalHoursClockFrameTex" OutName="final_hours_clock_frame" Format="ia4" Width="80" Height="13" Offset="0x6B20"/>
<Texture Name="gMinigameCountdownGoTex" OutName="minigame_countdown_go" Format="ia8" Width="40" Height="32" Offset="0x6D28"/>
<Texture Name="gMinigameCountdown1Tex" OutName="minigame_countdown_1" Format="ia8" Width="24" Height="32" Offset="0x7228"/>
<Texture Name="gMinigameCountdown2Tex" OutName="minigame_countdown_2" Format="ia8" Width="24" Height="32" Offset="0x7528"/>
<Texture Name="gMinigameCountdown3Tex" OutName="minigame_countdown_3" Format="ia8" Width="24" Height="32" Offset="0x7828"/>
<!-- The letters of "PERFECT!" -->
<Texture Name="gMinigameLetterPTex" OutName="minigame_letter_p" Format="i4" Width="32" Height="33" Offset="0x7B28"/>
<Texture Name="gMinigameLetterETex" OutName="minigame_letter_e" Format="i4" Width="32" Height="33" Offset="0x7D38"/>
<Texture Name="gMinigameLetterRTex" OutName="minigame_letter_r" Format="i4" Width="32" Height="33" Offset="0x7F48"/>
<Texture Name="gMinigameLetterFTex" OutName="minigame_letter_f" Format="i4" Width="32" Height="33" Offset="0x8158"/>
<Texture Name="gMinigameLetterCTex" OutName="minigame_letter_c" Format="i4" Width="32" Height="33" Offset="0x8368"/>
<Texture Name="gMinigameLetterTTex" OutName="minigame_letter_t" Format="i4" Width="32" Height="33" Offset="0x8578"/>
<Texture Name="gMinigameExclamationTex" OutName="minigame_exclamation" Format="i4" Width="32" Height="33" Offset="0x8788"/>
<Texture Name="gStrayFairyWoodfallIconTex" OutName="stray_fairy_woodfall_icon" Format="rgba32" Width="32" Height="24" Offset="0x8998"/>
<Texture Name="gStrayFairySnowheadIconTex" OutName="stray_fairy_snowhead_icon" Format="rgba32" Width="32" Height="24" Offset="0x9598"/>
<Texture Name="gStrayFairyGreatBayIconTex" OutName="stray_fairy_great_bay_icon" Format="rgba32" Width="32" Height="24" Offset="0xA198"/>
<Texture Name="gStrayFairyStoneTowerIconTex" OutName="stray_fairy_stone_tower_icon" Format="rgba32" Width="32" Height="24" Offset="0xAD98"/>
<Texture Name="gStrayFairyGlowingCircleIconTex" OutName="stray_fairy_glowing_circle_icon" Format="i4" Width="32" Height="24" Offset="0xB998"/>
</File>
</Root>
+14 -14
View File
@@ -1632,7 +1632,7 @@ void func_800FE658(f32 arg0);
// void func_800FE788(void);
// void func_800FE798(void);
// void func_800FE7A8(void);
// void func_800FE9B4(void);
s32 func_800FE9B4(GlobalContext* globalCtx);
// void func_800FEA50(void);
void func_800FEAB0(void);
// void func_800FEAC0(void);
@@ -1968,8 +1968,8 @@ void func_801149A0(s32 arg0, s16 arg1);
// void func_80114A9C(void);
// void func_80114B84(void);
// void func_80114CA0(void);
UNK_TYPE func_80114E90(void);
UNK_TYPE func_80114F2C(u8 arg0);
s32 Interface_HasEmptyBottle(void);
s32 Interface_HasItemInBottle(u8 itemId);
// void func_80114FD0(void);
// void func_80115130(void);
// void func_801152B8(void);
@@ -2055,7 +2055,7 @@ s32 func_80123810(GlobalContext* globalCtx);
void func_80123AA4(Player* player, s32 arg1);
// void func_80123BD4(void);
// void func_80123C58(void);
// void func_80123C90(void);
void Player_SetEquipmentData(GlobalContext* globalCtx, Player* this);
void func_80123D50(GlobalContext* globalCtx, Player* player, UNK_TYPE arg2, UNK_TYPE arg3);
void func_80123DA4(Player* player);
// void func_80123DC0(void);
@@ -2253,16 +2253,16 @@ s32 Room_StartRoomTransition(GlobalContext* globalCtx, RoomContext* roomCtx, s32
s32 Room_HandleLoadCallbacks(GlobalContext* globalCtx, RoomContext* roomCtx);
void Room_Draw(GlobalContext* globalCtx, Room* room, u32 flags);
void func_8012EBF8(GlobalContext* globalCtx, RoomContext* roomCtx);
s32 func_8012EC80(GlobalContext* globalCtx);
void func_8012ED34(s16 equipment);
u8 func_8012ED78(GlobalContext* globalCtx, s16 equipment);
void func_8012EDE8(s16 arg0, u32 arg1);
s32 func_8012EE34(s16 arg0);
void func_8012EF0C(s16 arg0);
void func_8012F0EC(s16 arg0);
void func_8012F1BC(s16 sceneIndex);
s16 func_8012F22C(s16 sceneIndex);
void func_8012F278(GlobalContext* globalCtx);
s32 Inventory_GetBtnBItem(GlobalContext* globalCtx);
void Inventory_ChangeEquipment(s16 value);
u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment);
void Inventory_ChangeUpgrade(s16 upgrade, u32 value);
s32 Inventory_IsMapVisible(s16 sceneNum);
void Inventory_SetMapVisibility(s16 tingleIndex);
void Inventory_SaveDekuPlaygroundHighScore(s16 timerId);
void Inventory_IncrementSkullTokenCount(s16 sceneIndex);
s16 Inventory_GetSkullTokenCount(s16 sceneIndex);
void Inventory_SaveLotteryCodeGuess(GlobalContext* globalCtx);
s32 Object_Spawn(ObjectContext* objectCtx, s16 id);
void Object_InitBank(GameState* gameState, ObjectContext* objectCtx);
void Object_UpdateBank(ObjectContext* objectCtx);
+1 -1
View File
@@ -70,7 +70,7 @@
#define ALL_EQUIP_VALUE(equip) ((gSaveContext.inventory.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
#define CUR_EQUIP_VALUE(equip) ((gSaveContext.equips.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
#define CUR_UPG_VALUE(upg) ((gSaveContext.inventory.upgrades & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
#define TAKE_EQUIPPED_ITEM(equip) (gSaveContext.equips.equipment = ((((void)0, gSaveContext.equips.equipment) & (gEquipNegMasks[equip])) | (u16)(0 << gEquipShifts[equip])))
#define SET_EQUIP_VALUE(equip, value) (gSaveContext.equips.equipment = ((((void)0, gSaveContext.equips.equipment) & (gEquipNegMasks[equip])) | (u16)((u16)(value) << gEquipShifts[equip])))
#define CUR_FORM_EQUIP(button) (gSaveContext.equips.buttonItems[CUR_FORM][button])
#define CHECK_QUEST_ITEM(item) (((void)0, gSaveContext.inventory.questItems) & gBitFlags[item])
#define REMOVE_QUEST_ITEM(item) (gSaveContext.inventory.questItems = (((void)0, gSaveContext.inventory.questItems) & (-1 - gBitFlags[item])))
+16 -16
View File
@@ -1629,29 +1629,29 @@ extern MtxF gIdentityMtxF;
// extern u64* initialgspUcodeText;
// extern u64* initialgspUcodeData;
// extern UNK_TYPE1 D_801D1E70;
// extern UNK_TYPE1 D_801D2E80;
// extern UNK_TYPE1 D_801D2F80;
// extern UNK_TYPE1 D_801D3070;
// extern UNK_TYPE1 D_801D3700;
// extern UNK_TYPE1 D_801D3D90;
// extern UNK_TYPE1 D_801D3F90;
// extern UNK_TYPE1 D_801D4190;
// extern UNK_TYPE1 D_801D4390;
// extern UNK_TYPE1 D_801D4590;
// extern UNK_TYPE1 gLowPassFilterData;
// extern UNK_TYPE1 gHighPassFilterData;
// extern UNK_TYPE1 gBandStopFilterData;
// extern UNK_TYPE1 gBandPassFilterData;
// extern UNK_TYPE1 gSawtoothWaveSample;
// extern UNK_TYPE1 gTriangleWaveSample;
// extern UNK_TYPE1 gSineWaveSample;
// extern UNK_TYPE1 gSquareWaveSample;
// extern UNK_TYPE1 gWhiteNoiseSample;
// extern UNK_TYPE1 D_801D4790;
// extern UNK_TYPE1 D_801D4990;
// extern UNK_TYPE1 D_801D4B90;
// extern UNK_TYPE1 gEighthPulseWaveSample;
// extern UNK_TYPE1 gQuarterPulseWaveSample;
extern s16* gWaveSamples[9];
extern UNK_PTR D_801D4D98;
extern UNK_PTR D_801D4DB0;
extern f32 gBendPitchOneOctaveFrequencies[256];
// extern UNK_TYPE1 D_801D4FB4;
// extern UNK_TYPE4 D_801D51B4;
// extern UNK_TYPE4 gBendPitchTwoSemitonesFrequencies;
// extern UNK_TYPE4 D_801D53B4;
// extern UNK_TYPE1 D_801D55B4;
// extern UNK_TYPE1 D_801D57B4;
// extern UNK_TYPE1 D_801D57C4;
// extern UNK_TYPE1 D_801D57D4;
// extern UNK_TYPE1 gPitchFrequencies;
// extern UNK_TYPE1 gDefaultShortNoteVelocityTable;
// extern UNK_TYPE1 gDefaultShortNoteGateTimeTable;
// extern UNK_TYPE1 gDefaultEnvelope;
extern NoteSubEu gZeroNoteSub;
extern NoteSubEu gDefaultNoteSub;
extern u16 gHeadsetPanQuantization[];
+9 -5
View File
@@ -708,7 +708,7 @@ typedef enum {
typedef struct {
/* 0x00 */ u16 unk_0;
/* 0x02 */ u16 unk_2;
/* 0x02 */ u16 timeIncrement;
/* 0x04 */ f32 unk_4;
/* 0x08 */ f32 unk_8;
/* 0x0C */ f32 unk_C;
@@ -855,15 +855,15 @@ typedef struct {
/* 0x11F0B */ UNK_TYPE1 pad11F0B[0x5];
/* 0x11F10 */ s32 unk11F10;
/* 0x11F14 */ UNK_TYPE1 pad11F14[0xE];
/* 0x11F22 */ u8 unk11F22;
/* 0x11F22 */ u8 msgMode;
/* 0x11F23 */ UNK_TYPE1 pad11F23[0xFD];
/* 0x12020 */ u8 unk12020;
/* 0x12021 */ u8 choiceIndex;
/* 0x12022 */ u8 unk12022;
/* 0x12023 */ u8 unk12023;
/* 0x12024 */ UNK_TYPE1 unk12024[0x6];
/* 0x1202A */ u16 unk1202A;
/* 0x1202C */ UNK_TYPE1 pad1202C[0x2];
/* 0x1202A */ u16 ocarinaMode;
/* 0x1202C */ u16 ocarinaAction;
/* 0x1202E */ u16 unk1202E;
/* 0x12030 */ s16 unk_12030;
/* 0x12032 */ UNK_TYPE1 unk_12032[0x2];
@@ -871,7 +871,11 @@ typedef struct {
/* 0x12044 */ s16 unk12044;
/* 0x12046 */ UNK_TYPE1 pad12046[0x2];
/* 0x12048 */ u8 unk12048; // EnKakasi
/* 0x12049 */ UNK_TYPE1 pad12049[0x21];
/* 0x12049 */ UNK_TYPE1 pad12049[0xB];
/* 0x12054 */ s16 unk12054; // First digit in lottery code guess
/* 0x12056 */ s16 unk12056; // Second digit lottery code guess
/* 0x12058 */ s16 unk12058; // Third digit lottery code guess
/* 0x1205A */ UNK_TYPE1 pad1205A[0x10];
/* 0x1206A */ s16 unk1206A;
/* 0x1206C */ s32 unk1206C;
/* 0x12070 */ UNK_TYPE1 pad12070[0x8];
+17 -17
View File
@@ -109,23 +109,23 @@ typedef enum {
} OcarinaButtonIdx;
typedef enum {
/* 0x0 */ NOTE_C4,
/* 0x1 */ NOTE_DFLAT4,
/* 0x2 */ NOTE_D4,
/* 0x3 */ NOTE_EFLAT4,
/* 0x4 */ NOTE_E4,
/* 0x5 */ NOTE_F4,
/* 0x6 */ NOTE_GFLAT4,
/* 0x7 */ NOTE_G4,
/* 0x8 */ NOTE_AFLAT4,
/* 0x9 */ NOTE_A4,
/* 0xA */ NOTE_BFLAT4,
/* 0xB */ NOTE_B4,
/* 0xC */ NOTE_C5,
/* 0xD */ NOTE_DFLAT5,
/* 0xE */ NOTE_D5,
/* 0xF */ NOTE_EFLAT5,
/* -1 */ NOTE_NONE = 0xFF
/* 0x0 */ OCARINA_PITCH_C4,
/* 0x1 */ OCARINA_PITCH_DFLAT4,
/* 0x2 */ OCARINA_PITCH_D4,
/* 0x3 */ OCARINA_PITCH_EFLAT4,
/* 0x4 */ OCARINA_PITCH_E4,
/* 0x5 */ OCARINA_PITCH_F4,
/* 0x6 */ OCARINA_PITCH_GFLAT4,
/* 0x7 */ OCARINA_PITCH_G4,
/* 0x8 */ OCARINA_PITCH_AFLAT4,
/* 0x9 */ OCARINA_PITCH_A4,
/* 0xA */ OCARINA_PITCH_BFLAT4,
/* 0xB */ OCARINA_PITCH_B4,
/* 0xC */ OCARINA_PITCH_C5,
/* 0xD */ OCARINA_PITCH_DFLAT5,
/* 0xE */ OCARINA_PITCH_D5,
/* 0xF */ OCARINA_PITCH_EFLAT5,
/* -1 */ OCARINA_PITCH_NONE = 0xFF
} OcarinaNoteIdx;
typedef s32 (*DmaHandler)(OSPiHandle* handle, OSIoMesg* mb, s32 direction);
+2 -1
View File
@@ -379,7 +379,8 @@ typedef enum {
/* -1 */ EXCH_ITEM_MINUS1 = -1, // Unknown usage or function
/* 0x00 */ EXCH_ITEM_NONE,
/* 0x1E */ EXCH_ITEM_1E = 0x1E, // BOTTLE_MUSHROOM
/* 0x2A */ EXCH_ITEM_2A = 0x2A // MOON_TEAR?
/* 0x2A */ EXCH_ITEM_2A = 0x2A, // MOON_TEAR?
/* 0x2E */ EXCH_ITEM_2E = 0x2E
} ExchangeItemID;
#endif
+52 -6
View File
@@ -20,7 +20,7 @@ typedef struct {
/* 0x50 */ u8 dungeonItems[10];
/* 0x5A */ s8 dungeonKeys[10];
/* 0x64 */ s8 strayFairies[10]; // "orange_fairy"
/* 0x6E */ u8 unk_6E[8][3]; // "degnuts_memory_name"
/* 0x6E */ char dekuPlaygroundPlayerName[3][8]; // Stores playerName (8 char) over (3 days) when getting a new high score. original name: degnuts_memory_name
} Inventory; // size = 0x88
typedef struct {
@@ -41,6 +41,24 @@ typedef struct {
/* 0x1C */ u32 tempCollectFlags;
} RespawnData; // size = 0x20
typedef struct {
/* 0x00 */ u32 chest;
/* 0x04 */ u32 swch0;
/* 0x08 */ u32 swch1;
/* 0x0C */ u32 clearedRoom;
/* 0x10 */ u32 collectible;
/* 0x14 */ u32 unk_14;
/* 0x18 */ u32 unk_18;
} PermanentSceneFlags; // size = 0x1C
typedef struct {
/* 0x00 */ u32 chest;
/* 0x04 */ u32 swch0;
/* 0x08 */ u32 swch1;
/* 0x0C */ u32 clearedRoom;
/* 0x10 */ u32 collectible;
} CycleSceneFlags; // size = 0x14
typedef struct {
/* 0x0000 */ u32 entranceIndex; // "scene_no"
/* 0x0004 */ u8 equippedMask; // "player_mask"
@@ -78,16 +96,37 @@ typedef struct {
/* 0x004A */ s16 savedSceneNum; // "scene_data_ID"
/* 0x004C */ ItemEquips equips;
/* 0x0070 */ Inventory inventory;
/* 0x00F8 */ u32 roomInf[128][7];
/* 0x00F8 */ PermanentSceneFlags permanentSceneFlags[120];
/* 0x0E18 */ u8 unk_E18[0x54];
/* 0x0E6C */ u32 dekuPlaygroundHighScores[3];
/* 0x0E78 */ u32 pictoFlags0;
/* 0x0E7C */ u32 pictoFlags1;
/* 0x0E80 */ u32 unk_E80;
/* 0x0E84 */ u32 unk_E84;
/* 0x0E88 */ u32 unk_E88[7]; // Invadepoh flags
/* 0x0EA4 */ u32 scenesVisible[7]; // tingle maps and clouded regions on pause map. Stores scenes bitwise for up to 224 scenes even though there are not that many scenes
/* 0x0EC0 */ u32 skullTokenCount; // upper 16 bits store Swamp skulls, lower 16 bits store Ocean skulls
/* 0x0EC4 */ u32 unk_EC4; // Gossic stone heart piece flags
/* 0x0EC8 */ u32 unk_EC8;
/* 0x0ECC */ u32 unk_ECC[2]; // Related to blue warps
/* 0x0ED4 */ u32 stolenItems; // Items stolen by Takkuri and given to Curiosity Shop Man
/* 0x0ED8 */ u32 unk_DD8;
/* 0x0EDC */ u32 bankRupees;
/* 0x0EE0 */ u32 unk_EE0;
/* 0x0EE4 */ u32 unk_EE4; // Fishing flags
/* 0x0EE8 */ u32 unk_EE8;
/* 0x0EEC */ u32 horseBackBalloonHighScore;
/* 0x0EF0 */ u32 lotteryCodeGuess; // Lottery code chosen by player (only uses lower three hex digits)
/* 0x0EF4 */ u32 unk_EF4; // Shooting Gallery Man Flags
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
/* 0x0F60 */ u32 unk_F60; // "cloud_clear"
/* 0x0F60 */ u32 mapsVisible; // "cloud_clear"
/* 0x0F64 */ u8 unk_F64; // "oca_rec_flag"
/* 0x0F65 */ u8 unk_F65; // "oca_rec_flag8"
/* 0x0F66 */ u8 unk_F66[128]; // "oca_rec_buff8"
/* 0x0FE6 */ s8 unk_FE6; // "aikotoba_index"
/* 0x0FE7 */ s8 unk_FE7[5]; // "aikotoba_table"
/* 0x0FEC */ s8 lotteryCodes[3][3]; // "numbers_table"
/* 0x0FEC */ s8 lotteryCodes[3][3]; // Preset lottery codes "numbers_table"
/* 0x0FF5 */ s8 spiderHouseMaskOrder[6]; // "kinsta_color_table"
/* 0x0FFB */ s8 bomberCode[5]; // "bombers_aikotoba_table"
/* 0x1000 */ HorseData horseData;
@@ -169,12 +208,12 @@ typedef struct {
/* 0x3F54 */ u8 dogIsLost; // "dog_event_flag"
/* 0x3F55 */ u8 nextTransition; // "next_wipe"
/* 0x3F56 */ s16 worldMapArea; // "area_type"
/* 0x3F58 */ s16 unk_3F58; // "sunmoon_flag"
/* 0x3F58 */ s16 sunsSongState; // "sunmoon_flag"
/* 0x3F5A */ s16 healthAccumulator; // "life_mode"
/* 0x3F5C */ s32 unk_3F5C; // "bet_rupees"
/* 0x3F60 */ u8 unk_3F60; // "framescale_flag"
/* 0x3F64 */ f32 unk_3F64; // "framescale_scale"
/* 0x3F68 */ u32 cycleSceneFlags[120][5];
/* 0x3F68 */ CycleSceneFlags cycleSceneFlags[120]; // Scene flags that are temporarily stored over the duration of a single 3-day cycle
/* 0x48C8 */ u16 unk_48C8; // "scene_id_mix"
/* 0x48CA */ u8 maskMaskBit[3]; // masks given away on the Moon
/* 0x48CD */ char unk_48CD[24];
@@ -197,4 +236,11 @@ typedef enum {
/* 0xFF */ BTN_DISABLED = 0xFF
} ButtonStatus;
typedef enum {
/* 0 */ SUNSSONG_INACTIVE,
/* 1 */ SUNSSONG_START, // the suns ocarina effect signals that the song has finished playing
/* 2 */ SUNSSONG_SPEED_TIME, // suns was played where time passes, speed up the advancement of time
/* 3 */ SUNSSONG_SPECIAL // time does not advance, but signals the song was played. used for freezing redeads
} SunsSongState;
#endif
+5 -6
View File
@@ -621,7 +621,7 @@ beginseg
pad_text
pad_text
pad_text
include "build/data/code/audio_data.data.o"
include "build/src/code/audio/audio_data.o"
include "build/src/code/audio/audio_synthesis.o"
include "build/data/code/audio_synthesis.data.o"
include "build/src/code/audio/audio_heap.o"
@@ -1470,8 +1470,7 @@ beginseg
name "ovl_Obj_Ice_Poly"
compress
include "build/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o"
include "build/data/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly.data.o"
include "build/data/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o"
endseg
beginseg
@@ -1494,8 +1493,7 @@ beginseg
name "ovl_Obj_Bean"
compress
include "build/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o"
include "build/data/ovl_Obj_Bean/ovl_Obj_Bean.data.o"
include "build/data/ovl_Obj_Bean/ovl_Obj_Bean.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o"
endseg
beginseg
@@ -9289,7 +9287,8 @@ beginseg
name "parameter_static"
compress
romalign 0x1000
include "build/baserom/parameter_static.o"
include "build/assets/interface/parameter_static/parameter_static.o"
number 2
endseg
beginseg
File diff suppressed because it is too large Load Diff
+405 -235
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -2233,11 +2233,11 @@ void func_800B9120(ActorContext* actorCtx) {
void Actor_InitContext(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEntry* actorEntry) {
ActorOverlay* overlayEntry;
u32* cycleFlags;
CycleSceneFlags* cycleFlags;
s32 i;
gSaveContext.weekEventReg[92] |= 0x80;
cycleFlags = gSaveContext.cycleSceneFlags[convert_scene_number_among_shared_scenes(globalCtx->sceneNum)];
cycleFlags = &gSaveContext.cycleSceneFlags[convert_scene_number_among_shared_scenes(globalCtx->sceneNum)];
bzero(actorCtx, sizeof(ActorContext));
ActorOverlayTable_Init();
@@ -2251,14 +2251,14 @@ void Actor_InitContext(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEn
overlayEntry++;
}
actorCtx->flags.chest = cycleFlags[0];
actorCtx->flags.switches[0] = cycleFlags[1];
actorCtx->flags.switches[1] = cycleFlags[2];
actorCtx->flags.chest = cycleFlags->chest;
actorCtx->flags.switches[0] = cycleFlags->swch0;
actorCtx->flags.switches[1] = cycleFlags->swch1;
if (globalCtx->sceneNum == SCENE_INISIE_R) {
cycleFlags = gSaveContext.cycleSceneFlags[globalCtx->sceneNum];
cycleFlags = &gSaveContext.cycleSceneFlags[globalCtx->sceneNum];
}
actorCtx->flags.collectible[0] = cycleFlags[4];
actorCtx->flags.clearedRoom = cycleFlags[3];
actorCtx->flags.collectible[0] = cycleFlags->collectible;
actorCtx->flags.clearedRoom = cycleFlags->clearedRoom;
TitleCard_ContextInit(&globalCtx->state, &actorCtx->titleCtxt);
func_800B6468(globalCtx);
+19 -21
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "interface/parameter_static/parameter_static.h"
static s16 sHeartsPrimColors[3][3] = { { 255, 70, 50 }, { 255, 190, 0 }, { 100, 100, 255 } };
static s16 sHeartsEnvColors[3][3] = { { 50, 40, 60 }, { 255, 0, 0 }, { 0, 0, 255 } };
@@ -14,24 +15,21 @@ s16 sBeatingHeartsDDEnv[3];
s16 sHeartsDDPrim[2][3];
s16 sHeartsDDEnv[2][3];
extern TexturePtr D_02000000; // Empty heart texture
extern TexturePtr D_02000100; // Quarter Heart Texture
extern TexturePtr D_02000200; // Half Heart Texture
extern TexturePtr D_02000300; // Three Quarter Heart Texture
extern TexturePtr D_02000400; // Full heart texture
extern TexturePtr D_02000500; // Empty Double Defense Heart texture
extern TexturePtr D_02000600; // Quarter Double Defense Heart Texture
extern TexturePtr D_02000700; // Half Double Defense Heart Texture
extern TexturePtr D_02000800; // Three Quarter Double Defense Heart Texture
extern TexturePtr D_02000900; // Full Double Defense Heart texture
TexturePtr HeartTextures[] = {
gHeartFullTex, gHeartQuarterTex, gHeartQuarterTex, gHeartQuarterTex,
gHeartQuarterTex, gHeartQuarterTex, gHeartHalfTex, gHeartHalfTex,
gHeartHalfTex, gHeartHalfTex, gHeartHalfTex, gHeartThreeQuarterTex,
gHeartThreeQuarterTex, gHeartThreeQuarterTex, gHeartThreeQuarterTex, gHeartThreeQuarterTex,
};
TexturePtr HeartTextures[] = { &D_02000400, &D_02000100, &D_02000100, &D_02000100, &D_02000100, &D_02000100,
&D_02000200, &D_02000200, &D_02000200, &D_02000200, &D_02000200, &D_02000300,
&D_02000300, &D_02000300, &D_02000300, &D_02000300 };
TexturePtr HeartDDTextures[] = { &D_02000900, &D_02000600, &D_02000600, &D_02000600, &D_02000600, &D_02000600,
&D_02000700, &D_02000700, &D_02000700, &D_02000700, &D_02000700, &D_02000800,
&D_02000800, &D_02000800, &D_02000800, &D_02000800 };
TexturePtr HeartDDTextures[] = {
gDefenseHeartFullTex, gDefenseHeartQuarterTex, gDefenseHeartQuarterTex,
gDefenseHeartQuarterTex, gDefenseHeartQuarterTex, gDefenseHeartQuarterTex,
gDefenseHeartHalfTex, gDefenseHeartHalfTex, gDefenseHeartHalfTex,
gDefenseHeartHalfTex, gDefenseHeartHalfTex, gDefenseHeartThreeQuarterTex,
gDefenseHeartThreeQuarterTex, gDefenseHeartThreeQuarterTex, gDefenseHeartThreeQuarterTex,
gDefenseHeartThreeQuarterTex,
};
void LifeMeter_Init(GlobalContext* globalCtx) {
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
@@ -276,11 +274,11 @@ void LifeMeter_Draw(GlobalContext* globalCtx) {
}
if (i < fullHeartCount) {
heartTex = &D_02000400;
heartTex = gHeartFullTex;
} else if (i == fullHeartCount) {
heartTex = HeartTextures[fractionHeartCount];
} else {
heartTex = &D_02000000;
heartTex = gHeartEmptyTex;
}
} else {
if (i < fullHeartCount) {
@@ -316,11 +314,11 @@ void LifeMeter_Draw(GlobalContext* globalCtx) {
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[1][0], sHeartsDDEnv[1][1], sHeartsDDEnv[1][2], 255);
}
if (i < fullHeartCount) {
heartTex = &D_02000900;
heartTex = gDefenseHeartFullTex;
} else if (i == fullHeartCount) {
heartTex = HeartDDTextures[fractionHeartCount];
} else {
heartTex = &D_02000500;
heartTex = gDefenseHeartEmptyTex;
}
}
+2 -2
View File
@@ -72,9 +72,9 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114CA0.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114E90.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_HasEmptyBottle.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114F2C.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_HasItemInBottle.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114FD0.s")
+1 -1
View File
@@ -68,7 +68,7 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_lib/func_80123C58.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_lib/func_80123C90.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_lib/Player_SetEquipmentData.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_lib/func_80123D50.s")
+18 -15
View File
@@ -388,17 +388,17 @@ void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
}
if (cmd->timeSettings.unk6 != 0xFF) {
globalCtx->envCtx.unk_2 = cmd->timeSettings.unk6;
globalCtx->envCtx.timeIncrement = cmd->timeSettings.unk6;
} else {
globalCtx->envCtx.unk_2 = 0;
globalCtx->envCtx.timeIncrement = 0;
}
if ((gSaveContext.inventory.items[SLOT_OCARINA] == ITEM_NONE) && (globalCtx->envCtx.unk_2 != 0)) {
globalCtx->envCtx.unk_2 = 5;
if ((gSaveContext.inventory.items[SLOT_OCARINA] == ITEM_NONE) && (globalCtx->envCtx.timeIncrement != 0)) {
globalCtx->envCtx.timeIncrement = 5;
}
if (gSaveContext.unk_3F58 == 0) {
REG(15) = globalCtx->envCtx.unk_2;
if (gSaveContext.sunsSongState == SUNSSONG_INACTIVE) {
REG(15) = globalCtx->envCtx.timeIncrement;
}
dayTime = gSaveContext.time;
@@ -408,17 +408,20 @@ void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
dayTime = gSaveContext.time;
globalCtx->envCtx.unk_C = (Math_CosS(dayTime - 0x8000) * 20.0f) * 25.0f;
if (globalCtx->envCtx.unk_2 == 0 && gSaveContext.cutscene < 0xFFF0) {
if (globalCtx->envCtx.timeIncrement == 0 && gSaveContext.cutscene < 0xFFF0) {
gSaveContext.environmentTime = gSaveContext.time;
if (gSaveContext.environmentTime >= 0x2AAA && gSaveContext.environmentTime < 0x4555) {
gSaveContext.environmentTime = 0x3555;
} else if (gSaveContext.environmentTime >= 0x4555 && gSaveContext.environmentTime < 0x5555) {
gSaveContext.environmentTime = 0x5555;
} else if (gSaveContext.environmentTime >= 0xAAAA && gSaveContext.environmentTime < 0xB555) {
gSaveContext.environmentTime = 0xB555;
} else if (gSaveContext.environmentTime >= 0xC000 && gSaveContext.environmentTime < 0xCAAA) {
gSaveContext.environmentTime = 0xCAAA;
if (gSaveContext.environmentTime >= CLOCK_TIME(4, 0) && gSaveContext.environmentTime < CLOCK_TIME(6, 30)) {
gSaveContext.environmentTime = CLOCK_TIME(5, 0);
} else if (gSaveContext.environmentTime >= CLOCK_TIME(6, 30) &&
gSaveContext.environmentTime < CLOCK_TIME(8, 0)) {
gSaveContext.environmentTime = CLOCK_TIME(8, 0);
} else if (gSaveContext.environmentTime >= CLOCK_TIME(16, 0) &&
gSaveContext.environmentTime < CLOCK_TIME(17, 0)) {
gSaveContext.environmentTime = CLOCK_TIME(17, 0);
} else if (gSaveContext.environmentTime >= CLOCK_TIME(18, 0) &&
gSaveContext.environmentTime < CLOCK_TIME(19, 0)) {
gSaveContext.environmentTime = CLOCK_TIME(19, 0);
}
}
}
+19 -19
View File
@@ -12,8 +12,8 @@ s32 func_8013A240(GlobalContext* globalCtx) {
s32 seen;
s32 count = 0;
gSaveContext.roomInf[123][3] = 0;
gSaveContext.roomInf[123][4] = 0;
gSaveContext.pictoFlags0 = 0;
gSaveContext.pictoFlags1 = 0;
if (globalCtx->sceneNum == SCENE_20SICHITAI) {
func_8013A41C(1);
@@ -76,19 +76,19 @@ s32 func_8013A240(GlobalContext* globalCtx) {
void func_8013A41C(s32 flag) {
if (flag < 0x20) {
gSaveContext.roomInf[123][3] |= (1 << flag);
gSaveContext.pictoFlags0 |= (1 << flag);
} else {
flag &= 0x1F;
gSaveContext.roomInf[123][4] |= (1 << flag);
gSaveContext.pictoFlags1 |= (1 << flag);
}
}
void func_8013A46C(s32 flag) {
if (flag < 0x20) {
gSaveContext.roomInf[123][3] &= ~(1 << flag);
gSaveContext.pictoFlags0 &= ~(1 << flag);
} else {
flag &= 0x1F;
gSaveContext.roomInf[123][4] &= ~(1 << flag);
gSaveContext.pictoFlags1 &= ~(1 << flag);
}
}
@@ -96,10 +96,10 @@ u32 func_8013A4C4(s32 flag) {
SaveContext* saveCtx = &gSaveContext;
if (flag < 0x20) {
return saveCtx->roomInf[123][3] & (1 << flag);
return saveCtx->pictoFlags0 & (1 << flag);
} else {
flag &= 0x1F;
return saveCtx->roomInf[123][4] & (1 << flag);
return saveCtx->pictoFlags1 & (1 << flag);
}
}
@@ -123,36 +123,36 @@ s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos,
distance = OLib_Vec3fDist(pos, &camera->eye);
if ((distance < distanceMin) || (distanceMax < distance)) {
func_8013A41C(0x3f);
ret = 0x3f;
func_8013A41C(0x3F);
ret = 0x3F;
}
x = func_8013A504(func_800DFCB4(camera) + rot->x);
y = func_8013A504(func_800DFCDC(camera) - (s16)(rot->y - 0x7FFF));
if ((0 < angleError) && ((angleError < x) || (angleError < y))) {
func_8013A41C(0x3e);
ret |= 0x3e;
func_8013A41C(0x3E);
ret |= 0x3E;
}
Actor_GetProjectedPos(globalCtx, pos, &screenSpace, &distance);
x = (s16)(screenSpace.x * distance * 160.0f + 160.0f) - 85;
y = (s16)(screenSpace.y * distance * -120.0f + 120.0f) - 67;
if ((x < 0) || (0x96 < x) || (y < 0) || (0x69 < y)) {
func_8013A41C(0x3d);
ret |= 0x3d;
func_8013A41C(0x3D);
ret |= 0x3D;
}
if (BgCheck_ProjectileLineTest(&globalCtx->colCtx, pos, &camera->eye, &screenSpace, &poly, true, true, true, true,
&bgId)) {
func_8013A41C(0x3c);
ret |= 0x3c;
func_8013A41C(0x3C);
ret |= 0x3C;
}
actors[0] = actor;
actors[1] = &GET_PLAYER(globalCtx)->actor;
if (CollisionCheck_LineOCCheck(globalCtx, &globalCtx->colChkCtx, pos, &camera->eye, actors, 2) != 0) {
func_8013A41C(0x3b);
ret |= 0x3b;
if (CollisionCheck_LineOCCheck(globalCtx, &globalCtx->colChkCtx, pos, &camera->eye, actors, 2)) {
func_8013A41C(0x3B);
ret |= 0x3B;
}
if (ret == 0) {
@@ -178,7 +178,7 @@ void ArrowIce_Fly(ArrowIce* this, GlobalContext* globalCtx) {
void ArrowIce_Update(Actor* thisx, GlobalContext* globalCtx) {
ArrowIce* this = THIS;
if ((globalCtx->msgCtx.unk11F22 == 0xE) || (globalCtx->msgCtx.unk11F22 == 0x12)) {
if ((globalCtx->msgCtx.msgMode == 0xE) || (globalCtx->msgCtx.msgMode == 0x12)) {
Actor_MarkForDeath(&this->actor);
return;
} else {
+1 -1
View File
@@ -1530,7 +1530,7 @@ void DmStk_Update(Actor* thisx, GlobalContext* globalCtx) {
break;
}
if ((globalCtx->actorCtx.unk5 & 2) && (globalCtx->msgCtx.unk11F22 != 0) &&
if ((globalCtx->actorCtx.unk5 & 2) && (globalCtx->msgCtx.msgMode != 0) &&
(globalCtx->msgCtx.unk11F04 == 0x5E6) && !FrameAdvance_IsEnabled(globalCtx) &&
(globalCtx->sceneLoadFlag == 0) && (ActorCutscene_GetCurrentIndex() == -1) &&
(globalCtx->csCtx.state == 0)) {
@@ -552,28 +552,27 @@ void func_808B9CE8(DoorWarp1* this, GlobalContext* globalCtx) {
switch (globalCtx->sceneNum) {
case SCENE_MITURIN_BS:
gSaveContext.roomInf[126][3] =
(((void)0, gSaveContext.roomInf[126][3]) & 0xFFFFFF00) | (((u8)gSaveContext.roomInf[126][4]) & 0xFF);
gSaveContext.unk_ECC[0] =
(((void)0, gSaveContext.unk_ECC[0]) & 0xFFFFFF00) | (((u8)gSaveContext.unk_ECC[1]) & 0xFF);
break;
case SCENE_HAKUGIN_BS:
gSaveContext.roomInf[126][3] = (((void)0, gSaveContext.roomInf[126][3]) & 0xFFFF00FF) |
((((u8)gSaveContext.roomInf[126][4]) & 0xFF) << 8);
gSaveContext.unk_ECC[0] =
(((void)0, gSaveContext.unk_ECC[0]) & 0xFFFF00FF) | ((((u8)gSaveContext.unk_ECC[1]) & 0xFF) << 8);
break;
case SCENE_INISIE_BS:
gSaveContext.roomInf[126][3] = (((void)0, gSaveContext.roomInf[126][3]) & 0xFF00FFFF) |
((((u8)gSaveContext.roomInf[126][4]) & 0xFF) << 0x10);
gSaveContext.unk_ECC[0] =
(((void)0, gSaveContext.unk_ECC[0]) & 0xFF00FFFF) | ((((u8)gSaveContext.unk_ECC[1]) & 0xFF) << 0x10);
break;
case SCENE_SEA_BS:
gSaveContext.roomInf[126][3] = (((void)0, gSaveContext.roomInf[126][3]) & 0x00FFFFFF) |
((((u8)gSaveContext.roomInf[126][4]) & 0xFF) << 0x18);
gSaveContext.unk_ECC[0] =
(((void)0, gSaveContext.unk_ECC[0]) & 0x00FFFFFF) | ((((u8)gSaveContext.unk_ECC[1]) & 0xFF) << 0x18);
break;
}
gSaveContext.roomInf[126][4] =
(gSaveContext.roomInf[126][4] & 0xFFFFFF00) | ((((u8)gSaveContext.roomInf[126][4]) + 1) & 0xFF);
gSaveContext.unk_ECC[1] = (gSaveContext.unk_ECC[1] & 0xFFFFFF00) | ((((u8)gSaveContext.unk_ECC[1]) + 1) & 0xFF);
Item_Give(globalCtx, func_808B849C(this, globalCtx) + (ITEM_REMAINS_ODOLWA - 1));
DoorWarp1_SetupAction(this, func_808B9E94);
}
@@ -656,19 +655,19 @@ void func_808BA10C(DoorWarp1* this, GlobalContext* globalCtx) {
switch (phi_v0_2) {
case 0:
phi_a0 = gSaveContext.roomInf[126][3] & 0xFF;
phi_a0 = gSaveContext.unk_ECC[0] & 0xFF;
break;
case 1:
phi_a0 = (gSaveContext.roomInf[126][3] & 0xFF00) >> 8;
phi_a0 = (gSaveContext.unk_ECC[0] & 0xFF00) >> 8;
break;
case 2:
phi_a0 = (gSaveContext.roomInf[126][3] & 0xFF0000) >> 0x10;
phi_a0 = (gSaveContext.unk_ECC[0] & 0xFF0000) >> 0x10;
break;
case 3:
phi_a0 = (gSaveContext.roomInf[126][3] & 0xFF000000) >> 0x18;
phi_a0 = (gSaveContext.unk_ECC[0] & 0xFF000000) >> 0x18;
break;
default:

Some files were not shown because too many files have changed in this diff Show More