Decompile chrSurrenderStartAnim

This commit is contained in:
Ryan Dwyer 2020-05-24 17:30:31 +10:00
parent 81c22ab877
commit 5ff752a0d5
2 changed files with 30 additions and 82 deletions

View File

@ -1443,7 +1443,8 @@ void func0f02f530(struct chrdata *chr)
struct prop *prop = chrGetTargetProp(chr);
f32 angle = chrGetAngleToPos(chr, &prop->pos);
if (angle < DEG2RAD(10) || angle > DEG2RAD(350)) {
// DEG2RAD(10) doesn't match due to float precision :(
if (angle < 0.17450514435768f || angle > DEG2RAD(350)) {
chrStopFiring(chr);
chr->actiontype = ACT_SURPRISED;
chr->act_surprised.unk02c = 1;
@ -1490,84 +1491,31 @@ void func0f02f688(struct chrdata *chr)
}
}
GLOBAL_ASM(
glabel func0f02f704
/* f02f704: 27bdffd0 */ addiu $sp,$sp,-48
/* f02f708: afbf0024 */ sw $ra,0x24($sp)
/* f02f70c: afb00020 */ sw $s0,0x20($sp)
/* f02f710: 00808025 */ or $s0,$a0,$zero
/* f02f714: 0fc0a209 */ jal chrGetEquippedWeaponProp
/* f02f718: 24050001 */ addiu $a1,$zero,0x1
/* f02f71c: afa2002c */ sw $v0,0x2c($sp)
/* f02f720: 02002025 */ or $a0,$s0,$zero
/* f02f724: 0fc0a209 */ jal chrGetEquippedWeaponProp
/* f02f728: 00002825 */ or $a1,$zero,$zero
/* f02f72c: 14400004 */ bnez $v0,.L0f02f740
/* f02f730: afa20028 */ sw $v0,0x28($sp)
/* f02f734: 8fae002c */ lw $t6,0x2c($sp)
/* f02f738: 11c00020 */ beqz $t6,.L0f02f7bc
/* f02f73c: 00000000 */ sll $zero,$zero,0x0
.L0f02f740:
/* f02f740: 0c004b70 */ jal random
/* f02f744: 00000000 */ sll $zero,$zero,0x0
/* f02f748: 3c013f00 */ lui $at,0x3f00
/* f02f74c: 44812000 */ mtc1 $at,$f4
/* f02f750: 3c014180 */ lui $at,0x4180
/* f02f754: 44813000 */ mtc1 $at,$f6
/* f02f758: 8e040020 */ lw $a0,0x20($s0)
/* f02f75c: 2405002f */ addiu $a1,$zero,0x2f
/* f02f760: 30460001 */ andi $a2,$v0,0x1
/* f02f764: 24070000 */ addiu $a3,$zero,0x0
/* f02f768: e7a40010 */ swc1 $f4,0x10($sp)
/* f02f76c: 0c007733 */ jal func0001dccc
/* f02f770: e7a60014 */ swc1 $f6,0x14($sp)
/* f02f774: 8e040020 */ lw $a0,0x20($s0)
/* f02f778: 3c054220 */ lui $a1,0x4220
/* f02f77c: 0c00777b */ jal func0001ddec
/* f02f780: 3c064180 */ lui $a2,0x4180
/* f02f784: 8faf002c */ lw $t7,0x2c($sp)
/* f02f788: 11e00003 */ beqz $t7,.L0f02f798
/* f02f78c: 01e02025 */ or $a0,$t7,$zero
/* f02f790: 0fc20a59 */ jal propobjSetDropped
/* f02f794: 24050002 */ addiu $a1,$zero,0x2
.L0f02f798:
/* f02f798: 8fa40028 */ lw $a0,0x28($sp)
/* f02f79c: 50800004 */ beqzl $a0,.L0f02f7b0
/* f02f7a0: 8e180014 */ lw $t8,0x14($s0)
/* f02f7a4: 0fc20a59 */ jal propobjSetDropped
/* f02f7a8: 24050002 */ addiu $a1,$zero,0x2
/* f02f7ac: 8e180014 */ lw $t8,0x14($s0)
.L0f02f7b0:
/* f02f7b0: 37190001 */ ori $t9,$t8,0x1
/* f02f7b4: 10000012 */ beqz $zero,.L0f02f800
/* f02f7b8: ae190014 */ sw $t9,0x14($s0)
.L0f02f7bc:
/* f02f7bc: 0c004b70 */ jal random
/* f02f7c0: 00000000 */ sll $zero,$zero,0x0
/* f02f7c4: 3c013f00 */ lui $at,0x3f00
/* f02f7c8: 44814000 */ mtc1 $at,$f8
/* f02f7cc: 3c014180 */ lui $at,0x4180
/* f02f7d0: 44815000 */ mtc1 $at,$f10
/* f02f7d4: 8e040020 */ lw $a0,0x20($s0)
/* f02f7d8: 2405002e */ addiu $a1,$zero,0x2e
/* f02f7dc: 30460001 */ andi $a2,$v0,0x1
/* f02f7e0: 24070000 */ addiu $a3,$zero,0x0
/* f02f7e4: e7a80010 */ swc1 $f8,0x10($sp)
/* f02f7e8: 0c007733 */ jal func0001dccc
/* f02f7ec: e7aa0014 */ swc1 $f10,0x14($sp)
/* f02f7f0: 8e040020 */ lw $a0,0x20($s0)
/* f02f7f4: 3c0541f0 */ lui $a1,0x41f0
/* f02f7f8: 0c00777b */ jal func0001ddec
/* f02f7fc: 3c064180 */ lui $a2,0x4180
.L0f02f800:
/* f02f800: 0fc09149 */ jal chrDropItems
/* f02f804: 02002025 */ or $a0,$s0,$zero
/* f02f808: 8fbf0024 */ lw $ra,0x24($sp)
/* f02f80c: 8fb00020 */ lw $s0,0x20($sp)
/* f02f810: 27bd0030 */ addiu $sp,$sp,0x30
/* f02f814: 03e00008 */ jr $ra
/* f02f818: 00000000 */ sll $zero,$zero,0x0
);
void chrSurrenderStartAnim(struct chrdata *chr)
{
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
struct prop *gun0 = chrGetEquippedWeaponProp(chr, 0);
if (gun0 || gun1) {
func0001dccc(chr->animdata, ANIM_SURRENDER_002F, random() & 1, 0, 0.5, 16);
func0001ddec(chr->animdata, 40, 16);
if (gun1) {
propobjSetDropped(gun1, 2);
}
if (gun0) {
propobjSetDropped(gun0, 2);
}
chr->hidden |= CHRHFLAG_00000001;
} else {
func0001dccc(chr->animdata, ANIM_SURRENDER_002E, random() & 1, 0, 0.5, 16);
func0001ddec(chr->animdata, 30, 16);
}
chrDropItems(chr);
}
void chrSurrender(struct chrdata *chr)
{
@ -1581,7 +1529,7 @@ void chrSurrender(struct chrdata *chr)
if (func0001db94(chr->animdata)) {
chr->hidden |= CHRHFLAG_00200000;
} else {
func0f02f704(chr);
chrSurrenderStartAnim(chr);
chr->hidden &= ~CHRHFLAG_00200000;
}
}
@ -16167,7 +16115,7 @@ void chrTickSurrender(struct chrdata *chr)
return;
}
func0f02f704(chr);
chrSurrenderStartAnim(chr);
chr->hidden &= ~CHRHFLAG_00200000;
}

View File

@ -23,7 +23,7 @@ void func0f02ef40(struct chrdata *chr);
void func0f02f070(struct chrdata *chr);
void func0f02f314(struct chrdata *chr);
void func0f02f530(struct chrdata *chr);
void func0f02f704(struct chrdata *chr);
void chrSurrenderStartAnim(struct chrdata *chr);
void func0f02f8a4(struct chrdata *chr);
void func0f02fc2c(struct chrdata *chr);
void func0f02fe18(struct chrdata *chr);