mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
More OKs, split map_data.data, more doc
This commit is contained in:
+1
-3
@@ -1657,7 +1657,6 @@ s32 ZeldaArena_Check();
|
||||
void ZeldaArena_Init(void* start, size_t size);
|
||||
void ZeldaArena_Cleanup();
|
||||
u8 ZeldaArena_IsInitialized();
|
||||
// void func_80102E40(void);
|
||||
// void func_80102E90(void);
|
||||
// void func_80102EA4(void);
|
||||
void func_80102EB4(u32 param_1);
|
||||
@@ -1668,7 +1667,6 @@ s32 func_80102EF0(PlayState* play);
|
||||
// void func_801030B4(void);
|
||||
// void func_801030F4(void);
|
||||
// void func_801031D0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_801039EC(void);
|
||||
// void func_80103A10(void);
|
||||
// void func_80103A58(void);
|
||||
// void func_8010439C(void);
|
||||
@@ -2827,7 +2825,7 @@ s32 func_80178A94(s32 param_1, s32 param_2);
|
||||
// void func_80178C80(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80178D7C(void);
|
||||
// void func_80178DAC(void);
|
||||
// void func_80178E3C(void);
|
||||
void func_80178E3C(uintptr_t vrom, s32 id, void* dst, s32 size);
|
||||
// void func_80178E7C(void);
|
||||
// void Check_WriteRGBA16Pixel(u16* buffer, u32 x, u32 y, u32 value);
|
||||
// void Check_WriteI4Pixel(u16* buffer, u32 x, u32 y, u32 value);
|
||||
|
||||
+6
-2
@@ -6,6 +6,8 @@
|
||||
|
||||
/* z_map_data */
|
||||
|
||||
#define MAPDATA_SOURCE_MAP_I_STATIC 1
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ TexturePtr lmapTex; //minimap texture
|
||||
/* 0x04 */ u8 unk4;
|
||||
@@ -89,6 +91,8 @@ typedef struct {
|
||||
/* z_map_data */
|
||||
TexturePtr func_8010958C(s32);
|
||||
|
||||
s16 func_80109F78(s32);
|
||||
s32 func_80109BA0(s32);
|
||||
s32 func_80109714(s32);
|
||||
s32 MapData_GetIMapSize(s32);
|
||||
s32 func_80109A98(s32);
|
||||
@@ -97,6 +101,6 @@ s32 func_801096D4(s32 arg0);
|
||||
void func_8010983C(s32 arg0, s32 *arg1);
|
||||
void func_801097C8(s32 arg0, s32* arg1, s32* arg2);
|
||||
void func_80109754(s32 arg0, s32 *arg1, s32 *arg2);
|
||||
|
||||
void func_80178E3C(u8*, s32, s32, s32);
|
||||
void func_80109D40(s32, s32*, s32*);
|
||||
void func_80109DD8(s32, s32*, s32*);
|
||||
#endif
|
||||
|
||||
@@ -491,6 +491,7 @@ beginseg
|
||||
include "build/data/code/z_map_disp.data.o"
|
||||
include "build/data/code/z_map_disp.bss.o"
|
||||
include "build/src/code/z_map_data.o"
|
||||
include "build/data/code/z_map_data.data.o"
|
||||
include "build/src/code/z_map_exp.o"
|
||||
include "build/src/code/z_msgevent.o"
|
||||
include "build/data/code/z_msgevent.data.o"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "z64map.h"
|
||||
|
||||
extern Color_RGBA8 D_801BED40[];
|
||||
extern T_801BED4C D_801BED4C[];
|
||||
extern T_801BED4C D_801BED4C[5];
|
||||
extern T_801BF170 D_801BED88[];
|
||||
extern s32 D_801BEFC8[];
|
||||
extern s32 D_801BF15C[5];
|
||||
@@ -245,7 +245,7 @@ s32 func_80109BF4(s32 arg0) {
|
||||
return 2;
|
||||
}
|
||||
if (arg0 < 0x3A) {
|
||||
return 1;
|
||||
return MAPDATA_SOURCE_MAP_I_STATIC;
|
||||
}
|
||||
if (arg0 >= 0x3A) {
|
||||
return 0;
|
||||
@@ -260,7 +260,7 @@ s32 func_80109C38(s32 arg0) {
|
||||
switch (func_80109BF4(arg0)) {
|
||||
case 0:
|
||||
return func_80109670(arg0 + 0xC6);
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
return func_80109A40(arg0);
|
||||
case 2:
|
||||
return 0;
|
||||
@@ -276,7 +276,7 @@ s32 MapData_GetIMapSize(s32 arg0) {
|
||||
switch (func_80109BF4(arg0)) {
|
||||
case 0:
|
||||
return func_801096D4(arg0 + 0xC6);
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
return func_80109A98(arg0);
|
||||
case 2:
|
||||
return 0;
|
||||
@@ -295,7 +295,7 @@ void func_80109D40(s32 arg0, s32* arg1, s32* arg2) {
|
||||
case 0:
|
||||
func_801095AC(arg0 + 0xC6, arg1, arg2);
|
||||
return;
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
func_8010997C(arg0, arg1, arg2);
|
||||
return;
|
||||
case 2:
|
||||
@@ -318,7 +318,7 @@ void func_80109DD8(s32 arg0, s32* arg1, s32* arg2) {
|
||||
case 0:
|
||||
func_801095DC(arg0 + 0xC6, arg1, arg2);
|
||||
return;
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
func_801099AC(arg0, arg1, arg2);
|
||||
return;
|
||||
case 2:
|
||||
@@ -338,7 +338,7 @@ void func_80109E70(s32 arg0, s32* arg1) {
|
||||
case 0:
|
||||
func_8010960C(arg0 + 0xC6, arg1);
|
||||
return;
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
func_801099DC(arg0, arg1);
|
||||
return;
|
||||
case 2:
|
||||
@@ -355,7 +355,7 @@ u8 func_80109EF8(s32 arg0) {
|
||||
switch (func_80109BF4(arg0)) {
|
||||
case 0:
|
||||
return func_80109630(arg0 + 0xC6);
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
return func_80109A00(arg0);
|
||||
case 2:
|
||||
default:
|
||||
@@ -370,7 +370,7 @@ s16 func_80109F78(s32 arg0) {
|
||||
switch (func_80109BF4(arg0)) {
|
||||
case 0:
|
||||
return func_80109650(arg0 + 0xC6);
|
||||
case 1:
|
||||
case MAPDATA_SOURCE_MAP_I_STATIC:
|
||||
return func_80109A20(arg0);
|
||||
case 2:
|
||||
default:
|
||||
|
||||
+54
-74
@@ -2,22 +2,6 @@
|
||||
|
||||
void MapDisp_DestroyIMap(PlayState* play);
|
||||
void MapDisp_InitIMap(PlayState* play);
|
||||
void func_80103090(MinimapEntry*, s32*, s32*);
|
||||
void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot);
|
||||
void func_80106644(PlayState* play, s32 x, s32 z, s32 rot);
|
||||
s32 func_801039EC(PlayState* play);
|
||||
void func_80103A58(PlayState* play, Actor* actor);
|
||||
|
||||
void func_80106D5C(PlayState*, s32, s32, s32, s32, f32, s32);
|
||||
void func_80107B78(PlayState*, s32, s32, s32, s32, f32);
|
||||
void func_80108124(PlayState*, s32, s32, s32, s32, f32, s32);
|
||||
void func_80108558(PlayState*, s32, s32, s32, s32, f32, s32);
|
||||
s32 func_80108A64(PlayState*);
|
||||
s32 func_80109BA0(s32);
|
||||
s16 func_80109F78(s32);
|
||||
|
||||
void func_80109D40(s32, s32*, s32*, void*);
|
||||
void func_80109DD8(s32, s32*, s32*);
|
||||
|
||||
extern s32 D_801BEAD0[4]; // G_IM_SIZ
|
||||
extern s32 D_801BEAE0[4]; // siz_LOAD_BLOCK
|
||||
@@ -54,9 +38,9 @@ extern TexturePtr D_02003F20;
|
||||
extern Gfx D_0401ED00[];
|
||||
extern TexturePtr D_0C000000;
|
||||
|
||||
void func_80102E40(s32 arg0, s32 arg1) {
|
||||
if (func_80109A98(arg1) != 0) {
|
||||
func_80178E3C(SEGMENT_ROM_START(map_i_static), arg1, arg0, func_80109A98(arg1));
|
||||
void MapDisp_GetIMapTexture(void* dst, s32 iMapId) {
|
||||
if (func_80109A98(iMapId) != 0) {
|
||||
func_80178E3C(SEGMENT_ROM_START(map_i_static), iMapId, dst, func_80109A98(iMapId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,10 +194,13 @@ void func_801031D0(PlayState* play, TexturePtr arg1, s32 arg2, s32 arg3, s32 arg
|
||||
}
|
||||
}
|
||||
#else
|
||||
void func_801031D0(PlayState* play, TexturePtr arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_801031D0.s")
|
||||
#endif
|
||||
|
||||
s32 func_801039EC(PlayState *play) {
|
||||
// Tests if the map data should be rotated 180 degrees
|
||||
// SCENE_35TAKI is the only scene with data flipped in this manner.
|
||||
s32 MapDisp_IsDataRotated(PlayState *play) {
|
||||
if (play->sceneNum == SCENE_35TAKI) {
|
||||
return true;
|
||||
}
|
||||
@@ -278,7 +265,7 @@ void func_80103A58(PlayState *play, Actor *actor) {
|
||||
var_v0 = spAC;
|
||||
}
|
||||
spC0 = 1.0f / (f32) var_v0;
|
||||
if (func_801039EC(play) == 0) {
|
||||
if (!MapDisp_IsDataRotated(play)) {
|
||||
spD8 = (s32) ((actor->world.pos.x - (f32) spDC->unk2) * spC0) + D_801BEBB8.unk8 + D_801BEBB8.unkC - D_801BEBB8.unk8 + spD0;
|
||||
spD4 = (s32) ((actor->world.pos.z - (f32) spDC->unk6) * spC0) + D_801BEBB8.unkA + D_801BEBB8.unkE - D_801BEBB8.unkA + spCC;
|
||||
} else {
|
||||
@@ -299,7 +286,7 @@ void func_80103A58(PlayState *play, Actor *actor) {
|
||||
Matrix_Translate((f32) spD8 - 160.0f, 120.0f - (f32) spD4, 0.0f, MTXMODE_NEW);
|
||||
Matrix_RotateXFApply(-1.6f);
|
||||
spA2 = (s32) (0x7FFF - actor->focus.rot.y) / 1024;
|
||||
if (func_801039EC(play) != 0) {
|
||||
if (MapDisp_IsDataRotated(play)) {
|
||||
spA2 += 0x7FFF;
|
||||
}
|
||||
Matrix_RotateYF((f32) spA2 / 10.0f, MTXMODE_APPLY);
|
||||
@@ -367,6 +354,7 @@ void func_80103A58(PlayState *play, Actor *actor) {
|
||||
}
|
||||
}
|
||||
#else
|
||||
void func_80103A58(PlayState* play, Actor* actor);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80103A58.s")
|
||||
#endif
|
||||
|
||||
@@ -433,7 +421,7 @@ void func_801045AC(PlayState* play, Actor* actor) {
|
||||
var_v1 = sp4C;
|
||||
}
|
||||
sp5C = 1.0f / var_v1;
|
||||
if (func_801039EC(play) == 0) {
|
||||
if (!MapDisp_IsDataRotated(play)) {
|
||||
sp78 = (((s32) ((actor->world.pos.x - sp7C->unk2) * sp5C) + D_801BEBB8.unk8 + D_801BEBB8.unkC) - D_801BEBB8.unk8) + sp70;
|
||||
sp74 = (((s32) ((actor->world.pos.z - sp7C->unk6) * sp5C) + D_801BEBB8.unkA + D_801BEBB8.unkE) - D_801BEBB8.unkA) + sp6C;
|
||||
} else {
|
||||
@@ -509,7 +497,6 @@ void func_80104C80(PlayState* play) {
|
||||
if (&play->objectCtx) {}
|
||||
}
|
||||
|
||||
//init
|
||||
void MapDisp_Init(PlayState* play) {
|
||||
s32 i;
|
||||
|
||||
@@ -680,7 +667,6 @@ void func_8010534C(PlayState* play) {
|
||||
D_801BEBB8.unk58 = 0;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_8010549C(PlayState* globalCtx, void* segmentAddress) {
|
||||
MinimapEntry* var_v1;
|
||||
MinimapList* temp_v0;
|
||||
@@ -694,7 +680,7 @@ void func_8010549C(PlayState* globalCtx, void* segmentAddress) {
|
||||
|
||||
for (i = 0; i < D_801BEC1C; i++)
|
||||
{
|
||||
D_801F5130[i] = var_v1[i];
|
||||
D_801F5130[i] = *var_v1++;
|
||||
}
|
||||
|
||||
D_801BEC14.entry = D_801F5130;
|
||||
@@ -703,17 +689,14 @@ void func_8010549C(PlayState* globalCtx, void* segmentAddress) {
|
||||
D_801BEBB8.unk32 = globalCtx->colCtx.colHeader->minBounds.z;
|
||||
D_801BEBB8.unk34 = globalCtx->colCtx.colHeader->maxBounds.x - globalCtx->colCtx.colHeader->minBounds.x;
|
||||
D_801BEBB8.unk36 = globalCtx->colCtx.colHeader->maxBounds.z - globalCtx->colCtx.colHeader->minBounds.z;
|
||||
D_801BEBB8.unk38 = (s16) (D_801BEBB8.unk30 + (D_801BEBB8.unk34 * 0.5f));
|
||||
D_801BEBB8.unk3A = (s16) (D_801BEBB8.unk32 + (D_801BEBB8.unk36 * 0.5f));
|
||||
D_801BEBB8.unk38 = D_801BEBB8.unk30 + (D_801BEBB8.unk34 * 0.5f);
|
||||
D_801BEBB8.unk3A = D_801BEBB8.unk32 + (D_801BEBB8.unk36 * 0.5f);
|
||||
}
|
||||
}
|
||||
D_801BEBB8.unk0 = &D_801BEC14;
|
||||
func_80104F34(globalCtx);
|
||||
func_8010534C(globalCtx);
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_8010549C.s")
|
||||
#endif
|
||||
|
||||
void func_8010565C(PlayState* play, s32 num, void* segmentAddress) {
|
||||
MinimapChest* var_v1;
|
||||
@@ -812,8 +795,6 @@ void func_80105B34(PlayState* play) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
//https://decomp.me/scratch/oK0wd
|
||||
void func_80105C40(s16 arg0) {
|
||||
MinimapEntry* temp_s0;
|
||||
MinimapEntry* sp58;
|
||||
@@ -823,11 +804,6 @@ void func_80105C40(s16 arg0) {
|
||||
s32 sp48;
|
||||
s32 sp44;
|
||||
s32 sp40;
|
||||
s32 sp3C;
|
||||
s32 sp38;
|
||||
s32 var_v0;
|
||||
s32 pad;
|
||||
s32 sp2C;
|
||||
|
||||
if ((D_801BEBB8.unk0 != NULL) && (D_801BEC1C != 0) && (arg0 != -1)) {
|
||||
temp_s0 = &D_801BEBB8.unk0->entry[arg0];
|
||||
@@ -867,20 +843,27 @@ void func_80105C40(s16 arg0) {
|
||||
D_801BEBB8.unkE = D_801BEBB8.unkA;
|
||||
return;
|
||||
}
|
||||
func_801030F4(sp58, &sp3C, &sp38);
|
||||
//temp_a0 = ;
|
||||
var_v0 = D_801BEBB8.unk0->unk4;
|
||||
if (D_801BEBB8.unk0->unk4 == 0) {
|
||||
var_v0 = 0x14;
|
||||
} else if (D_801BEBB8.unk0->unk4 == -1) {
|
||||
func_801030B4(temp_s0, &sp2C);
|
||||
var_v0 = sp2C;
|
||||
else {
|
||||
s32 sp3C;
|
||||
s32 sp38;
|
||||
s32 var_v0;
|
||||
s32 pad;
|
||||
func_801030F4(sp58, &sp3C, &sp38);
|
||||
//temp_a0 = ;
|
||||
var_v0 = D_801BEBB8.unk0->unk4;
|
||||
if (D_801BEBB8.unk0->unk4 == 0) {
|
||||
var_v0 = 0x14;
|
||||
} else if (D_801BEBB8.unk0->unk4 == -1) {
|
||||
s32 sp2C;
|
||||
func_801030B4(temp_s0, &sp2C);
|
||||
var_v0 = sp2C;
|
||||
}
|
||||
//temp_fv0 = ;
|
||||
D_801BEBB8.unk1C = (s16) (s32) (((f32) sp44 + (((f32) sp58->unk2 - (f32) temp_s0->unk2) * (1.0f / var_v0))) - (f32) sp3C);
|
||||
D_801BEBB8.unk1E = (s16) (s32) (((f32) sp40 + (((f32) sp58->unk6 - (f32) temp_s0->unk6) * (1.0f / var_v0))) - (f32) sp38);
|
||||
D_801BEBB8.unkC = sp54 - D_801BEBB8.unk1C;
|
||||
D_801BEBB8.unkE = sp50 - D_801BEBB8.unk1E;
|
||||
}
|
||||
//temp_fv0 = ;
|
||||
D_801BEBB8.unk1C = (s16) (s32) (((f32) sp44 + (((f32) sp58->unk2 - (f32) temp_s0->unk2) * (1.0f / var_v0))) - (f32) sp3C);
|
||||
D_801BEBB8.unk1E = (s16) (s32) (((f32) sp40 + (((f32) sp58->unk6 - (f32) temp_s0->unk6) * (1.0f / var_v0))) - (f32) sp38);
|
||||
D_801BEBB8.unkC = sp54 - D_801BEBB8.unk1C;
|
||||
D_801BEBB8.unkE = sp50 - D_801BEBB8.unk1E;
|
||||
}
|
||||
else {
|
||||
D_801BEBB8.unk1C = D_801BEBB8.unk1E = 0;
|
||||
@@ -910,9 +893,6 @@ void func_80105C40(s16 arg0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80105C40.s")
|
||||
#endif
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
//https://decomp.me/scratch/WiRnZ
|
||||
@@ -925,22 +905,22 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) {
|
||||
s32 sp58;
|
||||
s32 sp54;
|
||||
s32 var_v0;
|
||||
f32 sp4C;
|
||||
s32 sp48;
|
||||
|
||||
sp6C = &D_801BEBB8.unk0->entry[D_801BEBB8.curRoom];
|
||||
if (sp6C->unk0 != 0xFFFF) {
|
||||
f32 sp4C;
|
||||
func_801030F4(sp6C, &sp60, &sp5C);
|
||||
func_80103090(sp6C, &sp58, &sp54);
|
||||
var_v0 = D_801BEBB8.unk0->unk4;
|
||||
if (D_801BEBB8.unk0->unk4 == 0) {
|
||||
var_v0 = 0x14;
|
||||
var_v0 = 20;
|
||||
} else if (D_801BEBB8.unk0->unk4 == -1) {
|
||||
s32 sp48;
|
||||
func_801030B4(sp6C, &sp48);
|
||||
var_v0 = sp48;
|
||||
}
|
||||
sp4C = (1.0f / var_v0);
|
||||
if (func_801039EC(play) == 0) {
|
||||
if (!MapDisp_IsDataRotated(play)) {
|
||||
sp68 = (s32) ((x - (f32)sp6C->unk2) * sp4C) + D_801BEBB8.unk8 + (D_801BEBB8.unkC - D_801BEBB8.unk8) + sp60;
|
||||
sp64 = (s32) ((z - (f32)sp6C->unk6) * sp4C) + D_801BEBB8.unkA + (D_801BEBB8.unkE - D_801BEBB8.unkA) + sp5C;
|
||||
} else {
|
||||
@@ -957,7 +937,7 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) {
|
||||
gDPSetRenderMode(OVERLAY_DISP++, G_RM_AA_DEC_LINE, G_RM_NOOP2);
|
||||
Matrix_Translate((f32) sp68 - 160.0f, 120.0f - (f32) sp64, 0.0f, MTXMODE_NEW);
|
||||
Matrix_RotateXFApply(-1.6f);
|
||||
if (func_801039EC(play) != 0) {
|
||||
if (MapDisp_IsDataRotated(play)) {
|
||||
rot += 0x7FFF;
|
||||
}
|
||||
Matrix_RotateYF(rot / 10.0f, MTXMODE_APPLY);
|
||||
@@ -970,6 +950,7 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) {
|
||||
}
|
||||
}
|
||||
#else
|
||||
void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80105FE0.s")
|
||||
#endif
|
||||
|
||||
@@ -1021,12 +1002,10 @@ s32 func_8010657C(s32 arg0, s32 arg1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_80106644(PlayState *play, s32 x, s32 z, s32 rot) {
|
||||
s32 pad[2];
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
|
||||
if ((D_801BEBB8.unk0 != 0) && ((s32) play->pauseCtx.state < 4) && (XREG(95) == 0) && (play->interfaceCtx.minimapAlpha != 0)) {
|
||||
//sp2C = ;// + 0x10000;
|
||||
if ((D_801BEBB8.unk0 != 0) && ((s32) pauseCtx->state < 4) && (XREG(95) == 0) && (play->interfaceCtx.minimapAlpha != 0)) {
|
||||
if ((func_801064CC(play) == 0) && (D_801BEC1C != 0)) {
|
||||
if (func_80106450(play) != 0) {
|
||||
func_801031D0(play, D_801BEBB8.unk10, D_801BEBB8.unkC, D_801BEBB8.unkE, D_801BEBB8.curRoom, 1.0f - ((f32) D_801BEBB8.unk24 * 0.05f));
|
||||
@@ -1035,7 +1014,7 @@ void func_80106644(PlayState *play, s32 x, s32 z, s32 rot) {
|
||||
}
|
||||
func_80104AE8(play);
|
||||
}
|
||||
if (((func_8010A0A4(play) == 0) || (gSaveContext.save.inventory.dungeonItems[gSaveContext.mapIndex] & gBitFlags[1]) )
|
||||
if (((func_8010A0A4(play) == 0) || CHECK_DUNGEON_ITEM(1,gSaveContext.mapIndex ) )
|
||||
&& ((func_8010A0A4(play) != 0) || Inventory_IsMapVisible(play->sceneNum))) {
|
||||
if (play->interfaceCtx.unk_280 == 0) {
|
||||
func_80105FE0(play, x, z, rot);
|
||||
@@ -1045,9 +1024,6 @@ void func_80106644(PlayState *play, s32 x, s32 z, s32 rot) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80106644.s")
|
||||
#endif
|
||||
|
||||
void MapDisp_ResetIMap(void) {
|
||||
s32 i;
|
||||
@@ -1118,7 +1094,7 @@ void* func_801068FC(PlayState* play, void* heap) {
|
||||
D_801F56B0.unk84[0] = heap;
|
||||
for (var_s1 = 0; var_s1 < D_801F56B0.rooms; var_s1++) {
|
||||
temp_s2 = D_801F56B0.unk4[var_s1];
|
||||
func_80102E40(D_801F56B0.unk84[var_s1], temp_s2);
|
||||
MapDisp_GetIMapTexture(D_801F56B0.unk84[var_s1], temp_s2);
|
||||
if (var_s1 + 1 < D_801F56B0.rooms) {
|
||||
D_801F56B0.unk84[var_s1 + 1] = ALIGN16((intptr_t)D_801F56B0.unk84[var_s1] + MapData_GetIMapSize(temp_s2));
|
||||
} else {
|
||||
@@ -1188,7 +1164,8 @@ s32 func_80106D08(s32 sceneNum) {
|
||||
#ifdef NON_MATCHING
|
||||
// https://decomp.me/scratch/3cGkW
|
||||
void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6) {
|
||||
s32 var_a0;
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
//s32 var_a0;
|
||||
s32 var_a1_2;
|
||||
s32 var_a1_4;
|
||||
s32 var_a1_5;
|
||||
@@ -1209,9 +1186,9 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
|
||||
// | 1);
|
||||
if (CHECK_DUNGEON_ITEM(2, arg6)) {//*(gBitFlags + 8) & gSaveContext.save.inventory.dungeonItems[arg6]) {
|
||||
//15, 15, F (172, 172, 123)
|
||||
D_801BEC84[0xF] = COLOR16(176, 176, 128, 1); //0xAD5F;
|
||||
D_801BECA4[0xF] = COLOR16(176, 176, 128, 1);
|
||||
D_801BECC4[0xF] = COLOR16(176, 176, 128, 1);
|
||||
D_801BEC84[0xF] = 0xAD5F;
|
||||
D_801BECA4[0xF] = 0xAD5F;
|
||||
D_801BECC4[0xF] = 0xAD5F;
|
||||
} else {
|
||||
D_801BEC84[0xF] = 0;
|
||||
D_801BECA4[0xF] = 0;
|
||||
@@ -1222,7 +1199,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
|
||||
//temp_a0 = play->state.gfxCtx;
|
||||
//sp48 = arg6 + &gSaveContext;
|
||||
func_8012C628(play->state.gfxCtx);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, play->pauseCtx.alpha);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
|
||||
gDPLoadTLUT_pal16(POLY_OPA_DISP++, 0, D_801BEC84);
|
||||
gDPLoadTLUT_pal16(POLY_OPA_DISP++, 1, D_801BECA4);
|
||||
gDPLoadTLUT_pal16(POLY_OPA_DISP++, 2, D_801BECC4);
|
||||
@@ -1256,7 +1233,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
|
||||
continue;
|
||||
} else {
|
||||
//sp3C = play + 0x18000;
|
||||
func_80109D40(spE8, &sp118, &sp114, sp108);
|
||||
func_80109D40(spE8, &sp118, &sp114);
|
||||
func_80109DD8(spE8, &sp110, &sp10C);
|
||||
if (sp108->unk8 & 1) {
|
||||
sp110 = (sp118 / 2 - sp110) + sp118 / 2;
|
||||
@@ -1302,6 +1279,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
#else
|
||||
void func_80106D5C(PlayState*, s32, s32, s32, s32, f32, s32);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80106D5C.s")
|
||||
#endif
|
||||
|
||||
@@ -1470,6 +1448,7 @@ void func_80107B78(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
|
||||
}
|
||||
}
|
||||
#else
|
||||
void func_80107B78(PlayState*, s32, s32, s32, s32, f32);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80107B78.s")
|
||||
#endif
|
||||
|
||||
@@ -1545,6 +1524,7 @@ void func_80108558(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
|
||||
CLOSE_DISPS(arg0->state.gfxCtx);
|
||||
}
|
||||
#else
|
||||
void func_80108558(PlayState*, s32, s32, s32, s32, f32, s32);
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_disp/func_80108558.s")
|
||||
#endif
|
||||
|
||||
|
||||
@@ -540,7 +540,8 @@
|
||||
0x801BE960 : "z_lib",
|
||||
0x801BE990 : "z_lifemeter",
|
||||
0x801BEAB0 : "z_lights",
|
||||
0x801BEAD0 : "z_map_disp", # z_map_data is somewhere in here
|
||||
0x801BEAD0 : "z_map_disp",
|
||||
0x801BED40 : "z_map_data",
|
||||
0x801BF550 : "z_map_exp",
|
||||
0x801BF5C0 : "z_msgevent",
|
||||
0x801BF6C0 : "z_parameter",
|
||||
|
||||
@@ -1901,7 +1901,7 @@
|
||||
0x80102DBC:("ZeldaArena_Init",),
|
||||
0x80102DEC:("ZeldaArena_Cleanup",),
|
||||
0x80102E10:("ZeldaArena_IsInitialized",),
|
||||
0x80102E40:("func_80102E40",),
|
||||
0x80102E40:("MapDisp_GetIMapTexture",),
|
||||
0x80102E90:("func_80102E90",),
|
||||
0x80102EA4:("func_80102EA4",),
|
||||
0x80102EB4:("func_80102EB4",),
|
||||
@@ -1912,7 +1912,7 @@
|
||||
0x801030B4:("func_801030B4",),
|
||||
0x801030F4:("func_801030F4",),
|
||||
0x801031D0:("func_801031D0",),
|
||||
0x801039EC:("func_801039EC",),
|
||||
0x801039EC:("MapDisp_IsDataRotated",),
|
||||
0x80103A10:("func_80103A10",),
|
||||
0x80103A58:("func_80103A58",),
|
||||
0x8010439C:("func_8010439C",),
|
||||
|
||||
@@ -1013,38 +1013,29 @@
|
||||
0x801BEB10:("D_801BEB10","u32","[4]",0x10),
|
||||
0x801BEB20:("D_801BEB20","u32","[4]",0x10),
|
||||
0x801BEB38:("D_801BEB38","UNK_TYPE1","",0x1),
|
||||
0x801BEBB8:("D_801BEBB8","UNK_TYPE4","",0x4),
|
||||
0x801BEBD8:("D_801BEBD8","UNK_TYPE4","",0x4),
|
||||
0x801BEBB8:("D_801BEBB8","UNK_TYPE4","",0x40),
|
||||
0x801BEBF8:("D_801BEBF8","UNK_TYPE2","",0x2),
|
||||
0x801BEBFA:("D_801BEBFA","UNK_TYPE2","",0x2),
|
||||
0x801BEBFC:("D_801BEBFC","UNK_TYPE2","",0x2),
|
||||
0x801BEC10:("D_801BEC10","UNK_TYPE2","",0x2),
|
||||
0x801BEBFC:("D_801BEBFC","UNK_TYPE2","",0x18),
|
||||
0x801BEC14:("D_801BEC14","MinimapList","",0x8),
|
||||
0x801BEC1C:("D_801BEC1C","UNK_TYPE4","",0x4),
|
||||
0x801BEC20:("D_801BEC20","UNK_TYPE4","",0x4),
|
||||
0x801BEC24:("D_801BEC24","UNK_TYPE1","",0x1),
|
||||
0x801BEC24:("D_801BEC24","UNK_TYPE1","",0x8),
|
||||
0x801BEC2C:("D_801BEC2C","Color_RGBA8","[12]",0x30),
|
||||
0x801BEC5C:("D_801BEC5C","T_801BEC5C","[5]",0x14),
|
||||
0x801BEC70:("D_801BEC70","UNK_TYPE4","",0x4),
|
||||
0x801BEC70:("D_801BEC70","UNK_TYPE4","",0x14),
|
||||
0x801BEC84:("D_801BEC84","u16","[16]",0x10),
|
||||
0x801BECA4:("D_801BECA4","u16","[16]",0x10),
|
||||
0x801BECC4:("D_801BECC4","u16","[16]",0x10),
|
||||
0x801BECE4:("D_801BECE4","UNK_TYPE1","",0x1),
|
||||
0x801BED00:("D_801BED00","UNK_TYPE1","",0x1),
|
||||
0x801BED24:("D_801BED24","UNK_TYPE2","",0x2),
|
||||
0x801BED3C:("D_801BED3C","UNK_TYPE1","",0x1),
|
||||
0x801BECE4:("D_801BECE4","UNK_TYPE1","",0x1C),
|
||||
0x801BED00:("D_801BED00","UNK_TYPE1","",0x24),
|
||||
0x801BED24:("D_801BED24","UNK_TYPE2","",0x18),
|
||||
0x801BED40:("D_801BED40","UNK_TYPE1","",0x1),
|
||||
0x801BED4C:("D_801BED4C","UNK_TYPE1","",0x1),
|
||||
0x801BED54:("D_801BED54","UNK_TYPE1","",0x1),
|
||||
0x801BED55:("D_801BED55","UNK_TYPE1","",0x1),
|
||||
0x801BED56:("D_801BED56","UNK_TYPE1","",0x1),
|
||||
0x801BED4C:("D_801BED4C","UNK_TYPE1","",0x3C),
|
||||
0x801BED88:("D_801BED88","UNK_TYPE1","",0x1),
|
||||
0x801BEFC8:("D_801BEFC8","UNK_TYPE1","",0x1),
|
||||
0x801BF15C:("D_801BF15C","UNK_TYPE1","",0x1),
|
||||
0x801BF170:("D_801BF170","UNK_TYPE1","",0x1),
|
||||
0x801BF176:("D_801BF176","UNK_TYPE1","",0x1),
|
||||
0x801BF177:("D_801BF177","UNK_TYPE1","",0x1),
|
||||
0x801BF178:("D_801BF178","UNK_TYPE1","",0x1),
|
||||
0x801BF170:("D_801BF170","UNK_TYPE1","",0x244),
|
||||
0x801BF3B4:("D_801BF3B4","UNK_TYPE1","",0x1),
|
||||
0x801BF550:("D_801BF550","UNK_TYPE2","",0x2),
|
||||
0x801BF554:("D_801BF554","UNK_TYPE2","",0x2),
|
||||
|
||||
Reference in New Issue
Block a user