Decompile mpstatsRecordDeath

This commit is contained in:
Ryan Dwyer 2021-01-23 15:58:17 +10:00
parent bddabe1a30
commit fb65b4052c
8 changed files with 129 additions and 458 deletions

View File

@ -2128,7 +2128,7 @@ glabel var7f1a8720
/* f02026c: 02002025 */ or $a0,$s0,$zero
/* f020270: 00402825 */ or $a1,$v0,$zero
.L0f020274:
/* f020274: 0fc0d8d6 */ jal func0f036358
/* f020274: 0fc0d8d6 */ jal chrDie
/* f020278: 02002025 */ or $a0,$s0,$zero
/* f02027c: 10000047 */ b .L0f02039c
/* f020280: c60000b4 */ lwc1 $f0,0xb4($s0)

View File

@ -3781,7 +3781,7 @@ glabel var7f1a8d44
/* f0329c4: 0fc633fe */ jal mpPlayerGetIndex
/* f0329c8: 02002025 */ or $a0,$s0,$zero
/* f0329cc: 8fa40128 */ lw $a0,0x128($sp)
/* f0329d0: 0fc2c27d */ jal func0f0b09f4
/* f0329d0: 0fc2c27d */ jal mpstatsRecordDeath
/* f0329d4: 00402825 */ or $a1,$v0,$zero
/* f0329d8: 1000000b */ b .L0f032a08
/* f0329dc: 8fa20040 */ lw $v0,0x40($sp)
@ -7454,7 +7454,7 @@ glabel var7f1a8d98
/* f035ef8: 00000000 */ nop
/* f035efc: 450200e6 */ bc1fl .L0f036298
/* f035f00: c7a00080 */ lwc1 $f0,0x80($sp)
/* f035f04: 0fc0d8d6 */ jal func0f036358
/* f035f04: 0fc0d8d6 */ jal chrDie
/* f035f08: 8fa500f0 */ lw $a1,0xf0($sp)
/* f035f0c: 100000e2 */ b .L0f036298
/* f035f10: c7a00080 */ lwc1 $f0,0x80($sp)
@ -7511,7 +7511,7 @@ glabel var7f1a8d98
/* f035fc8: 0fc633fe */ jal mpPlayerGetIndex
/* f035fcc: 02002025 */ or $a0,$s0,$zero
/* f035fd0: 8fa400f0 */ lw $a0,0xf0($sp)
/* f035fd4: 0fc2c27d */ jal func0f0b09f4
/* f035fd4: 0fc2c27d */ jal mpstatsRecordDeath
/* f035fd8: 00402825 */ or $a1,$v0,$zero
/* f035fdc: 10000013 */ b .L0f03602c
/* f035fe0: 8e0a0018 */ lw $t2,0x18($s0)
@ -7755,7 +7755,7 @@ glabel var7f1a8d98
/* f036354: 27bd0140 */ addiu $sp,$sp,0x140
);
void func0f036358(struct chrdata *chr, s32 arg1)
void chrDie(struct chrdata *chr, s32 aplayernum)
{
if (chr->actiontype != ACT_DIE) {
chrStopFiring(chr);
@ -7772,7 +7772,7 @@ void func0f036358(struct chrdata *chr, s32 arg1)
chr->ailist = ailistFindById(GAILIST_AI_BOT_DEAD);
chr->aioffset = 0;
func0f0b09f4(arg1, mpPlayerGetIndex(chr));
mpstatsRecordDeath(aplayernum, mpPlayerGetIndex(chr));
func0f199964(chr, chr->aibot->weaponnum);
chr->aibot->unk09c_00 = 0;

View File

@ -289,431 +289,125 @@ void currentPlayerRecordSuicide(void)
}
}
const char var7f1acdbc[] = "%s %s";
const char var7f1acdc4[] = "%s %s";
void mpstatsRecordDeath(s32 aplayernum, s32 vplayernum)
{
s32 vmpindex = -1;
struct mpchr *vmpchr = NULL;
s32 ampindex;
struct mpchr *ampchr = NULL;
s32 prevplayernum;
char text[256];
if (g_Vars.normmplayerisrunning && g_MpSetup.scenario == MPSCENARIO_POPACAP) {
func0f1847b8();
}
// Find attacker and victim mpchrs
if (aplayernum >= 0) {
ampindex = func0f18d074(aplayernum);
if (ampindex >= 0) {
if (ampindex < 4) {
ampchr = &g_MpPlayers[ampindex].base;
} else {
ampchr = &g_MpSimulants[ampindex - 4].base;
}
}
}
if (vplayernum >= 0) {
vmpindex = func0f18d074(vplayernum);
if (vmpindex >= 0) {
if (vmpindex < 4) {
vmpchr = &g_MpPlayers[vmpindex].base;
} else {
vmpchr = &g_MpSimulants[vmpindex - 4].base;
}
}
}
if (vplayernum >= 0 && aplayernum == vplayernum) {
// Player suicide
if (vmpchr && vmpindex >= 0) {
vmpchr->numdeaths++;
vmpchr->killcounts[vmpindex]++;
}
if (vplayernum < PLAYERCOUNT()) {
prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(vplayernum);
currentPlayerRecordSuicide();
setCurrentPlayerNum(prevplayernum);
}
} else {
// Normal kill
if (vplayernum >= 0) {
if (vmpchr) {
vmpchr->numdeaths++;
}
if (vplayernum < PLAYERCOUNT()) {
// Victim was a player
prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(vplayernum);
if (g_Vars.normmplayerisrunning && aplayernum >= 0) {
// "Killed by %s"
sprintf(text, "%s %s", langGet(L_MISC(183)), var800ac500[aplayernum]->name);
hudmsgCreateViaPreset(text, HUDMSGTYPE_DEFAULT);
}
currentPlayerIncrementDeathCount();
setCurrentPlayerNum(prevplayernum);
}
}
if (ampchr && vmpindex >= 0) {
ampchr->killcounts[vmpindex]++;
}
if (aplayernum >= 0 && aplayernum < PLAYERCOUNT()) {
// Attacker was a player
prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(aplayernum);
if (g_Vars.normmplayerisrunning && vplayernum >= 0) {
// "Killed %s"
sprintf(text, "%s %s", langGet(L_MISC(184)), var800ac500[vplayernum]->name);
hudmsgCreateViaPreset(text, HUDMSGTYPE_DEFAULT);
}
func0f0b05a4();
setCurrentPlayerNum(prevplayernum);
}
// If someone killed an aibot
if (g_Vars.normmplayerisrunning
&& aplayernum >= 0
&& vplayernum >= PLAYERCOUNT()
&& aplayernum != vplayernum) {
g_MpPlayerChrs[vplayernum]->aibot->lastkilledbyplayernum = aplayernum;
}
}
if (g_Vars.normmplayerisrunning && aplayernum >= 0 && g_MpPlayerChrs[aplayernum]->aibot) {
s32 thing = func0f1982d4(g_MpPlayerChrs[aplayernum]->aibot->weaponnum);
if (thing >= 0) {
if (aplayernum == vplayernum) {
g_MpPlayerChrs[aplayernum]->aibot->unk244[thing][g_MpPlayerChrs[aplayernum]->aibot->gunfunc]++;
} else {
g_MpPlayerChrs[aplayernum]->aibot->unk214[thing][g_MpPlayerChrs[aplayernum]->aibot->gunfunc]++;
}
}
}
g_Vars.unk000488++;
}
const u32 var7f1acdcc[] = {0x00000000};
GLOBAL_ASM(
glabel func0f0b09f4
/* f0b09f4: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0b09f8: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0b09fc: 27bdfeb0 */ addiu $sp,$sp,-336
/* f0b0a00: 8d0f0318 */ lw $t7,0x318($t0)
/* f0b0a04: 240effff */ addiu $t6,$zero,-1
/* f0b0a08: afbf0014 */ sw $ra,0x14($sp)
/* f0b0a0c: afa40150 */ sw $a0,0x150($sp)
/* f0b0a10: afa50154 */ sw $a1,0x154($sp)
/* f0b0a14: afae014c */ sw $t6,0x14c($sp)
/* f0b0a18: 00001825 */ or $v1,$zero,$zero
/* f0b0a1c: 11e00009 */ beqz $t7,.L0f0b0a44
/* f0b0a20: afa00140 */ sw $zero,0x140($sp)
/* f0b0a24: 3c18800b */ lui $t8,%hi(g_MpSetup+0x10)
/* f0b0a28: 9318cb98 */ lbu $t8,%lo(g_MpSetup+0x10)($t8)
/* f0b0a2c: 24010003 */ addiu $at,$zero,0x3
/* f0b0a30: 57010005 */ bnel $t8,$at,.L0f0b0a48
/* f0b0a34: 8fb90150 */ lw $t9,0x150($sp)
/* f0b0a38: 0fc611ee */ jal func0f1847b8
/* f0b0a3c: afa00148 */ sw $zero,0x148($sp)
/* f0b0a40: 8fa30148 */ lw $v1,0x148($sp)
.L0f0b0a44:
/* f0b0a44: 8fb90150 */ lw $t9,0x150($sp)
.L0f0b0a48:
/* f0b0a48: 07200019 */ bltz $t9,.L0f0b0ab0
/* f0b0a4c: 03202025 */ or $a0,$t9,$zero
/* f0b0a50: 0fc6341d */ jal func0f18d074
/* f0b0a54: afa30148 */ sw $v1,0x148($sp)
/* f0b0a58: 04400015 */ bltz $v0,.L0f0b0ab0
/* f0b0a5c: 8fa30148 */ lw $v1,0x148($sp)
/* f0b0a60: 28410004 */ slti $at,$v0,0x4
/* f0b0a64: 10200009 */ beqz $at,.L0f0b0a8c
/* f0b0a68: 00026080 */ sll $t4,$v0,0x2
/* f0b0a6c: 00024880 */ sll $t1,$v0,0x2
/* f0b0a70: 01224821 */ addu $t1,$t1,$v0
/* f0b0a74: 3c0a800b */ lui $t2,%hi(g_MpPlayers)
/* f0b0a78: 254ac7b8 */ addiu $t2,$t2,%lo(g_MpPlayers)
/* f0b0a7c: 00094940 */ sll $t1,$t1,0x5
/* f0b0a80: 012a5821 */ addu $t3,$t1,$t2
/* f0b0a84: 1000000a */ b .L0f0b0ab0
/* f0b0a88: afab0140 */ sw $t3,0x140($sp)
.L0f0b0a8c:
/* f0b0a8c: 01826021 */ addu $t4,$t4,$v0
/* f0b0a90: 000c6080 */ sll $t4,$t4,0x2
/* f0b0a94: 01826023 */ subu $t4,$t4,$v0
/* f0b0a98: 000c6080 */ sll $t4,$t4,0x2
/* f0b0a9c: 3c0e800b */ lui $t6,%hi(g_MpSimulants)
/* f0b0aa0: 25cec538 */ addiu $t6,$t6,%lo(g_MpSimulants)
/* f0b0aa4: 258dfed0 */ addiu $t5,$t4,-304
/* f0b0aa8: 01ae7821 */ addu $t7,$t5,$t6
/* f0b0aac: afaf0140 */ sw $t7,0x140($sp)
.L0f0b0ab0:
/* f0b0ab0: 8fb80154 */ lw $t8,0x154($sp)
/* f0b0ab4: 07000018 */ bltz $t8,.L0f0b0b18
/* f0b0ab8: 03002025 */ or $a0,$t8,$zero
/* f0b0abc: 0fc6341d */ jal func0f18d074
/* f0b0ac0: afa30148 */ sw $v1,0x148($sp)
/* f0b0ac4: 8fa30148 */ lw $v1,0x148($sp)
/* f0b0ac8: 04400013 */ bltz $v0,.L0f0b0b18
/* f0b0acc: afa2014c */ sw $v0,0x14c($sp)
/* f0b0ad0: 28410004 */ slti $at,$v0,0x4
/* f0b0ad4: 10200008 */ beqz $at,.L0f0b0af8
/* f0b0ad8: 00025080 */ sll $t2,$v0,0x2
/* f0b0adc: 0002c880 */ sll $t9,$v0,0x2
/* f0b0ae0: 0322c821 */ addu $t9,$t9,$v0
/* f0b0ae4: 3c09800b */ lui $t1,%hi(g_MpPlayers)
/* f0b0ae8: 2529c7b8 */ addiu $t1,$t1,%lo(g_MpPlayers)
/* f0b0aec: 0019c940 */ sll $t9,$t9,0x5
/* f0b0af0: 10000009 */ b .L0f0b0b18
/* f0b0af4: 03291821 */ addu $v1,$t9,$t1
.L0f0b0af8:
/* f0b0af8: 01425021 */ addu $t2,$t2,$v0
/* f0b0afc: 000a5080 */ sll $t2,$t2,0x2
/* f0b0b00: 01425023 */ subu $t2,$t2,$v0
/* f0b0b04: 000a5080 */ sll $t2,$t2,0x2
/* f0b0b08: 3c0c800b */ lui $t4,%hi(g_MpSimulants)
/* f0b0b0c: 258cc538 */ addiu $t4,$t4,%lo(g_MpSimulants)
/* f0b0b10: 254bfed0 */ addiu $t3,$t2,-304
/* f0b0b14: 016c1821 */ addu $v1,$t3,$t4
.L0f0b0b18:
/* f0b0b18: 8fad0154 */ lw $t5,0x154($sp)
/* f0b0b1c: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0b0b20: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0b0b24: 05a0003a */ bltz $t5,.L0f0b0c10
/* f0b0b28: 8fae0150 */ lw $t6,0x150($sp)
/* f0b0b2c: 55cd0039 */ bnel $t6,$t5,.L0f0b0c14
/* f0b0b30: 8fae0154 */ lw $t6,0x154($sp)
/* f0b0b34: 1060000c */ beqz $v1,.L0f0b0b68
/* f0b0b38: 8faf014c */ lw $t7,0x14c($sp)
/* f0b0b3c: 05e2000b */ bltzl $t7,.L0f0b0b6c
/* f0b0b40: 8d0e006c */ lw $t6,0x6c($t0)
/* f0b0b44: 8478003c */ lh $t8,0x3c($v1)
/* f0b0b48: 27190001 */ addiu $t9,$t8,0x1
/* f0b0b4c: a479003c */ sh $t9,0x3c($v1)
/* f0b0b50: 8fa9014c */ lw $t1,0x14c($sp)
/* f0b0b54: 00095040 */ sll $t2,$t1,0x1
/* f0b0b58: 006a1021 */ addu $v0,$v1,$t2
/* f0b0b5c: 844b0024 */ lh $t3,0x24($v0)
/* f0b0b60: 256c0001 */ addiu $t4,$t3,0x1
/* f0b0b64: a44c0024 */ sh $t4,0x24($v0)
.L0f0b0b68:
/* f0b0b68: 8d0e006c */ lw $t6,0x6c($t0)
.L0f0b0b6c:
/* f0b0b6c: 8fb90154 */ lw $t9,0x154($sp)
/* f0b0b70: 00002825 */ or $a1,$zero,$zero
/* f0b0b74: 11c00003 */ beqz $t6,.L0f0b0b84
/* f0b0b78: 00002025 */ or $a0,$zero,$zero
/* f0b0b7c: 10000001 */ b .L0f0b0b84
/* f0b0b80: 24050001 */ addiu $a1,$zero,0x1
.L0f0b0b84:
/* f0b0b84: 8d0d0068 */ lw $t5,0x68($t0)
/* f0b0b88: 00001825 */ or $v1,$zero,$zero
/* f0b0b8c: 00001025 */ or $v0,$zero,$zero
/* f0b0b90: 11a00003 */ beqz $t5,.L0f0b0ba0
/* f0b0b94: 00000000 */ nop
/* f0b0b98: 10000001 */ b .L0f0b0ba0
/* f0b0b9c: 24040001 */ addiu $a0,$zero,0x1
.L0f0b0ba0:
/* f0b0ba0: 8d0f0064 */ lw $t7,0x64($t0)
/* f0b0ba4: 11e00003 */ beqz $t7,.L0f0b0bb4
/* f0b0ba8: 00000000 */ nop
/* f0b0bac: 10000001 */ b .L0f0b0bb4
/* f0b0bb0: 24030001 */ addiu $v1,$zero,0x1
.L0f0b0bb4:
/* f0b0bb4: 8d180070 */ lw $t8,0x70($t0)
/* f0b0bb8: 13000003 */ beqz $t8,.L0f0b0bc8
/* f0b0bbc: 00000000 */ nop
/* f0b0bc0: 10000001 */ b .L0f0b0bc8
/* f0b0bc4: 24020001 */ addiu $v0,$zero,0x1
.L0f0b0bc8:
/* f0b0bc8: 00434821 */ addu $t1,$v0,$v1
/* f0b0bcc: 01245021 */ addu $t2,$t1,$a0
/* f0b0bd0: 01455821 */ addu $t3,$t2,$a1
/* f0b0bd4: 032b082a */ slt $at,$t9,$t3
/* f0b0bd8: 1020000b */ beqz $at,.L0f0b0c08
/* f0b0bdc: 00000000 */ nop
/* f0b0be0: 8d0c028c */ lw $t4,0x28c($t0)
/* f0b0be4: 03202025 */ or $a0,$t9,$zero
/* f0b0be8: 0fc4a24b */ jal setCurrentPlayerNum
/* f0b0bec: afac013c */ sw $t4,0x13c($sp)
/* f0b0bf0: 0fc2c206 */ jal currentPlayerRecordSuicide
/* f0b0bf4: 00000000 */ nop
/* f0b0bf8: 0fc4a24b */ jal setCurrentPlayerNum
/* f0b0bfc: 8fa4013c */ lw $a0,0x13c($sp)
/* f0b0c00: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0b0c04: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
.L0f0b0c08:
/* f0b0c08: 100000b8 */ b .L0f0b0eec
/* f0b0c0c: 8d060318 */ lw $a2,0x318($t0)
.L0f0b0c10:
/* f0b0c10: 8fae0154 */ lw $t6,0x154($sp)
.L0f0b0c14:
/* f0b0c14: 05c20044 */ bltzl $t6,.L0f0b0d28
/* f0b0c18: 8fb90140 */ lw $t9,0x140($sp)
/* f0b0c1c: 10600004 */ beqz $v1,.L0f0b0c30
/* f0b0c20: 00002825 */ or $a1,$zero,$zero
/* f0b0c24: 846d003c */ lh $t5,0x3c($v1)
/* f0b0c28: 25af0001 */ addiu $t7,$t5,0x1
/* f0b0c2c: a46f003c */ sh $t7,0x3c($v1)
.L0f0b0c30:
/* f0b0c30: 8d18006c */ lw $t8,0x6c($t0)
/* f0b0c34: 8fac0154 */ lw $t4,0x154($sp)
/* f0b0c38: 00002025 */ or $a0,$zero,$zero
/* f0b0c3c: 13000003 */ beqz $t8,.L0f0b0c4c
/* f0b0c40: 00001825 */ or $v1,$zero,$zero
/* f0b0c44: 10000001 */ b .L0f0b0c4c
/* f0b0c48: 24050001 */ addiu $a1,$zero,0x1
.L0f0b0c4c:
/* f0b0c4c: 8d090068 */ lw $t1,0x68($t0)
/* f0b0c50: 00001025 */ or $v0,$zero,$zero
/* f0b0c54: 11200003 */ beqz $t1,.L0f0b0c64
/* f0b0c58: 00000000 */ nop
/* f0b0c5c: 10000001 */ b .L0f0b0c64
/* f0b0c60: 24040001 */ addiu $a0,$zero,0x1
.L0f0b0c64:
/* f0b0c64: 8d0a0064 */ lw $t2,0x64($t0)
/* f0b0c68: 11400003 */ beqz $t2,.L0f0b0c78
/* f0b0c6c: 00000000 */ nop
/* f0b0c70: 10000001 */ b .L0f0b0c78
/* f0b0c74: 24030001 */ addiu $v1,$zero,0x1
.L0f0b0c78:
/* f0b0c78: 8d0b0070 */ lw $t3,0x70($t0)
/* f0b0c7c: 11600003 */ beqz $t3,.L0f0b0c8c
/* f0b0c80: 00000000 */ nop
/* f0b0c84: 10000001 */ b .L0f0b0c8c
/* f0b0c88: 24020001 */ addiu $v0,$zero,0x1
.L0f0b0c8c:
/* f0b0c8c: 0043c821 */ addu $t9,$v0,$v1
/* f0b0c90: 03247021 */ addu $t6,$t9,$a0
/* f0b0c94: 01c56821 */ addu $t5,$t6,$a1
/* f0b0c98: 018d082a */ slt $at,$t4,$t5
/* f0b0c9c: 50200022 */ beqzl $at,.L0f0b0d28
/* f0b0ca0: 8fb90140 */ lw $t9,0x140($sp)
/* f0b0ca4: 8d0f028c */ lw $t7,0x28c($t0)
/* f0b0ca8: 01802025 */ or $a0,$t4,$zero
/* f0b0cac: 0fc4a24b */ jal setCurrentPlayerNum
/* f0b0cb0: afaf013c */ sw $t7,0x13c($sp)
/* f0b0cb4: 3c18800a */ lui $t8,%hi(g_Vars+0x318)
/* f0b0cb8: 8f18a2d8 */ lw $t8,%lo(g_Vars+0x318)($t8)
/* f0b0cbc: 8fa90150 */ lw $t1,0x150($sp)
/* f0b0cc0: 13000012 */ beqz $t8,.L0f0b0d0c
/* f0b0cc4: 00000000 */ nop
/* f0b0cc8: 05200010 */ bltz $t1,.L0f0b0d0c
/* f0b0ccc: 00000000 */ nop
/* f0b0cd0: 0fc5b9f1 */ jal langGet
/* f0b0cd4: 240458b7 */ addiu $a0,$zero,0x58b7
/* f0b0cd8: 8faa0150 */ lw $t2,0x150($sp)
/* f0b0cdc: 3c07800b */ lui $a3,%hi(var800ac500)
/* f0b0ce0: 3c057f1b */ lui $a1,%hi(var7f1acdbc)
/* f0b0ce4: 000a5880 */ sll $t3,$t2,0x2
/* f0b0ce8: 00eb3821 */ addu $a3,$a3,$t3
/* f0b0cec: 8ce7c500 */ lw $a3,%lo(var800ac500)($a3)
/* f0b0cf0: 24a5cdbc */ addiu $a1,$a1,%lo(var7f1acdbc)
/* f0b0cf4: 27a4003c */ addiu $a0,$sp,0x3c
/* f0b0cf8: 0c004dad */ jal sprintf
/* f0b0cfc: 00403025 */ or $a2,$v0,$zero
/* f0b0d00: 27a4003c */ addiu $a0,$sp,0x3c
/* f0b0d04: 0fc377c7 */ jal hudmsgCreateViaPreset
/* f0b0d08: 00002825 */ or $a1,$zero,$zero
.L0f0b0d0c:
/* f0b0d0c: 0fc2c1d9 */ jal currentPlayerIncrementDeathCount
/* f0b0d10: 00000000 */ nop
/* f0b0d14: 0fc4a24b */ jal setCurrentPlayerNum
/* f0b0d18: 8fa4013c */ lw $a0,0x13c($sp)
/* f0b0d1c: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0b0d20: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0b0d24: 8fb90140 */ lw $t9,0x140($sp)
.L0f0b0d28:
/* f0b0d28: 8fae014c */ lw $t6,0x14c($sp)
/* f0b0d2c: 53200008 */ beqzl $t9,.L0f0b0d50
/* f0b0d30: 8fb80150 */ lw $t8,0x150($sp)
/* f0b0d34: 05c00005 */ bltz $t6,.L0f0b0d4c
/* f0b0d38: 000e6840 */ sll $t5,$t6,0x1
/* f0b0d3c: 032d1021 */ addu $v0,$t9,$t5
/* f0b0d40: 844f0024 */ lh $t7,0x24($v0)
/* f0b0d44: 25ec0001 */ addiu $t4,$t7,0x1
/* f0b0d48: a44c0024 */ sh $t4,0x24($v0)
.L0f0b0d4c:
/* f0b0d4c: 8fb80150 */ lw $t8,0x150($sp)
.L0f0b0d50:
/* f0b0d50: 8faa0150 */ lw $t2,0x150($sp)
/* f0b0d54: 0702003d */ bltzl $t8,.L0f0b0e4c
/* f0b0d58: 8d060318 */ lw $a2,0x318($t0)
/* f0b0d5c: 8d09006c */ lw $t1,0x6c($t0)
/* f0b0d60: 8d020068 */ lw $v0,0x68($t0)
/* f0b0d64: 8d030064 */ lw $v1,0x64($t0)
/* f0b0d68: 11200003 */ beqz $t1,.L0f0b0d78
/* f0b0d6c: 8d070070 */ lw $a3,0x70($t0)
/* f0b0d70: 10000002 */ b .L0f0b0d7c
/* f0b0d74: 24050001 */ addiu $a1,$zero,0x1
.L0f0b0d78:
/* f0b0d78: 00002825 */ or $a1,$zero,$zero
.L0f0b0d7c:
/* f0b0d7c: 10400003 */ beqz $v0,.L0f0b0d8c
/* f0b0d80: 00002025 */ or $a0,$zero,$zero
/* f0b0d84: 10000001 */ b .L0f0b0d8c
/* f0b0d88: 24040001 */ addiu $a0,$zero,0x1
.L0f0b0d8c:
/* f0b0d8c: 10600003 */ beqz $v1,.L0f0b0d9c
/* f0b0d90: 00001025 */ or $v0,$zero,$zero
/* f0b0d94: 10000002 */ b .L0f0b0da0
/* f0b0d98: 24030001 */ addiu $v1,$zero,0x1
.L0f0b0d9c:
/* f0b0d9c: 00001825 */ or $v1,$zero,$zero
.L0f0b0da0:
/* f0b0da0: 10e00003 */ beqz $a3,.L0f0b0db0
/* f0b0da4: 00000000 */ nop
/* f0b0da8: 10000001 */ b .L0f0b0db0
/* f0b0dac: 24020001 */ addiu $v0,$zero,0x1
.L0f0b0db0:
/* f0b0db0: 00435821 */ addu $t3,$v0,$v1
/* f0b0db4: 01647021 */ addu $t6,$t3,$a0
/* f0b0db8: 01c5c821 */ addu $t9,$t6,$a1
/* f0b0dbc: 0159082a */ slt $at,$t2,$t9
/* f0b0dc0: 50200022 */ beqzl $at,.L0f0b0e4c
/* f0b0dc4: 8d060318 */ lw $a2,0x318($t0)
/* f0b0dc8: 8d0d028c */ lw $t5,0x28c($t0)
/* f0b0dcc: 01402025 */ or $a0,$t2,$zero
/* f0b0dd0: 0fc4a24b */ jal setCurrentPlayerNum
/* f0b0dd4: afad013c */ sw $t5,0x13c($sp)
/* f0b0dd8: 3c0f800a */ lui $t7,%hi(g_Vars+0x318)
/* f0b0ddc: 8defa2d8 */ lw $t7,%lo(g_Vars+0x318)($t7)
/* f0b0de0: 8fac0154 */ lw $t4,0x154($sp)
/* f0b0de4: 11e00012 */ beqz $t7,.L0f0b0e30
/* f0b0de8: 00000000 */ nop
/* f0b0dec: 05800010 */ bltz $t4,.L0f0b0e30
/* f0b0df0: 00000000 */ nop
/* f0b0df4: 0fc5b9f1 */ jal langGet
/* f0b0df8: 240458b8 */ addiu $a0,$zero,0x58b8
/* f0b0dfc: 8fb80154 */ lw $t8,0x154($sp)
/* f0b0e00: 3c07800b */ lui $a3,%hi(var800ac500)
/* f0b0e04: 3c057f1b */ lui $a1,%hi(var7f1acdc4)
/* f0b0e08: 00184880 */ sll $t1,$t8,0x2
/* f0b0e0c: 00e93821 */ addu $a3,$a3,$t1
/* f0b0e10: 8ce7c500 */ lw $a3,%lo(var800ac500)($a3)
/* f0b0e14: 24a5cdc4 */ addiu $a1,$a1,%lo(var7f1acdc4)
/* f0b0e18: 27a4003c */ addiu $a0,$sp,0x3c
/* f0b0e1c: 0c004dad */ jal sprintf
/* f0b0e20: 00403025 */ or $a2,$v0,$zero
/* f0b0e24: 27a4003c */ addiu $a0,$sp,0x3c
/* f0b0e28: 0fc377c7 */ jal hudmsgCreateViaPreset
/* f0b0e2c: 00002825 */ or $a1,$zero,$zero
.L0f0b0e30:
/* f0b0e30: 0fc2c169 */ jal func0f0b05a4
/* f0b0e34: 00000000 */ nop
/* f0b0e38: 0fc4a24b */ jal setCurrentPlayerNum
/* f0b0e3c: 8fa4013c */ lw $a0,0x13c($sp)
/* f0b0e40: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0b0e44: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0b0e48: 8d060318 */ lw $a2,0x318($t0)
.L0f0b0e4c:
/* f0b0e4c: 8fab0150 */ lw $t3,0x150($sp)
/* f0b0e50: 10c00026 */ beqz $a2,.L0f0b0eec
/* f0b0e54: 00000000 */ nop
/* f0b0e58: 05600024 */ bltz $t3,.L0f0b0eec
/* f0b0e5c: 8fb90154 */ lw $t9,0x154($sp)
/* f0b0e60: 8d0e006c */ lw $t6,0x6c($t0)
/* f0b0e64: 8d020068 */ lw $v0,0x68($t0)
/* f0b0e68: 8d030064 */ lw $v1,0x64($t0)
/* f0b0e6c: 11c00003 */ beqz $t6,.L0f0b0e7c
/* f0b0e70: 8d070070 */ lw $a3,0x70($t0)
/* f0b0e74: 10000002 */ b .L0f0b0e80
/* f0b0e78: 24050001 */ addiu $a1,$zero,0x1
.L0f0b0e7c:
/* f0b0e7c: 00002825 */ or $a1,$zero,$zero
.L0f0b0e80:
/* f0b0e80: 10400003 */ beqz $v0,.L0f0b0e90
/* f0b0e84: 00002025 */ or $a0,$zero,$zero
/* f0b0e88: 10000001 */ b .L0f0b0e90
/* f0b0e8c: 24040001 */ addiu $a0,$zero,0x1
.L0f0b0e90:
/* f0b0e90: 10600003 */ beqz $v1,.L0f0b0ea0
/* f0b0e94: 00001025 */ or $v0,$zero,$zero
/* f0b0e98: 10000002 */ b .L0f0b0ea4
/* f0b0e9c: 24030001 */ addiu $v1,$zero,0x1
.L0f0b0ea0:
/* f0b0ea0: 00001825 */ or $v1,$zero,$zero
.L0f0b0ea4:
/* f0b0ea4: 10e00003 */ beqz $a3,.L0f0b0eb4
/* f0b0ea8: 8fac0150 */ lw $t4,0x150($sp)
/* f0b0eac: 10000001 */ b .L0f0b0eb4
/* f0b0eb0: 24020001 */ addiu $v0,$zero,0x1
.L0f0b0eb4:
/* f0b0eb4: 00436821 */ addu $t5,$v0,$v1
/* f0b0eb8: 01a45021 */ addu $t2,$t5,$a0
/* f0b0ebc: 01457821 */ addu $t7,$t2,$a1
/* f0b0ec0: 032f082a */ slt $at,$t9,$t7
/* f0b0ec4: 14200009 */ bnez $at,.L0f0b0eec
/* f0b0ec8: 00000000 */ nop
/* f0b0ecc: 11990007 */ beq $t4,$t9,.L0f0b0eec
/* f0b0ed0: 0019c080 */ sll $t8,$t9,0x2
/* f0b0ed4: 3c09800b */ lui $t1,%hi(g_MpPlayerChrs)
/* f0b0ed8: 01384821 */ addu $t1,$t1,$t8
/* f0b0edc: 8d29c4d0 */ lw $t1,%lo(g_MpPlayerChrs)($t1)
/* f0b0ee0: 8d2b02d4 */ lw $t3,0x2d4($t1)
/* f0b0ee4: a56c0076 */ sh $t4,0x76($t3)
/* f0b0ee8: 8d060318 */ lw $a2,0x318($t0)
.L0f0b0eec:
/* f0b0eec: 10c00030 */ beqz $a2,.L0f0b0fb0
/* f0b0ef0: 8fae0150 */ lw $t6,0x150($sp)
/* f0b0ef4: 05c0002e */ bltz $t6,.L0f0b0fb0
/* f0b0ef8: 000e6880 */ sll $t5,$t6,0x2
/* f0b0efc: 3c0a800b */ lui $t2,%hi(g_MpPlayerChrs)
/* f0b0f00: 254ac4d0 */ addiu $t2,$t2,%lo(g_MpPlayerChrs)
/* f0b0f04: 01aa2821 */ addu $a1,$t5,$t2
/* f0b0f08: 8caf0000 */ lw $t7,0($a1)
/* f0b0f0c: 8de302d4 */ lw $v1,0x2d4($t7)
/* f0b0f10: 10600027 */ beqz $v1,.L0f0b0fb0
/* f0b0f14: 00000000 */ nop
/* f0b0f18: 8c640020 */ lw $a0,0x20($v1)
/* f0b0f1c: 0fc660b5 */ jal func0f1982d4
/* f0b0f20: afa50024 */ sw $a1,0x24($sp)
/* f0b0f24: 04400022 */ bltz $v0,.L0f0b0fb0
/* f0b0f28: 8fa50024 */ lw $a1,0x24($sp)
/* f0b0f2c: 8fb90150 */ lw $t9,0x150($sp)
/* f0b0f30: 8fb80154 */ lw $t8,0x154($sp)
/* f0b0f34: 57380011 */ bnel $t9,$t8,.L0f0b0f7c
/* f0b0f38: 8cb90000 */ lw $t9,0($a1)
/* f0b0f3c: 8ca90000 */ lw $t1,0x0($a1)
/* f0b0f40: 000260c0 */ sll $t4,$v0,0x3
/* f0b0f44: 3c013f80 */ lui $at,0x3f80
/* f0b0f48: 8d2302d4 */ lw $v1,0x2d4($t1)
/* f0b0f4c: 44813000 */ mtc1 $at,$f6
/* f0b0f50: 8c6e004c */ lw $t6,0x4c($v1)
/* f0b0f54: 006c5821 */ addu $t3,$v1,$t4
/* f0b0f58: 000e6880 */ sll $t5,$t6,0x2
/* f0b0f5c: 000d57c2 */ srl $t2,$t5,0x1f
/* f0b0f60: 000a7880 */ sll $t7,$t2,0x2
/* f0b0f64: 016f2021 */ addu $a0,$t3,$t7
/* f0b0f68: c4840244 */ lwc1 $f4,0x244($a0)
/* f0b0f6c: 46062200 */ add.s $f8,$f4,$f6
/* f0b0f70: 1000000f */ b .L0f0b0fb0
/* f0b0f74: e4880244 */ swc1 $f8,0x244($a0)
/* f0b0f78: 8cb90000 */ lw $t9,0x0($a1)
.L0f0b0f7c:
/* f0b0f7c: 0002c0c0 */ sll $t8,$v0,0x3
/* f0b0f80: 3c013f80 */ lui $at,0x3f80
/* f0b0f84: 8f2302d4 */ lw $v1,0x2d4($t9)
/* f0b0f88: 44818000 */ mtc1 $at,$f16
/* f0b0f8c: 8c6c004c */ lw $t4,0x4c($v1)
/* f0b0f90: 00784821 */ addu $t1,$v1,$t8
/* f0b0f94: 000c7080 */ sll $t6,$t4,0x2
/* f0b0f98: 000e6fc2 */ srl $t5,$t6,0x1f
/* f0b0f9c: 000d5080 */ sll $t2,$t5,0x2
/* f0b0fa0: 012a2021 */ addu $a0,$t1,$t2
/* f0b0fa4: c48a0214 */ lwc1 $f10,0x214($a0)
/* f0b0fa8: 46105480 */ add.s $f18,$f10,$f16
/* f0b0fac: e4920214 */ swc1 $f18,0x214($a0)
.L0f0b0fb0:
/* f0b0fb0: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0b0fb4: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0b0fb8: 8d0b0488 */ lw $t3,0x488($t0)
/* f0b0fbc: 8fbf0014 */ lw $ra,0x14($sp)
/* f0b0fc0: 27bd0150 */ addiu $sp,$sp,0x150
/* f0b0fc4: 256f0001 */ addiu $t7,$t3,0x1
/* f0b0fc8: 03e00008 */ jr $ra
/* f0b0fcc: ad0f0488 */ sw $t7,0x488($t0)
);
struct weapon *weaponFindById(s32 itemid)
{
if (itemid < 0) {

View File

@ -9737,7 +9737,7 @@ void currentPlayerDieByShooter(u32 shooter, bool force)
hudmsgRemoveForDeadPlayer(g_Vars.currentplayernum);
if (g_Vars.mplayerisrunning) {
func0f0b09f4(shooter, g_Vars.currentplayernum);
mpstatsRecordDeath(shooter, g_Vars.currentplayernum);
}
chrUncloak(g_Vars.currentplayer->prop->chr, true);

View File

@ -220,7 +220,7 @@ void chrJumpOut(struct chrdata *chr, bool side);
void chrRunToPos(struct chrdata *chr, struct coord *pos);
void chrBeginDead(struct chrdata *chr);
f32 chrGetShield(struct chrdata *chr);
void func0f036358(struct chrdata *chr, s32 arg1);
void chrDie(struct chrdata *chr, s32 aplayernum);
void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms);
void chrGoPosClearRestartTtl(struct chrdata *chr);
void chrPatrolGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms);

View File

@ -16,7 +16,7 @@ u32 func0f0b05a4(void);
s32 currentPlayerGetNumKills(void);
void currentPlayerIncrementDeathCount(void);
void currentPlayerRecordSuicide(void);
s32 func0f0b09f4(s32 arg0, s32 playernum);
void mpstatsRecordDeath(s32 aplayernum, s32 vplayernum);
struct weapon *weaponFindById(s32 itemid);
struct weaponfunc *weaponGetFunctionById(u32 weaponnum, u32 which);
struct weaponfunc *handGetWeaponFunction2(struct hand *hand);

View File

@ -16,7 +16,7 @@ s16 aibotGetWeaponPad(struct chrdata *chr, u32 weaponnum);
void aibotGiveProp(struct chrdata *chr, struct prop *prop);
u32 func0f198068(void);
u32 func0f198278(void);
u32 func0f1982d4(void);
s32 func0f1982d4(s32 weaponnum);
u32 func0f198338(void);
u32 func0f198db4(void);
u32 func0f198df8(void);

View File

@ -431,8 +431,7 @@ struct aibot {
/*0x070*/ f32 unk070;
/*0x074*/ s8 unk074;
/*0x075*/ s8 unk075;
/*0x076*/ s8 unk076;
/*0x077*/ s8 unk077;
/*0x076*/ s16 lastkilledbyplayernum;
/*0x078*/ u8 unk078;
/*0x079*/ u8 command;
/*0x07a*/ s16 rooms[1];
@ -513,30 +512,8 @@ struct aibot {
/*0x208*/ u32 unk208;
/*0x20c*/ u32 unk20c;
/*0x210*/ u32 unk210;
/*0x214*/ u32 unk214;
/*0x218*/ u32 unk218;
/*0x21c*/ u32 unk21c;
/*0x220*/ u32 unk220;
/*0x224*/ u32 unk224;
/*0x228*/ u32 unk228;
/*0x22c*/ u32 unk22c;
/*0x230*/ u32 unk230;
/*0x234*/ u32 unk234;
/*0x238*/ u32 unk238;
/*0x23c*/ u32 unk23c;
/*0x240*/ u32 unk240;
/*0x244*/ u32 unk244;
/*0x248*/ u32 unk248;
/*0x24c*/ u32 unk24c;
/*0x250*/ u32 unk250;
/*0x254*/ u32 unk254;
/*0x258*/ u32 unk258;
/*0x25c*/ u32 unk25c;
/*0x260*/ u32 unk260;
/*0x264*/ u32 unk264;
/*0x268*/ u32 unk268;
/*0x26c*/ u32 unk26c;
/*0x270*/ u32 unk270;
/*0x214*/ f32 unk214[6][2];
/*0x244*/ f32 unk244[6][2];
/*0x274*/ u32 unk274;
/*0x278*/ u32 unk278;
/*0x27c*/ u32 unk27c;