mirror of https://github.com/zeldaret/mm.git
Merge remote-tracking branch 'upstream/master' into play
This commit is contained in:
commit
506ff57b74
|
|
@ -0,0 +1,32 @@
|
|||
<Root>
|
||||
<!-- Assets for dungeon icons -->
|
||||
<File Name="icon_item_dungeon_static" Segment="12">
|
||||
<!-- Identical icons to OoT -->
|
||||
<Texture Name="gDungeonMapBlankFloorButtonTex" OutName="dungeon_map_blank_floor_button" Format="ia8" Width="24" Height="16" Offset="0x0"/>
|
||||
<Texture Name="gDungeonMap1FButtonTex" OutName="dungeon_map_1f_button" Format="ia8" Width="24" Height="16" Offset="0x180"/>
|
||||
<Texture Name="gDungeonMap2FButtonTex" OutName="dungeon_map_2f_button" Format="ia8" Width="24" Height="16" Offset="0x300"/>
|
||||
<Texture Name="gDungeonMap3FButtonTex" OutName="dungeon_map_3f_button" Format="ia8" Width="24" Height="16" Offset="0x480"/>
|
||||
<Texture Name="gDungeonMap4FButtonTex" OutName="dungeon_map_4f_button" Format="ia8" Width="24" Height="16" Offset="0x600"/>
|
||||
<Texture Name="gDungeonMap5FButtonTex" OutName="dungeon_map_5f_button" Format="ia8" Width="24" Height="16" Offset="0x780"/>
|
||||
<Texture Name="gDungeonMap6FButtonTex" OutName="dungeon_map_6f_button" Format="ia8" Width="24" Height="16" Offset="0x900"/>
|
||||
<Texture Name="gDungeonMap7FButtonTex" OutName="dungeon_map_7f_button" Format="ia8" Width="24" Height="16" Offset="0xA80"/>
|
||||
<Texture Name="gDungeonMap8FButtonTex" OutName="dungeon_map_8f_button" Format="ia8" Width="24" Height="16" Offset="0xC00"/>
|
||||
<Texture Name="gDungeonMapB1ButtonTex" OutName="dungeon_map_b1_button" Format="ia8" Width="24" Height="16" Offset="0xD80"/>
|
||||
<Texture Name="gDungeonMapB2ButtonTex" OutName="dungeon_map_b2_button" Format="ia8" Width="24" Height="16" Offset="0xF00"/>
|
||||
<Texture Name="gDungeonMapB3ButtonTex" OutName="dungeon_map_b3_button" Format="ia8" Width="24" Height="16" Offset="0x1080"/>
|
||||
<Texture Name="gDungeonMapB4ButtonTex" OutName="dungeon_map_b4_button" Format="ia8" Width="24" Height="16" Offset="0x1200"/>
|
||||
<Texture Name="gDungeonMapB5ButtonTex" OutName="dungeon_map_b5_button" Format="ia8" Width="24" Height="16" Offset="0x1380"/>
|
||||
<Texture Name="gDungeonMapB6ButtonTex" OutName="dungeon_map_b6_button" Format="ia8" Width="24" Height="16" Offset="0x1500"/>
|
||||
<Texture Name="gDungeonMapB7ButtonTex" OutName="dungeon_map_b7_button" Format="ia8" Width="24" Height="16" Offset="0x1680"/>
|
||||
<Texture Name="gDungeonMapB8ButtonTex" OutName="dungeon_map_b8_button" Format="ia8" Width="24" Height="16" Offset="0x1800"/>
|
||||
|
||||
<!-- Skull has a slightly altered design compared to OoT -->
|
||||
<Texture Name="gDungeonMapSkullTex" OutName="dungeon_map_skull" Format="rgba16" Width="16" Height="16" Offset="0x1980"/>
|
||||
|
||||
<!-- Similar to stray fairy icons in parameter_static, except facing forward -->
|
||||
<Texture Name="gDungeonStrayFairyWoodfallIconTex" OutName="dungeon_stray_fairy_woodfall_icon" Format="rgba32" Width="32" Height="24" Offset="0x1B80"/>
|
||||
<Texture Name="gDungeonStrayFairySnowheadIconTex" OutName="dungeon_stray_fairy_snowhead_icon" Format="rgba32" Width="32" Height="24" Offset="0x2780"/>
|
||||
<Texture Name="gDungeonStrayFairyGreatBayIconTex" OutName="dungeon_stray_fairy_great_bay_icon" Format="rgba32" Width="32" Height="24" Offset="0x3380"/>
|
||||
<Texture Name="gDungeonStrayFairyStoneTowerIconTex" OutName="dungeon_stray_fairy_stone_tower_icon" Format="rgba32" Width="32" Height="24" Offset="0x3F80"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<Root>
|
||||
<!-- Assets for the world map -->
|
||||
<File Name="icon_item_field_static" Segment="12">
|
||||
<!-- World map itself -->
|
||||
<Texture Name="gWorldMapImageTex" OutName="world_map_image" Format="ci8" Width="216" Height="128" Offset="0x0" TlutOffset="0x6C00"/>
|
||||
<Texture Name="gWorldMapImageTLUT" OutName="world_map_image_tlut" Format="rgba16" Width="16" Height="16" Offset="0x6C00"/>
|
||||
|
||||
<!-- Identical To OoT -->
|
||||
<Texture Name="gWorldMapDotTex" OutName="world_map_dot" Format="ia8" Width="8" Height="8" Offset="0x6E00"/>
|
||||
<Texture Name="gWorldMapAreaBox1Tex" OutName="world_map_area_box_1" Format="ia4" Width="32" Height="19" Offset="0x6E40"/>
|
||||
<Texture Name="gWorldMapAreaBox2Tex" OutName="world_map_area_box_2" Format="ia4" Width="48" Height="38" Offset="0x6F70"/>
|
||||
<Texture Name="gWorldMapAreaBox3Tex" OutName="world_map_area_box_3" Format="ia4" Width="32" Height="17" Offset="0x7300"/>
|
||||
<Texture Name="gWorldMapAreaBox4Tex" OutName="world_map_area_box_4" Format="ia4" Width="32" Height="13" Offset="0x7410"/>
|
||||
<Texture Name="gWorldMapAreaBox5Tex" OutName="world_map_area_box_5" Format="ia4" Width="32" Height="26" Offset="0x74E0"/>
|
||||
<Texture Name="gWorldMapAreaBox6Tex" OutName="world_map_area_box_6" Format="ia4" Width="48" Height="19" Offset="0x7680"/>
|
||||
<Texture Name="gWorldMapAreaBox7Tex" OutName="world_map_area_box_7" Format="ia4" Width="96" Height="59" Offset="0x7848"/>
|
||||
<Texture Name="gWorldMapAreaBox8Tex" OutName="world_map_area_box_8" Format="ia4" Width="16" Height="16" Offset="0x8358"/>
|
||||
<Texture Name="gWorldMapArrowTex" OutName="world_map_arrow" Format="ia8" Width="8" Height="8" Offset="0x83D8"/>
|
||||
|
||||
<!-- Cloud cover based on tingle maps -->
|
||||
<Texture Name="gWorldMapClockTownCloud1Tex" OutName="world_map_clock_town_cloud_1" Format="ia8" Width="80" Height="40" Offset="0x8418"/>
|
||||
<Texture Name="gWorldMapClockTownCloud2Tex" OutName="world_map_clock_town_cloud_2" Format="ia8" Width="64" Height="31" Offset="0x9098"/>
|
||||
<Texture Name="gWorldMapRomaniRanchCloudTex" OutName="world_map_romani_ranch_cloud" Format="ia8" Width="48" Height="32" Offset="0x9858"/>
|
||||
<Texture Name="gWorldMapGreatBayCloud1Tex" OutName="world_map_great_bay_cloud_1" Format="ia8" Width="64" Height="64" Offset="0x9E58"/>
|
||||
<Texture Name="gWorldMapGreatBayCloud2Tex" OutName="world_map_great_bay_cloud_2" Format="ia8" Width="64" Height="64" Offset="0xAE58"/>
|
||||
<Texture Name="gWorldMapGreatBayCloud3Tex" OutName="world_map_great_bay_cloud_3" Format="ia8" Width="64" Height="64" Offset="0xBE58"/>
|
||||
<Texture Name="gWorldMapGreatBayCloud4Tex" OutName="world_map_great_bay_cloud_4" Format="ia8" Width="64" Height="64" Offset="0xCE58"/>
|
||||
<Texture Name="gWorldMapSnowheadCloud1Tex" OutName="world_map_snowhead_cloud_1" Format="ia8" Width="64" Height="52" Offset="0xDE58"/>
|
||||
<Texture Name="gWorldMapSnowheadCloud2Tex" OutName="world_map_snowhead_cloud_2" Format="ia8" Width="112" Height="35" Offset="0xEB58"/>
|
||||
<Texture Name="gWorldMapSnowheadCloud3Tex" OutName="world_map_snowhead_cloud_3" Format="ia8" Width="112" Height="35" Offset="0xFAA8"/>
|
||||
<Texture Name="gWorldMapStoneTowerCloud1Tex" OutName="world_map_stone_tower_cloud_1" Format="ia8" Width="48" Height="82" Offset="0x109F8"/>
|
||||
<Texture Name="gWorldMapStoneTowerCloud2Tex" OutName="world_map_stone_tower_cloud_2" Format="ia8" Width="64" Height="61" Offset="0x11958"/>
|
||||
<Texture Name="gWorldMapWoodfallCloud1Tex" OutName="world_map_woodfall_cloud_1" Format="ia8" Width="64" Height="53" Offset="0x12898"/>
|
||||
<Texture Name="gWorldMapWoodfallCloud2Tex" OutName="world_map_woodfall_cloud_2" Format="ia8" Width="64" Height="53" Offset="0x135D8"/>
|
||||
<Texture Name="gWorldMapWoodfallCloud3Tex" OutName="world_map_woodfall_cloud_3" Format="ia8" Width="16" Height="53" Offset="0x14318"/>
|
||||
|
||||
<!-- Face of an owl to indicate warp points -->
|
||||
<Texture Name="gWorldMapOwlFaceTex" OutName="world_map_owl_face" Format="rgba32" Width="24" Height="12" Offset="0x14668"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
<Root>
|
||||
<!-- Pause Menu: Language-Dependent Textures -->
|
||||
<File Name="icon_item_jpn_static" Segment="13">
|
||||
<!-- Pause Menu Dungeon Title Cards -->
|
||||
<Texture Name="gPauseWoodfallTitleENGTex" OutName="pause_woodfall_title_eng" Format="ia8" Width="128" Height="16" Offset="0x0"/>
|
||||
<Texture Name="gPauseSnowheadTitleENGTex" OutName="pause_snowhead_title_eng" Format="ia8" Width="128" Height="16" Offset="0x800"/>
|
||||
<Texture Name="gPauseGreatBayTitleENGTex" OutName="pause_great_bay_title_eng" Format="ia8" Width="128" Height="16" Offset="0x1000"/>
|
||||
<Texture Name="gPauseStoneTowerTitleENGTex" OutName="pause_stone_tower_title_eng" Format="ia8" Width="128" Height="16" Offset="0x1800"/>
|
||||
|
||||
<!-- Pause Menu Info Panel To-> Textures -->
|
||||
<Texture Name="gPauseToEquipENGTex" OutName="pause_to_equip_eng" Format="ia4" Width="64" Height="16" Offset="0x2000"/>
|
||||
<Texture Name="gPauseToDecideENGTex" OutName="pause_to_decide_eng" Format="ia4" Width="64" Height="16" Offset="0x2200"/>
|
||||
<Texture Name="gPauseToPlayMelodyENGTex" OutName="pause_to_play_melody_eng" Format="ia4" Width="96" Height="16" Offset="0x2400"/>
|
||||
<Texture Name="gPauseToSelectItemENGTex" OutName="pause_to_select_item_eng" Format="ia4" Width="128" Height="16" Offset="0x2700"/>
|
||||
<Texture Name="gPauseToMapENGTex" OutName="pause_to_map_eng" Format="ia4" Width="128" Height="16" Offset="0x2B00"/>
|
||||
<Texture Name="gPauseToQuestStatusENGTex" OutName="pause_to_quest_status_eng" Format="ia4" Width="128" Height="16" Offset="0x2F00"/>
|
||||
<Texture Name="gPauseToMasksENGTex" OutName="pause_to_masks_eng" Format="ia4" Width="128" Height="16" Offset="0x3300"/>
|
||||
<Texture Name="gPauseToViewNotebookENGTex" OutName="pause_to_view_notebook_eng" Format="ia4" Width="96" Height="16" Offset="0x3700"/>
|
||||
|
||||
<!-- Pause Menu Pages Background Textures -->
|
||||
<!-- Divided into 3 columns (first digit) and 5 rows (second digit) -->
|
||||
<Texture Name="gPauseMasks10ENGTex" OutName="pause_masks_1_0_eng" Format="ia8" Width="80" Height="32" Offset="0x3A00"/>
|
||||
<Texture Name="gPauseSelectItem00ENGTex" OutName="pause_select_item_0_0_eng" Format="ia8" Width="80" Height="32" Offset="0x4400"/>
|
||||
<Texture Name="gPauseSelectItem10ENGTex" OutName="pause_select_item_1_0_eng" Format="ia8" Width="80" Height="32" Offset="0x4E00"/>
|
||||
<Texture Name="gPauseSelectItem20ENGTex" OutName="pause_select_item_2_0_eng" Format="ia8" Width="80" Height="32" Offset="0x5800"/>
|
||||
<Texture Name="gPauseMap10ENGTex" OutName="pause_map_1_0_eng" Format="ia8" Width="80" Height="32" Offset="0x6200"/>
|
||||
<Texture Name="gPauseQuestStatus00ENGTex" OutName="pause_quest_status_0_0_eng" Format="ia8" Width="80" Height="32" Offset="0x6C00"/>
|
||||
<Texture Name="gPauseQuestStatus10ENGTex" OutName="pause_quest_status_1_0_eng" Format="ia8" Width="80" Height="32" Offset="0x7600"/>
|
||||
<Texture Name="gPauseQuestStatus20ENGTex" OutName="pause_quest_status_2_0_eng" Format="ia8" Width="80" Height="32" Offset="0x8000"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
@ -127,6 +127,7 @@
|
|||
<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"/>
|
||||
|
||||
<!-- Similar to stray fairy icons in icon_item_dungeon_static, except with a turned head -->
|
||||
<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"/>
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ There remains one thing we need to fix before trying to compile it, namely `*(&g
|
|||
|
||||
```C
|
||||
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
|
||||
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
|
||||
/* 0x0F5C */ u32 regionsVisited; // "area_arrival"
|
||||
```
|
||||
|
||||
so it's somewhere in `weekEventReg`. `0xF37 - 0xEF8 = 0x3F = 63`, and it's a byte array, so the access is actually `gSaveContext.save.weekEventReg[63] & 0x80`. Now it will compile. We also don't use `!= 0` for flag comparisons: just `if (gSaveContext.save.weekEventReg[63] & 0x80)` will do.
|
||||
|
|
|
|||
|
|
@ -3572,7 +3572,7 @@ _DW({ \
|
|||
|
||||
#define gDPLoadTextureBlock(pkt, timg, fmt, siz, width, height, \
|
||||
pal, cms, cmt, masks, maskt, shifts, shiftt) \
|
||||
{ \
|
||||
_DW({ \
|
||||
gDPSetTextureImage(pkt, fmt, siz##_LOAD_BLOCK, 1, timg); \
|
||||
gDPSetTile(pkt, fmt, siz##_LOAD_BLOCK, 0, 0, G_TX_LOADTILE, \
|
||||
0 , cmt, maskt, shiftt, cms, masks, shifts); \
|
||||
|
|
@ -3588,7 +3588,7 @@ _DW({ \
|
|||
gDPSetTileSize(pkt, G_TX_RENDERTILE, 0, 0, \
|
||||
((width)-1) << G_TEXTURE_IMAGE_FRAC, \
|
||||
((height)-1) << G_TEXTURE_IMAGE_FRAC); \
|
||||
}
|
||||
})
|
||||
|
||||
#define gDPLoadTextureBlockYuv(pkt, timg, fmt, siz, width, height, \
|
||||
pal, cms, cmt, masks, maskt, shifts, shiftt) \
|
||||
|
|
|
|||
|
|
@ -1675,8 +1675,8 @@ void func_80106644(PlayState* play, s16 arg1, s16 arg2, s16 arg3);
|
|||
// void func_80108558(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_80108A10(void);
|
||||
// void func_80108A64(void);
|
||||
// void func_80108AF8(void);
|
||||
// void func_801090B0(void);
|
||||
void func_80108AF8(PlayState* play);
|
||||
s32 func_801090B0(s32 arg0);
|
||||
s32 func_80109124(s16 arg0);
|
||||
// void func_801091F0(void);
|
||||
// void func_80109428(void);
|
||||
|
|
@ -1808,15 +1808,15 @@ Vec3f* OLib_Vec3fDiffDegF(Vec3f* dest, Vec3f* a, Vec3f* b);
|
|||
Vec3s* OLib_Vec3fDiffBinAng(Vec3s* dest, Vec3f* a, Vec3f* b);
|
||||
void OLib_DbCameraVec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
|
||||
void OLib_DbCameraVec3fSum(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
|
||||
// void func_8010CB80(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9, UNK_TYPE2 param_10);
|
||||
Gfx* func_8010CD98(Gfx* displayListHead, void* texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
|
||||
Gfx* func_8010CB80(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
|
||||
Gfx* func_8010CD98(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
|
||||
// void func_8010CFBC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9, UNK_TYPE2 param_10, UNK_TYPE2 param_11, UNK_TYPE2 param_12, UNK_TYPE2 param_13, UNK_TYPE2 param_14);
|
||||
// void func_8010D2D4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9, UNK_TYPE2 param_10, UNK_TYPE2 param_11);
|
||||
// void func_8010D480(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9, UNK_TYPE2 param_10, UNK_TYPE2 param_11, UNK_TYPE2 param_12, UNK_TYPE2 param_13, UNK_TYPE2 param_14, UNK_TYPE4 param_15, UNK_TYPE4 param_16);
|
||||
Gfx* func_8010D7D0(Gfx* displayListHead, void* texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
|
||||
Gfx* func_8010D7D0(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy);
|
||||
// void func_8010D9F4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11, UNK_TYPE4 param_12, UNK_TYPE2 param_13, UNK_TYPE2 param_14);
|
||||
Gfx* func_8010DC58(Gfx* displayListHead, void* texture, s16 textureWidth, s16 textureHeight, u16 i);
|
||||
// void func_8010DE38(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6);
|
||||
Gfx* func_8010DC58(Gfx* gfx, TexturePtr texture, s16 textureWidth, s16 textureHeight, u16 i);
|
||||
Gfx* func_8010DE38(Gfx* gfx, TexturePtr texture, s32 fmt, s16 textureWidth, s16 textureHeight, u16 point);
|
||||
// void func_8010E028(void);
|
||||
void Interface_StartTimer(s16 timerId, s16 seconds);
|
||||
void Interface_StartPostmanTimer(s16 seconds, s16 bunnyHoodState);
|
||||
|
|
@ -2059,7 +2059,7 @@ void Inventory_ChangeEquipment(s16 value);
|
|||
u8 Inventory_DeleteEquipment(PlayState* play, s16 equipment);
|
||||
void Inventory_ChangeUpgrade(s16 upgrade, u32 value);
|
||||
s32 Inventory_IsMapVisible(s16 sceneId);
|
||||
void Inventory_SetMapVisibility(s16 tingleIndex);
|
||||
void Inventory_SetWorldMapCloudVisibility(s16 tingleIndex);
|
||||
void Inventory_SaveDekuPlaygroundHighScore(s16 timerId);
|
||||
void Inventory_IncrementSkullTokenCount(s16 sceneIndex);
|
||||
s16 Inventory_GetSkullTokenCount(s16 sceneIndex);
|
||||
|
|
@ -2101,7 +2101,7 @@ void Scene_HeaderCmdActorCutsceneList(PlayState* play, SceneCmd* cmd);
|
|||
void Scene_HeaderCmdMiniMap(PlayState* play, SceneCmd* cmd);
|
||||
void Scene_HeaderCmd1D(PlayState* play, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdMiniMapCompassInfo(PlayState* play, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdSetRegionVisitedFlag(PlayState* play, SceneCmd* cmd);
|
||||
void Scene_HeaderCmdAnimatedMaterials(PlayState* play, SceneCmd* cmd);
|
||||
void Scene_SetExitFade(PlayState* play);
|
||||
s32 Scene_ProcessHeader(PlayState* play, SceneCmd* header);
|
||||
|
|
@ -2363,7 +2363,7 @@ void Message_FindMessageNES(PlayState* play, u16 textId);
|
|||
// void Message_LoadLocalizedRupeesNES(void);
|
||||
// void Message_LoadRupeesNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
// void Message_LoadTimeNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void Message_LoadAreaTextNES(void);
|
||||
// void Message_LoadOwlWarpTextNES(void);
|
||||
// void func_80159438(void);
|
||||
void func_8015966C(PlayState* play, UNK_PTR puParm2, UNK_TYPE arg3);
|
||||
// void func_8015A144(void);
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@
|
|||
#define R_PLAY_FILL_SCREEN_ALPHA MREG(68)
|
||||
#define R_C_UP_ICON_X YREG(88)
|
||||
#define R_C_UP_ICON_Y YREG(89)
|
||||
#define R_PAUSE_WORLD_MAP_YAW YREG(24)
|
||||
#define R_PAUSE_WORLD_MAP_Y_OFFSET YREG(25)
|
||||
#define R_PAUSE_WORLD_MAP_DEPTH YREG(26)
|
||||
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i)
|
||||
#define R_C_BTN_COLOR(i) ZREG(39 + i)
|
||||
#define R_B_BTN_COLOR(i) ZREG(43 + i)
|
||||
|
|
@ -76,8 +79,13 @@
|
|||
#define R_A_ICON_X XREG(20)
|
||||
#define R_A_BTN_COLOR(i) XREG(22 + i)
|
||||
#define R_MAGIC_CONSUME_TIMER_GIANTS_MASK XREG(41)
|
||||
#define R_PAUSE_DBG_MAP_CLOUD_ON XREG(50)
|
||||
#define R_PAUSE_DBG_MAP_CLOUD_X XREG(52)
|
||||
#define R_PAUSE_DBG_MAP_CLOUD_Y XREG(53)
|
||||
#define R_MOON_CRASH_TIMER_Y XREG(80)
|
||||
#define R_MOON_CRASH_TIMER_X XREG(81)
|
||||
#define R_PAUSE_OWLWARP_ALPHA XREG(87)
|
||||
#define R_REVERSE_FLOOR_INDEX XREG(94)
|
||||
#define R_MINIMAP_DISABLED XREG(95)
|
||||
#define R_B_LABEL_DD WREG(0)
|
||||
#define R_OW_MINIMAP_X WREG(29)
|
||||
|
|
|
|||
|
|
@ -439,7 +439,7 @@ typedef struct {
|
|||
/* 0x238 */ s16 cursorPoint[5];
|
||||
/* 0x242 */ s16 cursorXIndex[5];
|
||||
/* 0x24C */ s16 cursorYIndex[5];
|
||||
/* 0x256 */ s16 unk_256;
|
||||
/* 0x256 */ s16 unk_256; // Uses DungeonItem enum
|
||||
/* 0x258 */ s16 cursorSpecialPos;
|
||||
/* 0x25A */ s16 pageSwitchTimer;
|
||||
/* 0x25C */ u16 unk_25C;
|
||||
|
|
@ -472,8 +472,8 @@ typedef struct {
|
|||
/* 0x2BA */ s16 equipAnimScale; // scale of item icon while moving being equipped to c-button
|
||||
/* 0x2BC */ s16 equipAnimShrinkRate; // rate the scale is shrinking for the item icon while moving being equipped to c-button
|
||||
/* 0x2BE */ s16 unk_2BE[5];
|
||||
/* 0x2C8 */ u16 unk_2C8;
|
||||
/* 0x2CA */ s16 unk_2CA;
|
||||
/* 0x2C8 */ u16 unk_2C8; // Uses PauseMenuPage enum for Owl Warp. Never set.
|
||||
/* 0x2CA */ s16 unk_2CA; // Uses OwlStatueId enum for Owl Warp. Never set.
|
||||
} PauseContext; // size = 0x2D0
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
|
|
@ -65,6 +65,19 @@ typedef enum {
|
|||
/* 0x1C */ QUEST_HEART_PIECE_COUNT = 0x1C
|
||||
} QuestItem;
|
||||
|
||||
typedef enum {
|
||||
/* -1 */ DUNGEON_NONE = -1,
|
||||
/* 0 */ DUNGEON_BOSS_KEY,
|
||||
/* 1 */ DUNGEON_COMPASS,
|
||||
/* 2 */ DUNGEON_MAP,
|
||||
/* 3 */ DUNGEON_STRAY_FAIRIES,
|
||||
/* 4 */ DUNGEON_FLOOR_INDEX_4, // Top Floor
|
||||
/* 5 */ DUNGEON_FLOOR_INDEX_3,
|
||||
/* 6 */ DUNGEON_FLOOR_INDEX_2,
|
||||
/* 7 */ DUNGEON_FLOOR_INDEX_1,
|
||||
/* 8 */ DUNGEON_FLOOR_INDEX_0 // Bottom Floor
|
||||
} DungeonItem;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ SLOT_OCARINA,
|
||||
/* 0x01 */ SLOT_BOW,
|
||||
|
|
@ -550,6 +563,6 @@ typedef enum {
|
|||
/* 0x74 */ GID_PICTO_BOX,
|
||||
/* 0x75 */ GID_MASK_FIERCE_DEITY,
|
||||
/* 0x76 */ GID_MAX
|
||||
} GetItemDrawID;
|
||||
} GetItemDrawId;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -272,8 +272,8 @@ typedef struct Save {
|
|||
/* 0x0EF0 */ u32 lotteryCodeGuess; // Lottery code chosen by player (only uses lower three hex digits)
|
||||
/* 0x0EF4 */ u32 shootingGalleryHighScores; // High scores for both shooting galleries. Town uses lower 16 bits, Swamp uses higher 16 bits.
|
||||
/* 0x0EF8 */ u8 weekEventReg[100]; // "week_event_reg"
|
||||
/* 0x0F5C */ u32 mapsVisited; // "area_arrival"
|
||||
/* 0x0F60 */ u32 mapsVisible; // "cloud_clear"
|
||||
/* 0x0F5C */ u32 regionsVisited; // "area_arrival"
|
||||
/* 0x0F60 */ u32 worldMapCloudVisibility; // "cloud_clear"
|
||||
/* 0x0F64 */ u8 unk_F64; // "oca_rec_flag" has scarecrows song
|
||||
/* 0x0F65 */ u8 unk_F65; // "oca_rec_flag8" scarecrows song set?
|
||||
/* 0x0F66 */ u8 scarecrowSpawnSong[128];
|
||||
|
|
|
|||
|
|
@ -174,9 +174,9 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 cameraMovement;
|
||||
/* 0x4 */ u32 area;
|
||||
} SCmdMiscSettings; // size = 0x8
|
||||
/* 0x1 */ u8 sceneCsCount;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdCutsceneList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
|
|
@ -186,9 +186,8 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ u32 data2;
|
||||
} SCmdWorldMapVisited; // size = 0x8
|
||||
/* 0x1 */ UNK_TYPE1 pad[7];
|
||||
} SCmdRegionVisited; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
|
|
@ -524,9 +523,9 @@ typedef union {
|
|||
/* Command: 0x14 */ SCmdEndMarker endMarker;
|
||||
/* Command: 0x15 */ SCmdSoundSettings soundSettings;
|
||||
/* Command: 0x16 */ SCmdEchoSettings echoSettings;
|
||||
/* Command: 0x17 */ SCmdMiscSettings miscSettings;
|
||||
/* Command: 0x17 */ SCmdCutsceneList cutsceneList;
|
||||
/* Command: 0x18 */ SCmdAltHeaders altHeaders;
|
||||
/* Command: 0x19 */ SCmdWorldMapVisited worldMapVisited;
|
||||
/* Command: 0x19 */ SCmdRegionVisited regionVisited;
|
||||
/* Command: 0x1A */ SCmdTextureAnimations textureAnimations;
|
||||
/* Command: 0x1B */ SCmdCutsceneActorList cutsceneActorList;
|
||||
/* Command: 0x1C */ SCmdMinimapSettings minimapSettings;
|
||||
|
|
@ -534,6 +533,49 @@ typedef union {
|
|||
/* Command: 0x1E */ SCmdMinimapChests minimapChests;
|
||||
} SceneCmd; // size = 0x8
|
||||
|
||||
// Sets cursor point options on the world map
|
||||
typedef enum {
|
||||
/* 0x0 */ REGION_GREAT_BAY,
|
||||
/* 0x1 */ REGION_ZORA_HALL,
|
||||
/* 0x2 */ REGION_ROMANI_RANCH,
|
||||
/* 0x3 */ REGION_DEKU_PALACE,
|
||||
/* 0x4 */ REGION_WOODFALL,
|
||||
/* 0x5 */ REGION_CLOCK_TOWN,
|
||||
/* 0x6 */ REGION_SNOWHEAD,
|
||||
/* 0x7 */ REGION_IKANA_GRAVEYARD,
|
||||
/* 0x8 */ REGION_IKANA_CANYON,
|
||||
/* 0x9 */ REGION_GORON_VILLAGE,
|
||||
/* 0xA */ REGION_STONE_TOWER,
|
||||
/* 0xB */ REGION_MAX
|
||||
} RegionId;
|
||||
|
||||
// Sets warp points for owl statues
|
||||
typedef enum {
|
||||
/* 0x0 */ OWL_WARP_GREAT_BAY_COAST,
|
||||
/* 0x1 */ OWL_WARP_ZORA_CAPE,
|
||||
/* 0x2 */ OWL_WARP_SNOWHEAD,
|
||||
/* 0x3 */ OWL_WARP_MOUNTAIN_VILLAGE,
|
||||
/* 0x4 */ OWL_WARP_CLOCK_TOWN,
|
||||
/* 0x5 */ OWL_WARP_MILK_ROAD,
|
||||
/* 0x6 */ OWL_WARP_WOODFALL,
|
||||
/* 0x7 */ OWL_WARP_SOUTHERN_SWAMP,
|
||||
/* 0x8 */ OWL_WARP_IKANA_CANYON,
|
||||
/* 0x9 */ OWL_WARP_STONE_TOWER,
|
||||
/* 0xA */ OWL_WARP_ENTRANCE, // Special index for warping to the entrance of a scene
|
||||
/* 0xB */ OWL_WARP_MAX
|
||||
} OwlWarpId;
|
||||
|
||||
// Sets cloud visibility on the world map
|
||||
typedef enum {
|
||||
/* 0 */ TINGLE_MAP_CLOCK_TOWN,
|
||||
/* 1 */ TINGLE_MAP_WOODFALL,
|
||||
/* 2 */ TINGLE_MAP_SNOWHEAD,
|
||||
/* 3 */ TINGLE_MAP_ROMANI_RANCH,
|
||||
/* 4 */ TINGLE_MAP_GREAT_BAY,
|
||||
/* 5 */ TINGLE_MAP_STONE_TOWER,
|
||||
/* 6 */ TINGLE_MAP_MAX
|
||||
} TingleMapId;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ SCENE_20SICHITAI2, // Southern Swamp (Clear)
|
||||
/* 0x01 */ SCENE_UNSET_1,
|
||||
|
|
@ -811,7 +853,7 @@ typedef enum {
|
|||
/* 0x16 */ SCENE_CMD_ID_ECHO_SETTINGS,
|
||||
/* 0x17 */ SCENE_CMD_ID_CUTSCENE_LIST,
|
||||
/* 0x18 */ SCENE_CMD_ID_ALTERNATE_HEADER_LIST,
|
||||
/* 0x19 */ SCENE_CMD_ID_MISC_SETTINGS,
|
||||
/* 0x19 */ SCENE_CMD_ID_SET_REGION_VISITED,
|
||||
/* 0x1A */ SCENE_CMD_ID_ANIMATED_MATERIAL_LIST,
|
||||
/* 0x1B */ SCENE_CMD_ID_ACTOR_CUTSCENE_LIST,
|
||||
/* 0x1C */ SCENE_CMD_ID_MINIMAP_INFO,
|
||||
|
|
@ -900,8 +942,9 @@ typedef enum {
|
|||
#define SCENE_CMD_ALTERNATE_HEADER_LIST(alternateHeaderList) \
|
||||
{ SCENE_CMD_ID_ALTERNATE_HEADER_LIST, 0, CMD_PTR(alternateHeaderList) }
|
||||
|
||||
#define SCENE_CMD_MISC_SETTINGS() \
|
||||
{ SCENE_CMD_ID_MISC_SETTINGS, 0, CMD_W(0) }
|
||||
#define SCENE_CMD_MISC_SETTINGS SCENE_CMD_SET_REGION_VISITED // TODO: ZAPD Capatability
|
||||
#define SCENE_CMD_SET_REGION_VISITED() \
|
||||
{ SCENE_CMD_ID_SET_REGION_VISITED, 0, CMD_W(0) }
|
||||
|
||||
#define SCENE_CMD_ANIMATED_MATERIAL_LIST(matAnimList) \
|
||||
{ SCENE_CMD_ID_ANIMATED_MATERIAL_LIST, 0, CMD_PTR(matAnimList) }
|
||||
|
|
|
|||
9
spec
9
spec
|
|
@ -293,14 +293,16 @@ beginseg
|
|||
name "icon_item_field_static"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "build/baserom/icon_item_field_static.o"
|
||||
include "build/assets/interface/icon_item_field_static/icon_item_field_static.o"
|
||||
number 12
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
name "icon_item_dungeon_static"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "build/baserom/icon_item_dungeon_static.o"
|
||||
include "build/assets/interface/icon_item_dungeon_static/icon_item_dungeon_static.o"
|
||||
number 12
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
@ -315,7 +317,8 @@ beginseg
|
|||
name "icon_item_jpn_static"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "build/baserom/icon_item_jpn_static.o"
|
||||
include "build/assets/interface/icon_item_jpn_static/icon_item_jpn_static.o"
|
||||
number 13
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ u32 gGsFlagsShift[] = {
|
|||
};
|
||||
|
||||
// TODO: use symbols for these icon textures once textures are properly in C
|
||||
void* gItemIcons[] = {
|
||||
TexturePtr gItemIcons[] = {
|
||||
0x08000000, // ITEM_OCARINA
|
||||
0x08001000, // ITEM_BOW
|
||||
0x08002000, // ITEM_ARROW_FIRE
|
||||
|
|
@ -249,7 +249,7 @@ u8 gItemSlots[] = {
|
|||
SLOT_LENS, // ITEM_LENS
|
||||
SLOT_HOOKSHOT, // ITEM_HOOKSHOT
|
||||
SLOT_SWORD_GREAT_FAIRY, // ITEM_SWORD_GREAT_FAIRY
|
||||
SLOT_BOTTLE_1, //
|
||||
SLOT_BOTTLE_1, // ITEM_LONGSHOT
|
||||
SLOT_BOTTLE_1, // ITEM_BOTTLE
|
||||
SLOT_BOTTLE_1, // ITEM_POTION_RED
|
||||
SLOT_BOTTLE_1, // ITEM_POTION_GREEN
|
||||
|
|
@ -365,8 +365,8 @@ s16 gItemPrices[] = {
|
|||
};
|
||||
|
||||
// Used to map scene indexes to their region in Termina
|
||||
u16 gSceneIdsPerRegion[11][27] = {
|
||||
// Great Bay
|
||||
u16 gSceneIdsPerRegion[REGION_MAX][27] = {
|
||||
// REGION_GREAT_BAY
|
||||
{
|
||||
SCENE_30GYOSON,
|
||||
SCENE_LABO,
|
||||
|
|
@ -378,15 +378,15 @@ u16 gSceneIdsPerRegion[11][27] = {
|
|||
SCENE_PIRATE,
|
||||
SCENE_35TAKI,
|
||||
SCENE_KINDAN2,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Zora Hall
|
||||
// REGION_ZORA_HALL
|
||||
{
|
||||
SCENE_33ZORACITY,
|
||||
SCENE_BANDROOM,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Romani Ranch
|
||||
// REGION_ROMANI_RANCH
|
||||
{
|
||||
SCENE_F01,
|
||||
SCENE_ROMANYMAE,
|
||||
|
|
@ -394,17 +394,17 @@ u16 gSceneIdsPerRegion[11][27] = {
|
|||
SCENE_F01C,
|
||||
SCENE_F01_B,
|
||||
SCENE_KOEPONARACE,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Deku Palace
|
||||
// REGION_DEKU_PALACE
|
||||
{
|
||||
SCENE_22DEKUCITY,
|
||||
SCENE_DEKU_KING,
|
||||
SCENE_26SARUNOMORI,
|
||||
SCENE_DANPEI,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Southern Swamp
|
||||
// REGION_WOODFALL
|
||||
{
|
||||
SCENE_20SICHITAI,
|
||||
SCENE_20SICHITAI2,
|
||||
|
|
@ -412,21 +412,18 @@ u16 gSceneIdsPerRegion[11][27] = {
|
|||
SCENE_WITCH_SHOP,
|
||||
SCENE_21MITURINMAE,
|
||||
SCENE_KINSTA1,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Clock Town
|
||||
// REGION_CLOCK_TOWN
|
||||
{
|
||||
SCENE_00KEIKOKU, SCENE_TENMON_DAI, SCENE_13HUBUKINOMITI,
|
||||
SCENE_24KEMONOMITI, SCENE_SYATEKI_MORI, SCENE_IKANAMAE,
|
||||
SCENE_TOWN, SCENE_SYATEKI_MIZU, SCENE_BOWLING,
|
||||
SCENE_TAKARAYA, SCENE_YADOYA, SCENE_SONCHONOIE,
|
||||
SCENE_MILK_BAR, SCENE_ICHIBA, SCENE_BOMYA,
|
||||
SCENE_AYASHIISHOP, SCENE_8ITEMSHOP, SCENE_DOUJOU,
|
||||
SCENE_POSTHOUSE, SCENE_TAKARAKUJI, SCENE_BACKTOWN,
|
||||
SCENE_CLOCKTOWER, SCENE_INSIDETOWER, SCENE_OKUJOU,
|
||||
SCENE_ALLEY, SCENE_DEKUTES, -1,
|
||||
SCENE_00KEIKOKU, SCENE_TENMON_DAI, SCENE_13HUBUKINOMITI, SCENE_24KEMONOMITI, SCENE_SYATEKI_MORI,
|
||||
SCENE_IKANAMAE, SCENE_TOWN, SCENE_SYATEKI_MIZU, SCENE_BOWLING, SCENE_TAKARAYA,
|
||||
SCENE_YADOYA, SCENE_SONCHONOIE, SCENE_MILK_BAR, SCENE_ICHIBA, SCENE_BOMYA,
|
||||
SCENE_AYASHIISHOP, SCENE_8ITEMSHOP, SCENE_DOUJOU, SCENE_POSTHOUSE, SCENE_TAKARAKUJI,
|
||||
SCENE_BACKTOWN, SCENE_CLOCKTOWER, SCENE_INSIDETOWER, SCENE_OKUJOU, SCENE_ALLEY,
|
||||
SCENE_DEKUTES, 0xFFFF,
|
||||
},
|
||||
// Snowhead
|
||||
// REGION_SNOWHEAD
|
||||
{
|
||||
SCENE_10YUKIYAMANOMURA,
|
||||
SCENE_10YUKIYAMANOMURA2,
|
||||
|
|
@ -437,15 +434,15 @@ u16 gSceneIdsPerRegion[11][27] = {
|
|||
SCENE_GORON_HAKA,
|
||||
SCENE_17SETUGEN,
|
||||
SCENE_17SETUGEN2,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Ikana Graveyard
|
||||
// REGION_IKANA_GRAVEYARD
|
||||
{
|
||||
SCENE_BOTI,
|
||||
SCENE_DANPEI2TEST,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Ikana Canyon
|
||||
// REGION_IKANA_CANYON
|
||||
{
|
||||
SCENE_CASTLE,
|
||||
SCENE_IKNINSIDE,
|
||||
|
|
@ -456,21 +453,21 @@ u16 gSceneIdsPerRegion[11][27] = {
|
|||
SCENE_REDEAD,
|
||||
SCENE_TOUGITES,
|
||||
SCENE_HAKASHITA,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Goron Village
|
||||
// REGION_GORON_VILLAGE
|
||||
{
|
||||
SCENE_11GORONNOSATO,
|
||||
SCENE_11GORONNOSATO2,
|
||||
SCENE_16GORON_HOUSE,
|
||||
SCENE_GORONSHOP,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
// Stone Tower
|
||||
// REGION_STONE_TOWER
|
||||
{
|
||||
SCENE_F40,
|
||||
SCENE_F41,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
@ -553,9 +550,9 @@ s32 Inventory_IsMapVisible(s16 sceneId) {
|
|||
return false;
|
||||
}
|
||||
|
||||
static u16 sSceneIdsPerTingleMap[6][12] = {
|
||||
static u16 sSceneIdsPerTingleMap[TINGLE_MAP_MAX][12] = {
|
||||
{
|
||||
// Clock Town Tingle Map
|
||||
// TINGLE_MAP_CLOCK_TOWN
|
||||
SCENE_00KEIKOKU,
|
||||
SCENE_BOTI,
|
||||
SCENE_13HUBUKINOMITI,
|
||||
|
|
@ -566,20 +563,20 @@ static u16 sSceneIdsPerTingleMap[6][12] = {
|
|||
SCENE_BACKTOWN,
|
||||
SCENE_CLOCKTOWER,
|
||||
SCENE_ALLEY,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
{
|
||||
// Woodfall Tingle Map
|
||||
// TINGLE_MAP_WOODFALL
|
||||
SCENE_20SICHITAI,
|
||||
SCENE_20SICHITAI2,
|
||||
SCENE_21MITURINMAE,
|
||||
SCENE_22DEKUCITY,
|
||||
SCENE_DEKU_KING,
|
||||
SCENE_KINSTA1,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
{
|
||||
// Snowhead Tingle Map
|
||||
// TINGLE_MAP_SNOWHEAD
|
||||
SCENE_10YUKIYAMANOMURA,
|
||||
SCENE_10YUKIYAMANOMURA2,
|
||||
SCENE_11GORONNOSATO,
|
||||
|
|
@ -590,20 +587,20 @@ static u16 sSceneIdsPerTingleMap[6][12] = {
|
|||
SCENE_GORONRACE,
|
||||
SCENE_17SETUGEN,
|
||||
SCENE_17SETUGEN2,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
{
|
||||
// Romani Ranch Tingle Map
|
||||
// TINGLE_MAP_ROMANI_RANCH
|
||||
SCENE_F01,
|
||||
SCENE_ROMANYMAE,
|
||||
SCENE_OMOYA,
|
||||
SCENE_F01C,
|
||||
SCENE_F01_B,
|
||||
SCENE_KOEPONARACE,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
{
|
||||
// Great Bay Tingle Map
|
||||
// TINGLE_MAP_GREAT_BAY
|
||||
SCENE_30GYOSON,
|
||||
SCENE_SINKAI,
|
||||
SCENE_31MISAKI,
|
||||
|
|
@ -611,28 +608,28 @@ static u16 sSceneIdsPerTingleMap[6][12] = {
|
|||
SCENE_KAIZOKU,
|
||||
SCENE_33ZORACITY,
|
||||
SCENE_35TAKI,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
{
|
||||
// Stone Tower Tingle Map
|
||||
// TINGLE_MAP_STONE_TOWER
|
||||
SCENE_F40,
|
||||
SCENE_F41,
|
||||
SCENE_CASTLE,
|
||||
SCENE_IKANA,
|
||||
SCENE_REDEAD,
|
||||
-1,
|
||||
0xFFFF,
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* Map visibility is achieved by purchasing a tingle map
|
||||
* Removing clouds from the World Map is achieved by purchasing a tingle map
|
||||
*/
|
||||
void Inventory_SetMapVisibility(s16 tingleIndex) {
|
||||
void Inventory_SetWorldMapCloudVisibility(s16 tingleIndex) {
|
||||
s16 i = 0;
|
||||
s16 index = 0;
|
||||
u16(*tingleMapSceneIds)[] = &sSceneIdsPerTingleMap[tingleIndex];
|
||||
|
||||
if ((tingleIndex >= 0) && (tingleIndex < 6)) {
|
||||
if ((tingleIndex >= 0) && (tingleIndex < TINGLE_MAP_MAX)) {
|
||||
while (true) {
|
||||
if ((*tingleMapSceneIds)[i] == 0xFFFF) {
|
||||
break;
|
||||
|
|
@ -665,21 +662,21 @@ void Inventory_SetMapVisibility(s16 tingleIndex) {
|
|||
}
|
||||
|
||||
if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[0]) {
|
||||
gSaveContext.save.mapsVisible |= 3;
|
||||
gSaveContext.save.worldMapCloudVisibility |= 3;
|
||||
} else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[1]) {
|
||||
gSaveContext.save.mapsVisible |= 0x1C;
|
||||
gSaveContext.save.worldMapCloudVisibility |= 0x1C;
|
||||
} else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[2]) {
|
||||
gSaveContext.save.mapsVisible |= 0xE0;
|
||||
gSaveContext.save.worldMapCloudVisibility |= 0xE0;
|
||||
} else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[3]) {
|
||||
gSaveContext.save.mapsVisible |= 0x100;
|
||||
gSaveContext.save.worldMapCloudVisibility |= 0x100;
|
||||
} else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[4]) {
|
||||
gSaveContext.save.mapsVisible |= 0x1E00;
|
||||
gSaveContext.save.worldMapCloudVisibility |= 0x1E00;
|
||||
} else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[5]) {
|
||||
gSaveContext.save.mapsVisible |= 0x6000;
|
||||
gSaveContext.save.worldMapCloudVisibility |= 0x6000;
|
||||
}
|
||||
}
|
||||
|
||||
XREG(95) = 0;
|
||||
R_MINIMAP_DISABLED = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@ void Setup_SetRegs(void) {
|
|||
XREG(77) = 0x3C;
|
||||
XREG(78) = 0x2F;
|
||||
XREG(79) = 0x62;
|
||||
XREG(87) = 0;
|
||||
R_PAUSE_OWLWARP_ALPHA = 0;
|
||||
XREG(88) = 0x56;
|
||||
XREG(89) = 0x258;
|
||||
XREG(90) = 0x1C2;
|
||||
XREG(91) = 0;
|
||||
XREG(94) = 0;
|
||||
XREG(95) = 0;
|
||||
R_REVERSE_FLOOR_INDEX = 0;
|
||||
R_MINIMAP_DISABLED = false;
|
||||
|
||||
YREG(32) = 0x50;
|
||||
YREG(33) = 0x3C;
|
||||
|
|
|
|||
|
|
@ -861,10 +861,11 @@ void TitleCard_Draw(GameState* gameState, TitleCardContext* titleCtx) {
|
|||
|
||||
OPEN_DISPS(gameState->gfxCtx);
|
||||
|
||||
height = (width * height > TMEM_SIZE) ? TMEM_SIZE / width : height;
|
||||
spB4 = spB8 + (height * 4);
|
||||
if (width * height > TMEM_SIZE) {
|
||||
height = TMEM_SIZE / width;
|
||||
}
|
||||
|
||||
if (1) {}
|
||||
spB4 = spB8 + (height * 4);
|
||||
|
||||
OVERLAY_DISP = func_8012C014(OVERLAY_DISP);
|
||||
|
||||
|
|
|
|||
|
|
@ -22,19 +22,19 @@ void func_800F4A10(PlayState* play) {
|
|||
pauseCtx->unk_27E = -40;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(pauseCtx->worldMapPoints); i++) {
|
||||
pauseCtx->worldMapPoints[i] = 0;
|
||||
pauseCtx->worldMapPoints[i] = false;
|
||||
}
|
||||
|
||||
if (pauseCtx->state == 1) {
|
||||
for (i = 0; i < 11; i++) {
|
||||
if ((gSaveContext.save.mapsVisited >> i) & 1) {
|
||||
pauseCtx->worldMapPoints[i] = 1;
|
||||
for (i = 0; i < REGION_MAX; i++) {
|
||||
if ((gSaveContext.save.regionsVisited >> i) & 1) {
|
||||
pauseCtx->worldMapPoints[i] = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 9; i >= 0; i--) {
|
||||
for (i = OWL_WARP_STONE_TOWER; i >= OWL_WARP_GREAT_BAY_COAST; i--) {
|
||||
if ((gSaveContext.save.playerData.owlActivationFlags >> i) & 1) {
|
||||
pauseCtx->worldMapPoints[i] = 1;
|
||||
pauseCtx->worldMapPoints[i] = true;
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = i;
|
||||
}
|
||||
}
|
||||
|
|
@ -57,9 +57,9 @@ void func_800F4A10(PlayState* play) {
|
|||
YREG(21) = -0x0622;
|
||||
YREG(22) = -0x0C44;
|
||||
YREG(23) = 0x0622;
|
||||
YREG(24) = -0x0622;
|
||||
YREG(25) = -0x005A;
|
||||
YREG(26) = -0x3840;
|
||||
R_PAUSE_WORLD_MAP_YAW = -0x622;
|
||||
R_PAUSE_WORLD_MAP_Y_OFFSET = -90;
|
||||
R_PAUSE_WORLD_MAP_DEPTH = -14400;
|
||||
}
|
||||
|
||||
void KaleidoSetup_Update(PlayState* play) {
|
||||
|
|
@ -124,18 +124,18 @@ void KaleidoSetup_Init(PlayState* play) {
|
|||
pauseCtx->unk_20C = 936.0f;
|
||||
pauseCtx->unk_220 = -314.0f;
|
||||
|
||||
pauseCtx->cursorPoint[PAUSE_MAP] = XREG(94) + 3;
|
||||
pauseCtx->cursorPoint[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
|
||||
pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_RIGHT;
|
||||
pauseCtx->pageSwitchTimer = 0;
|
||||
|
||||
pauseCtx->cursorItem[PAUSE_ITEM] = PAUSE_ITEM_NONE;
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = XREG(94) + 3;
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
pauseCtx->cursorItem[PAUSE_QUEST] = PAUSE_ITEM_NONE;
|
||||
pauseCtx->cursorItem[PAUSE_MASK] = PAUSE_ITEM_NONE;
|
||||
|
||||
pauseCtx->cursorSlot[PAUSE_ITEM] = 0;
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] = XREG(94) + 3;
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
|
||||
pauseCtx->cursorColorSet = 2;
|
||||
pauseCtx->unk_2A0 = -1;
|
||||
|
|
|
|||
|
|
@ -245,14 +245,14 @@ void Map_Update(PlayState* play) {
|
|||
if (floor != -1) {
|
||||
gSaveContext.save.permanentSceneFlags[Play_GetOriginalSceneId(play->sceneId)].unk_14 |=
|
||||
gBitFlags[FLOOR_INDEX_MAX - floor];
|
||||
XREG(94) = FLOOR_INDEX_MAX - floor;
|
||||
R_REVERSE_FLOOR_INDEX = FLOOR_INDEX_MAX - floor;
|
||||
if (interfaceCtx->mapRoomNum != sLastRoomNum) {
|
||||
sLastRoomNum = interfaceCtx->mapRoomNum;
|
||||
}
|
||||
}
|
||||
} else if (Map_IsInBossArea(play)) {
|
||||
func_80105294();
|
||||
XREG(94) = FLOOR_INDEX_MAX - func_80105318();
|
||||
R_REVERSE_FLOOR_INDEX = FLOOR_INDEX_MAX - func_80105318();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -256,34 +256,33 @@ void func_8014CCB4(PlayState* play, s16* decodedBufPos, s32* offset, f32* arg3)
|
|||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_8014D304.s")
|
||||
|
||||
extern u16 D_801D0188[][9];
|
||||
extern s16 D_801D0250[];
|
||||
extern u16 D_801D0188[OWL_WARP_MAX][9];
|
||||
extern s16 D_801D0250[OWL_WARP_MAX];
|
||||
|
||||
void func_8014D62C(PlayState* play, s32* arg1, f32* arg2, s16* arg3) {
|
||||
MessageContext* msgCtx = &play->msgCtx;
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
s16 temp_s6;
|
||||
s16 stringLimit;
|
||||
s16 temp_s1 = *arg3;
|
||||
s32 temp_s2 = *arg1;
|
||||
f32 sp3C = *arg2;
|
||||
s16 phi_v0;
|
||||
s16 owlWarpId;
|
||||
s16 phi_s0;
|
||||
|
||||
if ((func_8010A0A4(play) != 0) || (play->sceneId == SCENE_SECOM)) {
|
||||
phi_v0 = 0xA;
|
||||
if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
owlWarpId = OWL_WARP_ENTRANCE;
|
||||
} else {
|
||||
phi_v0 = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
owlWarpId = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
}
|
||||
stringLimit = D_801D0250[owlWarpId];
|
||||
|
||||
temp_s6 = D_801D0250[phi_v0];
|
||||
|
||||
for (phi_s0 = 0; phi_s0 < temp_s6; phi_s0++, temp_s1++, temp_s2 += 0x80) {
|
||||
msgCtx->decodedBuffer.wchar[temp_s1] = D_801D0188[phi_v0][phi_s0];
|
||||
Font_LoadChar(play, D_801D0188[phi_v0][phi_s0], temp_s2);
|
||||
for (phi_s0 = 0; phi_s0 < stringLimit; phi_s0++, temp_s1++, temp_s2 += 0x80) {
|
||||
msgCtx->decodedBuffer.wchar[temp_s1] = D_801D0188[owlWarpId][phi_s0];
|
||||
Font_LoadChar(play, D_801D0188[owlWarpId][phi_s0], temp_s2);
|
||||
}
|
||||
|
||||
temp_s1--;
|
||||
sp3C += (temp_s6 - 1) * (16.0f * msgCtx->unk12098);
|
||||
sp3C += (stringLimit - 1) * (16.0f * msgCtx->unk12098);
|
||||
|
||||
*arg3 = temp_s1;
|
||||
*arg1 = temp_s2;
|
||||
|
|
|
|||
|
|
@ -17,31 +17,43 @@ u8 D_801D06F0[4][8] = { { "rupee(s)" }, //EN
|
|||
// rupeesTextLength
|
||||
u8 D_801D0710[4] = {8,8,5,8};
|
||||
|
||||
//TextArea
|
||||
char D_801D0714[11][16] = {
|
||||
"Great Bay Coast",
|
||||
"Zora Cape",
|
||||
"Snowhead",
|
||||
"Mountain Village",
|
||||
"Clock Town",
|
||||
"Milk Road",
|
||||
"Woodfall",
|
||||
"Southern Swamp",
|
||||
"Ikana Canyon",
|
||||
"Stone Tower",
|
||||
"Entrance"
|
||||
};
|
||||
// sOwlWarpText
|
||||
char D_801D0714[OWL_WARP_MAX][16] = {
|
||||
"Great Bay Coast", // OWL_WARP_GREAT_BAY_COAST
|
||||
"Zora Cape", // OWL_WARP_ZORA_CAPE
|
||||
"Snowhead", // OWL_WARP_SNOWHEAD
|
||||
"Mountain Village", // OWL_WARP_MOUNTAIN_VILLAGE
|
||||
"Clock Town", // OWL_WARP_CLOCK_TOWN
|
||||
"Milk Road", // OWL_WARP_MILK_ROAD
|
||||
"Woodfall", // OWL_WARP_WOODFALL
|
||||
"Southern Swamp", // OWL_WARP_SOUTHERN_SWAMP
|
||||
"Ikana Canyon", // OWL_WARP_IKANA_CANYON
|
||||
"Stone Tower", // OWL_WARP_STONE_TOWER
|
||||
"Entrance", // OWL_WARP_ENTRANCE
|
||||
};
|
||||
|
||||
//TextAreaLength
|
||||
s16 D_801D07C4[11] = {15,9,8,16,10,9,8,14,12,11,8};
|
||||
// sOwlWarpTextLength
|
||||
s16 D_801D07C4[OWL_WARP_MAX] = {
|
||||
15, // OWL_WARP_GREAT_BAY_COAST
|
||||
9, // OWL_WARP_ZORA_CAPE
|
||||
8, // OWL_WARP_SNOWHEAD
|
||||
16, // OWL_WARP_MOUNTAIN_VILLAGE
|
||||
10, // OWL_WARP_CLOCK_TOWN
|
||||
9, // OWL_WARP_MILK_ROAD
|
||||
8, // OWL_WARP_WOODFALL
|
||||
14, // OWL_WARP_SOUTHERN_SWAMP
|
||||
12, // OWL_WARP_IKANA_CANYON
|
||||
11, // OWL_WARP_STONE_TOWER
|
||||
8, // OWL_WARP_ENTRANCE
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
extern f32 D_801D0470[159];
|
||||
extern u8 D_801D06F0[4][8];
|
||||
extern u8 D_801D0710[4];
|
||||
extern u8 D_801D0714[11][16];
|
||||
extern s16 D_801D07C4[11];
|
||||
extern u8 D_801D0714[OWL_WARP_MAX][16];
|
||||
extern s16 D_801D07C4[OWL_WARP_MAX];
|
||||
|
||||
void Message_FindMessageNES(PlayState* play, u16 textId) {
|
||||
MessageContext* msgCtx = &play->msgCtx;
|
||||
|
|
@ -244,28 +256,28 @@ void Message_LoadTimeNES(PlayState* play, u8 arg1, s32* offset, f32* arg3, s16*
|
|||
*arg3 = f;
|
||||
}
|
||||
|
||||
void Message_LoadAreaTextNES(PlayState* play, s32* offset, f32* arg2, s16* decodedBufPos) {
|
||||
void Message_LoadOwlWarpTextNES(PlayState* play, s32* offset, f32* arg2, s16* decodedBufPos) {
|
||||
MessageContext* msgCtx = &play->msgCtx;
|
||||
s16 p = *decodedBufPos;
|
||||
s32 o = *offset;
|
||||
f32 f = *arg2;
|
||||
s16 i;
|
||||
u8 currentChar;
|
||||
s16 currentArea;
|
||||
s16 owlWarpId;
|
||||
s16 stringLimit;
|
||||
|
||||
if ((func_8010A0A4(play) != 0) || (play->sceneId == SCENE_SECOM)) {
|
||||
currentArea = 10;
|
||||
if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
owlWarpId = OWL_WARP_ENTRANCE;
|
||||
} else {
|
||||
currentArea = play->pauseCtx.cursorPoint[PAUSE_WORLD_MAP];
|
||||
owlWarpId = play->pauseCtx.cursorPoint[PAUSE_WORLD_MAP];
|
||||
}
|
||||
stringLimit = D_801D07C4[currentArea];
|
||||
stringLimit = D_801D07C4[owlWarpId];
|
||||
|
||||
for (i = 0; i < stringLimit; i++) {
|
||||
msgCtx->decodedBuffer.schar[p] = D_801D0714[currentArea][i];
|
||||
msgCtx->decodedBuffer.schar[p] = D_801D0714[owlWarpId][i];
|
||||
currentChar = msgCtx->decodedBuffer.schar[p];
|
||||
if (currentChar != ' ') {
|
||||
Font_LoadCharNES(play, D_801D0714[currentArea][i], o);
|
||||
Font_LoadCharNES(play, D_801D0714[owlWarpId][i], o);
|
||||
o += FONT_CHAR_TEX_SIZE;
|
||||
}
|
||||
currentChar = msgCtx->decodedBuffer.schar[p];
|
||||
|
|
|
|||
|
|
@ -468,8 +468,8 @@ void Scene_HeaderCmdAltHeaderList(PlayState* play, SceneCmd* cmd) {
|
|||
|
||||
// SceneTableEntry Header Command 0x17: Cutscene List
|
||||
void Scene_HeaderCmdCutsceneList(PlayState* play, SceneCmd* cmd) {
|
||||
play->csCtx.sceneCsCount = cmd->base.data1;
|
||||
play->csCtx.sceneCsList = Lib_SegmentedToVirtual(cmd->base.data2);
|
||||
play->csCtx.sceneCsCount = cmd->cutsceneList.sceneCsCount;
|
||||
play->csCtx.sceneCsList = Lib_SegmentedToVirtual(cmd->cutsceneList.segment);
|
||||
}
|
||||
|
||||
// SceneTableEntry Header Command 0x1B: Actor Cutscene List
|
||||
|
|
@ -492,8 +492,8 @@ void Scene_HeaderCmdMiniMapCompassInfo(PlayState* play, SceneCmd* cmd) {
|
|||
func_8010565C(play, cmd->minimapChests.num, cmd->minimapChests.segment);
|
||||
}
|
||||
|
||||
// SceneTableEntry Header Command 0x1A: Sets Area Visited Flag
|
||||
void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd) {
|
||||
// SceneTableEntry Header Command 0x19: Sets Region Visited Flag
|
||||
void Scene_HeaderCmdSetRegionVisitedFlag(PlayState* play, SceneCmd* cmd) {
|
||||
s16 j = 0;
|
||||
s16 i = 0;
|
||||
|
||||
|
|
@ -502,7 +502,7 @@ void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd) {
|
|||
i++;
|
||||
j = 0;
|
||||
|
||||
if (i == ARRAY_COUNT(gSceneIdsPerRegion)) {
|
||||
if (i == REGION_MAX) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -514,8 +514,9 @@ void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd) {
|
|||
j++;
|
||||
}
|
||||
|
||||
if (i < ARRAY_COUNT(gSceneIdsPerRegion)) {
|
||||
gSaveContext.save.mapsVisited = (gBitFlags[i] | gSaveContext.save.mapsVisited) | gSaveContext.save.mapsVisited;
|
||||
if (i < REGION_MAX) {
|
||||
gSaveContext.save.regionsVisited =
|
||||
(gBitFlags[i] | gSaveContext.save.regionsVisited) | gSaveContext.save.regionsVisited;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -561,7 +562,7 @@ s32 Scene_ProcessHeader(PlayState* play, SceneCmd* header) {
|
|||
Scene_HeaderCmdEchoSetting,
|
||||
Scene_HeaderCmdCutsceneList,
|
||||
Scene_HeaderCmdAltHeaderList,
|
||||
Scene_HeaderCmdSetAreaVisitedFlag,
|
||||
Scene_HeaderCmdSetRegionVisitedFlag,
|
||||
Scene_HeaderCmdAnimatedMaterials,
|
||||
Scene_HeaderCmdActorCutsceneList,
|
||||
Scene_HeaderCmdMiniMap,
|
||||
|
|
|
|||
|
|
@ -374,7 +374,7 @@ void func_808A1090(DoorShutter* this, PlayState* play) {
|
|||
}
|
||||
} else if (this->unk_166 != 0) {
|
||||
if (this->doorType == 5) {
|
||||
if (!CHECK_DUNGEON_ITEM(0, gSaveContext.mapIndex)) {
|
||||
if (!CHECK_DUNGEON_ITEM(DUNGEON_BOSS_KEY, gSaveContext.mapIndex)) {
|
||||
player->doorType = -1;
|
||||
this->actor.textId = 0x1803;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -406,6 +406,8 @@ void func_80BB5AAC(EnTanron1* this, PlayState* play) {
|
|||
Matrix_RotateXS(ptr->unk_18 * -1, MTXMODE_APPLY);
|
||||
Matrix_Scale(1.0f, ptr->unk_2C, 1.0f, MTXMODE_APPLY);
|
||||
|
||||
if (1) {}
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, ovl_En_Tanron1_DL_001900);
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -51,9 +51,16 @@ typedef enum {
|
|||
|
||||
// NES
|
||||
void KaleidoScope_MoveCursorToSpecialPos(PlayState* play, s16 cursorSpecialPos);
|
||||
void KaleidoScope_DrawQuadTextureRGBA32(GraphicsContext* gfxCtx, void* texture, u16 width, u16 height, u16 point);
|
||||
void KaleidoScope_DrawQuadTextureRGBA32(GraphicsContext* gfxCtx, TexturePtr texture, u16 width, u16 height, u16 point);
|
||||
void KaleidoScope_SetView(PauseContext* pauseCtx, f32 x, f32 y, f32 z);
|
||||
void func_80821A04(PlayState* play);
|
||||
|
||||
// Map
|
||||
void KaleidoScope_DrawDungeonMap(PlayState* play);
|
||||
void KaleidoScope_UpdateDungeonCursor(PlayState* play);
|
||||
void KaleidoScope_DrawWorldMap(PlayState* play);
|
||||
void KaleidoScope_UpdateWorldMapCursor(PlayState* play);
|
||||
|
||||
// Item
|
||||
void KaleidoScope_SetCursorVtx(PauseContext* pauseCtx, u16 index, Vtx* vtx);
|
||||
void KaleidoScope_DrawItemSelect(PlayState* play);
|
||||
|
|
|
|||
|
|
@ -345,7 +345,7 @@ s32 D_8082BEB8[] = { 0, 0 };
|
|||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_kaleido_scope/func_8082585C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_kaleido_scope/func_808259D4.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_kaleido_scope/KaleidoScope_SetView.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_kaleido_scope/func_80825A50.s")
|
||||
|
||||
|
|
|
|||
|
|
@ -2410,7 +2410,7 @@
|
|||
0x8012ED78:("Inventory_DeleteEquipment",),
|
||||
0x8012EDE8:("Inventory_ChangeUpgrade",),
|
||||
0x8012EE34:("Inventory_IsMapVisible",),
|
||||
0x8012EF0C:("Inventory_SetMapVisibility",),
|
||||
0x8012EF0C:("Inventory_SetWorldMapCloudVisibility",),
|
||||
0x8012F0EC:("Inventory_SaveDekuPlaygroundHighScore",),
|
||||
0x8012F1BC:("Inventory_IncrementSkullTokenCount",),
|
||||
0x8012F22C:("Inventory_GetSkullTokenCount",),
|
||||
|
|
@ -2452,7 +2452,7 @@
|
|||
0x80130540:("Scene_HeaderCmdMiniMap",),
|
||||
0x80130578:("Scene_HeaderCmd1D",),
|
||||
0x80130588:("Scene_HeaderCmdMiniMapCompassInfo",),
|
||||
0x801305B0:("Scene_HeaderCmdSetAreaVisitedFlag",),
|
||||
0x801305B0:("Scene_HeaderCmdSetRegionVisitedFlag",),
|
||||
0x80130674:("Scene_HeaderCmdAnimatedMaterials",),
|
||||
0x801306A4:("Scene_SetExitFade",),
|
||||
0x801306E8:("Scene_ProcessHeader",),
|
||||
|
|
@ -2880,7 +2880,7 @@
|
|||
0x80158C04:("Message_LoadLocalizedRupeesNES",),
|
||||
0x80158D98:("Message_LoadRupeesNES",),
|
||||
0x80158FB0:("Message_LoadTimeNES",),
|
||||
0x8015926C:("Message_LoadAreaTextNES",),
|
||||
0x8015926C:("Message_LoadOwlWarpTextNES",),
|
||||
0x80159438:("func_80159438",),
|
||||
0x8015966C:("func_8015966C",),
|
||||
0x8015B198:("func_8015B198",),
|
||||
|
|
@ -4209,11 +4209,11 @@
|
|||
0x8081B6EC:("KaleidoScope_DrawItemSelect",),
|
||||
0x8081BCA8:("KaleidoScope_UpdateItemCursor",),
|
||||
0x8081C684:("KaleidoScope_UpdateItemEquip",),
|
||||
0x8081D240:("func_8081D240",),
|
||||
0x8081D6DC:("func_8081D6DC",),
|
||||
0x8081E118:("func_8081E118",),
|
||||
0x8081E7D8:("func_8081E7D8",),
|
||||
0x8081FB1C:("func_8081FB1C",),
|
||||
0x8081D240:("KaleidoScope_DrawDungeonStrayFairyCount",),
|
||||
0x8081D6DC:("KaleidoScope_DrawDungeonMap",),
|
||||
0x8081E118:("KaleidoScope_UpdateDungeonCursor",),
|
||||
0x8081E7D8:("KaleidoScope_DrawWorldMap",),
|
||||
0x8081FB1C:("KaleidoScope_UpdateWorldMapCursor",),
|
||||
0x8081FF80:("KaleidoScope_DrawMaskSelect",),
|
||||
0x808204AC:("KaleidoScope_UpdateMaskCursor",),
|
||||
0x80820FA4:("KaleidoScope_UpdateMaskEquip",),
|
||||
|
|
@ -4234,7 +4234,7 @@
|
|||
0x80824B90:("func_80824B90",),
|
||||
0x808256E4:("func_808256E4",),
|
||||
0x8082585C:("func_8082585C",),
|
||||
0x808259D4:("func_808259D4",),
|
||||
0x808259D4:("KaleidoScope_SetView",),
|
||||
0x80825A50:("func_80825A50",),
|
||||
0x80825E28:("func_80825E28",),
|
||||
0x808274DC:("func_808274DC",),
|
||||
|
|
|
|||
|
|
@ -4703,28 +4703,28 @@
|
|||
0x8082B484:("sCButtonPosX","UNK_TYPE1","",0x1),
|
||||
0x8082B48C:("sCButtonPosY","UNK_TYPE1","",0x1),
|
||||
0x8082B494:("sEquipMagicArrowBowSlotHoldTimer","UNK_TYPE2","",0x2),
|
||||
0x8082B4A0:("D_8082B4A0","UNK_TYPE4","",0x4),
|
||||
0x8082B4AC:("D_8082B4AC","UNK_TYPE1","",0x1),
|
||||
0x8082B4BC:("D_8082B4BC","UNK_TYPE1","",0x1),
|
||||
0x8082B4A0:("sDungeonItemTextures","UNK_TYPE4","",0x4),
|
||||
0x8082B4AC:("sDungeonTitleTextures","UNK_TYPE1","",0x1),
|
||||
0x8082B4BC:("sDungeonMapFloorIconPosY","UNK_TYPE1","",0x1),
|
||||
0x8082B4C4:("D_8082B4C4","UNK_TYPE1","",0x1),
|
||||
0x8082B4C8:("D_8082B4C8","UNK_TYPE2","",0x2),
|
||||
0x8082B4CC:("D_8082B4CC","UNK_TYPE2","",0x2),
|
||||
0x8082B4D0:("D_8082B4D0","UNK_TYPE2","",0x2),
|
||||
0x8082B4D4:("D_8082B4D4","UNK_TYPE2","",0x2),
|
||||
0x8082B4D8:("D_8082B4D8","UNK_TYPE2","",0x2),
|
||||
0x8082B4DC:("D_8082B4DC","f32","",0x4),
|
||||
0x8082B4E0:("D_8082B4E0","UNK_TYPE1","",0x1),
|
||||
0x8082B520:("D_8082B520","UNK_TYPE1","",0x1),
|
||||
0x8082B52C:("D_8082B52C","UNK_TYPE1","",0x1),
|
||||
0x8082B538:("D_8082B538","UNK_TYPE1","",0x1),
|
||||
0x8082B548:("D_8082B548","s16","[30]",0x3C),
|
||||
0x8082B584:("D_8082B584","UNK_TYPE2","",0x2),
|
||||
0x8082B590:("D_8082B590","UNK_TYPE2","",0x2),
|
||||
0x8082B59C:("D_8082B59C","UNK_TYPE1","",0x1),
|
||||
0x8082B5B4:("D_8082B5B4","UNK_TYPE1","",0x1),
|
||||
0x8082B5CC:("D_8082B5CC","UNK_TYPE1","",0x1),
|
||||
0x8082B5E0:("D_8082B5E0","UNK_TYPE1","",0x1),
|
||||
0x8082B5F4:("D_8082B5F4","UNK_TYPE2","",0x2),
|
||||
0x8082B4C8:("sStrayFairyIconTimer","UNK_TYPE2","",0x2),
|
||||
0x8082B4CC:("sStrayFairyIconIndex","UNK_TYPE2","",0x2),
|
||||
0x8082B4D0:("sStrayFairyIconAlphaScaleTimer","UNK_TYPE2","",0x2),
|
||||
0x8082B4D4:("sStrayFairyIconAlphaScaleState","UNK_TYPE2","",0x2),
|
||||
0x8082B4D8:("sStrayFairyIconAlpha","UNK_TYPE2","",0x2),
|
||||
0x8082B4DC:("sStrayFairyIconScale","f32","",0x4),
|
||||
0x8082B4E0:("sStrayFairyIconTextures","UNK_TYPE1","",0x1),
|
||||
0x8082B520:("sStrayFairyIconPrimColors","UNK_TYPE1","",0x1),
|
||||
0x8082B52C:("sStrayFairyIconEnvColors","UNK_TYPE1","",0x1),
|
||||
0x8082B538:("sStrayFairyIconRectS","UNK_TYPE1","",0x1),
|
||||
0x8082B548:("sCloudTextures","s16","[30]",0x3C),
|
||||
0x8082B584:("sWorldMapDotPrimColors","UNK_TYPE2","",0x2),
|
||||
0x8082B590:("sWorldMapDotEnvColors","UNK_TYPE2","",0x2),
|
||||
0x8082B59C:("sWorldMapCursorsRectLeft","UNK_TYPE1","",0x1),
|
||||
0x8082B5B4:("sWorldMapCursorsRectTop","UNK_TYPE1","",0x1),
|
||||
0x8082B5CC:("sGreatFairySpawnRegions","UNK_TYPE1","",0x1),
|
||||
0x8082B5E0:("sOwlWarpPauseItems","UNK_TYPE1","",0x1),
|
||||
0x8082B5F4:("sStickAdjTimer","UNK_TYPE2","",0x2),
|
||||
0x8082B600:("sMaskEquipState","UNK_TYPE2","",0x2),
|
||||
0x8082B604:("sMaskEquipMagicArrowSlotHoldTimer","UNK_TYPE2","",0x2),
|
||||
0x8082B608:("sMaskEquipAnimTimer","UNK_TYPE2","",0x2),
|
||||
|
|
|
|||
|
|
@ -597,7 +597,7 @@ wordReplace = {
|
|||
"func_80158C04": "Message_LoadLocalizedRupeesNES",
|
||||
"func_80158D98": "Message_LoadRupeesNES",
|
||||
"func_80158FB0": "Message_LoadTimeNES",
|
||||
"func_8015926C": "Message_LoadAreaTextNES",
|
||||
"func_8015926C": "Message_LoadOwlWarpTextNES",
|
||||
"func_8015E750": "Message_FindCreditsMessage",
|
||||
"func_80133038": "Schedule_RunScript",
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
compiler_type = "ido"
|
||||
|
||||
[preserve_macros]
|
||||
"g[DS]P.*" = "void"
|
||||
"gs[DS]P.*" = "void"
|
||||
|
|
|
|||
|
|
@ -1924,7 +1924,7 @@ asm/non_matchings/code/code_8012EC80/Inventory_ChangeEquipment.s,Inventory_Chang
|
|||
asm/non_matchings/code/code_8012EC80/Inventory_DeleteEquipment.s,Inventory_DeleteEquipment,0x8012ED78,0x1C
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_ChangeUpgrade.s,Inventory_ChangeUpgrade,0x8012EDE8,0x13
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_IsMapVisible.s,Inventory_IsMapVisible,0x8012EE34,0x36
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_SetMapVisibility.s,Inventory_SetMapVisibility,0x8012EF0C,0x78
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_SetWorldMapCloudVisibility.s,Inventory_SetWorldMapCloudVisibility,0x8012EF0C,0x78
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_SaveDekuPlaygroundHighScore.s,Inventory_SaveDekuPlaygroundHighScore,0x8012F0EC,0x34
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_IncrementSkullTokenCount.s,Inventory_IncrementSkullTokenCount,0x8012F1BC,0x1C
|
||||
asm/non_matchings/code/code_8012EC80/Inventory_GetSkullTokenCount.s,Inventory_GetSkullTokenCount,0x8012F22C,0x13
|
||||
|
|
@ -1966,7 +1966,7 @@ asm/non_matchings/code/z_scene/Scene_HeaderCmdActorCutsceneList.s,Scene_HeaderCm
|
|||
asm/non_matchings/code/z_scene/Scene_HeaderCmdMiniMap.s,Scene_HeaderCmdMiniMap,0x80130540,0xE
|
||||
asm/non_matchings/code/z_scene/Scene_HeaderCmd1D.s,Scene_HeaderCmd1D,0x80130578,0x4
|
||||
asm/non_matchings/code/z_scene/Scene_HeaderCmdMiniMapCompassInfo.s,Scene_HeaderCmdMiniMapCompassInfo,0x80130588,0xA
|
||||
asm/non_matchings/code/z_scene/Scene_HeaderCmdSetAreaVisitedFlag.s,Scene_HeaderCmdSetAreaVisitedFlag,0x801305B0,0x31
|
||||
asm/non_matchings/code/z_scene/Scene_HeaderCmdSetRegionVisitedFlag.s,Scene_HeaderCmdSetRegionVisitedFlag,0x801305B0,0x31
|
||||
asm/non_matchings/code/z_scene/Scene_HeaderCmdAnimatedMaterials.s,Scene_HeaderCmdAnimatedMaterials,0x80130674,0xC
|
||||
asm/non_matchings/code/z_scene/Scene_SetExitFade.s,Scene_SetExitFade,0x801306A4,0x11
|
||||
asm/non_matchings/code/z_scene/Scene_ProcessHeader.s,Scene_ProcessHeader,0x801306E8,0x20
|
||||
|
|
@ -2394,7 +2394,7 @@ asm/non_matchings/code/z_message_nes/Message_LoadPluralRupeesNES.s,Message_LoadP
|
|||
asm/non_matchings/code/z_message_nes/Message_LoadLocalizedRupeesNES.s,Message_LoadLocalizedRupeesNES,0x80158C04,0x65
|
||||
asm/non_matchings/code/z_message_nes/Message_LoadRupeesNES.s,Message_LoadRupeesNES,0x80158D98,0x86
|
||||
asm/non_matchings/code/z_message_nes/Message_LoadTimeNES.s,Message_LoadTimeNES,0x80158FB0,0xAF
|
||||
asm/non_matchings/code/z_message_nes/Message_LoadAreaTextNES.s,Message_LoadAreaTextNES,0x8015926C,0x73
|
||||
asm/non_matchings/code/z_message_nes/Message_LoadOwlWarpTextNES.s,Message_LoadOwlWarpTextNES,0x8015926C,0x73
|
||||
asm/non_matchings/code/z_message_nes/func_80159438.s,func_80159438,0x80159438,0x8D
|
||||
asm/non_matchings/code/z_message_nes/func_8015966C.s,func_8015966C,0x8015966C,0x6CB
|
||||
asm/non_matchings/code/z_message_nes/func_8015B198.s,func_8015B198,0x8015B198,0xD6E
|
||||
|
|
|
|||
|
Loading…
Reference in New Issue