From 10ebc87cbe3f4578e73c3370908eb3ad5ff7fb79 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 8 Apr 2020 18:10:27 +1000 Subject: [PATCH] Decompile playersSetPassiveMode --- src/game/chr/chraicommands.c | 4 +- src/game/data/data_00e460.c | 2 +- src/game/game_097ba0.c | 94 +++------------------------- src/game/game_0fd660.c | 2 +- src/game/game_19c990.c | 12 ++-- src/include/game/chr/chraicommands.h | 2 +- src/include/game/game_097ba0.h | 2 +- src/include/types.h | 2 +- 8 files changed, 21 insertions(+), 99 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index e0ee5fd8a..4665952cd 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -10866,10 +10866,10 @@ bool aiSetChrHudpieceVisible(void) /** * @cmd 01ce */ -bool ai01ce(void) +bool aiSetPassiveMode(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - func0f0a92ac(cmd[2]); + playersSetPassiveMode(cmd[2]); g_Vars.aioffset += 3; return false; diff --git a/src/game/data/data_00e460.c b/src/game/data/data_00e460.c index 067ed5e55..5c2fe86ba 100644 --- a/src/game/data/data_00e460.c +++ b/src/game/data/data_00e460.c @@ -485,7 +485,7 @@ bool (*g_CommandPointers[])(void) = { /*0x01cb*/ aiFadeScreen, /*0x01cc*/ aiIfFadeComplete, /*0x01cd*/ aiSetChrHudpieceVisible, - /*0x01ce*/ ai01ce, + /*0x01ce*/ aiSetPassiveMode, /*0x01cf*/ aiChrSetFiringInCutscene, /*0x01d0*/ aiSetPortalFlag, /*0x01d1*/ aiSetObjPartVisible, diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 78dd3284d..0aa54c763 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -21196,92 +21196,14 @@ glabel var7f1acbac /* f0a92a8: 27bd0070 */ addiu $sp,$sp,0x70 ); -GLOBAL_ASM( -glabel func0f0a92ac -/* f0a92ac: 3c09800a */ lui $t1,%hi(g_Vars) -/* f0a92b0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars) -/* f0a92b4: 8d2e006c */ lw $t6,0x6c($t1) -/* f0a92b8: afa40000 */ sw $a0,0x0($sp) -/* f0a92bc: 00001025 */ or $v0,$zero,$zero -/* f0a92c0: 11c00003 */ beqz $t6,.L0f0a92d0 -/* f0a92c4: 00001825 */ or $v1,$zero,$zero -/* f0a92c8: 10000001 */ beqz $zero,.L0f0a92d0 -/* f0a92cc: 24030001 */ addiu $v1,$zero,0x1 -.L0f0a92d0: -/* f0a92d0: 8d2f0068 */ lw $t7,0x68($t1) -/* f0a92d4: 00002025 */ or $a0,$zero,$zero -/* f0a92d8: 00002825 */ or $a1,$zero,$zero -/* f0a92dc: 11e00003 */ beqz $t7,.L0f0a92ec -/* f0a92e0: 00003025 */ or $a2,$zero,$zero -/* f0a92e4: 10000001 */ beqz $zero,.L0f0a92ec -/* f0a92e8: 24040001 */ addiu $a0,$zero,0x1 -.L0f0a92ec: -/* f0a92ec: 8d380064 */ lw $t8,0x64($t1) -/* f0a92f0: 8fae0000 */ lw $t6,0x0($sp) -/* f0a92f4: 13000003 */ beqz $t8,.L0f0a9304 -/* f0a92f8: 31c80001 */ andi $t0,$t6,0x1 -/* f0a92fc: 10000001 */ beqz $zero,.L0f0a9304 -/* f0a9300: 24050001 */ addiu $a1,$zero,0x1 -.L0f0a9304: -/* f0a9304: 8d390070 */ lw $t9,0x70($t1) -/* f0a9308: 00026880 */ sll $t5,$v0,0x2 -/* f0a930c: 012d3821 */ addu $a3,$t1,$t5 -/* f0a9310: 13200003 */ beqz $t9,.L0f0a9320 -/* f0a9314: 00000000 */ sll $zero,$zero,0x0 -/* f0a9318: 10000001 */ beqz $zero,.L0f0a9320 -/* f0a931c: 24060001 */ addiu $a2,$zero,0x1 -.L0f0a9320: -/* f0a9320: 00c55021 */ addu $t2,$a2,$a1 -/* f0a9324: 01445821 */ addu $t3,$t2,$a0 -/* f0a9328: 01636021 */ addu $t4,$t3,$v1 -/* f0a932c: 19800026 */ blez $t4,.L0f0a93c8 -/* f0a9330: 00000000 */ sll $zero,$zero,0x0 -/* f0a9334: 8ce30064 */ lw $v1,0x64($a3) -.L0f0a9338: -/* f0a9338: 24420001 */ addiu $v0,$v0,0x1 -/* f0a933c: 24e70004 */ addiu $a3,$a3,0x4 -/* f0a9340: 90781583 */ lbu $t8,0x1583($v1) -/* f0a9344: 00002025 */ or $a0,$zero,$zero -/* f0a9348: 00002825 */ or $a1,$zero,$zero -/* f0a934c: 3319fffe */ andi $t9,$t8,0xfffe -/* f0a9350: 01195025 */ or $t2,$t0,$t9 -/* f0a9354: a06a1583 */ sb $t2,0x1583($v1) -/* f0a9358: 8d2b006c */ lw $t3,0x6c($t1) -/* f0a935c: 00001825 */ or $v1,$zero,$zero -/* f0a9360: 00003025 */ or $a2,$zero,$zero -/* f0a9364: 11600003 */ beqz $t3,.L0f0a9374 -/* f0a9368: 00000000 */ sll $zero,$zero,0x0 -/* f0a936c: 10000001 */ beqz $zero,.L0f0a9374 -/* f0a9370: 24030001 */ addiu $v1,$zero,0x1 -.L0f0a9374: -/* f0a9374: 8d2c0068 */ lw $t4,0x68($t1) -/* f0a9378: 11800003 */ beqz $t4,.L0f0a9388 -/* f0a937c: 00000000 */ sll $zero,$zero,0x0 -/* f0a9380: 10000001 */ beqz $zero,.L0f0a9388 -/* f0a9384: 24040001 */ addiu $a0,$zero,0x1 -.L0f0a9388: -/* f0a9388: 8d2d0064 */ lw $t5,0x64($t1) -/* f0a938c: 11a00003 */ beqz $t5,.L0f0a939c -/* f0a9390: 00000000 */ sll $zero,$zero,0x0 -/* f0a9394: 10000001 */ beqz $zero,.L0f0a939c -/* f0a9398: 24050001 */ addiu $a1,$zero,0x1 -.L0f0a939c: -/* f0a939c: 8d2e0070 */ lw $t6,0x70($t1) -/* f0a93a0: 11c00003 */ beqz $t6,.L0f0a93b0 -/* f0a93a4: 00000000 */ sll $zero,$zero,0x0 -/* f0a93a8: 10000001 */ beqz $zero,.L0f0a93b0 -/* f0a93ac: 24060001 */ addiu $a2,$zero,0x1 -.L0f0a93b0: -/* f0a93b0: 00c57821 */ addu $t7,$a2,$a1 -/* f0a93b4: 01e4c021 */ addu $t8,$t7,$a0 -/* f0a93b8: 0303c821 */ addu $t9,$t8,$v1 -/* f0a93bc: 0059082a */ slt $at,$v0,$t9 -/* f0a93c0: 5420ffdd */ bnezl $at,.L0f0a9338 -/* f0a93c4: 8ce30064 */ lw $v1,0x64($a3) -.L0f0a93c8: -/* f0a93c8: 03e00008 */ jr $ra -/* f0a93cc: 00000000 */ sll $zero,$zero,0x0 -); +void playersSetPassiveMode(bool enable) +{ + s32 i; + + for (i = 0; i < PLAYERCOUNT(); i++) { + g_Vars.players[i]->passivemode = enable; + } +} void currentPlayerSetAimType(u32 aimtype) { diff --git a/src/game/game_0fd660.c b/src/game/game_0fd660.c index 988ae9374..88f2a0fae 100644 --- a/src/game/game_0fd660.c +++ b/src/game/game_0fd660.c @@ -1200,7 +1200,7 @@ glabel func0f0fecd4 void activemenuOpen(void) { - if (g_Vars.currentplayer->unk1583_07 == 0) { + if (g_Vars.currentplayer->passivemode == false) { g_ActiveMenuIndex = g_Vars.currentplayernum; g_Vars.currentplayer->activemenumode = 1; g_PlayersWithControl[g_Vars.currentplayernum] = false; diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index b46055f59..e59877114 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -2437,7 +2437,7 @@ glabel func0f19e9c0 .L0f19ea60: /* f19ea60: 0fc67913 */ jal func0f19e44c /* f19ea64: 00000000 */ sll $zero,$zero,0x0 -/* f19ea68: 0fc2a4ab */ jal func0f0a92ac +/* f19ea68: 0fc2a4ab */ jal playersSetPassiveMode /* f19ea6c: 00002025 */ or $a0,$zero,$zero /* f19ea70: 8fbf0014 */ lw $ra,0x14($sp) /* f19ea74: 27bd0018 */ addiu $sp,$sp,0x18 @@ -2704,7 +2704,7 @@ glabel func0f19ecdc /* f19ed4c: 00000000 */ sll $zero,$zero,0x0 /* f19ed50: a4400010 */ sh $zero,0x10($v0) .L0f19ed54: -/* f19ed54: 0fc2a4ab */ jal func0f0a92ac +/* f19ed54: 0fc2a4ab */ jal playersSetPassiveMode /* f19ed58: 24040001 */ addiu $a0,$zero,0x1 /* f19ed5c: 3c018009 */ lui $at,%hi(var80088804) /* f19ed60: 0fc67505 */ jal func0f19d414 @@ -5814,7 +5814,7 @@ GLOBAL_ASM( glabel func0f1a1824 /* f1a1824: 27bdffe8 */ addiu $sp,$sp,-24 /* f1a1828: afbf0014 */ sw $ra,0x14($sp) -/* f1a182c: 0fc2a4ab */ jal func0f0a92ac +/* f1a182c: 0fc2a4ab */ jal playersSetPassiveMode /* f1a1830: 24040001 */ addiu $a0,$zero,0x1 /* f1a1834: 3c04800b */ lui $a0,%hi(g_DeviceTrainingData+0x8) /* f1a1838: 8c84d1a8 */ lw $a0,%lo(g_DeviceTrainingData+0x8)($a0) @@ -6025,7 +6025,7 @@ void dtBegin(void) chrUnsetStageFlag(NULL, 0x00000010); chrSetStageFlag(NULL, func0f1a1e38(func0f1a1d68(var80088ad8))); g_Vars.currentplayer->deadtimer = 1; - func0f0a92ac(false); + playersSetPassiveMode(false); chrSetStageFlag(NULL, 0x00000001); } @@ -6512,7 +6512,7 @@ glabel func0f1a2220 /* f1a22a4: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1) /* f1a22a8: 24080001 */ addiu $t0,$zero,0x1 /* f1a22ac: 00002025 */ or $a0,$zero,$zero -/* f1a22b0: 0fc2a4ab */ jal func0f0a92ac +/* f1a22b0: 0fc2a4ab */ jal playersSetPassiveMode /* f1a22b4: ad281c08 */ sw $t0,0x1c08($t1) /* f1a22b8: 00002025 */ or $a0,$zero,$zero /* f1a22bc: 0fc127cb */ jal chrSetStageFlag @@ -6604,7 +6604,7 @@ glabel func0f1a22d4 /* f1a23fc: 0461ffee */ bgez $v1,.L0f1a23b8 /* f1a2400: 00000000 */ sll $zero,$zero,0x0 .L0f1a2404: -/* f1a2404: 0fc2a4ab */ jal func0f0a92ac +/* f1a2404: 0fc2a4ab */ jal playersSetPassiveMode /* f1a2408: 24040001 */ addiu $a0,$zero,0x1 /* f1a240c: 00002025 */ or $a0,$zero,$zero /* f1a2410: 0fc127d2 */ jal chrUnsetStageFlag diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 2da3b6549..d47829133 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -425,7 +425,7 @@ /*0x01cb*/ bool aiFadeScreen(void); /*0x01cc*/ bool aiIfFadeComplete(void); /*0x01cd*/ bool aiSetChrHudpieceVisible(void); -/*0x01ce*/ bool ai01ce(void); +/*0x01ce*/ bool aiSetPassiveMode(void); /*0x01cf*/ bool aiChrSetFiringInCutscene(void); /*0x01d0*/ bool aiSetPortalFlag(void); /*0x01d1*/ bool aiSetObjPartVisible(void); diff --git a/src/include/game/game_097ba0.h b/src/include/game/game_097ba0.h index 8694f1685..75ceee96e 100644 --- a/src/include/game/game_097ba0.h +++ b/src/include/game/game_097ba0.h @@ -144,7 +144,7 @@ u32 func0f0a895c(void); void func0f0a8c50(void); bool currentPlayerIsUsingSecondaryFunction(void); u32 func0f0a8d34(void); -void func0f0a92ac(u32 arg0); +void playersSetPassiveMode(bool enable); void currentPlayerSetAimType(u32 aimtype); void func0f0a93e0(struct coord *coord); void func0f0a9464(struct coord *coord); diff --git a/src/include/types.h b/src/include/types.h index 052f98bd8..8c7039926 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1985,7 +1985,7 @@ struct player { /*0x1583*/ u8 unk1583_04 : 1; /*0x1583*/ u8 unk1583_05 : 1; /*0x1583*/ u8 unk1583_06 : 1; - /*0x1583*/ u8 unk1583_07 : 1; + /*0x1583*/ u8 passivemode : 1; /*0x1584*/ u32 unk1584; /*0x1588*/ u32 unk1588; /*0x158c*/ u32 unk158c;