First batch of functions

This commit is contained in:
mzxrules
2022-06-23 18:16:07 -04:00
parent f77c4770f7
commit 31f40adf09
7 changed files with 916 additions and 29 deletions
+1 -1
View File
@@ -1774,7 +1774,7 @@ s32 func_8010A0A4(GlobalContext* globalCtx);
// void func_8010A0F0(void);
// void func_8010A164(void);
// void func_8010A194(void);
// void func_8010A208(void);
s32 func_8010A208(GlobalContext* play);
// void func_8010A238(void);
// void func_8010A2AC(void);
void func_8010A2DC(GlobalContext* globalCtx);
+1 -1
View File
@@ -983,7 +983,7 @@ extern u8 D_801BDBC8;
// extern UNK_TYPE2 D_801BEBFA;
// extern UNK_TYPE2 D_801BEBFC;
// extern UNK_TYPE2 D_801BEC10;
extern UNK_PTR D_801BEC14;
extern MinimapList D_801BEC14;
// extern UNK_TYPE4 D_801BEC1C;
// extern UNK_TYPE4 D_801BEC20;
// extern UNK_TYPE1 D_801BEC24;
+82
View File
@@ -0,0 +1,82 @@
#ifndef Z64_MAP_D_H
#define Z64_MAP_D_H
#include "ultra64.h"
/* z_map_data */
typedef struct {
/* 0x00 */ s32 unk0;
/* 0x04 */ u8 unk4;
/* 0x05 */ u8 unk5;
/* 0x06 */ u8 unk6;
/* 0x07 */ u8 unk7;
/* 0x08 */ u8 unk8;
/* 0x09 */ u8 unk9;
/* 0x0A */ s16 unkA;
} T_D_801BED4C; // size 0x0C?
typedef struct {
/* 0x00 */ u8 unk0;
/* 0x01 */ u8 unk1;
/* 0x02 */ s16 unk2;
/* 0x04 */ s16 unk4;
/* 0x06 */ u8 unk6;
/* 0x07 */ u8 unk7;
/* 0x08 */ s16 unk8;
} T_D_801BED88; // size 0x0A
/* z_map_disp */
typedef struct {
/* 0x00 */ s16 unk0;
/* 0x00 */ s16 unk2;
/* 0x00 */ s16 unk4;
/* 0x00 */ s16 unk6;
} T_D_801BEBB8_unk48;
typedef struct {
/* 0x00 */ MinimapList* unk0; //unk0 -> sub1 -> s16[5]
/* 0x04 */ s32 unk4;
/* 0x08 */ char unk8[4];
/* 0x0C */ s16 unkC;
/* 0x0E */ s16 unkE;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14; //unk4 same type as unk14
/* 0x18 */ s32 unk18;
/* 0x1C */ s16 unk1C; //same as 0C
/* 0x1E */ s16 unk1E; //same as 0E
/* 0x20 */ char unk20[4];
/* 0x24 */ s32 unk24;
/* 0x28 */ char unk28[8];
/* 0x30 */ s16 unk30; //scene minBounds.x
/* 0x32 */ s16 unk32; //scene minBounds.z
/* 0x34 */ s16 unk34; //scene boundsWidth.x
/* 0x36 */ s16 unk36; //scene boundsWidth.z
/* 0x38 */ s16 unk38; //scene boundsMidpoint.x
/* 0x3A */ s16 unk3A; //scene boundsMidpoint.z
/* 0x3C */ s16* unk3C;
/* 0x40 */ s16 unk40;
/* 0x42 */ char unk42[2];
/* 0x44 */ s16 unk44;
/* 0x48 */ s16* unk48;
} T_D_801BEBB8;
typedef struct{
/* 0x00 */ u16 unk0;
/* 0x02 */ s16 unk2;
/* 0x04 */ char unk4[2];
/* 0x06 */ s16 unk6;
/* 0x08 */ u16 unk8;
} T_func_801030F4; //probably above, size 0x0A?
typedef struct {
/* 0x00 */ s16 unk0; //scene
/* 0x02 */ s16 unk2;
} T_D_801BEC5C;
/* z_map_data */
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);
#endif
+1 -1
View File
@@ -469,7 +469,7 @@ typedef struct {
} Path; // size = 0x8
typedef struct {
/* 0x00 */ UNK_TYPE2 unk0;
/* 0x00 */ u16 unk0;
/* 0x02 */ UNK_TYPE2 unk2;
/* 0x04 */ UNK_TYPE2 unk4;
/* 0x06 */ UNK_TYPE2 unk6;
+132 -19
View File
@@ -1,44 +1,157 @@
#include "global.h"
#include "z64map.h"
extern T_D_801BED4C D_801BED4C[];
extern T_D_801BED88 D_801BED88[];
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094A0.s")
// extern ? D_801BED40;
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094C8.s")
// void func_801094A0(s32 arg0, ?* arg1) {
// *arg1 = (unaligned s32) *((arg0 * 4) + &D_801BED40);
// }
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094F8.s")
void func_801094C8(s32 arg0, s32 *arg1, s32 *arg2) {
*arg1 = D_801BED4C[arg0].unk4;
*arg2 = D_801BED4C[arg0].unk5;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109528.s")
void func_801094F8(s32 arg0, s32* arg1, s32* arg2) {
*arg1 = D_801BED4C[arg0].unk6;
*arg2 = D_801BED4C[arg0].unk7;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010954C.s")
void func_80109528(s32 arg0, s32* arg1) {
*arg1 = D_801BED4C[arg0].unk8;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010956C.s")
u8 func_8010954C(s32 arg0) {
return D_801BED4C[arg0].unk9;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010958C.s")
s16 func_8010956C(s32 arg0) {
return D_801BED4C[arg0].unkA;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801095AC.s")
s32 func_8010958C(s32 arg0) {
return D_801BED4C[arg0].unk0;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801095DC.s")
void func_801095AC(s32 arg0, s32 *arg1, s32 *arg2) {
*arg1 = D_801BED88[arg0-0x100].unk0;
*arg2 = D_801BED88[arg0-0x100].unk1;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010960C.s")
void func_801095DC(s32 arg0, s32* arg1, s32* arg2) {
*arg1 = D_801BED88[arg0-0x100].unk2;
*arg2 = D_801BED88[arg0-0x100].unk4;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109630.s")
void func_8010960C(s32 arg0, s32* arg1) {
*arg1 = D_801BED88[arg0-0x100].unk6;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109650.s")
u8 func_80109630(s32 arg0) {
return D_801BED88[arg0-0x100].unk7;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109670.s")
s16 func_80109650(s32 arg0) {
return D_801BED88[arg0-0x100].unk8;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801096D4.s")
s32 func_80109670(s32 arg0) {
s32 cond = arg0 - 0x100;
s32 var_s1 = 0;
s32 i;
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109714.s")
for(i = 1; i < cond + 1; i++) {
var_s1 += func_801096D4((i-1) + 0x100);
}
return var_s1;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109754.s")
s32 func_801096D4(s32 arg0) {
return (D_801BED88[arg0 - 0x100].unk0 * D_801BED88[arg0 - 0x100].unk1) / 2;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801097C8.s")
s32 func_80109714(s32 arg0) {
if ((arg0 >= 0) && (arg0 < 5)) {
return 0;
}
if ((arg0 >= 0x100) && (arg0 < 0x162)) {
return 1;
}
return 2;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010983C.s")
void func_80109754(s32 arg0, s32 *arg1, s32 *arg2) {
switch (func_80109714(arg0)) {
case 0:
func_801094C8(arg0, arg1, arg2);
return;
case 1:
func_801095AC(arg0, arg1, arg2);
return;
default:
*arg2 = 0;
*arg1 = 0;
return;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801098A0.s")
void func_801097C8(s32 arg0, s32* arg1, s32* arg2) {
switch (func_80109714(arg0)) {
case 0:
func_801094F8(arg0, arg1, arg2);
return;
case 1:
func_801095DC(arg0, arg1, arg2);
return;
default:
*arg2 = 0;
*arg1 = 0;
return;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109908.s")
void func_8010983C(s32 arg0, s32 *arg1) {
switch(func_80109714(arg0)){
default:
*arg1 = 0;
return;
case 0:
*arg1 = func_8010956C(arg0);
return;
case 1:
*arg1 = func_80109650(arg0);
return;
}
}
void func_801098A0(s32 arg0, s32* arg1) {
switch (func_80109714(arg0)) {
case 0:
func_80109528(arg0, arg1);
return;
case 1:
func_8010960C(arg0, arg1);
return;
default:
*arg1 = 0;
return;
}
}
u8 func_80109908(s32 arg0) {
switch (func_80109714(arg0)) {
case 0:
return func_8010954C(arg0);
case 1:
return func_80109630(arg0);
default:
return 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109964.s")
+698 -6
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1024,7 +1024,7 @@
0x801BEBFA:("D_801BEBFA","UNK_TYPE2","",0x2),
0x801BEBFC:("D_801BEBFC","UNK_TYPE2","",0x2),
0x801BEC10:("D_801BEC10","UNK_TYPE2","",0x2),
0x801BEC14:("D_801BEC14","UNK_PTR","",0x4),
0x801BEC14:("D_801BEC14","MinimapList","",0x8),
0x801BEC1C:("D_801BEC1C","UNK_TYPE4","",0x4),
0x801BEC20:("D_801BEC20","UNK_TYPE4","",0x4),
0x801BEC24:("D_801BEC24","UNK_TYPE1","",0x1),