From 4418ae36cb3e32c459fcbab2ee64872f15730155 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 25 Nov 2019 22:42:26 +1000 Subject: [PATCH] Decompile ai004d --- src/game/chr/chr.c | 125 ------------------------------- src/game/chr/chraicommands.c | 138 +++++++++++++++++++++++++++++++++++ src/include/game/chr/chr.h | 2 +- 3 files changed, 139 insertions(+), 126 deletions(-) diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index fb33a8418..17c344ed1 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -887,131 +887,6 @@ const char var7f1a9bcc[] = "couldn't find cover from danger !\n"; const char var7f1a9bf0[] = "Randnum = %d, Alarmrandnum = %d \n"; const char var7f1a9c18[] = "IVE FOUND MY PAD %d \n"; -const u32 var7f1a9c30[] = {0x40c907a9}; -const u32 var7f1a9c34[] = {0x40c907a9}; -const u32 var7f1a9c38[] = {0x3dcccccd}; -const u32 var7f1a9c3c[] = {0x3dcccccd}; -const u32 var7f1a9c40[] = {0x3dcccccd}; -const u32 var7f1a9c44[] = {0x3dcccccd}; -const u32 var7f1a9c48[] = {0x3dcccccd}; -const u32 var7f1a9c4c[] = {0x3dcccccd}; -const u32 var7f1a9c50[] = {0x3dcccccd}; -const u32 var7f1a9c54[] = {0x7f05592c}; -const u32 var7f1a9c58[] = {0x7f05592c}; -const u32 var7f1a9c5c[] = {0x7f05592c}; -const u32 var7f1a9c60[] = {0x7f05592c}; -const u32 var7f1a9c64[] = {0x7f05592c}; -const u32 var7f1a9c68[] = {0x7f05592c}; -const u32 var7f1a9c6c[] = {0x7f05592c}; -const u32 var7f1a9c70[] = {0x7f05592c}; -const u32 var7f1a9c74[] = {0x7f05592c}; -const u32 var7f1a9c78[] = {0x7f05592c}; -const u32 var7f1a9c7c[] = {0x7f05592c}; -const u32 var7f1a9c80[] = {0x7f05592c}; -const u32 var7f1a9c84[] = {0x7f05592c}; -const u32 var7f1a9c88[] = {0x7f05592c}; -const u32 var7f1a9c8c[] = {0x7f055948}; -const u32 var7f1a9c90[] = {0x7f05592c}; -const u32 var7f1a9c94[] = {0x7f05592c}; -const u32 var7f1a9c98[] = {0x7f05592c}; -const u32 var7f1a9c9c[] = {0x7f05592c}; -const u32 var7f1a9ca0[] = {0x7f05592c}; -const u32 var7f1a9ca4[] = {0x7f05592c}; -const u32 var7f1a9ca8[] = {0x7f05592c}; -const u32 var7f1a9cac[] = {0x7f05592c}; -const u32 var7f1a9cb0[] = {0x7f05592c}; -const u32 var7f1a9cb4[] = {0x7f05592c}; -const u32 var7f1a9cb8[] = {0x7f05592c}; -const u32 var7f1a9cbc[] = {0x7f05592c}; -const u32 var7f1a9cc0[] = {0x7f0559ac}; -const u32 var7f1a9cc4[] = {0x7f05592c}; -const u32 var7f1a9cc8[] = {0x7f05592c}; -const u32 var7f1a9ccc[] = {0x7f05592c}; -const u32 var7f1a9cd0[] = {0x7f05592c}; -const u32 var7f1a9cd4[] = {0x7f05592c}; -const u32 var7f1a9cd8[] = {0x3d4ccccd}; -const u32 var7f1a9cdc[] = {0x40c907a9}; -const u32 var7f1a9ce0[] = {0x40c907a9}; -const u32 var7f1a9ce4[] = {0x7f0593bc}; -const u32 var7f1a9ce8[] = {0x7f0593bc}; -const u32 var7f1a9cec[] = {0x7f0593bc}; -const u32 var7f1a9cf0[] = {0x7f0593bc}; -const u32 var7f1a9cf4[] = {0x7f0593bc}; -const u32 var7f1a9cf8[] = {0x7f0593bc}; -const u32 var7f1a9cfc[] = {0x7f0593bc}; -const u32 var7f1a9d00[] = {0x7f0593bc}; -const u32 var7f1a9d04[] = {0x7f059390}; -const u32 var7f1a9d08[] = {0x7f059390}; -const u32 var7f1a9d0c[] = {0x7f059390}; -const u32 var7f1a9d10[] = {0x7f059390}; -const u32 var7f1a9d14[] = {0x7f059390}; -const u32 var7f1a9d18[] = {0x7f059390}; -const u32 var7f1a9d1c[] = {0x7f059390}; -const u32 var7f1a9d20[] = {0x7f059390}; -const u32 var7f1a9d24[] = {0x7f059390}; -const u32 var7f1a9d28[] = {0x7f059390}; -const u32 var7f1a9d2c[] = {0x7f0593a0}; -const u32 var7f1a9d30[] = {0x7f059390}; -const u32 var7f1a9d34[] = {0x7f0593a0}; -const u32 var7f1a9d38[] = {0x7f0593a0}; -const u32 var7f1a9d3c[] = {0x7f0593a0}; -const u32 var7f1a9d40[] = {0x7f0593a0}; -const u32 var7f1a9d44[] = {0x7f0593b0}; -const u32 var7f1a9d48[] = {0x7f0593bc}; -const u32 var7f1a9d4c[] = {0x455ac000}; -const u32 var7f1a9d50[] = {0x461c3f9a}; -const u32 var7f1a9d54[] = {0x44bb8000}; -const u32 var7f1a9d58[] = {0x461c3c00}; -const u32 var7f1a9d5c[] = {0x4b189680}; -const u32 var7f1a9d60[] = {0x455ac000}; -const u32 var7f1a9d64[] = {0x45dac000}; -const u32 var7f1a9d68[] = {0x455ac000}; -const u32 var7f1a9d6c[] = {0x7f05afec}; -const u32 var7f1a9d70[] = {0x7f05b008}; -const u32 var7f1a9d74[] = {0x7f05b028}; -const u32 var7f1a9d78[] = {0x7f05b054}; -const u32 var7f1a9d7c[] = {0x7f05b088}; -const u32 var7f1a9d80[] = {0x7f05b0bc}; -const u32 var7f1a9d84[] = {0x7f05b100}; -const u32 var7f1a9d88[] = {0x7f05b140}; -const u32 var7f1a9d8c[] = {0x7f05b184}; -const u32 var7f1a9d90[] = {0x461c4000}; -const u32 var7f1a9d94[] = {0x455ac000}; -const u32 var7f1a9d98[] = {0x46f22fcd}; -const u32 var7f1a9d9c[] = {0x453b8000}; -const u32 var7f1a9da0[] = {0x453b8000}; -const u32 var7f1a9da4[] = {0x3dcccccd}; -const u32 var7f1a9da8[] = {0x3ecccccd}; -const u32 var7f1a9dac[] = {0x3ecccccd}; -const u32 var7f1a9db0[] = {0x7f05f104}; -const u32 var7f1a9db4[] = {0x7f05f104}; -const u32 var7f1a9db8[] = {0x7f05f104}; -const u32 var7f1a9dbc[] = {0x7f05f104}; -const u32 var7f1a9dc0[] = {0x7f05f104}; -const u32 var7f1a9dc4[] = {0x7f05f104}; -const u32 var7f1a9dc8[] = {0x7f05f104}; -const u32 var7f1a9dcc[] = {0x7f05f104}; -const u32 var7f1a9dd0[] = {0x7f05f104}; -const u32 var7f1a9dd4[] = {0x7f05fa1c}; -const u32 var7f1a9dd8[] = {0x7f05fa28}; -const u32 var7f1a9ddc[] = {0x7f05fa34}; -const u32 var7f1a9de0[] = {0x7f05fa40}; -const u32 var7f1a9de4[] = {0x7f05fa4c}; -const u32 var7f1a9de8[] = {0x7f05fa58}; -const u32 var7f1a9dec[] = {0x7f05faa8}; -const u32 var7f1a9df0[] = {0x7f05faf8}; -const u32 var7f1a9df4[] = {0x7f05fb38}; -const u32 var7f1a9df8[] = {0x7f05fb68}; -const u32 var7f1a9dfc[] = {0x7f05fbdc}; -const u32 var7f1a9e00[] = {0x7f05fbf4}; -const u32 var7f1a9e04[] = {0x7f05fc0c}; -const u32 var7f1a9e08[] = {0x7f05fc24}; -const u32 var7f1a9e0c[] = {0x7f05fc3c}; -const u32 var7f1a9e10[] = {0x7f05fc54}; -const u32 var7f1a9e14[] = {0x00000000}; -const u32 var7f1a9e18[] = {0x00000000}; -const u32 var7f1a9e1c[] = {0x00000000}; - GLOBAL_ASM( glabel func0f01e050 /* f01e050: 27bdffe0 */ addiu $sp,$sp,-32 diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 918915a1b..6aba27d7e 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -13,6 +13,128 @@ #include "library/library_12dc0.h" #include "library/library_16110.h" +const u32 var7f1a9c30[] = {0x40c907a9}; +const u32 var7f1a9c34[] = {0x40c907a9}; +const u32 var7f1a9c38[] = {0x3dcccccd}; +const u32 var7f1a9c3c[] = {0x3dcccccd}; +const u32 var7f1a9c40[] = {0x3dcccccd}; +const u32 var7f1a9c44[] = {0x3dcccccd}; +const u32 var7f1a9c48[] = {0x3dcccccd}; +const u32 var7f1a9c4c[] = {0x3dcccccd}; +const u32 var7f1a9c50[] = {0x3dcccccd}; +const u32 var7f1a9c54[] = {0x7f05592c}; +const u32 var7f1a9c58[] = {0x7f05592c}; +const u32 var7f1a9c5c[] = {0x7f05592c}; +const u32 var7f1a9c60[] = {0x7f05592c}; +const u32 var7f1a9c64[] = {0x7f05592c}; +const u32 var7f1a9c68[] = {0x7f05592c}; +const u32 var7f1a9c6c[] = {0x7f05592c}; +const u32 var7f1a9c70[] = {0x7f05592c}; +const u32 var7f1a9c74[] = {0x7f05592c}; +const u32 var7f1a9c78[] = {0x7f05592c}; +const u32 var7f1a9c7c[] = {0x7f05592c}; +const u32 var7f1a9c80[] = {0x7f05592c}; +const u32 var7f1a9c84[] = {0x7f05592c}; +const u32 var7f1a9c88[] = {0x7f05592c}; +const u32 var7f1a9c8c[] = {0x7f055948}; +const u32 var7f1a9c90[] = {0x7f05592c}; +const u32 var7f1a9c94[] = {0x7f05592c}; +const u32 var7f1a9c98[] = {0x7f05592c}; +const u32 var7f1a9c9c[] = {0x7f05592c}; +const u32 var7f1a9ca0[] = {0x7f05592c}; +const u32 var7f1a9ca4[] = {0x7f05592c}; +const u32 var7f1a9ca8[] = {0x7f05592c}; +const u32 var7f1a9cac[] = {0x7f05592c}; +const u32 var7f1a9cb0[] = {0x7f05592c}; +const u32 var7f1a9cb4[] = {0x7f05592c}; +const u32 var7f1a9cb8[] = {0x7f05592c}; +const u32 var7f1a9cbc[] = {0x7f05592c}; +const u32 var7f1a9cc0[] = {0x7f0559ac}; +const u32 var7f1a9cc4[] = {0x7f05592c}; +const u32 var7f1a9cc8[] = {0x7f05592c}; +const u32 var7f1a9ccc[] = {0x7f05592c}; +const u32 var7f1a9cd0[] = {0x7f05592c}; +const u32 var7f1a9cd4[] = {0x7f05592c}; +const u32 var7f1a9cd8[] = {0x3d4ccccd}; +const u32 var7f1a9cdc[] = {0x40c907a9}; +const u32 var7f1a9ce0[] = {0x40c907a9}; +const u32 var7f1a9ce4[] = {0x7f0593bc}; +const u32 var7f1a9ce8[] = {0x7f0593bc}; +const u32 var7f1a9cec[] = {0x7f0593bc}; +const u32 var7f1a9cf0[] = {0x7f0593bc}; +const u32 var7f1a9cf4[] = {0x7f0593bc}; +const u32 var7f1a9cf8[] = {0x7f0593bc}; +const u32 var7f1a9cfc[] = {0x7f0593bc}; +const u32 var7f1a9d00[] = {0x7f0593bc}; +const u32 var7f1a9d04[] = {0x7f059390}; +const u32 var7f1a9d08[] = {0x7f059390}; +const u32 var7f1a9d0c[] = {0x7f059390}; +const u32 var7f1a9d10[] = {0x7f059390}; +const u32 var7f1a9d14[] = {0x7f059390}; +const u32 var7f1a9d18[] = {0x7f059390}; +const u32 var7f1a9d1c[] = {0x7f059390}; +const u32 var7f1a9d20[] = {0x7f059390}; +const u32 var7f1a9d24[] = {0x7f059390}; +const u32 var7f1a9d28[] = {0x7f059390}; +const u32 var7f1a9d2c[] = {0x7f0593a0}; +const u32 var7f1a9d30[] = {0x7f059390}; +const u32 var7f1a9d34[] = {0x7f0593a0}; +const u32 var7f1a9d38[] = {0x7f0593a0}; +const u32 var7f1a9d3c[] = {0x7f0593a0}; +const u32 var7f1a9d40[] = {0x7f0593a0}; +const u32 var7f1a9d44[] = {0x7f0593b0}; +const u32 var7f1a9d48[] = {0x7f0593bc}; +const u32 var7f1a9d4c[] = {0x455ac000}; +const u32 var7f1a9d50[] = {0x461c3f9a}; +const u32 var7f1a9d54[] = {0x44bb8000}; +const u32 var7f1a9d58[] = {0x461c3c00}; +const u32 var7f1a9d5c[] = {0x4b189680}; +const u32 var7f1a9d60[] = {0x455ac000}; +const u32 var7f1a9d64[] = {0x45dac000}; +const u32 var7f1a9d68[] = {0x455ac000}; +const u32 var7f1a9d6c[] = {0x7f05afec}; +const u32 var7f1a9d70[] = {0x7f05b008}; +const u32 var7f1a9d74[] = {0x7f05b028}; +const u32 var7f1a9d78[] = {0x7f05b054}; +const u32 var7f1a9d7c[] = {0x7f05b088}; +const u32 var7f1a9d80[] = {0x7f05b0bc}; +const u32 var7f1a9d84[] = {0x7f05b100}; +const u32 var7f1a9d88[] = {0x7f05b140}; +const u32 var7f1a9d8c[] = {0x7f05b184}; +const u32 var7f1a9d90[] = {0x461c4000}; +const u32 var7f1a9d94[] = {0x455ac000}; +const u32 var7f1a9d98[] = {0x46f22fcd}; +const u32 var7f1a9d9c[] = {0x453b8000}; +const u32 var7f1a9da0[] = {0x453b8000}; +const u32 var7f1a9da4[] = {0x3dcccccd}; +const u32 var7f1a9da8[] = {0x3ecccccd}; +const u32 var7f1a9dac[] = {0x3ecccccd}; +const u32 var7f1a9db0[] = {0x7f05f104}; +const u32 var7f1a9db4[] = {0x7f05f104}; +const u32 var7f1a9db8[] = {0x7f05f104}; +const u32 var7f1a9dbc[] = {0x7f05f104}; +const u32 var7f1a9dc0[] = {0x7f05f104}; +const u32 var7f1a9dc4[] = {0x7f05f104}; +const u32 var7f1a9dc8[] = {0x7f05f104}; +const u32 var7f1a9dcc[] = {0x7f05f104}; +const u32 var7f1a9dd0[] = {0x7f05f104}; +const u32 var7f1a9dd4[] = {0x7f05fa1c}; +const u32 var7f1a9dd8[] = {0x7f05fa28}; +const u32 var7f1a9ddc[] = {0x7f05fa34}; +const u32 var7f1a9de0[] = {0x7f05fa40}; +const u32 var7f1a9de4[] = {0x7f05fa4c}; +const u32 var7f1a9de8[] = {0x7f05fa58}; +const u32 var7f1a9dec[] = {0x7f05faa8}; +const u32 var7f1a9df0[] = {0x7f05faf8}; +const u32 var7f1a9df4[] = {0x7f05fb38}; +const u32 var7f1a9df8[] = {0x7f05fb68}; +const u32 var7f1a9dfc[] = {0x7f05fbdc}; +const u32 var7f1a9e00[] = {0x7f05fbf4}; +const u32 var7f1a9e04[] = {0x7f05fc0c}; +const u32 var7f1a9e08[] = {0x7f05fc24}; +const u32 var7f1a9e0c[] = {0x7f05fc3c}; +const u32 var7f1a9e10[] = {0x7f05fc54}; + /** * @cmd 0000 */ @@ -2028,6 +2150,21 @@ glabel ai004d /* f050848: 00000000 */ sll $zero,$zero,0x0 ); +// Mismatch due to rodata address. Will match after all trailing rodata in this +// file is matched. +//bool ai004d(void) +//{ +// u8 *cmd = g_Vars.ailist + g_Vars.aioffset; +// +// if (func0f048b4c(g_Vars.chrdata) < cmd[2] * 6.282185077f * 0.00390625f) { +// g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]); +// } else { +// g_Vars.aioffset += 4; +// } +// +// return false; +//} + /** * @cmd 004f */ @@ -17080,3 +17217,4 @@ glabel ai01b4 /* f0601a8: 00000000 */ sll $zero,$zero,0x0 /* f0601ac: 00000000 */ sll $zero,$zero,0x0 ); + diff --git a/src/include/game/chr/chr.h b/src/include/game/chr/chr.h index a008b397d..432420bac 100644 --- a/src/include/game/chr/chr.h +++ b/src/include/game/chr/chr.h @@ -791,7 +791,7 @@ u32 func0f048398(void); u32 func0f048a14(struct chrdata *chr); u32 func0f048a4c(struct chrdata *chr); u32 func0f048a84(void); -u32 func0f048b4c(void); +float func0f048b4c(struct chrdata *chr); u32 func0f048b78(void); u32 func0f048cc0(void); u32 func0f048dcc(void);