From 36a26b0aa29e64fa5ff744ab83ccb316bfb2fecb Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 7 Nov 2019 23:34:38 +1000 Subject: [PATCH] Merge struct targetsomething into struct position, decompile chrGetDistanceToTarget and rename ai0052 and ai0053 to aiIfDistanceToTargetLessThan/GreaterThan --- src/game/chr/chraicommands.c | 20 +-- src/game/game_000000.c | 184 +++++++++++++-------------- src/game/game_0601b0.c | 86 ++++++------- src/include/game/chr/chraicommands.h | 4 +- src/include/game/game_000000.h | 5 +- src/include/game/game_0601b0.h | 2 +- src/include/gvars/gvars.h | 2 +- src/include/types.h | 49 +------ src/setup/setup_000000.c | 4 +- 9 files changed, 155 insertions(+), 201 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 3797e4b5d..20384dcd9 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -2083,12 +2083,12 @@ bool ai0051(void) /** * @cmd 0052 */ -bool ai0052(void) +bool aiIfDistanceToTargetLessThan(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; float distance = (cmd[3] | (cmd[2] << 8)) * (float)10; - if (func0f0491c8(g_Vars.chrdata) < distance) { + if (chrGetDistanceToTarget(g_Vars.chrdata) < distance) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[4]); } else { g_Vars.aioffset += 5; @@ -2100,12 +2100,12 @@ bool ai0052(void) /** * @cmd 0053 */ -bool ai0053(void) +bool aiIfDistanceToTargetGreaterThan(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; float distance = (cmd[3] | (cmd[2] << 8)) * (float)10; - if (func0f0491c8(g_Vars.chrdata) > distance) { + if (chrGetDistanceToTarget(g_Vars.chrdata) > distance) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[4]); } else { g_Vars.aioffset += 5; @@ -2808,7 +2808,7 @@ glabel ai005c /* f051480: afbf001c */ sw $ra,0x1c($sp) /* f051484: 8e040424 */ lw $a0,0x424($s0) /* f051488: 01cfc021 */ addu $t8,$t6,$t7 -/* f05148c: 0fc0a221 */ jal chrGetTargetSomething +/* f05148c: 0fc0a221 */ jal chrGetTargetPosition /* f051490: afb80024 */ sw $t8,0x24($sp) /* f051494: 8fa70024 */ lw $a3,0x24($sp) /* f051498: 8e040424 */ lw $a0,0x424($s0) @@ -9673,7 +9673,7 @@ glabel ai0108 /* f058e9c: 00000000 */ sll $zero,$zero,0x0 /* f058ea0: afa20020 */ sw $v0,0x20($sp) /* f058ea4: afa7002c */ sw $a3,0x2c($sp) -/* f058ea8: 0fc0a221 */ jal chrGetTargetSomething +/* f058ea8: 0fc0a221 */ jal chrGetTargetPosition /* f058eac: afa80024 */ sw $t0,0x24($sp) /* f058eb0: 8fa30020 */ lw $v1,0x20($sp) /* f058eb4: 8fa7002c */ lw $a3,0x2c($sp) @@ -12070,7 +12070,7 @@ glabel ai0136 /* f05b368: 1441000d */ bne $v0,$at,.L0f05b3a0 /* f05b36c: 2405090a */ addiu $a1,$zero,0x90a /* f05b370: 8e040424 */ lw $a0,0x424($s0) -/* f05b374: 0fc0a221 */ jal chrGetTargetSomething +/* f05b374: 0fc0a221 */ jal chrGetTargetPosition /* f05b378: afa30024 */ sw $v1,0x24($sp) /* f05b37c: 8fa30024 */ lw $v1,0x24($sp) /* f05b380: 3c06461c */ lui $a2,0x461c @@ -13294,7 +13294,7 @@ bool aiIfY(void) struct heliobj *heli = func0f07adf4(&g_Vars.hovdata->base); if (heli) { - struct targetsomething *target = heliGetTargetSomething(heli); + struct position *target = heliGetTargetPosition(heli); if (target && (target->unk00 == 3 || target->unk00 == 6)) { chr = target->chr; @@ -13920,7 +13920,7 @@ bool aiPunchOrKick(void) bool ai0183(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - struct targetsomething *target = chrGetTargetSomething(g_Vars.chrdata); + struct position *target = chrGetTargetPosition(g_Vars.chrdata); if (target->unk00 == 5 || target->unk00 == 6) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]); @@ -14782,7 +14782,7 @@ glabel ai01a6 /* f05df6c: afbf0014 */ sw $ra,0x14($sp) /* f05df70: 01cf3821 */ addu $a3,$t6,$t7 /* f05df74: afa7001c */ sw $a3,0x1c($sp) -/* f05df78: 0fc0a221 */ jal chrGetTargetSomething +/* f05df78: 0fc0a221 */ jal chrGetTargetPosition /* f05df7c: 8c640424 */ lw $a0,0x424($v1) /* f05df80: 3c03800a */ lui $v1,0x800a /* f05df84: 24639fc0 */ addiu $v1,$v1,-24640 diff --git a/src/game/game_000000.c b/src/game/game_000000.c index c4833202f..a46de81a2 100644 --- a/src/game/game_000000.c +++ b/src/game/game_000000.c @@ -46132,7 +46132,7 @@ glabel func0f027994 /* f027db4: 8fbf0054 */ lw $ra,0x54($sp) /* f027db8: 51400011 */ beqzl $t2,.L0f027e00 /* f027dbc: 8fbf0054 */ lw $ra,0x54($sp) -/* f027dc0: 0fc0a221 */ jal chrGetTargetSomething +/* f027dc0: 0fc0a221 */ jal chrGetTargetPosition /* f027dc4: 8fa400cc */ lw $a0,0xcc($sp) /* f027dc8: 3c09800a */ lui $t1,0x800a /* f027dcc: 8d29a244 */ lw $t1,-0x5dbc($t1) @@ -46727,7 +46727,7 @@ glabel func0f028590 /* f028640: 24010003 */ addiu $at,$zero,0x3 /* f028644: 57010034 */ bnel $t8,$at,.L0f028718 /* f028648: 8fcf0000 */ lw $t7,0x0($s8) -/* f02864c: 0fc0a221 */ jal chrGetTargetSomething +/* f02864c: 0fc0a221 */ jal chrGetTargetPosition /* f028650: 02a22021 */ addu $a0,$s5,$v0 /* f028654: 3c19800a */ lui $t9,0x800a /* f028658: 8f39a244 */ lw $t9,-0x5dbc($t9) @@ -46897,14 +46897,14 @@ glabel func0f028834 /* f028880: 00000000 */ sll $zero,$zero,0x0 ); -struct targetsomething *chrGetTargetSomething(struct chrdata *chr) +struct position *chrGetTargetPosition(struct chrdata *chr) { - struct targetsomething *ret; + struct position *ret; if (chr->target == -1) { - ret = g_Vars.players[(u32)chr->BITFIELD.shorts[1] >> 14]->targetsomething; + ret = g_Vars.players[(u32)chr->BITFIELD.shorts[1] >> 14]->targetpos; } else { - ret = g_Vars.targets + chr->target; + ret = g_Vars.positions + chr->target; } return ret; @@ -53261,7 +53261,7 @@ glabel func0f02e370 /* f02e374: 30ae0200 */ andi $t6,$a1,0x200 /* f02e378: 11c00005 */ beqz $t6,.L0f02e390 /* f02e37c: afbf0014 */ sw $ra,0x14($sp) -/* f02e380: 0fc12472 */ jal func0f0491c8 +/* f02e380: 0fc12472 */ jal chrGetDistanceToTarget /* f02e384: 00000000 */ sll $zero,$zero,0x0 /* f02e388: 10000011 */ beqz $zero,.L0f02e3d0 /* f02e38c: 8fbf0014 */ lw $ra,0x14($sp) @@ -54541,7 +54541,7 @@ glabel func0f02f530 /* f02f530: 27bdffe0 */ addiu $sp,$sp,-32 /* f02f534: afbf001c */ sw $ra,0x1c($sp) /* f02f538: afb00018 */ sw $s0,0x18($sp) -/* f02f53c: 0fc0a221 */ jal chrGetTargetSomething +/* f02f53c: 0fc0a221 */ jal chrGetTargetPosition /* f02f540: 00808025 */ or $s0,$a0,$zero /* f02f544: 02002025 */ or $a0,$s0,$zero /* f02f548: 0fc122a1 */ jal func0f048a84 @@ -60434,7 +60434,7 @@ glabel func0f034524 /* f034854: 24010003 */ addiu $at,$zero,0x3 /* f034858: 5541000c */ bnel $t2,$at,.L0f03488c /* f03485c: 8fa4014c */ lw $a0,0x14c($sp) -/* f034860: 0fc0a221 */ jal chrGetTargetSomething +/* f034860: 0fc0a221 */ jal chrGetTargetPosition /* f034864: 8e240004 */ lw $a0,0x4($s1) /* f034868: 8e0b001c */ lw $t3,0x1c($s0) /* f03486c: 544b0007 */ bnel $v0,$t3,.L0f03488c @@ -62767,7 +62767,7 @@ glabel func0f0369cc /* f0369d4: afa5002c */ sw $a1,0x2c($sp) /* f0369d8: 8c83001c */ lw $v1,0x1c($a0) /* f0369dc: afa60030 */ sw $a2,0x30($sp) -/* f0369e0: 0fc0a221 */ jal chrGetTargetSomething +/* f0369e0: 0fc0a221 */ jal chrGetTargetPosition /* f0369e4: afa30024 */ sw $v1,0x24($sp) /* f0369e8: 8fa60030 */ lw $a2,0x30($sp) /* f0369ec: 44808000 */ mtc1 $zero,$f16 @@ -65525,7 +65525,7 @@ glabel func0f038f40 /* f038ffc: 304b0200 */ andi $t3,$v0,0x200 /* f039000: 11600046 */ beqz $t3,.L0f03911c /* f039004: 304e0004 */ andi $t6,$v0,0x4 -/* f039008: 0fc0a221 */ jal chrGetTargetSomething +/* f039008: 0fc0a221 */ jal chrGetTargetPosition /* f03900c: 8fa40078 */ lw $a0,0x78($sp) /* f039010: 904c0000 */ lbu $t4,0x0($v0) /* f039014: 24010006 */ addiu $at,$zero,0x6 @@ -65772,7 +65772,7 @@ GLOBAL_ASM( glabel func0f039368 /* f039368: 27bdffe0 */ addiu $sp,$sp,-32 /* f03936c: afbf0014 */ sw $ra,0x14($sp) -/* f039370: 0fc0a221 */ jal chrGetTargetSomething +/* f039370: 0fc0a221 */ jal chrGetTargetPosition /* f039374: afa40020 */ sw $a0,0x20($sp) /* f039378: 8fa40020 */ lw $a0,0x20($sp) /* f03937c: 8c450004 */ lw $a1,0x4($v0) @@ -66084,7 +66084,7 @@ glabel func0f03978c /* f039790: afbf0014 */ sw $ra,0x14($sp) /* f039794: 8c83001c */ lw $v1,0x1c($a0) /* f039798: afa40050 */ sw $a0,0x50($sp) -/* f03979c: 0fc0a221 */ jal chrGetTargetSomething +/* f03979c: 0fc0a221 */ jal chrGetTargetPosition /* f0397a0: afa3004c */ sw $v1,0x4c($sp) /* f0397a4: 8fa40050 */ lw $a0,0x50($sp) /* f0397a8: 0fc0f917 */ jal func0f03e45c @@ -66357,7 +66357,7 @@ glabel func0f039b20 /* f039b5c: 00001025 */ or $v0,$zero,$zero /* f039b60: 8e0e001c */ lw $t6,0x1c($s0) /* f039b64: 02002025 */ or $a0,$s0,$zero -/* f039b68: 0fc0a221 */ jal chrGetTargetSomething +/* f039b68: 0fc0a221 */ jal chrGetTargetPosition /* f039b6c: afae0048 */ sw $t6,0x48($sp) /* f039b70: 02002025 */ or $a0,$s0,$zero /* f039b74: 0fc0f917 */ jal func0f03e45c @@ -66464,7 +66464,7 @@ glabel func0f039ca8 /* f039cdc: 00001025 */ or $v0,$zero,$zero /* f039ce0: 8e0e001c */ lw $t6,0x1c($s0) /* f039ce4: 02002025 */ or $a0,$s0,$zero -/* f039ce8: 0fc0a221 */ jal chrGetTargetSomething +/* f039ce8: 0fc0a221 */ jal chrGetTargetPosition /* f039cec: afae0044 */ sw $t6,0x44($sp) /* f039cf0: 02002025 */ or $a0,$s0,$zero /* f039cf4: 0fc0f917 */ jal func0f03e45c @@ -66724,7 +66724,7 @@ glabel func0f039fcc /* f03a088: 29010079 */ slti $at,$t0,0x79 /* f03a08c: 54200020 */ bnezl $at,.L0f03a110 /* f03a090: 00001025 */ or $v0,$zero,$zero -/* f03a094: 0fc0a221 */ jal chrGetTargetSomething +/* f03a094: 0fc0a221 */ jal chrGetTargetPosition /* f03a098: afa30020 */ sw $v1,0x20($sp) /* f03a09c: 8fa30020 */ lw $v1,0x20($sp) /* f03a0a0: 8fa90024 */ lw $t1,0x24($sp) @@ -66821,7 +66821,7 @@ glabel func0f03a124 /* f03a1e0: 290100b5 */ slti $at,$t0,0xb5 /* f03a1e4: 54200020 */ bnezl $at,.L0f03a268 /* f03a1e8: 00001025 */ or $v0,$zero,$zero -/* f03a1ec: 0fc0a221 */ jal chrGetTargetSomething +/* f03a1ec: 0fc0a221 */ jal chrGetTargetPosition /* f03a1f0: afa30020 */ sw $v1,0x20($sp) /* f03a1f4: 8fa30020 */ lw $v1,0x20($sp) /* f03a1f8: 8fa90024 */ lw $t1,0x24($sp) @@ -66902,7 +66902,7 @@ glabel func0f03a27c /* f03a304: 8fa30044 */ lw $v1,0x44($sp) .L0f03a308: /* f03a308: 02002025 */ or $a0,$s0,$zero -/* f03a30c: 0fc0a221 */ jal chrGetTargetSomething +/* f03a30c: 0fc0a221 */ jal chrGetTargetPosition /* f03a310: afa30044 */ sw $v1,0x44($sp) /* f03a314: 8fa30044 */ lw $v1,0x44($sp) /* f03a318: c4440008 */ lwc1 $f4,0x8($v0) @@ -67484,7 +67484,7 @@ glabel func0f03aa38 /* f03aa80: 0503000d */ bgezl $t0,.L0f03aab8 /* f03aa84: 00001025 */ or $v0,$zero,$zero .L0f03aa88: -/* f03aa88: 0fc0a221 */ jal chrGetTargetSomething +/* f03aa88: 0fc0a221 */ jal chrGetTargetPosition /* f03aa8c: afa40018 */ sw $a0,0x18($sp) /* f03aa90: 8fa40018 */ lw $a0,0x18($sp) /* f03aa94: 24450008 */ addiu $a1,$v0,0x8 @@ -67901,7 +67901,7 @@ glabel func0f03afac /* f03afac: 27bdff78 */ addiu $sp,$sp,-136 /* f03afb0: afbf002c */ sw $ra,0x2c($sp) /* f03afb4: afb00028 */ sw $s0,0x28($sp) -/* f03afb8: 0fc0a221 */ jal chrGetTargetSomething +/* f03afb8: 0fc0a221 */ jal chrGetTargetPosition /* f03afbc: afa40088 */ sw $a0,0x88($sp) /* f03afc0: 8fa40088 */ lw $a0,0x88($sp) /* f03afc4: 8c90001c */ lw $s0,0x1c($a0) @@ -68062,7 +68062,7 @@ glabel func0f03b1e0 /* f03b200: afb10020 */ sw $s1,0x20($sp) /* f03b204: afb0001c */ sw $s0,0x1c($sp) /* f03b208: f7b40010 */ sdc1 $f20,0x10($sp) -/* f03b20c: 0fc0a221 */ jal chrGetTargetSomething +/* f03b20c: 0fc0a221 */ jal chrGetTargetPosition /* f03b210: afa402b8 */ sw $a0,0x2b8($sp) /* f03b214: 8fa402b8 */ lw $a0,0x2b8($sp) /* f03b218: 0040b025 */ or $s6,$v0,$zero @@ -68401,7 +68401,7 @@ glabel func0f03b684 /* f03b6d0: 01cf082b */ sltu $at,$t6,$t7 /* f03b6d4: 502000a5 */ beqzl $at,.L0f03b96c /* f03b6d8: 8fbf001c */ lw $ra,0x1c($sp) -/* f03b6dc: 0fc12472 */ jal func0f0491c8 +/* f03b6dc: 0fc12472 */ jal chrGetDistanceToTarget /* f03b6e0: 02002025 */ or $a0,$s0,$zero /* f03b6e4: 3c014348 */ lui $at,0x4348 /* f03b6e8: 44812000 */ mtc1 $at,$f4 @@ -68414,7 +68414,7 @@ glabel func0f03b684 /* f03b704: 02002025 */ or $a0,$s0,$zero /* f03b708: 50400098 */ beqzl $v0,.L0f03b96c /* f03b70c: 8fbf001c */ lw $ra,0x1c($sp) -/* f03b710: 0fc0a221 */ jal chrGetTargetSomething +/* f03b710: 0fc0a221 */ jal chrGetTargetPosition /* f03b714: 02002025 */ or $a0,$s0,$zero /* f03b718: 10400007 */ beqz $v0,.L0f03b738 /* f03b71c: 00000000 */ sll $zero,$zero,0x0 @@ -68656,7 +68656,7 @@ glabel func0f03ba44 /* f03ba54: afb10020 */ sw $s1,0x20($sp) /* f03ba58: afa5004c */ sw $a1,0x4c($sp) /* f03ba5c: afa60050 */ sw $a2,0x50($sp) -/* f03ba60: 0fc0a221 */ jal chrGetTargetSomething +/* f03ba60: 0fc0a221 */ jal chrGetTargetPosition /* f03ba64: afa70054 */ sw $a3,0x54($sp) /* f03ba68: 3c0e8007 */ lui $t6,0x8007 /* f03ba6c: 8dce8298 */ lw $t6,-0x7d68($t6) @@ -68679,7 +68679,7 @@ glabel func0f03ba44 /* f03baac: 93a60057 */ lbu $a2,0x57($sp) /* f03bab0: 5040003e */ beqzl $v0,.L0f03bbac /* f03bab4: 93a40040 */ lbu $a0,0x40($sp) -/* f03bab8: 0fc12472 */ jal func0f0491c8 +/* f03bab8: 0fc12472 */ jal chrGetDistanceToTarget /* f03babc: 02002025 */ or $a0,$s0,$zero /* f03bac0: 8faa0050 */ lw $t2,0x50($sp) /* f03bac4: 448a2000 */ mtc1 $t2,$f4 @@ -68933,7 +68933,7 @@ glabel func0f03bbc8 .L0f03be54: /* f03be54: 10400073 */ beqz $v0,.L0f03c024 /* f03be58: 02002025 */ or $a0,$s0,$zero -/* f03be5c: 0fc0a221 */ jal chrGetTargetSomething +/* f03be5c: 0fc0a221 */ jal chrGetTargetPosition /* f03be60: afa30030 */ sw $v1,0x30($sp) /* f03be64: 90440000 */ lbu $a0,0x0($v0) /* f03be68: 24010005 */ addiu $at,$zero,0x5 @@ -71921,7 +71921,7 @@ glabel func0f03e788 /* f03e7fc: 8e1902d4 */ lw $t9,0x2d4($s0) /* f03e800: 53200009 */ beqzl $t9,.L0f03e828 /* f03e804: 82020007 */ lb $v0,0x7($s0) -/* f03e808: 0fc0a221 */ jal chrGetTargetSomething +/* f03e808: 0fc0a221 */ jal chrGetTargetPosition /* f03e80c: e7ac0028 */ swc1 $f12,0x28($sp) /* f03e810: 02002025 */ or $a0,$s0,$zero /* f03e814: 0fc122a1 */ jal func0f048a84 @@ -71969,7 +71969,7 @@ glabel func0f03e788 /* f03e8ac: 10000007 */ beqz $zero,.L0f03e8cc /* f03e8b0: c7ac0028 */ lwc1 $f12,0x28($sp) .L0f03e8b4: -/* f03e8b4: 0fc0a221 */ jal chrGetTargetSomething +/* f03e8b4: 0fc0a221 */ jal chrGetTargetPosition /* f03e8b8: e7ac0028 */ swc1 $f12,0x28($sp) /* f03e8bc: 02002025 */ or $a0,$s0,$zero /* f03e8c0: 0fc122a1 */ jal func0f048a84 @@ -72109,7 +72109,7 @@ glabel func0f03e9f4 /* f03ea88: afa80184 */ sw $t0,0x184($sp) /* f03ea8c: afa40190 */ sw $a0,0x190($sp) /* f03ea90: afa30180 */ sw $v1,0x180($sp) -/* f03ea94: 0fc0a221 */ jal chrGetTargetSomething +/* f03ea94: 0fc0a221 */ jal chrGetTargetPosition /* f03ea98: afb9016c */ sw $t9,0x16c($sp) /* f03ea9c: 8fa3016c */ lw $v1,0x16c($sp) /* f03eaa0: afa20168 */ sw $v0,0x168($sp) @@ -73251,7 +73251,7 @@ glabel func0f03fab0 /* f03facc: e7a40030 */ swc1 $f4,0x30($sp) /* f03fad0: 8c83001c */ lw $v1,0x1c($a0) /* f03fad4: afa40060 */ sw $a0,0x60($sp) -/* f03fad8: 0fc0a221 */ jal chrGetTargetSomething +/* f03fad8: 0fc0a221 */ jal chrGetTargetPosition /* f03fadc: afa3005c */ sw $v1,0x5c($sp) /* f03fae0: 8fa3005c */ lw $v1,0x5c($sp) /* f03fae4: c4460008 */ lwc1 $f6,0x8($v0) @@ -73972,7 +73972,7 @@ glabel func0f0404d4 /* f04051c: afa00268 */ sw $zero,0x268($sp) /* f040520: 8c590004 */ lw $t9,0x4($v0) /* f040524: 8fa40278 */ lw $a0,0x278($sp) -/* f040528: 0fc0a221 */ jal chrGetTargetSomething +/* f040528: 0fc0a221 */ jal chrGetTargetPosition /* f04052c: afb90264 */ sw $t9,0x264($sp) /* f040530: 8fab0264 */ lw $t3,0x264($sp) /* f040534: afa2025c */ sw $v0,0x25c($sp) @@ -74225,7 +74225,7 @@ glabel func0f0404d4 /* f0408cc: 1040000f */ beqz $v0,.L0f04090c /* f0408d0: 00401825 */ or $v1,$v0,$zero /* f0408d4: afa2005c */ sw $v0,0x5c($sp) -/* f0408d8: 0fc12472 */ jal func0f0491c8 +/* f0408d8: 0fc12472 */ jal chrGetDistanceToTarget /* f0408dc: 8fa40278 */ lw $a0,0x278($sp) /* f0408e0: 3c014316 */ lui $at,0x4316 /* f0408e4: 44813000 */ mtc1 $at,$f6 @@ -74815,7 +74815,7 @@ glabel func0f0404d4 /* f041164: c5e60050 */ lwc1 $f6,0x50($t7) /* f041168: 46043402 */ mul.s $f16,$f6,$f4 /* f04116c: e7100098 */ swc1 $f16,0x98($t8) -/* f041170: 0fc0a221 */ jal chrGetTargetSomething +/* f041170: 0fc0a221 */ jal chrGetTargetPosition /* f041174: 8fa40278 */ lw $a0,0x278($sp) /* f041178: 8fac01b8 */ lw $t4,0x1b8($sp) /* f04117c: 3c01bf80 */ lui $at,0xbf80 @@ -75458,7 +75458,7 @@ glabel func0f041a74 /* f041aa8: 8c82001c */ lw $v0,0x1c($a0) /* f041aac: 9048003f */ lbu $t0,0x3f($v0) /* f041ab0: 35090020 */ ori $t1,$t0,0x20 -/* f041ab4: 0fc0a221 */ jal chrGetTargetSomething +/* f041ab4: 0fc0a221 */ jal chrGetTargetPosition /* f041ab8: a049003f */ sb $t1,0x3f($v0) /* f041abc: 8e0a005c */ lw $t2,0x5c($s0) /* f041ac0: 8e04001c */ lw $a0,0x1c($s0) @@ -75491,7 +75491,7 @@ glabel func0f041a74 /* f041b24: 02002025 */ or $a0,$s0,$zero /* f041b28: 904a003f */ lbu $t2,0x3f($v0) /* f041b2c: 354b0020 */ ori $t3,$t2,0x20 -/* f041b30: 0fc0a221 */ jal chrGetTargetSomething +/* f041b30: 0fc0a221 */ jal chrGetTargetPosition /* f041b34: a04b003f */ sb $t3,0x3f($v0) /* f041b38: 8e0c0060 */ lw $t4,0x60($s0) /* f041b3c: 8e04001c */ lw $a0,0x1c($s0) @@ -76533,7 +76533,7 @@ glabel func0f0429d8 /* f0429dc: afbf0014 */ sw $ra,0x14($sp) /* f0429e0: afa40018 */ sw $a0,0x18($sp) /* f0429e4: afa5001c */ sw $a1,0x1c($sp) -/* f0429e8: 0fc0a221 */ jal chrGetTargetSomething +/* f0429e8: 0fc0a221 */ jal chrGetTargetPosition /* f0429ec: afa60020 */ sw $a2,0x20($sp) /* f0429f0: 8fae0018 */ lw $t6,0x18($sp) /* f0429f4: c4440008 */ lwc1 $f4,0x8($v0) @@ -76578,7 +76578,7 @@ glabel func0f042a40 /* f042a80: f7b80028 */ sdc1 $f24,0x28($sp) /* f042a84: f7b60020 */ sdc1 $f22,0x20($sp) /* f042a88: f7b40018 */ sdc1 $f20,0x18($sp) -/* f042a8c: 0fc0a221 */ jal chrGetTargetSomething +/* f042a8c: 0fc0a221 */ jal chrGetTargetPosition /* f042a90: 4600e686 */ mov.s $f26,$f28 /* f042a94: 0040f025 */ or $s8,$v0,$zero /* f042a98: 0fc0f917 */ jal func0f03e45c @@ -78250,7 +78250,7 @@ glabel func0f044208 /* f04421c: 8c8e001c */ lw $t6,0x1c($a0) /* f044220: 8c910020 */ lw $s1,0x20($a0) /* f044224: 00808025 */ or $s0,$a0,$zero -/* f044228: 0fc0a221 */ jal chrGetTargetSomething +/* f044228: 0fc0a221 */ jal chrGetTargetPosition /* f04422c: afae0048 */ sw $t6,0x48($sp) /* f044230: 8e0f0014 */ lw $t7,0x14($s0) /* f044234: 00409025 */ or $s2,$v0,$zero @@ -81940,7 +81940,7 @@ glabel func0f047700 /* f047718: afa70074 */ sw $a3,0x74($sp) /* f04771c: 8c8e001c */ lw $t6,0x1c($a0) /* f047720: 00808025 */ or $s0,$a0,$zero -/* f047724: 0fc0a221 */ jal chrGetTargetSomething +/* f047724: 0fc0a221 */ jal chrGetTargetPosition /* f047728: afae0058 */ sw $t6,0x58($sp) /* f04772c: 00408825 */ or $s1,$v0,$zero /* f047730: 02002025 */ or $a0,$s0,$zero @@ -82273,7 +82273,7 @@ glabel func0f047934 .L0f047c04: /* f047c04: 55400010 */ bnezl $t2,.L0f047c48 /* f047c08: 8e02003c */ lw $v0,0x3c($s0) -/* f047c0c: 0fc12472 */ jal func0f0491c8 +/* f047c0c: 0fc12472 */ jal chrGetDistanceToTarget /* f047c10: 02002025 */ or $a0,$s0,$zero /* f047c14: 3c014316 */ lui $at,0x4316 /* f047c18: 44814000 */ mtc1 $at,$f8 @@ -82852,7 +82852,7 @@ glabel func0f048398 /* f048444: 02002025 */ or $a0,$s0,$zero /* f048448: 54400044 */ bnezl $v0,.L0f04855c /* f04844c: 8faa00e0 */ lw $t2,0xe0($sp) -/* f048450: 0fc0a221 */ jal chrGetTargetSomething +/* f048450: 0fc0a221 */ jal chrGetTargetPosition /* f048454: 02002025 */ or $a0,$s0,$zero /* f048458: 1040003f */ beqz $v0,.L0f048558 /* f04845c: 00408825 */ or $s1,$v0,$zero @@ -83362,7 +83362,7 @@ GLOBAL_ASM( glabel func0f048b4c /* f048b4c: 27bdffe8 */ addiu $sp,$sp,-24 /* f048b50: afbf0014 */ sw $ra,0x14($sp) -/* f048b54: 0fc0a221 */ jal chrGetTargetSomething +/* f048b54: 0fc0a221 */ jal chrGetTargetPosition /* f048b58: afa40018 */ sw $a0,0x18($sp) /* f048b5c: 8fa40018 */ lw $a0,0x18($sp) /* f048b60: 0fc122a1 */ jal func0f048a84 @@ -83437,7 +83437,7 @@ glabel func0f048b78 /* f048c50: 10000017 */ beqz $zero,.L0f048cb0 /* f048c54: a4aa0000 */ sh $t2,0x0($a1) .L0f048c58: -/* f048c58: 0fc0a221 */ jal chrGetTargetSomething +/* f048c58: 0fc0a221 */ jal chrGetTargetPosition /* f048c5c: afa7008c */ sw $a3,0x8c($sp) /* f048c60: 8fa7008c */ lw $a3,0x8c($sp) /* f048c64: c4440008 */ lwc1 $f4,0x8($v0) @@ -83475,7 +83475,7 @@ glabel func0f048cc0 /* f048cc8: afbf0014 */ sw $ra,0x14($sp) /* f048ccc: 8c83001c */ lw $v1,0x1c($a0) /* f048cd0: e7b20034 */ swc1 $f18,0x34($sp) -/* f048cd4: 0fc0a221 */ jal chrGetTargetSomething +/* f048cd4: 0fc0a221 */ jal chrGetTargetPosition /* f048cd8: afa30030 */ sw $v1,0x30($sp) /* f048cdc: 8fa30030 */ lw $v1,0x30($sp) /* f048ce0: c7a20034 */ lwc1 $f2,0x34($sp) @@ -83549,7 +83549,7 @@ glabel func0f048dcc /* f048dcc: 27bdffd8 */ addiu $sp,$sp,-40 /* f048dd0: afbf0014 */ sw $ra,0x14($sp) /* f048dd4: 8c83001c */ lw $v1,0x1c($a0) -/* f048dd8: 0fc0a221 */ jal chrGetTargetSomething +/* f048dd8: 0fc0a221 */ jal chrGetTargetPosition /* f048ddc: afa30024 */ sw $v1,0x24($sp) /* f048de0: 8fa30024 */ lw $v1,0x24($sp) /* f048de4: 44801000 */ mtc1 $zero,$f2 @@ -83700,7 +83700,7 @@ glabel func0f048fcc /* f048fd4: afa50034 */ sw $a1,0x34($sp) /* f048fd8: 8c83001c */ lw $v1,0x1c($a0) /* f048fdc: afa40030 */ sw $a0,0x30($sp) -/* f048fe0: 0fc0a221 */ jal chrGetTargetSomething +/* f048fe0: 0fc0a221 */ jal chrGetTargetPosition /* f048fe4: afa30028 */ sw $v1,0x28($sp) /* f048fe8: 8fa30028 */ lw $v1,0x28($sp) /* f048fec: c4460008 */ lwc1 $f6,0x8($v0) @@ -83841,27 +83841,17 @@ glabel func0f04911c /* f0491c4: 27bd0018 */ addiu $sp,$sp,0x18 ); -GLOBAL_ASM( -glabel func0f0491c8 -/* f0491c8: 27bdffe8 */ addiu $sp,$sp,-24 -/* f0491cc: afbf0014 */ sw $ra,0x14($sp) -/* f0491d0: 0fc0a221 */ jal chrGetTargetSomething -/* f0491d4: afa40018 */ sw $a0,0x18($sp) -/* f0491d8: 8fae0018 */ lw $t6,0x18($sp) -/* f0491dc: 00402825 */ or $a1,$v0,$zero -/* f0491e0: 0fc12495 */ jal func0f049254 -/* f0491e4: 8dc4001c */ lw $a0,0x1c($t6) -/* f0491e8: 8fbf0014 */ lw $ra,0x14($sp) -/* f0491ec: 27bd0018 */ addiu $sp,$sp,0x18 -/* f0491f0: 03e00008 */ jr $ra -/* f0491f4: 00000000 */ sll $zero,$zero,0x0 -); +float chrGetDistanceToTarget(struct chrdata *chr) +{ + struct position *targetpos = chrGetTargetPosition(chr); + return func0f049254(chr->pos, targetpos); +} GLOBAL_ASM( glabel func0f0491f8 /* f0491f8: 27bdffe8 */ addiu $sp,$sp,-24 /* f0491fc: afbf0014 */ sw $ra,0x14($sp) -/* f049200: 0fc0a221 */ jal chrGetTargetSomething +/* f049200: 0fc0a221 */ jal chrGetTargetPosition /* f049204: afa40018 */ sw $a0,0x18($sp) /* f049208: 8fae0018 */ lw $t6,0x18($sp) /* f04920c: 00402825 */ or $a1,$v0,$zero @@ -84331,40 +84321,40 @@ s32 chrResolveId(struct chrdata *ref, s32 id) id = ref->chrdup; break; case 0xf8: - if (g_Vars.bond && g_Vars.bond->targetsomething && g_Vars.bond->targetsomething->chr) { - id = g_Vars.bond->targetsomething->chr->chrnum; + if (g_Vars.bond && g_Vars.bond->targetpos && g_Vars.bond->targetpos->chr) { + id = g_Vars.bond->targetpos->chr->chrnum; } break; case 0xf5: - if (g_Vars.coop && g_Vars.coop->targetsomething && g_Vars.coop->targetsomething->chr) { - id = g_Vars.coop->targetsomething->chr->chrnum; + if (g_Vars.coop && g_Vars.coop->targetpos && g_Vars.coop->targetpos->chr) { + id = g_Vars.coop->targetpos->chr->chrnum; } break; case 0xf4: - if (g_Vars.anti && g_Vars.anti->targetsomething && g_Vars.anti->targetsomething->chr) { - id = g_Vars.anti->targetsomething->chr->chrnum; + if (g_Vars.anti && g_Vars.anti->targetpos && g_Vars.anti->targetpos->chr) { + id = g_Vars.anti->targetpos->chr->chrnum; } break; case 0xf2: { u32 index = g_Vars.coopplayernum >= 0 ? (u32)ref->BITFIELD.shorts[1] >> 14 : g_Vars.bondplayernum; struct player *player = g_Vars.players[index]; - if (player && player->targetsomething && player->targetsomething->chr) { - id = player->targetsomething->chr->chrnum; + if (player && player->targetpos && player->targetpos->chr) { + id = player->targetpos->chr->chrnum; } } break; case 0xf1: if (g_Vars.coopplayernum >= 0) { struct player *player = g_Vars.players[1 - ((u32)ref->BITFIELD.shorts[1] >> 14)]; - if (player && player->targetsomething && player->targetsomething->chr) { - id = player->targetsomething->chr->chrnum; + if (player && player->targetpos && player->targetpos->chr) { + id = player->targetpos->chr->chrnum; } } break; case 0xf6: { - struct targetsomething *target = chrGetTargetSomething(ref); + struct position *target = chrGetTargetPosition(ref); if ((target->unk00 == 3 || target->unk00 == 6) && target->chr) { id = target->chr->chrnum; } @@ -84374,33 +84364,33 @@ s32 chrResolveId(struct chrdata *ref, s32 id) } else { // ref is NULL switch (id) { case 0xf8: - if (g_Vars.bond && g_Vars.bond->targetsomething && g_Vars.bond->targetsomething->chr) { - id = g_Vars.bond->targetsomething->chr->chrnum; + if (g_Vars.bond && g_Vars.bond->targetpos && g_Vars.bond->targetpos->chr) { + id = g_Vars.bond->targetpos->chr->chrnum; } break; case 0xf5: - if (g_Vars.coop && g_Vars.coop->targetsomething && g_Vars.coop->targetsomething->chr) { - id = g_Vars.coop->targetsomething->chr->chrnum; + if (g_Vars.coop && g_Vars.coop->targetpos && g_Vars.coop->targetpos->chr) { + id = g_Vars.coop->targetpos->chr->chrnum; } break; case 0xf4: - if (g_Vars.anti && g_Vars.anti->targetsomething && g_Vars.anti->targetsomething->chr) { - id = g_Vars.anti->targetsomething->chr->chrnum; + if (g_Vars.anti && g_Vars.anti->targetpos && g_Vars.anti->targetpos->chr) { + id = g_Vars.anti->targetpos->chr->chrnum; } break; case 0xf2: // P1/P2 { struct player *player = g_Vars.players[g_Vars.bondplayernum]; - if (player && player->targetsomething && player->targetsomething->chr) { - id = player->targetsomething->chr->chrnum; + if (player && player->targetpos && player->targetpos->chr) { + id = player->targetpos->chr->chrnum; } } break; case 0xf1: // P1/P2 inverse? if (g_Vars.coopplayernum >= 0) { struct player *player = g_Vars.players[g_Vars.coopplayernum]; - if (player && player->targetsomething && player->targetsomething->chr) { - id = player->targetsomething->chr->chrnum; + if (player && player->targetpos && player->targetpos->chr) { + id = player->targetpos->chr->chrnum; } } break; @@ -84565,7 +84555,7 @@ glabel func0f049d34 /* f049d34: 27bdff80 */ addiu $sp,$sp,-128 /* f049d38: afbf0014 */ sw $ra,0x14($sp) /* f049d3c: afa40080 */ sw $a0,0x80($sp) -/* f049d40: 0fc0a221 */ jal chrGetTargetSomething +/* f049d40: 0fc0a221 */ jal chrGetTargetPosition /* f049d44: afa50084 */ sw $a1,0x84($sp) /* f049d48: 44801000 */ mtc1 $zero,$f2 /* f049d4c: 8fa40080 */ lw $a0,0x80($sp) @@ -84705,7 +84695,7 @@ GLOBAL_ASM( glabel func0f049fcc /* f049fcc: 27bdffa8 */ addiu $sp,$sp,-88 /* f049fd0: afbf001c */ sw $ra,0x1c($sp) -/* f049fd4: 0fc0a221 */ jal chrGetTargetSomething +/* f049fd4: 0fc0a221 */ jal chrGetTargetPosition /* f049fd8: afa40058 */ sw $a0,0x58($sp) /* f049fdc: 1040003c */ beqz $v0,.L0f04a0d0 /* f049fe0: 00401825 */ or $v1,$v0,$zero @@ -85097,7 +85087,7 @@ glabel func0f04a4ec .L0f04a520: /* f04a520: 8e30001c */ lw $s0,0x1c($s1) /* f04a524: afa60024 */ sw $a2,0x24($sp) -/* f04a528: 0fc0a221 */ jal chrGetTargetSomething +/* f04a528: 0fc0a221 */ jal chrGetTargetPosition /* f04a52c: 02202025 */ or $a0,$s1,$zero /* f04a530: 26040008 */ addiu $a0,$s0,0x8 /* f04a534: 26050028 */ addiu $a1,$s0,0x28 @@ -85208,7 +85198,7 @@ glabel func0f04a674 .L0f04a6b4: /* f04a6b4: afa40028 */ sw $a0,0x28($sp) /* f04a6b8: a3a5002f */ sb $a1,0x2f($sp) -/* f04a6bc: 0fc0a221 */ jal chrGetTargetSomething +/* f04a6bc: 0fc0a221 */ jal chrGetTargetPosition /* f04a6c0: e7a20024 */ swc1 $f2,0x24($sp) /* f04a6c4: 90430000 */ lbu $v1,0x0($v0) /* f04a6c8: 24010006 */ addiu $at,$zero,0x6 @@ -85671,7 +85661,7 @@ glabel func0f04ad08 /* f04ad20: afb20020 */ sw $s2,0x20($sp) /* f04ad24: afb1001c */ sw $s1,0x1c($sp) /* f04ad28: afb00018 */ sw $s0,0x18($sp) -/* f04ad2c: 0fc0a221 */ jal chrGetTargetSomething +/* f04ad2c: 0fc0a221 */ jal chrGetTargetPosition /* f04ad30: afa400d8 */ sw $a0,0xd8($sp) /* f04ad34: 904f0000 */ lbu $t7,0x0($v0) /* f04ad38: 8fae00d8 */ lw $t6,0xd8($sp) @@ -86330,7 +86320,7 @@ glabel func0f04b658 /* f04b664: afa0002c */ sw $zero,0x2c($sp) /* f04b668: 8c8e001c */ lw $t6,0x1c($a0) /* f04b66c: 00808025 */ or $s0,$a0,$zero -/* f04b670: 0fc0a221 */ jal chrGetTargetSomething +/* f04b670: 0fc0a221 */ jal chrGetTargetPosition /* f04b674: afae0028 */ sw $t6,0x28($sp) /* f04b678: afa20024 */ sw $v0,0x24($sp) /* f04b67c: 860f012c */ lh $t7,0x12c($s0) @@ -86548,7 +86538,7 @@ glabel func0f04b950 /* f04b990: 10000024 */ beqz $zero,.L0f04ba24 /* f04b994: 00001025 */ or $v0,$zero,$zero .L0f04b998: -/* f04b998: 0fc0a221 */ jal chrGetTargetSomething +/* f04b998: 0fc0a221 */ jal chrGetTargetPosition /* f04b99c: 8fa40040 */ lw $a0,0x40($sp) /* f04b9a0: 14400003 */ bnez $v0,.L0f04b9b0 /* f04b9a4: 00401825 */ or $v1,$v0,$zero @@ -86614,7 +86604,7 @@ glabel func0f04ba34 /* f04ba70: a7a500be */ sh $a1,0xbe($sp) /* f04ba74: afa20078 */ sw $v0,0x78($sp) /* f04ba78: 0000f025 */ or $s8,$zero,$zero -/* f04ba7c: 0fc0a221 */ jal chrGetTargetSomething +/* f04ba7c: 0fc0a221 */ jal chrGetTargetPosition /* f04ba80: 02802025 */ or $a0,$s4,$zero /* f04ba84: 8e8f001c */ lw $t7,0x1c($s4) /* f04ba88: 3c01432a */ lui $at,0x432a @@ -87321,7 +87311,7 @@ glabel func0f04c444 /* f04c44c: 8c8e001c */ lw $t6,0x1c($a0) /* f04c450: 51c00048 */ beqzl $t6,.L0f04c574 /* f04c454: 8fbf0014 */ lw $ra,0x14($sp) -/* f04c458: 0fc0a221 */ jal chrGetTargetSomething +/* f04c458: 0fc0a221 */ jal chrGetTargetPosition /* f04c45c: afa40018 */ sw $a0,0x18($sp) /* f04c460: 10400043 */ beqz $v0,.L0f04c570 /* f04c464: 8fa40018 */ lw $a0,0x18($sp) @@ -87494,7 +87484,7 @@ glabel func0f04c6b4 /* f04c6b4: 27bdffe0 */ addiu $sp,$sp,-32 /* f04c6b8: afbf001c */ sw $ra,0x1c($sp) /* f04c6bc: afa40020 */ sw $a0,0x20($sp) -/* f04c6c0: 0fc0a221 */ jal chrGetTargetSomething +/* f04c6c0: 0fc0a221 */ jal chrGetTargetPosition /* f04c6c4: afa50024 */ sw $a1,0x24($sp) /* f04c6c8: 8fae0020 */ lw $t6,0x20($sp) /* f04c6cc: 8faf0024 */ lw $t7,0x24($sp) @@ -87525,7 +87515,7 @@ glabel func0f04c71c /* f04c71c: 27bdffe0 */ addiu $sp,$sp,-32 /* f04c720: afbf001c */ sw $ra,0x1c($sp) /* f04c724: afa40020 */ sw $a0,0x20($sp) -/* f04c728: 0fc0a221 */ jal chrGetTargetSomething +/* f04c728: 0fc0a221 */ jal chrGetTargetPosition /* f04c72c: afa50024 */ sw $a1,0x24($sp) /* f04c730: 8fae0020 */ lw $t6,0x20($sp) /* f04c734: 8faf0024 */ lw $t7,0x24($sp) @@ -87557,7 +87547,7 @@ glabel func0f04c784 /* f04c788: 27bdffd8 */ addiu $sp,$sp,-40 /* f04c78c: afbf0014 */ sw $ra,0x14($sp) /* f04c790: afa40028 */ sw $a0,0x28($sp) -/* f04c794: 0fc0a221 */ jal chrGetTargetSomething +/* f04c794: 0fc0a221 */ jal chrGetTargetPosition /* f04c798: e7b00024 */ swc1 $f16,0x24($sp) /* f04c79c: 90430000 */ lbu $v1,0x0($v0) /* f04c7a0: 24010003 */ addiu $at,$zero,0x3 @@ -87641,7 +87631,7 @@ glabel func0f04c874 /* f04c8bc: f7b80038 */ sdc1 $f24,0x38($sp) /* f04c8c0: f7b60030 */ sdc1 $f22,0x30($sp) /* f04c8c4: f7b40028 */ sdc1 $f20,0x28($sp) -/* f04c8c8: 0fc0a221 */ jal chrGetTargetSomething +/* f04c8c8: 0fc0a221 */ jal chrGetTargetPosition /* f04c8cc: afa700f4 */ sw $a3,0xf4($sp) /* f04c8d0: 4480d000 */ mtc1 $zero,$f26 /* f04c8d4: 00408825 */ or $s1,$v0,$zero @@ -88193,7 +88183,7 @@ glabel func0f04d000 /* f04d04c: 8de8001c */ lw $t0,0x1c($t7) /* f04d050: 8de10018 */ lw $at,0x18($t7) /* f04d054: adc8001c */ sw $t0,0x1c($t6) -/* f04d058: 0fc0a221 */ jal chrGetTargetSomething +/* f04d058: 0fc0a221 */ jal chrGetTargetPosition /* f04d05c: adc10018 */ sw $at,0x18($t6) /* f04d060: 02002025 */ or $a0,$s0,$zero /* f04d064: 0fc122a1 */ jal func0f048a84 diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index f78084ba8..c5017c407 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -21999,7 +21999,7 @@ glabel func0f073478 /* f073548: 00025040 */ sll $t2,$v0,0x1 .L0f07354c: /* f07354c: e7ac0094 */ swc1 $f12,0x94($sp) -/* f073550: 0fc0a221 */ jal chrGetTargetSomething +/* f073550: 0fc0a221 */ jal chrGetTargetPosition /* f073554: e7ae008c */ swc1 $f14,0x8c($sp) /* f073558: 24480028 */ addiu $t0,$v0,0x28 /* f07355c: afa80010 */ sw $t0,0x10($sp) @@ -22282,7 +22282,7 @@ glabel func0f073478 /* f073970: 10000034 */ beqz $zero,.L0f073a44 /* f073974: a5000062 */ sh $zero,0x62($t0) .L0f073978: -/* f073978: 0fc0a221 */ jal chrGetTargetSomething +/* f073978: 0fc0a221 */ jal chrGetTargetPosition /* f07397c: 02802025 */ or $a0,$s4,$zero /* f073980: 8e09001c */ lw $t1,0x1c($s0) /* f073984: 14490029 */ bne $v0,$t1,.L0f073a2c @@ -30309,13 +30309,13 @@ glabel func0f07accc /* f07adb4: 27bd00f8 */ addiu $sp,$sp,0xf8 ); -struct targetsomething *heliGetTargetSomething(struct heliobj *heli) +struct position *heliGetTargetPosition(struct heliobj *heli) { if (heli->target == -1) { - return g_Vars.currentplayer->targetsomething; + return g_Vars.currentplayer->targetpos; } - return g_Vars.targets + heli->target; + return g_Vars.positions + heli->target; } GLOBAL_ASM( @@ -30344,7 +30344,7 @@ glabel func0f07ae18 /* f07ae34: c444007c */ lwc1 $f4,0x7c($v0) /* f07ae38: a3a00023 */ sb $zero,0x23($sp) /* f07ae3c: afa20024 */ sw $v0,0x24($sp) -/* f07ae40: 0fc1eb6e */ jal heliGetTargetSomething +/* f07ae40: 0fc1eb6e */ jal heliGetTargetPosition /* f07ae44: e7a4001c */ swc1 $f4,0x1c($sp) /* f07ae48: 8fa40024 */ lw $a0,0x24($sp) /* f07ae4c: c4480008 */ lwc1 $f8,0x8($v0) @@ -30421,7 +30421,7 @@ glabel func0f07af34 /* f07af44: 1040001d */ beqz $v0,.L0f07afbc /* f07af48: 00402025 */ or $a0,$v0,$zero /* f07af4c: afa00020 */ sw $zero,0x20($sp) -/* f07af50: 0fc1eb6e */ jal heliGetTargetSomething +/* f07af50: 0fc1eb6e */ jal heliGetTargetPosition /* f07af54: afa20024 */ sw $v0,0x24($sp) /* f07af58: 904e0000 */ lbu $t6,0x0($v0) /* f07af5c: 24010006 */ addiu $at,$zero,0x6 @@ -30687,7 +30687,7 @@ glabel func0f07b290 /* f07b2a8: 00803025 */ or $a2,$a0,$zero /* f07b2ac: 51c0004c */ beqzl $t6,.L0f07b3e0 /* f07b2b0: 8fbf0024 */ lw $ra,0x24($sp) -/* f07b2b4: 0fc1eb6e */ jal heliGetTargetSomething +/* f07b2b4: 0fc1eb6e */ jal heliGetTargetPosition /* f07b2b8: afa600d0 */ sw $a2,0xd0($sp) /* f07b2bc: 8faf00d4 */ lw $t7,0xd4($sp) /* f07b2c0: 8fa600d0 */ lw $a2,0xd0($sp) @@ -30797,7 +30797,7 @@ glabel func0f07b3f0 /* f07b444: c44400cc */ lwc1 $f4,0xcc($v0) /* f07b448: e7b00110 */ swc1 $f16,0x110($sp) /* f07b44c: e7b0010c */ swc1 $f16,0x10c($sp) -/* f07b450: 0fc1eb6e */ jal heliGetTargetSomething +/* f07b450: 0fc1eb6e */ jal heliGetTargetPosition /* f07b454: e7a400e0 */ swc1 $f4,0xe0($sp) /* f07b458: afa200dc */ sw $v0,0xdc($sp) /* f07b45c: afa000d4 */ sw $zero,0xd4($sp) @@ -32358,7 +32358,7 @@ glabel func0f07cacc /* f07caf4: afa40170 */ sw $a0,0x170($sp) /* f07caf8: 8c930004 */ lw $s3,0x4($a0) /* f07cafc: afb30168 */ sw $s3,0x168($sp) -/* f07cb00: 0fc1eb6e */ jal heliGetTargetSomething +/* f07cb00: 0fc1eb6e */ jal heliGetTargetPosition /* f07cb04: 02602025 */ or $a0,$s3,$zero /* f07cb08: 8fa50170 */ lw $a1,0x170($sp) /* f07cb0c: afa2015c */ sw $v0,0x15c($sp) @@ -39772,7 +39772,7 @@ glabel func0f08307c /* f083568: 8c9802d4 */ lw $t8,0x2d4($a0) /* f08356c: 53000007 */ beqzl $t8,.L0f08358c /* f083570: 8c85002c */ lw $a1,0x2c($a0) -/* f083574: 0fc12472 */ jal func0f0491c8 +/* f083574: 0fc12472 */ jal chrGetDistanceToTarget /* f083578: afa40088 */ sw $a0,0x88($sp) /* f08357c: 8fa40088 */ lw $a0,0x88($sp) /* f083580: 10000007 */ beqz $zero,.L0f0835a0 @@ -53324,7 +53324,7 @@ glabel func0f08f11c /* f08f2c0: 5040000e */ beqzl $v0,.L0f08f2fc /* f08f2c4: 822a0007 */ lb $t2,0x7($s1) .L0f08f2c8: -/* f08f2c8: 0fc0a221 */ jal chrGetTargetSomething +/* f08f2c8: 0fc0a221 */ jal chrGetTargetPosition /* f08f2cc: 02202025 */ or $a0,$s1,$zero /* f08f2d0: 02202025 */ or $a0,$s1,$zero /* f08f2d4: 24450008 */ addiu $a1,$v0,0x8 @@ -227717,7 +227717,7 @@ glabel func0f129cfc /* f129d9c: 8f190020 */ lw $t9,0x20($t8) /* f129da0: 5320002b */ beqzl $t9,.L0f129e50 /* f129da4: 8eb90000 */ lw $t9,0x0($s5) -/* f129da8: 0fc0a221 */ jal chrGetTargetSomething +/* f129da8: 0fc0a221 */ jal chrGetTargetPosition /* f129dac: 02022021 */ addu $a0,$s0,$v0 /* f129db0: 8ec80284 */ lw $t0,0x284($s6) /* f129db4: 8d0900bc */ lw $t1,0xbc($t0) @@ -345156,7 +345156,7 @@ GLOBAL_ASM( glabel func0f191600 /* f191600: 27bdffe8 */ addiu $sp,$sp,-24 /* f191604: afbf0014 */ sw $ra,0x14($sp) -/* f191608: 0fc0a221 */ jal chrGetTargetSomething +/* f191608: 0fc0a221 */ jal chrGetTargetPosition /* f19160c: 00000000 */ sll $zero,$zero,0x0 /* f191610: 10400004 */ beqz $v0,.L0f191624 /* f191614: 00001825 */ or $v1,$zero,$zero @@ -345182,7 +345182,7 @@ glabel func0f191638 /* f191650: 51c1009b */ beql $t6,$at,.L0f1918c0 /* f191654: 8fbf0014 */ lw $ra,0x14($sp) /* f191658: afa40030 */ sw $a0,0x30($sp) -/* f19165c: 0fc0a221 */ jal chrGetTargetSomething +/* f19165c: 0fc0a221 */ jal chrGetTargetPosition /* f191660: afa0002c */ sw $zero,0x2c($sp) /* f191664: afa20028 */ sw $v0,0x28($sp) /* f191668: 0fc633fe */ jal func0f18cff8 @@ -345463,7 +345463,7 @@ glabel func0f1918d0 /* f191a48: 00002825 */ or $a1,$zero,$zero /* f191a4c: 5040000c */ beqzl $v0,.L0f191a80 /* f191a50: 922402a0 */ lbu $a0,0x2a0($s1) -/* f191a54: 0fc0a221 */ jal chrGetTargetSomething +/* f191a54: 0fc0a221 */ jal chrGetTargetPosition /* f191a58: 02202025 */ or $a0,$s1,$zero /* f191a5c: 02202025 */ or $a0,$s1,$zero /* f191a60: 0fc122a1 */ jal func0f048a84 @@ -346583,7 +346583,7 @@ glabel func0f19294c /* f1929c8: 5161000e */ beql $t3,$at,.L0f192a04 /* f1929cc: 8c8e02d4 */ lw $t6,0x2d4($a0) /* f1929d0: afa40018 */ sw $a0,0x18($sp) -/* f1929d4: 0fc0a221 */ jal chrGetTargetSomething +/* f1929d4: 0fc0a221 */ jal chrGetTargetPosition /* f1929d8: afa5001c */ sw $a1,0x1c($sp) /* f1929dc: 8fa5001c */ lw $a1,0x1c($sp) /* f1929e0: 8fa40018 */ lw $a0,0x18($sp) @@ -346764,7 +346764,7 @@ glabel func0f192a74 /* f192c40: afa3003c */ sw $v1,0x3c($sp) /* f192c44: afa6001c */ sw $a2,0x1c($sp) /* f192c48: e7ae002c */ swc1 $f14,0x2c($sp) -/* f192c4c: 0fc0a221 */ jal chrGetTargetSomething +/* f192c4c: 0fc0a221 */ jal chrGetTargetPosition /* f192c50: e7b00030 */ swc1 $f16,0x30($sp) /* f192c54: 8c4b0004 */ lw $t3,0x4($v0) /* f192c58: 3c05800a */ lui $a1,0x800a @@ -347140,7 +347140,7 @@ glabel func0f192e90 /* f19317c: 2411ffff */ addiu $s1,$zero,-1 /* f193180: 52380028 */ beql $s1,$t8,.L0f193224 /* f193184: 86a2017e */ lh $v0,0x17e($s5) -/* f193188: 0fc0a221 */ jal chrGetTargetSomething +/* f193188: 0fc0a221 */ jal chrGetTargetPosition /* f19318c: 02a02025 */ or $a0,$s5,$zero /* f193190: 00408025 */ or $s0,$v0,$zero /* f193194: 0fc0e6a5 */ jal func0f039a94 @@ -349730,7 +349730,7 @@ glabel func0f194b40 /* f19558c: 02802025 */ or $a0,$s4,$zero /* f195590: 13200007 */ beqz $t9,.L0f1955b0 /* f195594: 00000000 */ sll $zero,$zero,0x0 -/* f195598: 0fc0a221 */ jal chrGetTargetSomething +/* f195598: 0fc0a221 */ jal chrGetTargetPosition /* f19559c: 2415002f */ addiu $s5,$zero,0x2f /* f1955a0: 0fc633fe */ jal func0f18cff8 /* f1955a4: 8c440004 */ lw $a0,0x4($v0) @@ -350069,14 +350069,14 @@ glabel func0f194b40 /* f195a60: 8e4d0128 */ lw $t5,0x128($s2) /* f195a64: 11a00010 */ beqz $t5,.L0f195aa8 /* f195a68: 00000000 */ sll $zero,$zero,0x0 -/* f195a6c: 0fc0a221 */ jal chrGetTargetSomething +/* f195a6c: 0fc0a221 */ jal chrGetTargetPosition /* f195a70: 02802025 */ or $a0,$s4,$zero /* f195a74: 02802025 */ or $a0,$s4,$zero /* f195a78: 0fc64b70 */ jal func0f192dc0 /* f195a7c: 8c450004 */ lw $a1,0x4($v0) /* f195a80: 10400009 */ beqz $v0,.L0f195aa8 /* f195a84: 02802025 */ or $a0,$s4,$zero -/* f195a88: 0fc0a221 */ jal chrGetTargetSomething +/* f195a88: 0fc0a221 */ jal chrGetTargetPosition /* f195a8c: 2415002f */ addiu $s5,$zero,0x2f /* f195a90: 0fc633fe */ jal func0f18cff8 /* f195a94: 8c440004 */ lw $a0,0x4($v0) @@ -350671,7 +350671,7 @@ glabel func0f194b40 /* f196340: 8698017e */ lh $t8,0x17e($s4) /* f196344: 13d8000a */ beq $s8,$t8,.L0f196370 /* f196348: 00000000 */ sll $zero,$zero,0x0 -/* f19634c: 0fc0a221 */ jal chrGetTargetSomething +/* f19634c: 0fc0a221 */ jal chrGetTargetPosition /* f196350: 02802025 */ or $a0,$s4,$zero /* f196354: 02802025 */ or $a0,$s4,$zero /* f196358: 0fc64b70 */ jal func0f192dc0 @@ -350899,13 +350899,13 @@ glabel func0f194b40 /* f19667c: 868f017e */ lh $t7,0x17e($s4) /* f196680: 53cf000e */ beql $s8,$t7,.L0f1966bc /* f196684: 24190029 */ addiu $t9,$zero,0x29 -/* f196688: 0fc0a221 */ jal chrGetTargetSomething +/* f196688: 0fc0a221 */ jal chrGetTargetPosition /* f19668c: 02802025 */ or $a0,$s4,$zero /* f196690: 0fc0e6a5 */ jal func0f039a94 /* f196694: 8c440004 */ lw $a0,0x4($v0) /* f196698: 54400008 */ bnezl $v0,.L0f1966bc /* f19669c: 24190029 */ addiu $t9,$zero,0x29 -/* f1966a0: 0fc0a221 */ jal chrGetTargetSomething +/* f1966a0: 0fc0a221 */ jal chrGetTargetPosition /* f1966a4: 02802025 */ or $a0,$s4,$zero /* f1966a8: 02802025 */ or $a0,$s4,$zero /* f1966ac: 0fc64b70 */ jal func0f192dc0 @@ -350964,7 +350964,7 @@ glabel func0f194b40 /* f196768: 8e490128 */ lw $t1,0x128($s2) /* f19676c: 11200031 */ beqz $t1,.L0f196834 /* f196770: 00000000 */ sll $zero,$zero,0x0 -/* f196774: 0fc0a221 */ jal chrGetTargetSomething +/* f196774: 0fc0a221 */ jal chrGetTargetPosition /* f196778: 02802025 */ or $a0,$s4,$zero /* f19677c: 02802025 */ or $a0,$s4,$zero /* f196780: 0fc64b70 */ jal func0f192dc0 @@ -351006,7 +351006,7 @@ glabel func0f194b40 /* f196808: 02802025 */ or $a0,$s4,$zero /* f19680c: 45000009 */ bc1f .L0f196834 /* f196810: 00000000 */ sll $zero,$zero,0x0 -/* f196814: 0fc0a221 */ jal chrGetTargetSomething +/* f196814: 0fc0a221 */ jal chrGetTargetPosition /* f196818: a28e02a0 */ sb $t6,0x2a0($s4) /* f19681c: 0fc633fe */ jal func0f18cff8 /* f196820: 8c440004 */ lw $a0,0x4($v0) @@ -351100,7 +351100,7 @@ glabel func0f194b40 /* f196960: 8e580128 */ lw $t8,0x128($s2) /* f196964: 53000012 */ beqzl $t8,.L0f1969b0 /* f196968: 8e4900dc */ lw $t1,0xdc($s2) -/* f19696c: 0fc0a221 */ jal chrGetTargetSomething +/* f19696c: 0fc0a221 */ jal chrGetTargetPosition /* f196970: 02802025 */ or $a0,$s4,$zero /* f196974: 02802025 */ or $a0,$s4,$zero /* f196978: 0fc64b70 */ jal func0f192dc0 @@ -351108,7 +351108,7 @@ glabel func0f194b40 /* f196980: 1040000a */ beqz $v0,.L0f1969ac /* f196984: 240f002f */ addiu $t7,$zero,0x2f /* f196988: a28f02a0 */ sb $t7,0x2a0($s4) -/* f19698c: 0fc0a221 */ jal chrGetTargetSomething +/* f19698c: 0fc0a221 */ jal chrGetTargetPosition /* f196990: 02802025 */ or $a0,$s4,$zero /* f196994: 0fc633fe */ jal func0f18cff8 /* f196998: 8c440004 */ lw $a0,0x4($v0) @@ -351275,7 +351275,7 @@ glabel func0f194b40 /* f196bd4: 868d017e */ lh $t5,0x17e($s4) /* f196bd8: 13cd0021 */ beq $s8,$t5,.L0f196c60 /* f196bdc: 00000000 */ sll $zero,$zero,0x0 -/* f196be0: 0fc0a221 */ jal chrGetTargetSomething +/* f196be0: 0fc0a221 */ jal chrGetTargetPosition /* f196be4: 02802025 */ or $a0,$s4,$zero /* f196be8: 8e83001c */ lw $v1,0x1c($s4) /* f196bec: 00408025 */ or $s0,$v0,$zero @@ -351404,7 +351404,7 @@ glabel func0f194b40 /* f196dc0: 1040000b */ beqz $v0,.L0f196df0 /* f196dc4: 8fa30054 */ lw $v1,0x54($sp) /* f196dc8: 02802025 */ or $a0,$s4,$zero -/* f196dcc: 0fc12472 */ jal func0f0491c8 +/* f196dcc: 0fc12472 */ jal chrGetDistanceToTarget /* f196dd0: afa30054 */ sw $v1,0x54($sp) /* f196dd4: 3c014352 */ lui $at,0x4352 /* f196dd8: 44813000 */ mtc1 $at,$f6 @@ -351429,7 +351429,7 @@ glabel func0f194b40 /* f196e1c: 02802025 */ or $a0,$s4,$zero /* f196e20: afa30054 */ sw $v1,0x54($sp) /* f196e24: 46125100 */ add.s $f4,$f10,$f18 -/* f196e28: 0fc12472 */ jal func0f0491c8 +/* f196e28: 0fc12472 */ jal chrGetDistanceToTarget /* f196e2c: e7a40050 */ swc1 $f4,0x50($sp) /* f196e30: c7a80050 */ lwc1 $f8,0x50($sp) /* f196e34: 8fa30054 */ lw $v1,0x54($sp) @@ -351766,7 +351766,7 @@ glabel func0f194b40 /* f1972f8: 10400021 */ beqz $v0,.L0f197380 /* f1972fc: 00000000 */ sll $zero,$zero,0x0 .L0f197300: -/* f197300: 0fc0a221 */ jal chrGetTargetSomething +/* f197300: 0fc0a221 */ jal chrGetTargetPosition /* f197304: 02802025 */ or $a0,$s4,$zero /* f197308: 0fc0e6a5 */ jal func0f039a94 /* f19730c: 8c440004 */ lw $a0,0x4($v0) @@ -352042,7 +352042,7 @@ glabel func0f197600 /* f1976dc: afa60060 */ sw $a2,0x60($sp) /* f1976e0: afa7004c */ sw $a3,0x4c($sp) /* f1976e4: afa80054 */ sw $t0,0x54($sp) -/* f1976e8: 0fc0a221 */ jal chrGetTargetSomething +/* f1976e8: 0fc0a221 */ jal chrGetTargetPosition /* f1976ec: afa90048 */ sw $t1,0x48($sp) /* f1976f0: 8fa7004c */ lw $a3,0x4c($sp) /* f1976f4: c4460008 */ lwc1 $f6,0x8($v0) @@ -352101,7 +352101,7 @@ glabel func0f197600 /* f1977c0: 11810008 */ beq $t4,$at,.L0f1977e4 /* f1977c4: 00000000 */ sll $zero,$zero,0x0 /* f1977c8: afa60060 */ sw $a2,0x60($sp) -/* f1977cc: 0fc0a221 */ jal chrGetTargetSomething +/* f1977cc: 0fc0a221 */ jal chrGetTargetPosition /* f1977d0: afa80054 */ sw $t0,0x54($sp) /* f1977d4: 8fa80054 */ lw $t0,0x54($sp) /* f1977d8: 8fa60060 */ lw $a2,0x60($sp) @@ -353330,7 +353330,7 @@ glabel func0f198338 /* f198858: 11810014 */ beq $t4,$at,.L0f1988ac /* f19885c: 00000000 */ sll $zero,$zero,0x0 /* f198860: afa8004c */ sw $t0,0x4c($sp) -/* f198864: 0fc0a221 */ jal chrGetTargetSomething +/* f198864: 0fc0a221 */ jal chrGetTargetPosition /* f198868: afaa0048 */ sw $t2,0x48($sp) /* f19886c: 0fc633fe */ jal func0f18cff8 /* f198870: 8c440004 */ lw $a0,0x4($v0) @@ -353371,7 +353371,7 @@ glabel func0f198338 /* f1988f0: 53210016 */ beql $t9,$at,.L0f19894c /* f1988f4: 2508fff1 */ addiu $t0,$t0,-15 /* f1988f8: afa8004c */ sw $t0,0x4c($sp) -/* f1988fc: 0fc0a221 */ jal chrGetTargetSomething +/* f1988fc: 0fc0a221 */ jal chrGetTargetPosition /* f198900: afaa0048 */ sw $t2,0x48($sp) /* f198904: 0fc633fe */ jal func0f18cff8 /* f198908: 8c440004 */ lw $a0,0x4($v0) @@ -353428,7 +353428,7 @@ glabel func0f198338 /* f1989c4: 2401ffff */ addiu $at,$zero,-1 /* f1989c8: 51e1000c */ beql $t7,$at,.L0f1989fc /* f1989cc: 24080031 */ addiu $t0,$zero,0x31 -/* f1989d0: 0fc0a221 */ jal chrGetTargetSomething +/* f1989d0: 0fc0a221 */ jal chrGetTargetPosition /* f1989d4: 03202025 */ or $a0,$t9,$zero /* f1989d8: 8c4b0004 */ lw $t3,0x4($v0) /* f1989dc: 00004025 */ or $t0,$zero,$zero @@ -353453,7 +353453,7 @@ glabel func0f198338 /* f198a20: 13010008 */ beq $t8,$at,.L0f198a44 /* f198a24: 01c02025 */ or $a0,$t6,$zero /* f198a28: afa8004c */ sw $t0,0x4c($sp) -/* f198a2c: 0fc0a221 */ jal chrGetTargetSomething +/* f198a2c: 0fc0a221 */ jal chrGetTargetPosition /* f198a30: afaa0048 */ sw $t2,0x48($sp) /* f198a34: 8c4f0004 */ lw $t7,0x4($v0) /* f198a38: 8fa8004c */ lw $t0,0x4c($sp) @@ -354119,7 +354119,7 @@ glabel func0f198eec /* f199378: 2401ffff */ addiu $at,$zero,-1 /* f19937c: 51a10022 */ beql $t5,$at,.L0f199408 /* f199380: 8fa40090 */ lw $a0,0x90($sp) -/* f199384: 0fc0a221 */ jal chrGetTargetSomething +/* f199384: 0fc0a221 */ jal chrGetTargetPosition /* f199388: 01802025 */ or $a0,$t4,$zero /* f19938c: 0fc633fe */ jal func0f18cff8 /* f199390: 8c440004 */ lw $a0,0x4($v0) @@ -354134,7 +354134,7 @@ glabel func0f198eec /* f1993b4: 00000000 */ sll $zero,$zero,0x0 /* f1993b8: 45020013 */ bc1fl .L0f199408 /* f1993bc: 8fa40090 */ lw $a0,0x90($sp) -/* f1993c0: 0fc0a221 */ jal chrGetTargetSomething +/* f1993c0: 0fc0a221 */ jal chrGetTargetPosition /* f1993c4: 01c02025 */ or $a0,$t6,$zero /* f1993c8: 0fc633fe */ jal func0f18cff8 /* f1993cc: 8c440004 */ lw $a0,0x4($v0) @@ -355313,7 +355313,7 @@ glabel func0f19a37c /* f19a3c0: 8d4a84a0 */ lw $t2,-0x7b60($t2) /* f19a3c4: e7a00050 */ swc1 $f0,0x50($sp) /* f19a3c8: 02002025 */ or $a0,$s0,$zero -/* f19a3cc: 0fc0a221 */ jal chrGetTargetSomething +/* f19a3cc: 0fc0a221 */ jal chrGetTargetPosition /* f19a3d0: afaa0048 */ sw $t2,0x48($sp) /* f19a3d4: 8e0b02d4 */ lw $t3,0x2d4($s0) /* f19a3d8: 02002025 */ or $a0,$s0,$zero @@ -355706,7 +355706,7 @@ glabel func0f19a850 /* f19a964: 316c0080 */ andi $t4,$t3,0x80 /* f19a968: 51800040 */ beqzl $t4,.L0f19aa6c /* f19a96c: 8fbf004c */ lw $ra,0x4c($sp) -/* f19a970: 0fc0a221 */ jal chrGetTargetSomething +/* f19a970: 0fc0a221 */ jal chrGetTargetPosition /* f19a974: 02202025 */ or $a0,$s1,$zero /* f19a978: 3c01bf80 */ lui $at,0xbf80 /* f19a97c: 44810000 */ mtc1 $at,$f0 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index f767f20ae..03170411b 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -85,8 +85,8 @@ /*0x004f*/ bool ai004f(void); /*0x0050*/ bool ai0050(void); /*0x0051*/ bool ai0051(void); -/*0x0052*/ bool ai0052(void); -/*0x0053*/ bool ai0053(void); +/*0x0052*/ bool aiIfDistanceToTargetLessThan(void); +/*0x0053*/ bool aiIfDistanceToTargetGreaterThan(void); /*0x0054*/ bool ai0054(void); /*0x0055*/ bool ai0055(void); /*0x0056*/ bool ai0056(void); diff --git a/src/include/game/game_000000.h b/src/include/game/game_000000.h index 7708f979e..4bf326e01 100644 --- a/src/include/game/game_000000.h +++ b/src/include/game/game_000000.h @@ -5,7 +5,7 @@ struct chrdata *chrFindByLiteralId(u8 chrnum); struct chrdata *chrFindById(struct chrdata *data, u32 chrnum); -struct targetsomething *chrGetTargetSomething(struct chrdata *chr); +struct position *chrGetTargetPosition(struct chrdata *chr); float chrGetTimer(struct chrdata *chr); @@ -35,6 +35,7 @@ u32 func0f01b148(void); u32 func0f01b154(void); void func0f03af44(struct chrdata *chr, u32 anim_id, float fstartframe, float fendframe, u8 flags, u8 transition, float result); u32 func0f048f20(struct chrdata *chr, u8 b); -float func0f0491c8(struct chrdata *chr); +float chrGetDistanceToTarget(struct chrdata *chr); +float func0f049254(struct position *a, struct position *b); #endif diff --git a/src/include/game/game_0601b0.h b/src/include/game/game_0601b0.h index cfb5ececf..9ba58b7ff 100644 --- a/src/include/game/game_0601b0.h +++ b/src/include/game/game_0601b0.h @@ -301,7 +301,7 @@ u32 func0f065880(void); u32 func0f065d1c(void); u32 func0f065f80(void); u32 func0f066290(void); -struct targetsomething *heliGetTargetSomething(struct heliobj *obj); +struct position *heliGetTargetPosition(struct heliobj *obj); struct heliobj *func0f07adf4(struct defaultobj *obj); u32 func0f095bf4(void); u32 func0f095d64(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 706cc4eb2..743d2c975 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -88,7 +88,7 @@ struct g_vars { /*00032c*/ u32 unk00032c; /*000330*/ u32 unk000330; /*000334*/ u32 unk000334; - /*000338*/ struct targetsomething *targets; + /*000338*/ struct position *positions; /*00033c*/ u32 unk00033c; /*000340*/ u32 unk000340; /*000344*/ u32 unk000344; diff --git a/src/include/types.h b/src/include/types.h index 46d65f649..345ad9904 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -11,31 +11,14 @@ struct coord { float z; }; -struct position04 { - /*0x00*/ u32 unk00; - /*0x04*/ u32 unk04; - /*0x08*/ u32 unk08; - /*0x0c*/ u32 unk0c; - /*0x10*/ u32 unk10; - /*0x14*/ u32 unk14; - /*0x18*/ u32 unk18; - /*0x1c*/ u32 unk1c; - /*0x20*/ u32 unk20; - /*0x24*/ u32 unk24; - /*0x28*/ u32 unk28; - /*0x2c*/ u32 unk2c; - /*0x30*/ u32 unk30; - /*0x34*/ u32 unk34; - /*0x38*/ u32 unk38; - /*0x3c*/ u32 unk3c; - /*0x40*/ u32 flags; -}; - +// This might be a pad, but given that chrs have a gunground pointer to this +// struct, I think it's more likely an ad hoc coordinate that can be created as +// needed during gameplay. struct position { u8 unk00; u8 flags; u16 unk02; - struct position04 *unk04; + struct chrdata *chr; struct coord coord; u32 unk14; u32 unk18; // related to gun recovery @@ -50,6 +33,7 @@ struct position { s16 unk3a; u32 unk3c; u32 unk40; + u32 unk44; }; struct bitfield { @@ -451,27 +435,6 @@ struct tag { struct defaultobj *obj; }; -struct targetsomething { - /*0x00*/ u8 unk00; - /*0x04*/ struct chrdata *chr; - /*0x08*/ u32 unk08; - /*0x0c*/ u32 unk0c; - /*0x10*/ u32 unk10; - /*0x14*/ u32 unk14; - /*0x18*/ u32 unk18; - /*0x1c*/ u32 unk1c; - /*0x20*/ u32 unk20; - /*0x24*/ u32 unk24; - /*0x28*/ u32 unk28; - /*0x2c*/ u32 unk2c; - /*0x30*/ u32 unk30; - /*0x34*/ u32 unk34; - /*0x38*/ u32 unk38; - /*0x3c*/ u32 unk3c; - /*0x40*/ u32 unk40; - /*0x44*/ u32 unk44; -}; - struct player { /*0x000*/ u32 unk000; /*0x004*/ u32 unk004; @@ -520,7 +483,7 @@ struct player { /*0x0b0*/ u32 unk0b0; /*0x0b4*/ float unk0b4; /*0x0b8*/ u32 unk0b8; - /*0x0bc*/ struct targetsomething *targetsomething; + /*0x0bc*/ struct position *targetpos; /*0x0c0*/ u32 unk0c0; /*0x0c4*/ u32 unk0c4; /*0x0c8*/ u32 unk0c8; diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 515273030..e988e053f 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14035,8 +14035,8 @@ bool (*g_CommandPointers[])(void) = { /*0x004f*/ ai004f, /*0x0050*/ ai0050, /*0x0051*/ ai0051, - /*0x0052*/ ai0052, - /*0x0053*/ ai0053, + /*0x0052*/ aiIfDistanceToTargetLessThan, + /*0x0053*/ aiIfDistanceToTargetGreaterThan, /*0x0054*/ ai0054, /*0x0055*/ ai0055, /*0x0056*/ ai0056,