summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorrozlette <uberpanzermensch@gmail.com>2018-10-25 21:29:41 -0500
committerrozlette <uberpanzermensch@gmail.com>2018-10-25 22:09:52 -0500
commitcc9baa93a89494a8a2d0a80682a8af41ea52e416 (patch)
tree4e76c2443165b3e3d2104024fd53e5450ab88393 /src/code
parentd3a5a2f29d519719ecfc2d17c7e5a08f7068ade7 (diff)
Dump current status
Diffstat (limited to 'src/code')
-rw-r--r--src/code/code_0x800A5AC0.c52
-rw-r--r--src/code/code_0x800BF9A0.c32
-rw-r--r--src/code/code_0x800CAAD0.c99
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;
+}