diff --git a/functions.py b/functions.py index 138d61c8df..7bf3b91f8b 100644 --- a/functions.py +++ b/functions.py @@ -194,7 +194,7 @@ known_funcs = { 0x800A5AC0:("func_800A5AC0","UNK_RET","void*, UNK_TYPE"), # guessing this is void* bc it's a thread entry point 0x800A5B6C:("func_800A5B6C","UNK_RET","struct s800A5AC0*, UNK_TYPE"), 0x800A5B98:("func_800A5B98","UNK_RET","struct s800A5AC0*, UNK_TYPE"), - 0x800A5C28:("func_800A5C28","UNK_RET","struct s800A5AC0*, UNK_TYPE"), + 0x800A5C28:("func_800A5C28","UNK_RET","struct s800A5AC0*"), 0x800A5C60:("func_800A5C60","UNK_RET","struct s800A5AC0*, UNK_TYPE"), 0x800A5CB8:("func_800A5CB8","UNK_RET","struct s800A5AC0*, UNK_TYPE"), 0x800B3BA4:("func_800B3BA4","UNK_RET","UNK_PTR, UNK_TYPE, UNK_PTR, UNK_TYPE"), diff --git a/include/functions.h b/include/functions.h index 98ba1e7ffb..4bf7bf8a92 100644 --- a/include/functions.h +++ b/include/functions.h @@ -458,7 +458,7 @@ UNK_RET __libm_qnan_f(UNK_ARGS); // func_80099450 UNK_RET func_800A5AC0(void*, UNK_TYPE); // func_800A5AC0 UNK_RET func_800A5B6C(struct s800A5AC0*, UNK_TYPE); // func_800A5B6C UNK_RET func_800A5B98(struct s800A5AC0*, UNK_TYPE); // func_800A5B98 -UNK_RET func_800A5C28(struct s800A5AC0*, UNK_TYPE); // func_800A5C28 +UNK_RET func_800A5C28(struct s800A5AC0*); // func_800A5C28 UNK_RET func_800A5C60(struct s800A5AC0*, UNK_TYPE); // func_800A5C60 UNK_RET func_800A5CB8(struct s800A5AC0*, UNK_TYPE); // func_800A5CB8 // UNK_RET func_800A5D00(UNK_ARGS); diff --git a/include/structs.h b/include/structs.h index 51255fe8f6..4ba4fa2f35 100644 --- a/include/structs.h +++ b/include/structs.h @@ -37,14 +37,14 @@ struct s80092920 { struct s800A5AC0 { /* 000 */ u8 pad0[28]; - /* 028 */ u16 unk28; + /* 028 */ s16 unk28; /* 030 */ u8 pad1[116]; - /* 146 */ u16 unk146; + /* 146 */ s16 unk146; /* 148 */ u8 pad2[34]; /* 182 */ u8 unk182; /* 183 */ u8 pad4[5]; /* 188 */ u16 unk188; // or char - /* 190 */ u16 unk190; + /* 190 */ s16 unk190; /* 192 */ u8 pad5[86]; /* 278 */ u16 unk278; /* 280 */ u8 pad6[44]; diff --git a/src/code/code_0x800A5AC0.c b/src/code/code_0x800A5AC0.c index 19232ec3dc..64ba620a2f 100644 --- a/src/code/code_0x800A5AC0.c +++ b/src/code/code_0x800A5AC0.c @@ -14,28 +14,25 @@ UNK_RET func_800A5AC0(void* a0, UNK_TYPE a1) { } UNK_RET func_800A5B6C(struct s800A5AC0* a0, UNK_TYPE a1) { - func_800E11EC(a1, &a0->unk328); + UNK_TYPE* a2 = &a0->unk328; + func_800E11EC(a1, a2); } UNK_RET func_800A5B98(struct s800A5AC0* a0, UNK_TYPE a1) { - s16 v0; + s32 v0; s32 v1; if (func_800B84D0(a0, a1) != 0) { - a0->unk324 = func_800A5C28; + a0->unk324 = (void(*)(struct s800A5AC0*, UNK_TYPE))func_800A5C28; //! Is this cast correct? } else { v0 = a0->unk146 - a0->unk190; - if (v0 < 0) { - v1 = -v0; - } else { - v1 = v0; - } + v1 = (v0 < 0)? -v0 : v0; if ((v1 < 10240) || ((a0->unk28 == 1) && (v1 > 22528))) { func_800B863C(a0, a1); } } } -UNK_RET func_800A5C28(struct s800A5AC0* a0, UNK_TYPE a1 /* unused */ ) { +UNK_RET func_800A5C28(struct s800A5AC0* a0) { if (func_800B867C(a0) != 0) { a0->unk324 = func_800A5B98; }