mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-27 23:36:22 +00:00
Pause doc: World map points (#2141)
* Pause doc: World map points * bss * `WORLD_MAP_POINT_HYLIA_LAKESIDE` -> `_LAKE_HYLIA`
This commit is contained in:
parent
87c304afcb
commit
3a9ebfbbad
11 changed files with 326 additions and 150 deletions
|
@ -1,5 +1,8 @@
|
|||
<Root>
|
||||
<File Name="map_name_static" Segment="11">
|
||||
|
||||
<!-- Place names for each world map point -->
|
||||
|
||||
<Texture Name="gHauntedWastelandPointNameJPNTex" OutName="haunted_wasteland_point_name_jpn" Format="ia4" Width="128" Height="16" Offset="0x0"/>
|
||||
<Texture Name="gGerudosFortressPointNameJPNTex" OutName="gerudos_fortress_point_name_jpn" Format="ia4" Width="128" Height="16" Offset="0x400"/>
|
||||
<Texture Name="gGerudoValleyPointNameJPNTex" OutName="gerudo_valley_point_name_jpn" Format="ia4" Width="128" Height="16" Offset="0x800"/>
|
||||
|
@ -12,6 +15,7 @@
|
|||
<Texture Name="gLostWoodsPointNameJPNTex" OutName="lost_woods_point_name_jpn" Format="ia4" Width="128" Height="16" Offset="0x2400"/>
|
||||
<Texture Name="gKokiriForestPointNameJPNTex" OutName="kokiri_forest_point_name_jpn" Format="ia4" Width="128" Height="16" Offset="0x2800"/>
|
||||
<Texture Name="gZorasDomainPointNameJPNTex" OutName="zoras_domain_point_name_jpn" Format="ia4" Width="128" Height="16" Offset="0x2C00"/>
|
||||
|
||||
<Texture Name="gHauntedWastelandPointNameENGTex" OutName="haunted_wasteland_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x3000"/>
|
||||
<Texture Name="gGerudosFortressPointNameENGTex" OutName="gerudos_fortress_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x3400"/>
|
||||
<Texture Name="gGerudoValleyPointNameENGTex" OutName="gerudo_valley_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x3800"/>
|
||||
|
@ -24,6 +28,9 @@
|
|||
<Texture Name="gLostWoodsPointNameENGTex" OutName="lost_woods_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x5400"/>
|
||||
<Texture Name="gKokiriForestPointNameENGTex" OutName="kokiri_forest_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x5800"/>
|
||||
<Texture Name="gZorasDomainPointNameENGTex" OutName="zoras_domain_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x5C00"/>
|
||||
|
||||
<!-- Place names for each world map area -->
|
||||
|
||||
<Texture Name="gHyruleFieldPositionNameJPNTex" OutName="hyrule_field_position_name_jpn" Format="ia8" Width="80" Height="32" Offset="0x6000"/>
|
||||
<Texture Name="gKakarikoVillagePositionNameJPNTex" OutName="kakariko_village_position_name_jpn" Format="ia8" Width="80" Height="32" Offset="0x6A00"/>
|
||||
<Texture Name="gGraveyardPositionNameJPNTex" OutName="graveyard_position_name_jpn" Format="ia8" Width="80" Height="32" Offset="0x7400"/>
|
||||
|
@ -46,6 +53,7 @@
|
|||
<Texture Name="gLonLonRanchPositionNameJPNTex" OutName="lon_lon_ranch_position_name_jpn" Format="ia8" Width="80" Height="32" Offset="0x11E00"/>
|
||||
<Texture Name="gQuestionMarkPositionNameJPNTex" OutName="question_mark_position_name_jpn" Format="ia8" Width="80" Height="32" Offset="0x12800"/>
|
||||
<Texture Name="gGanonsCastlePositionNameJPNTex" OutName="ganons_castle_position_name_jpn" Format="ia8" Width="80" Height="32" Offset="0x13200"/>
|
||||
|
||||
<Texture Name="gHyruleFieldPositionNameENGTex" OutName="hyrule_field_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x13C00"/>
|
||||
<Texture Name="gKakarikoVillagePositionNameENGTex" OutName="kakariko_village_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x14600"/>
|
||||
<Texture Name="gGraveyardPositionNameENGTex" OutName="graveyard_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x15000"/>
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
<Root>
|
||||
<File Name="map_name_static" Segment="11">
|
||||
|
||||
<!-- Place names for each world map point -->
|
||||
|
||||
<Texture Name="gHauntedWastelandPointNameENGTex" OutName="haunted_wasteland_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x0"/>
|
||||
<Texture Name="gGerudosFortressPointNameENGTex" OutName="gerudos_fortress_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x400"/>
|
||||
<Texture Name="gGerudoValleyPointNameENGTex" OutName="gerudo_valley_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x800"/>
|
||||
|
@ -12,6 +15,7 @@
|
|||
<Texture Name="gLostWoodsPointNameENGTex" OutName="lost_woods_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x2400"/>
|
||||
<Texture Name="gKokiriForestPointNameENGTex" OutName="kokiri_forest_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x2800"/>
|
||||
<Texture Name="gZorasDomainPointNameENGTex" OutName="zoras_domain_point_name_eng" Format="ia4" Width="128" Height="16" Offset="0x2c00"/>
|
||||
|
||||
<Texture Name="gHauntedWastelandPointNameGERTex" OutName="haunted_wasteland_point_name_ger" Format="ia4" Width="128" Height="16" Offset="0x3000"/>
|
||||
<Texture Name="gGerudosFortressPointNameGERTex" OutName="gerudos_fortress_point_name_ger" Format="ia4" Width="128" Height="16" Offset="0x3400"/>
|
||||
<Texture Name="gGerudoValleyPointNameGERTex" OutName="gerudo_valley_point_name_ger" Format="ia4" Width="128" Height="16" Offset="0x3800"/>
|
||||
|
@ -24,6 +28,7 @@
|
|||
<Texture Name="gLostWoodsPointNameGERTex" OutName="lost_woods_point_name_ger" Format="ia4" Width="128" Height="16" Offset="0x5400"/>
|
||||
<Texture Name="gKokiriForestPointNameGERTex" OutName="kokiri_forest_point_name_ger" Format="ia4" Width="128" Height="16" Offset="0x5800"/>
|
||||
<Texture Name="gZorasDomainPointNameGERTex" OutName="zoras_domain_point_name_ger" Format="ia4" Width="128" Height="16" Offset="0x5c00"/>
|
||||
|
||||
<Texture Name="gHauntedWastelandPointNameFRATex" OutName="haunted_wasteland_point_name_fra" Format="ia4" Width="128" Height="16" Offset="0x6000"/>
|
||||
<Texture Name="gGerudosFortressPointNameFRATex" OutName="gerudos_fortress_point_name_fra" Format="ia4" Width="128" Height="16" Offset="0x6400"/>
|
||||
<Texture Name="gGerudoValleyPointNameFRATex" OutName="gerudo_valley_point_name_fra" Format="ia4" Width="128" Height="16" Offset="0x6800"/>
|
||||
|
@ -36,6 +41,9 @@
|
|||
<Texture Name="gLostWoodsPointNameFRATex" OutName="lost_woods_point_name_fra" Format="ia4" Width="128" Height="16" Offset="0x8400"/>
|
||||
<Texture Name="gKokiriForestPointNameFRATex" OutName="kokiri_forest_point_name_fra" Format="ia4" Width="128" Height="16" Offset="0x8800"/>
|
||||
<Texture Name="gZorasDomainPointNameFRATex" OutName="zoras_domain_point_name_fra" Format="ia4" Width="128" Height="16" Offset="0x8c00"/>
|
||||
|
||||
<!-- Place names for each world map area -->
|
||||
|
||||
<Texture Name="gHyruleFieldPositionNameENGTex" OutName="hyrule_field_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x9000"/>
|
||||
<Texture Name="gKakarikoVillagePositionNameENGTex" OutName="kakariko_village_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x9a00"/>
|
||||
<Texture Name="gGraveyardPositionNameENGTex" OutName="graveyard_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0xa400"/>
|
||||
|
@ -58,6 +66,7 @@
|
|||
<Texture Name="gLonLonRanchPositionNameENGTex" OutName="lon_lon_ranch_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x14e00"/>
|
||||
<Texture Name="gQuestionMarkPositionNameENGTex" OutName="question_mark_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x15800"/>
|
||||
<Texture Name="gGanonsCastlePositionNameENGTex" OutName="ganons_castle_position_name_eng" Format="ia8" Width="80" Height="32" Offset="0x16200"/>
|
||||
|
||||
<Texture Name="gHyruleFieldPositionNameGERTex" OutName="hyrule_field_position_name_ger" Format="ia8" Width="80" Height="32" Offset="0x16c00"/>
|
||||
<Texture Name="gKakarikoVillagePositionNameGERTex" OutName="kakariko_village_position_name_ger" Format="ia8" Width="80" Height="32" Offset="0x17600"/>
|
||||
<Texture Name="gGraveyardPositionNameGERTex" OutName="graveyard_position_name_ger" Format="ia8" Width="80" Height="32" Offset="0x18000"/>
|
||||
|
@ -80,6 +89,7 @@
|
|||
<Texture Name="gLonLonRanchPositionNameGERTex" OutName="lon_lon_ranch_position_name_ger" Format="ia8" Width="80" Height="32" Offset="0x22a00"/>
|
||||
<Texture Name="gQuestionMarkPositionNameGERTex" OutName="question_mark_position_name_ger" Format="ia8" Width="80" Height="32" Offset="0x23400"/>
|
||||
<Texture Name="gGanonsCastlePositionNameGERTex" OutName="ganons_castle_position_name_ger" Format="ia8" Width="80" Height="32" Offset="0x23e00"/>
|
||||
|
||||
<Texture Name="gHyruleFieldPositionNameFRATex" OutName="hyrule_field_position_name_fra" Format="ia8" Width="80" Height="32" Offset="0x24800"/>
|
||||
<Texture Name="gKakarikoVillagePositionNameFRATex" OutName="kakariko_village_position_name_fra" Format="ia8" Width="80" Height="32" Offset="0x25200"/>
|
||||
<Texture Name="gGraveyardPositionNameFRATex" OutName="graveyard_position_name_fra" Format="ia8" Width="80" Height="32" Offset="0x25c00"/>
|
||||
|
|
|
@ -96,6 +96,28 @@ typedef enum PauseMainState {
|
|||
/* 9 */ PAUSE_MAIN_STATE_9
|
||||
} PauseMainState;
|
||||
|
||||
typedef enum WorldMapPoint {
|
||||
/* 0 */ WORLD_MAP_POINT_HAUNTED_WASTELAND,
|
||||
/* 1 */ WORLD_MAP_POINT_GERUDOS_FORTRESS,
|
||||
/* 2 */ WORLD_MAP_POINT_GERUDO_VALLEY,
|
||||
/* 3 */ WORLD_MAP_POINT_LAKE_HYLIA,
|
||||
/* 4 */ WORLD_MAP_POINT_LON_LON_RANCH,
|
||||
/* 5 */ WORLD_MAP_POINT_MARKET,
|
||||
/* 6 */ WORLD_MAP_POINT_HYRULE_FIELD,
|
||||
/* 7 */ WORLD_MAP_POINT_DEATH_MOUNTAIN,
|
||||
/* 8 */ WORLD_MAP_POINT_KAKARIKO_VILLAGE,
|
||||
/* 9 */ WORLD_MAP_POINT_LOST_WOODS,
|
||||
/* 10 */ WORLD_MAP_POINT_KOKIRI_FOREST,
|
||||
/* 11 */ WORLD_MAP_POINT_ZORAS_DOMAIN,
|
||||
/* 12 */ WORLD_MAP_POINT_MAX
|
||||
} WorldMapPoint;
|
||||
|
||||
typedef enum WorldMapPointState {
|
||||
/* 0 */ WORLD_MAP_POINT_STATE_HIDE,
|
||||
/* 1 */ WORLD_MAP_POINT_STATE_SHOW,
|
||||
/* 2 */ WORLD_MAP_POINT_STATE_HIGHLIGHT
|
||||
} WorldMapPointState;
|
||||
|
||||
typedef struct PauseContext {
|
||||
/* 0x0000 */ View view;
|
||||
/* 0x0128 */ u8* iconItemSegment;
|
||||
|
@ -161,7 +183,7 @@ typedef struct PauseContext {
|
|||
/* 0x0260 */ s16 cursorColorSet; // 0 = white; 4 = yellow; 8 = green
|
||||
/* 0x0262 */ s16 promptChoice; // save/continue choice: 0 = yes; 4 = no
|
||||
/* 0x0264 */ s16 ocarinaSongIdx;
|
||||
/* 0x0266 */ u8 worldMapPoints[20]; // 0 = hidden; 1 = displayed; 2 = highlighted
|
||||
/* 0x0266 */ u8 worldMapPoints[20]; // indices: `WorldMapPoint` enum, values: `WorldMapPointState` enum
|
||||
/* 0x027A */ u8 tradeQuestLocation;
|
||||
/* 0x027C */ SkelAnime playerSkelAnime;
|
||||
} PauseContext; // size = 0x2C0
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
*/
|
||||
#if PLATFORM_GC
|
||||
|
||||
#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \
|
||||
#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-eu-mq-dbg:208 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224" \
|
||||
"gc-us-mq:224"
|
||||
|
||||
#include "global.h"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "terminal.h"
|
||||
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0"
|
||||
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192"
|
||||
|
||||
s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags);
|
||||
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);
|
||||
|
|
|
@ -100,13 +100,13 @@ static ColliderCylinderInit sLightBallCylinderInit = {
|
|||
static u8 D_808E4C58[] = { 0, 12, 10, 12, 14, 16, 12, 14, 16, 12, 14, 16, 12, 14, 16, 10, 16, 14 };
|
||||
static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
|
||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0"
|
||||
|
||||
static EnGanonMant* sCape;
|
||||
|
||||
// TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving
|
||||
// data around. It would be easier if we had more options for controlling BSS ordering in debug.
|
||||
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
|
||||
#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192"
|
||||
|
||||
static s32 sSeed1;
|
||||
static s32 sSeed2;
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "cic6105.h"
|
||||
#endif
|
||||
|
||||
#pragma increment_block_number "gc-eu:153 gc-eu-mq:153 gc-jp:155 gc-jp-ce:155 gc-jp-mq:155 gc-us:155 gc-us-mq:155"
|
||||
#pragma increment_block_number "gc-eu:147 gc-eu-mq:147 gc-jp:149 gc-jp-ce:149 gc-jp-mq:149 gc-us:149 gc-us-mq:149"
|
||||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
|
||||
|
|
|
@ -358,32 +358,40 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
|
||||
void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
||||
static void* cloudTexs[] = {
|
||||
gWorldMapCloudSacredForestMeadowTex, gWorldMapCloudHyruleFieldTex,
|
||||
gWorldMapCloudLonLonRanchTex, gWorldMapCloudMarketTex,
|
||||
gWorldMapCloudHyruleCastleTex, gWorldMapCloudKakarikoVillageTex,
|
||||
gWorldMapCloudGraveyardTex, gWorldMapCloudDeathMountainTrailTex,
|
||||
gWorldMapCloudGoronCityTex, gWorldMapCloudZorasRiverTex,
|
||||
gWorldMapCloudZorasDomainTex, gWorldMapCloudZorasFountainTex,
|
||||
gWorldMapCloudGerudoValleyTex, gWorldMapCloudGerudosFortressTex,
|
||||
gWorldMapCloudDesertColossusTex, gWorldMapCloudLakeHyliaTex,
|
||||
gWorldMapCloudSacredForestMeadowTex, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW
|
||||
gWorldMapCloudHyruleFieldTex, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD
|
||||
gWorldMapCloudLonLonRanchTex, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH
|
||||
gWorldMapCloudMarketTex, // QUAD_MAP_WORLD_CLOUDS_MARKET
|
||||
gWorldMapCloudHyruleCastleTex, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE
|
||||
gWorldMapCloudKakarikoVillageTex, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE
|
||||
gWorldMapCloudGraveyardTex, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD
|
||||
gWorldMapCloudDeathMountainTrailTex, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL
|
||||
gWorldMapCloudGoronCityTex, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY
|
||||
gWorldMapCloudZorasRiverTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER
|
||||
gWorldMapCloudZorasDomainTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN
|
||||
gWorldMapCloudZorasFountainTex, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN
|
||||
gWorldMapCloudGerudoValleyTex, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY
|
||||
gWorldMapCloudGerudosFortressTex, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS
|
||||
gWorldMapCloudDesertColossusTex, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS
|
||||
gWorldMapCloudLakeHyliaTex, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA
|
||||
};
|
||||
static u16 cloudFlagNums[] = {
|
||||
WORLD_MAP_AREA_SACRED_FOREST_MEADOW,
|
||||
WORLD_MAP_AREA_HYRULE_FIELD,
|
||||
WORLD_MAP_AREA_LON_LON_RANCH,
|
||||
WORLD_MAP_AREA_MARKET,
|
||||
WORLD_MAP_AREA_HYRULE_CASTLE,
|
||||
WORLD_MAP_AREA_KAKARIKO_VILLAGE,
|
||||
WORLD_MAP_AREA_GRAVEYARD,
|
||||
WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL,
|
||||
WORLD_MAP_AREA_GORON_CITY,
|
||||
WORLD_MAP_AREA_ZORAS_RIVER,
|
||||
WORLD_MAP_AREA_ZORAS_DOMAIN,
|
||||
WORLD_MAP_AREA_ZORAS_FOUNTAIN,
|
||||
WORLD_MAP_AREA_GERUDO_VALLEY,
|
||||
WORLD_MAP_AREA_GERUDOS_FORTRESS,
|
||||
WORLD_MAP_AREA_DESERT_COLOSSUS,
|
||||
WORLD_MAP_AREA_LAKE_HYLIA,
|
||||
WORLD_MAP_AREA_SACRED_FOREST_MEADOW, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW
|
||||
WORLD_MAP_AREA_HYRULE_FIELD, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD
|
||||
WORLD_MAP_AREA_LON_LON_RANCH, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH
|
||||
WORLD_MAP_AREA_MARKET, // QUAD_MAP_WORLD_CLOUDS_MARKET
|
||||
WORLD_MAP_AREA_HYRULE_CASTLE, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE
|
||||
WORLD_MAP_AREA_KAKARIKO_VILLAGE, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE
|
||||
WORLD_MAP_AREA_GRAVEYARD, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD
|
||||
WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL
|
||||
WORLD_MAP_AREA_GORON_CITY, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY
|
||||
WORLD_MAP_AREA_ZORAS_RIVER, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER
|
||||
WORLD_MAP_AREA_ZORAS_DOMAIN, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN
|
||||
WORLD_MAP_AREA_ZORAS_FOUNTAIN, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN
|
||||
WORLD_MAP_AREA_GERUDO_VALLEY, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY
|
||||
WORLD_MAP_AREA_GERUDOS_FORTRESS, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS
|
||||
WORLD_MAP_AREA_DESERT_COLOSSUS, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS
|
||||
WORLD_MAP_AREA_LAKE_HYLIA, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA
|
||||
};
|
||||
static s16 pointPulsePrimColor[] = { 0, 0, 255 };
|
||||
static s16 pointPrimColors[][3] = {
|
||||
|
@ -544,12 +552,13 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
|
||||
do {
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP]++;
|
||||
if (pauseCtx->cursorPoint[PAUSE_WORLD_MAP] > 11) {
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 11;
|
||||
if (pauseCtx->cursorPoint[PAUSE_WORLD_MAP] >= WORLD_MAP_POINT_MAX) {
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1;
|
||||
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT);
|
||||
break;
|
||||
}
|
||||
} while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0);
|
||||
} while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] ==
|
||||
WORLD_MAP_POINT_STATE_HIDE);
|
||||
} else if (pauseCtx->stickAdjX < -30) {
|
||||
D_8082A6D4 = 0;
|
||||
|
||||
|
@ -560,13 +569,15 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT);
|
||||
break;
|
||||
}
|
||||
} while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0);
|
||||
} while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] ==
|
||||
WORLD_MAP_POINT_STATE_HIDE);
|
||||
} else {
|
||||
D_8082A6D4++;
|
||||
}
|
||||
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP] + 0x1F;
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] =
|
||||
PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx);
|
||||
} else {
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = gSaveContext.worldMapArea + 0x18;
|
||||
|
@ -575,12 +586,14 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 0;
|
||||
pauseCtx->cursorSpecialPos = 0;
|
||||
|
||||
while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0) {
|
||||
while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] ==
|
||||
WORLD_MAP_POINT_STATE_HIDE) {
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP]++;
|
||||
}
|
||||
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP] + 0x1F;
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] =
|
||||
PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx);
|
||||
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
|
@ -588,15 +601,17 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
}
|
||||
} else {
|
||||
if (pauseCtx->stickAdjX < -30) {
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 11;
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1;
|
||||
pauseCtx->cursorSpecialPos = 0;
|
||||
|
||||
while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0) {
|
||||
while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] ==
|
||||
WORLD_MAP_POINT_STATE_HIDE) {
|
||||
pauseCtx->cursorPoint[PAUSE_WORLD_MAP]--;
|
||||
}
|
||||
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_WORLD_MAP] + 0x1F;
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] =
|
||||
PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx);
|
||||
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
|
@ -605,7 +620,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
if (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == 0) {
|
||||
if (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == WORLD_MAP_POINT_STATE_HIDE) {
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = PAUSE_ITEM_NONE;
|
||||
}
|
||||
|
||||
|
@ -720,7 +735,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 235, 235, 235, pauseCtx->alpha);
|
||||
|
||||
for (k = 0; k < 15; k += 8) {
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[60 + k * 4], 32, 0);
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + k) * 4], 32, 0);
|
||||
|
||||
for (j = i = 0; i < 8; i++, j += 4) {
|
||||
if (!(gSaveContext.save.info.worldMapAreaData & gBitFlags[cloudFlagNums[k + i]])) {
|
||||
|
@ -739,6 +754,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_POINT);
|
||||
|
||||
// Quad PAGE_BG_QUADS + QUAD_MAP_28
|
||||
|
||||
pauseCtx->mapPageVtx[172].v.ob[0] = pauseCtx->mapPageVtx[174].v.ob[0] =
|
||||
areaBoxPosX[((void)0, gSaveContext.worldMapArea)];
|
||||
|
||||
|
@ -831,21 +848,22 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
gDPLoadTextureBlock(POLY_OPA_DISP++, gWorldMapDotTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0, G_TX_WRAP | G_TX_NOMIRROR,
|
||||
G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
for (j = i = 0; i < 12; i++, t++, j += 4) {
|
||||
if (pauseCtx->worldMapPoints[i] != 0) {
|
||||
for (j = i = 0; i < WORLD_MAP_POINT_MAX; i++, t++, j += 4) {
|
||||
if (pauseCtx->worldMapPoints[i] != WORLD_MAP_POINT_STATE_HIDE) {
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
|
||||
if (pauseCtx->worldMapPoints[i] == 1) {
|
||||
if (pauseCtx->worldMapPoints[i] == WORLD_MAP_POINT_STATE_SHOW) {
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, pointPrimColors[0][0], pointPrimColors[0][1],
|
||||
pointPrimColors[0][2], pauseCtx->alpha);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, pointEnvColors[0][0], pointEnvColors[0][1], pointEnvColors[0][2], 0);
|
||||
} else {
|
||||
} else { // WORLD_MAP_POINT_STATE_HIGHLIGHT
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, pointPulsePrimColor[0], pointPulsePrimColor[1],
|
||||
pointPulsePrimColor[2], pauseCtx->alpha);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, pointPulseEnvColor[0], pointPulseEnvColor[1], pointPulseEnvColor[2], 0);
|
||||
}
|
||||
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[124 + i * 4], 4, 0);
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->mapPageVtx[(PAGE_BG_QUADS + QUAD_MAP_WORLD_POINT_FIRST + i) * 4], 4,
|
||||
0);
|
||||
|
||||
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
|
||||
}
|
||||
|
|
|
@ -541,11 +541,73 @@ static void* sSavePromptBgQuadsTexs[] = {
|
|||
#endif
|
||||
|
||||
s16 gVtxPageMapWorldQuadsWidth[VTX_PAGE_MAP_WORLD_QUADS] = {
|
||||
32, 112, 32, 48, 32, 32, 32, 48, 32, 64, 32, 48, 48, 48, 48, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80, 64,
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW
|
||||
112, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH
|
||||
48, // QUAD_MAP_WORLD_CLOUDS_MARKET
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD
|
||||
48, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY
|
||||
64, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN
|
||||
48, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN
|
||||
48, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY
|
||||
48, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS
|
||||
48, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS
|
||||
64, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA
|
||||
8, // WORLD_MAP_POINT_HAUNTED_WASTELAND
|
||||
8, // WORLD_MAP_POINT_GERUDOS_FORTRESS
|
||||
8, // WORLD_MAP_POINT_GERUDO_VALLEY
|
||||
8, // WORLD_MAP_POINT_LAKE_HYLIA
|
||||
8, // WORLD_MAP_POINT_LON_LON_RANCH
|
||||
8, // WORLD_MAP_POINT_MARKET
|
||||
8, // WORLD_MAP_POINT_HYRULE_FIELD
|
||||
8, // WORLD_MAP_POINT_DEATH_MOUNTAIN
|
||||
8, // WORLD_MAP_POINT_KAKARIKO_VILLAGE
|
||||
8, // WORLD_MAP_POINT_LOST_WOODS
|
||||
8, // WORLD_MAP_POINT_KOKIRI_FOREST
|
||||
8, // WORLD_MAP_POINT_ZORAS_DOMAIN
|
||||
8, // QUAD_MAP_28
|
||||
8, // QUAD_MAP_29
|
||||
80, // QUAD_MAP_30
|
||||
64, // QUAD_MAP_31
|
||||
};
|
||||
|
||||
s16 gVtxPageMapWorldQuadsHeight[VTX_PAGE_MAP_WORLD_QUADS] = {
|
||||
24, 72, 13, 22, 19, 20, 19, 27, 14, 26, 22, 21, 49, 32, 45, 60, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 32, 8,
|
||||
24, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW
|
||||
72, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD
|
||||
13, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH
|
||||
22, // QUAD_MAP_WORLD_CLOUDS_MARKET
|
||||
19, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE
|
||||
20, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE
|
||||
19, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD
|
||||
27, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL
|
||||
14, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY
|
||||
26, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER
|
||||
22, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN
|
||||
21, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN
|
||||
49, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS
|
||||
45, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS
|
||||
60, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA
|
||||
8, // WORLD_MAP_POINT_HAUNTED_WASTELAND
|
||||
8, // WORLD_MAP_POINT_GERUDOS_FORTRESS
|
||||
8, // WORLD_MAP_POINT_GERUDO_VALLEY
|
||||
8, // WORLD_MAP_POINT_LAKE_HYLIA
|
||||
8, // WORLD_MAP_POINT_LON_LON_RANCH
|
||||
8, // WORLD_MAP_POINT_MARKET
|
||||
8, // WORLD_MAP_POINT_HYRULE_FIELD
|
||||
8, // WORLD_MAP_POINT_DEATH_MOUNTAIN
|
||||
8, // WORLD_MAP_POINT_KAKARIKO_VILLAGE
|
||||
8, // WORLD_MAP_POINT_LOST_WOODS
|
||||
8, // WORLD_MAP_POINT_KOKIRI_FOREST
|
||||
8, // WORLD_MAP_POINT_ZORAS_DOMAIN
|
||||
8, // QUAD_MAP_28
|
||||
16, // QUAD_MAP_29
|
||||
32, // QUAD_MAP_30
|
||||
8, // QUAD_MAP_31
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1963,48 +2025,50 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
|
|||
|
||||
void KaleidoScope_UpdateNamePanel(PlayState* play) {
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
u16 sp2A;
|
||||
u16 texIndex;
|
||||
|
||||
if ((pauseCtx->namedItem != pauseCtx->cursorItem[pauseCtx->pageIndex]) ||
|
||||
((pauseCtx->pageIndex == PAUSE_MAP) && (pauseCtx->cursorSpecialPos != 0))) {
|
||||
|
||||
pauseCtx->namedItem = pauseCtx->cursorItem[pauseCtx->pageIndex];
|
||||
sp2A = pauseCtx->namedItem;
|
||||
texIndex = pauseCtx->namedItem;
|
||||
|
||||
osCreateMesgQueue(&pauseCtx->loadQueue, &pauseCtx->loadMsg, 1);
|
||||
|
||||
if (pauseCtx->namedItem != PAUSE_ITEM_NONE) {
|
||||
if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) {
|
||||
// `texIndex` is a `WorldMapPoint` enum value
|
||||
|
||||
if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
|
||||
sp2A += 12;
|
||||
texIndex += WORLD_MAP_POINT_MAX;
|
||||
}
|
||||
|
||||
#if OOT_PAL
|
||||
if (gSaveContext.language == LANGUAGE_FRA) {
|
||||
sp2A += 12;
|
||||
texIndex += WORLD_MAP_POINT_MAX;
|
||||
}
|
||||
#endif
|
||||
|
||||
DMA_REQUEST_SYNC(pauseCtx->nameSegment,
|
||||
(uintptr_t)_map_name_staticSegmentRomStart + (sp2A * MAP_NAME_TEX1_SIZE),
|
||||
(uintptr_t)_map_name_staticSegmentRomStart + (texIndex * MAP_NAME_TEX1_SIZE),
|
||||
MAP_NAME_TEX1_SIZE, "../z_kaleido_scope_PAL.c", 2093);
|
||||
} else {
|
||||
PRINTF("zoom_name=%d\n", pauseCtx->namedItem);
|
||||
|
||||
if (gSaveContext.language) { // != LANGUAGE_JPN for NTSC versions, LANGUAGE_ENG for PAL versions
|
||||
sp2A += 123;
|
||||
texIndex += 123;
|
||||
}
|
||||
|
||||
#if OOT_PAL
|
||||
if (gSaveContext.language == LANGUAGE_FRA) {
|
||||
sp2A += 123;
|
||||
texIndex += 123;
|
||||
}
|
||||
#endif
|
||||
|
||||
PRINTF("J_N=%d point=%d\n", gSaveContext.language, sp2A);
|
||||
PRINTF("J_N=%d point=%d\n", gSaveContext.language, texIndex);
|
||||
|
||||
DMA_REQUEST_SYNC(pauseCtx->nameSegment,
|
||||
(uintptr_t)_item_name_staticSegmentRomStart + (sp2A * ITEM_NAME_TEX_SIZE),
|
||||
(uintptr_t)_item_name_staticSegmentRomStart + (texIndex * ITEM_NAME_TEX_SIZE),
|
||||
ITEM_NAME_TEX_SIZE, "../z_kaleido_scope_PAL.c", 2120);
|
||||
}
|
||||
|
||||
|
@ -2112,9 +2176,38 @@ static s16 sVtxPageMapDungeonQuadsX[VTX_PAGE_MAP_DUNGEON_QUADS] = {
|
|||
};
|
||||
static s16 sVtxPageQuestQuadsX[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 };
|
||||
static s16 sVtxPageMapWorldQuadsX[VTX_PAGE_MAP_WORLD_QUADS] = {
|
||||
0x002F, 0xFFCF, 0xFFEF, 0xFFF1, 0xFFF7, 0x0018, 0x002B, 0x000E, 0x0009, 0x0026, 0x0052,
|
||||
0x0047, 0xFFB4, 0xFFA9, 0xFF94, 0xFFCA, 0xFFA3, 0xFFBD, 0xFFC8, 0xFFDF, 0xFFF6, 0x0001,
|
||||
0x000E, 0x0018, 0x0023, 0x003A, 0x004A, 0x0059, 0x0000, 0xFFC6, 0x0013, 0x001C,
|
||||
47, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW
|
||||
-49, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD
|
||||
-17, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH
|
||||
-15, // QUAD_MAP_WORLD_CLOUDS_MARKET
|
||||
-9, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE
|
||||
24, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE
|
||||
43, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD
|
||||
14, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL
|
||||
9, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY
|
||||
38, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER
|
||||
82, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN
|
||||
71, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN
|
||||
-76, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY
|
||||
-87, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS
|
||||
-108, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS
|
||||
-54, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA
|
||||
-93, // WORLD_MAP_POINT_HAUNTED_WASTELAND
|
||||
-67, // WORLD_MAP_POINT_GERUDOS_FORTRESS
|
||||
-56, // WORLD_MAP_POINT_GERUDO_VALLEY
|
||||
-33, // WORLD_MAP_POINT_LAKE_HYLIA
|
||||
-10, // WORLD_MAP_POINT_LON_LON_RANCH
|
||||
1, // WORLD_MAP_POINT_MARKET
|
||||
14, // WORLD_MAP_POINT_HYRULE_FIELD
|
||||
24, // WORLD_MAP_POINT_DEATH_MOUNTAIN
|
||||
35, // WORLD_MAP_POINT_KAKARIKO_VILLAGE
|
||||
58, // WORLD_MAP_POINT_LOST_WOODS
|
||||
74, // WORLD_MAP_POINT_KOKIRI_FOREST
|
||||
89, // WORLD_MAP_POINT_ZORAS_DOMAIN
|
||||
0, // QUAD_MAP_28
|
||||
-58, // QUAD_MAP_29
|
||||
19, // QUAD_MAP_30
|
||||
28, // QUAD_MAP_31
|
||||
};
|
||||
static s16 sVtxPagePromptQuadsX[VTX_PAGE_PROMPT_QUADS] = {
|
||||
0xFFB4, 0xFFC6, 0x000A, 0xFFC6, 0x000A,
|
||||
|
@ -2137,9 +2230,38 @@ static s16 sVtxPageMapDungeonQuadsY[VTX_PAGE_MAP_DUNGEON_QUADS] = {
|
|||
};
|
||||
static s16 sVtxPageQuestQuadsY[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 };
|
||||
static s16 sVtxPageMapWorldQuadsY[VTX_PAGE_MAP_WORLD_QUADS] = {
|
||||
0x000F, 0x0028, 0x000B, 0x002D, 0x0034, 0x0025, 0x0024, 0x0039, 0x0036, 0x0021, 0x001F,
|
||||
0x002D, 0x0020, 0x002A, 0x0031, 0xFFF6, 0x001F, 0x001B, 0x000F, 0xFFCF, 0x0008, 0x0026,
|
||||
0x0007, 0x002F, 0x001E, 0x0001, 0xFFF7, 0x0019, 0x0000, 0x0001, 0xFFE0, 0xFFE6,
|
||||
15, // QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW
|
||||
40, // QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD
|
||||
11, // QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH
|
||||
45, // QUAD_MAP_WORLD_CLOUDS_MARKET
|
||||
52, // QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE
|
||||
37, // QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE
|
||||
36, // QUAD_MAP_WORLD_CLOUDS_GRAVEYARD
|
||||
57, // QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL
|
||||
54, // QUAD_MAP_WORLD_CLOUDS_GORON_CITY
|
||||
33, // QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER
|
||||
31, // QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN
|
||||
45, // QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN
|
||||
32, // QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY
|
||||
42, // QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS
|
||||
49, // QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS
|
||||
-10, // QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA
|
||||
31, // WORLD_MAP_POINT_HAUNTED_WASTELAND
|
||||
27, // WORLD_MAP_POINT_GERUDOS_FORTRESS
|
||||
15, // WORLD_MAP_POINT_GERUDO_VALLEY
|
||||
-49, // WORLD_MAP_POINT_LAKE_HYLIA
|
||||
8, // WORLD_MAP_POINT_LON_LON_RANCH
|
||||
38, // WORLD_MAP_POINT_MARKET
|
||||
7, // WORLD_MAP_POINT_HYRULE_FIELD
|
||||
47, // WORLD_MAP_POINT_DEATH_MOUNTAIN
|
||||
30, // WORLD_MAP_POINT_KAKARIKO_VILLAGE
|
||||
1, // WORLD_MAP_POINT_LOST_WOODS
|
||||
-9, // WORLD_MAP_POINT_KOKIRI_FOREST
|
||||
25, // WORLD_MAP_POINT_ZORAS_DOMAIN
|
||||
0, // QUAD_MAP_28
|
||||
1, // QUAD_MAP_29
|
||||
-32, // QUAD_MAP_30
|
||||
-26, // QUAD_MAP_31
|
||||
};
|
||||
static s16 sVtxPagePromptQuadsY[VTX_PAGE_PROMPT_QUADS] = {
|
||||
0x0024, 0x000A, 0x000A, 0xFFFA, 0xFFFA,
|
||||
|
@ -3397,198 +3519,164 @@ void KaleidoScope_Update(PlayState* play) {
|
|||
KaleidoScope_DrawPlayerWork(play);
|
||||
KaleidoScope_SetupPlayerPreRender(play);
|
||||
|
||||
// World map points
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(pauseCtx->worldMapPoints); i++) {
|
||||
pauseCtx->worldMapPoints[i] = 0;
|
||||
pauseCtx->worldMapPoints[i] = WORLD_MAP_POINT_STATE_HIDE;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_GERUDOS_CARD)) {
|
||||
pauseCtx->worldMapPoints[0] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_HAUNTED_WASTELAND] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
|
||||
pauseCtx->worldMapPoints[0] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_HAUNTED_WASTELAND] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_LONGSHOT) == ITEM_LONGSHOT) {
|
||||
pauseCtx->worldMapPoints[1] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDOS_FORTRESS] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_GERUDOS_CARD)) {
|
||||
pauseCtx->worldMapPoints[1] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDOS_FORTRESS] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_B2)) {
|
||||
pauseCtx->worldMapPoints[2] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDO_VALLEY] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_LONGSHOT) == ITEM_LONGSHOT) {
|
||||
pauseCtx->worldMapPoints[2] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDO_VALLEY] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_GERUDOS_CARD)) {
|
||||
pauseCtx->worldMapPoints[2] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_GERUDO_VALLEY] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (CUR_UPG_VALUE(UPG_SCALE)) {
|
||||
pauseCtx->worldMapPoints[3] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LAKE_HYLIA] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON)) {
|
||||
pauseCtx->worldMapPoints[3] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LAKE_HYLIA] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) {
|
||||
pauseCtx->worldMapPoints[3] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LAKE_HYLIA] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_09)) {
|
||||
pauseCtx->worldMapPoints[4] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_OCARINA_FAIRY) != ITEM_NONE) {
|
||||
pauseCtx->worldMapPoints[4] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
|
||||
pauseCtx->worldMapPoints[4] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) {
|
||||
pauseCtx->worldMapPoints[4] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
pauseCtx->worldMapPoints[4] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LON_LON_RANCH] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_09)) {
|
||||
pauseCtx->worldMapPoints[5] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_40)) {
|
||||
pauseCtx->worldMapPoints[5] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_OCARINA_OF_TIME) == ITEM_OCARINA_OF_TIME) {
|
||||
pauseCtx->worldMapPoints[5] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_45)) {
|
||||
pauseCtx->worldMapPoints[5] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT) {
|
||||
pauseCtx->worldMapPoints[5] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_MARKET] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_09)) {
|
||||
pauseCtx->worldMapPoints[6] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_HYRULE_FIELD] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_40)) {
|
||||
pauseCtx->worldMapPoints[7] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_25)) {
|
||||
pauseCtx->worldMapPoints[7] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) {
|
||||
pauseCtx->worldMapPoints[7] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_49)) {
|
||||
pauseCtx->worldMapPoints[7] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (gBitFlags[WORLD_MAP_AREA_KAKARIKO_VILLAGE] & gSaveContext.save.info.worldMapAreaData) {
|
||||
pauseCtx->worldMapPoints[8] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) {
|
||||
pauseCtx->worldMapPoints[8] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_SUN)) {
|
||||
pauseCtx->worldMapPoints[8] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_45)) {
|
||||
pauseCtx->worldMapPoints[8] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) {
|
||||
pauseCtx->worldMapPoints[8] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_STORMS)) {
|
||||
pauseCtx->worldMapPoints[8] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_67)) {
|
||||
pauseCtx->worldMapPoints[8] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_AA)) {
|
||||
pauseCtx->worldMapPoints[8] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
|
||||
pauseCtx->worldMapPoints[8] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (gBitFlags[WORLD_MAP_AREA_LOST_WOODS] & gSaveContext.save.info.worldMapAreaData) {
|
||||
pauseCtx->worldMapPoints[9] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_0F)) {
|
||||
pauseCtx->worldMapPoints[9] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_SARIA)) {
|
||||
pauseCtx->worldMapPoints[9] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) {
|
||||
pauseCtx->worldMapPoints[9] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_48)) {
|
||||
pauseCtx->worldMapPoints[9] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
pauseCtx->worldMapPoints[10] = 2;
|
||||
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_09)) {
|
||||
pauseCtx->worldMapPoints[10] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_6E)) {
|
||||
pauseCtx->worldMapPoints[10] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_0F)) {
|
||||
pauseCtx->worldMapPoints[10] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_KOKIRI_FOREST] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) {
|
||||
pauseCtx->worldMapPoints[11] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_25)) {
|
||||
pauseCtx->worldMapPoints[11] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_37)) {
|
||||
pauseCtx->worldMapPoints[11] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_HOOKSHOT) == ITEM_HOOKSHOT) {
|
||||
pauseCtx->worldMapPoints[11] = 2;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_HIGHLIGHT;
|
||||
}
|
||||
|
||||
if (CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON)) {
|
||||
pauseCtx->worldMapPoints[11] = 1;
|
||||
pauseCtx->worldMapPoints[WORLD_MAP_POINT_ZORAS_DOMAIN] = WORLD_MAP_POINT_STATE_SHOW;
|
||||
}
|
||||
|
||||
pauseCtx->tradeQuestLocation = 0xFF;
|
||||
|
|
|
@ -40,6 +40,36 @@ extern u8 gAreaGsFlags[];
|
|||
#define WORLD_MAP_IMAGE_FRAG_HEIGHT ((TMEM_SIZE / 2) / (WORLD_MAP_IMAGE_WIDTH * G_IM_SIZ_8b_BYTES))
|
||||
#define WORLD_MAP_IMAGE_FRAG_NUM (((WORLD_MAP_IMAGE_HEIGHT - 1) / WORLD_MAP_IMAGE_FRAG_HEIGHT) + 1)
|
||||
|
||||
// Clouds quads cover undiscovered areas.
|
||||
// Point quads are location markers. They can also be highlighted as a hint of where to go.
|
||||
typedef enum MapQuad {
|
||||
/* 0 */ QUAD_MAP_WORLD_CLOUDS_SACRED_FOREST_MEADOW,
|
||||
/* 1 */ QUAD_MAP_WORLD_CLOUDS_HYRULE_FIELD,
|
||||
/* 2 */ QUAD_MAP_WORLD_CLOUDS_LON_LON_RANCH,
|
||||
/* 3 */ QUAD_MAP_WORLD_CLOUDS_MARKET,
|
||||
/* 4 */ QUAD_MAP_WORLD_CLOUDS_HYRULE_CASTLE,
|
||||
/* 5 */ QUAD_MAP_WORLD_CLOUDS_KAKARIKO_VILLAGE,
|
||||
/* 6 */ QUAD_MAP_WORLD_CLOUDS_GRAVEYARD,
|
||||
/* 7 */ QUAD_MAP_WORLD_CLOUDS_DEATH_MOUNTAIN_TRAIL,
|
||||
/* 8 */ QUAD_MAP_WORLD_CLOUDS_GORON_CITY,
|
||||
/* 9 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_RIVER,
|
||||
/* 10 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_DOMAIN,
|
||||
/* 11 */ QUAD_MAP_WORLD_CLOUDS_ZORAS_FOUNTAIN,
|
||||
/* 12 */ QUAD_MAP_WORLD_CLOUDS_GERUDO_VALLEY,
|
||||
/* 13 */ QUAD_MAP_WORLD_CLOUDS_GERUDOS_FORTRESS,
|
||||
/* 14 */ QUAD_MAP_WORLD_CLOUDS_DESERT_COLOSSUS,
|
||||
/* 15 */ QUAD_MAP_WORLD_CLOUDS_LAKE_HYLIA,
|
||||
/* 16 */ QUAD_MAP_WORLD_POINT_FIRST,
|
||||
// 16 to 27 follows the `WorldMapPoint` enum
|
||||
/* 27 */ QUAD_MAP_WORLD_POINT_LAST = QUAD_MAP_WORLD_POINT_FIRST + WORLD_MAP_POINT_MAX - 1,
|
||||
/* 28 */ QUAD_MAP_28,
|
||||
/* 29 */ QUAD_MAP_29,
|
||||
/* 30 */ QUAD_MAP_30,
|
||||
/* 31 */ QUAD_MAP_31,
|
||||
/* 32 */ QUAD_MAP_WORLD_IMAGE_FIRST,
|
||||
/* 46 */ QUAD_MAP_WORLD_IMAGE_LAST = QUAD_MAP_WORLD_IMAGE_FIRST + WORLD_MAP_IMAGE_FRAG_NUM - 1
|
||||
} MapQuad;
|
||||
|
||||
void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx);
|
||||
s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point);
|
||||
void KaleidoScope_DrawDebugEditor(PlayState* play);
|
||||
|
|
Loading…
Reference in a new issue