diff options
| author | rozlette <uberpanzermensch@gmail.com> | 2018-10-25 21:29:41 -0500 |
|---|---|---|
| committer | rozlette <uberpanzermensch@gmail.com> | 2018-10-25 22:09:52 -0500 |
| commit | cc9baa93a89494a8a2d0a80682a8af41ea52e416 (patch) | |
| tree | 4e76c2443165b3e3d2104024fd53e5450ab88393 /src/code | |
| parent | d3a5a2f29d519719ecfc2d17c7e5a08f7068ade7 (diff) | |
Dump current status
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/code_0x800A5AC0.c | 52 | ||||
| -rw-r--r-- | src/code/code_0x800BF9A0.c | 32 | ||||
| -rw-r--r-- | src/code/code_0x800CAAD0.c | 99 |
3 files changed, 183 insertions, 0 deletions
diff --git a/src/code/code_0x800A5AC0.c b/src/code/code_0x800A5AC0.c new file mode 100644 index 000000000..ff766e42c --- /dev/null +++ b/src/code/code_0x800A5AC0.c @@ -0,0 +1,52 @@ +#include <ultra64.h> +#include <global.h> + +UNK_RET func_800A5AC0(void* a0, UNK_TYPE a1) { + struct s800A5AC0* s0 = (struct s800A5AC0*)a0; + s0->unk278 = ((s0->unk28 >> 8) & 0xFF) | 0x300; + s0->unk28 = (s0->unk28 & 0xFF) - 9; + func_800FFADC(s0, &D_801ADEAC); + func_800B3BA4(&s0->unk188, 0, (void*)&func_800B3FC0, 0x41400000); + func_800E1374(a1, &s0->unk328, s0, &D_801ADE80); + func_800E7DF8(s0, &s0->unk328); + s0->unk182 = 255; + s0->unk324 = func_800A5B98; +} + +UNK_RET func_800A5B6C(struct s800A5AC0* a0, UNK_TYPE a1) { + func_800E11EC(a1, &a0->unk328); +} + +UNK_RET func_800A5B98(struct s800A5AC0* a0, UNK_TYPE a1) { + s16 v0; + s32 v1; + if (func_800B84D0(a0, a1) != 0) { + a0->unk324 = func_800A5C28; + } else { + v0 = a0->unk146 - a0->unk190; + if (v0 < 0) { + v1 = -v0; + } else { + v1 = v0; + } + if ((v1 < 10240) || ((a0->unk28 == 1) && (v1 > 22528))) { + func_800B863C(a0, a1); + } + } +} + +UNK_RET func_800A5C28(struct s800A5AC0* a0, UNK_TYPE a1 /* unused */ ) { + if (func_800B867C(a0) != 0) { + a0->unk324 = func_800A5B98; + } +} + +UNK_RET func_800A5C60(struct s800A5AC0* a0, UNK_TYPE a1) { + (a0->unk324)(a0, a1); + func_800B675C(a0, 0x42340000); + func_800E2928(a1, a1 + 0x18884, &a0->unk328); +} + +UNK_RET func_800A5CB8(struct s800A5AC0* a0, UNK_TYPE a1) { + func_800BDFC0(a1, D_801ADEB0[a0->unk28], a1, a0); +} diff --git a/src/code/code_0x800BF9A0.c b/src/code/code_0x800BF9A0.c new file mode 100644 index 000000000..b5c62cb15 --- /dev/null +++ b/src/code/code_0x800BF9A0.c @@ -0,0 +1,32 @@ +#include <ultra64.h> +#include <global.h> + +UNK_RET func_800BF9A0(UNK_TYPE a0, UNK_TYPE a1) { + s32 i; + s800BF9A0_s* s0; + + func_8008439C(-2, 0); + func_800847CC(&D_801DCBB0, D_801B4610); + func_800847CC(&D_801DCBC4); + + for (i = 0, s0 = D_801AEFD0; i < D_801B4610; i++, s0++) { + if (s0->unk16 == 0) continue; + func_800847CC(&D_801DCBE4, i, s0->unk16, s0->unk16 + (s0->unk12 - s0->unk8), s0->unk30, &D_801DCBFC); + } +} + +UNK_TYPE func_800BFA78(UNK_TYPE a0, UNK_TYPE a1) { + +} + +UNK_RET func_800BFAE8(UNK_ARGS) { + D_801B4610 = 690; + func_800819F0(&D_801ED930, func_800BF9A0, 0, 0); + func_80081BCC(&D_801ED940, func_800BFA78, 0); +} + +UNK_RET func_800BFB40(UNK_ARGS) { + func_80081AD4(&D_801ED930); + func_80081CA4(&D_801ED940); + D_801B4610 = 0; +} diff --git a/src/code/code_0x800CAAD0.c b/src/code/code_0x800CAAD0.c new file mode 100644 index 000000000..d79735bb4 --- /dev/null +++ b/src/code/code_0x800CAAD0.c @@ -0,0 +1,99 @@ +#include <ultra64.h> +#include <global.h> + +UNK_RET func_800CAAD0(UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2) { + UNK_TYPE sp208; + UNK_TYPE sp144; + UNK_TYPE sp80; + UNK_TYPE sp68; + UNK_TYPE sp56; + UNK_TYPE sp36; + + s800CAAD0* v1; + + if (func_800C6024(a1) == 0) return; + + v1 = (s800CAAD0*)(a0 + a1 * 100); + + func_80139894(&sp208, v1->unk104, v1->unk108, v1->unk112, v1->unk116, v1->unk118, + v1->unk120, v1->unk124, v1->unk128, v1->unk132); + + if (func_80139188(&sp208, &sp144) == 2) return; + + func_80139894(&sp80, v1->unk136, v1->unk140, v1->unk144, v1->unk148, v1->unk150, + v1->unk152, v1->unk156, v1->unk160, v1->unk164); + + func_80138C88(&sp144, (UNK_PTR)(a2 + 36), &sp36); + func_80138C88(&sp80, &sp56, &sp68); + + v1->unk0 = *(UNK_TYPE*)((u8*)sp36 + 0); + v1->unk4 = *(UNK_TYPE*)((u8*)sp36 + 4); + v1->unk8 = *(UNK_TYPE*)((u8*)sp36 + 8); +} + +UNK_RET func_800CAC0C(UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2) { + UNK_TYPE v0; + s16 v1; + + if (func_800C6024(a0) == 0) return; + + v0 = a0 + a1 * 100; + + v1 = *(s16*)(v0 + 150) - *(s16*)(v0 + 118); + + if (*(s16*)a2 == 0) { + *(s16*)(a2 + 2772) += v1; + } + + *(s16*)(a2 + 190) += v1; + *(s16*)(a2 + 50) += v1; +} + +UNK_RET func_800CACA0(UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2) { + UNK_TYPE sp28; + + if (func_800C6024(a2) == 0) return; + + sp28 = func_800C6248(a0, a2); + + if (sp28 == 0) return; + + func_800CAE88(sp28); + + if ((*(u32*)(a1 + 4) & 0x04000000) == 0x0400) { + func_800CAF24(sp28); + } + + if ((*(u32*)(a1 + 4) & 0x20000) == 0x20000) { + func_800CAF38(sp28); + } +} + +UNK_TYPE func_800CAD2C(UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2) { + UNK_TYPE v1; + UNK_TYPE sp36 = 0; + + if (func_800C6024(a1) == 0) return; + + if (((*(u16*)(a0 + a1*2 + 5084) & 0x2) != 0) || + ((*(u16*)(a0 + a1*2 + 5084) & 0x1) == 0)) { + return 0; + } + + v1 = func_800C6248(a0, a1); + if (v1 == 0) { + return 0; + } + + if ((*(u32*)(v1 + 340) & 0x1) != 0) { + func_800CAAD0(a0, a1, a2); + sp36 = 1; + } + + if ((*(u32*)(v1 + 340) & 0x2) != 0) { + func_800CAC0C(a0, a1, a2); + sp36 = 1; + } + + return sp36; +} |
