diff options
| author | mzxrules <mzxrules@gmail.com> | 2022-06-23 18:16:07 -0400 |
|---|---|---|
| committer | mzxrules <mzxrules@gmail.com> | 2022-06-23 18:16:07 -0400 |
| commit | 31f40adf09f5c097dd3734ecd14728c010983bf2 (patch) | |
| tree | 20054eb59f6643d61ef46738698afa003c5a1c0a /src/code/z_map_data.c | |
| parent | f77c4770f7ae50b522d9183b79abe60070f6895b (diff) | |
First batch of functions
Diffstat (limited to 'src/code/z_map_data.c')
| -rw-r--r-- | src/code/z_map_data.c | 189 |
1 files changed, 151 insertions, 38 deletions
diff --git a/src/code/z_map_data.c b/src/code/z_map_data.c index a854a37e7..f61a02fee 100644 --- a/src/code/z_map_data.c +++ b/src/code/z_map_data.c @@ -1,44 +1,157 @@ #include "global.h" +#include "z64map.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094A0.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094C8.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094F8.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109528.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010954C.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010956C.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010958C.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801095AC.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801095DC.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010960C.s") +extern T_D_801BED4C D_801BED4C[]; +extern T_D_801BED88 D_801BED88[]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109630.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109650.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109670.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801096D4.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109714.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109754.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801097C8.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_8010983C.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801098A0.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_80109908.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_data/func_801094A0.s") +// extern ? D_801BED40; + +// void func_801094A0(s32 arg0, ?* arg1) { +// *arg1 = (unaligned s32) *((arg0 * 4) + &D_801BED40); +// } + +void func_801094C8(s32 arg0, s32 *arg1, s32 *arg2) { + *arg1 = D_801BED4C[arg0].unk4; + *arg2 = D_801BED4C[arg0].unk5; +} + +void func_801094F8(s32 arg0, s32* arg1, s32* arg2) { + *arg1 = D_801BED4C[arg0].unk6; + *arg2 = D_801BED4C[arg0].unk7; +} + +void func_80109528(s32 arg0, s32* arg1) { + *arg1 = D_801BED4C[arg0].unk8; +} + +u8 func_8010954C(s32 arg0) { + return D_801BED4C[arg0].unk9; +} + +s16 func_8010956C(s32 arg0) { + return D_801BED4C[arg0].unkA; +} + +s32 func_8010958C(s32 arg0) { + return D_801BED4C[arg0].unk0; +} + +void func_801095AC(s32 arg0, s32 *arg1, s32 *arg2) { + *arg1 = D_801BED88[arg0-0x100].unk0; + *arg2 = D_801BED88[arg0-0x100].unk1; +} + +void func_801095DC(s32 arg0, s32* arg1, s32* arg2) { + *arg1 = D_801BED88[arg0-0x100].unk2; + *arg2 = D_801BED88[arg0-0x100].unk4; +} + +void func_8010960C(s32 arg0, s32* arg1) { + *arg1 = D_801BED88[arg0-0x100].unk6; +} + +u8 func_80109630(s32 arg0) { + return D_801BED88[arg0-0x100].unk7; +} + +s16 func_80109650(s32 arg0) { + return D_801BED88[arg0-0x100].unk8; +} + +s32 func_80109670(s32 arg0) { + s32 cond = arg0 - 0x100; + s32 var_s1 = 0; + s32 i; + + for(i = 1; i < cond + 1; i++) { + var_s1 += func_801096D4((i-1) + 0x100); + } + return var_s1; +} + +s32 func_801096D4(s32 arg0) { + return (D_801BED88[arg0 - 0x100].unk0 * D_801BED88[arg0 - 0x100].unk1) / 2; +} + +s32 func_80109714(s32 arg0) { + if ((arg0 >= 0) && (arg0 < 5)) { + return 0; + } + if ((arg0 >= 0x100) && (arg0 < 0x162)) { + return 1; + } + return 2; +} + +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; + } +} + +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; + } +} + +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") |
