mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-30 23:54:40 -04:00
Decompile propPlayPickupSound
This commit is contained in:
@@ -580,7 +580,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr)
|
||||
result = 2;
|
||||
}
|
||||
} else {
|
||||
chrGiveWeapon(chr, prop);
|
||||
aibotGiveProp(chr, prop);
|
||||
result = 1;
|
||||
}
|
||||
|
||||
@@ -851,7 +851,7 @@ glabel var7f1b8ea8
|
||||
.L0f190ed8:
|
||||
/* f190ed8: 24500001 */ addiu $s0,$v0,0x1
|
||||
/* f190edc: 02002025 */ or $a0,$s0,$zero
|
||||
/* f190ee0: 0fc668c7 */ jal func0f19a31c
|
||||
/* f190ee0: 0fc668c7 */ jal ammotypeGetWeapon
|
||||
/* f190ee4: afa30028 */ sw $v1,0x28($sp)
|
||||
/* f190ee8: 8fa30028 */ lw $v1,0x28($sp)
|
||||
/* f190eec: afa20068 */ sw $v0,0x68($sp)
|
||||
@@ -884,7 +884,7 @@ glabel var7f1b8ea8
|
||||
/* f190f58: 0fc47bba */ jal dprint
|
||||
/* f190f5c: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f190f60: 8fa4008c */ lw $a0,0x8c($sp)
|
||||
/* f190f64: 0fc65fdb */ jal chrGiveWeapon
|
||||
/* f190f64: 0fc65fdb */ jal aibotGiveProp
|
||||
/* f190f68: 8fa50088 */ lw $a1,0x88($sp)
|
||||
/* f190f6c: 10000006 */ beqz $zero,.L0f190f88
|
||||
/* f190f70: 8faa0064 */ lw $t2,0x64($sp)
|
||||
@@ -3862,7 +3862,7 @@ glabel var7f1b8f50
|
||||
/* f193a90: 966d005e */ lhu $t5,0x5e($s3)
|
||||
/* f193a94: 59a0003f */ blezl $t5,.L0f193b94
|
||||
/* f193a98: 26940001 */ addiu $s4,$s4,0x1
|
||||
/* f193a9c: 0fc668c7 */ jal func0f19a31c
|
||||
/* f193a9c: 0fc668c7 */ jal ammotypeGetWeapon
|
||||
/* f193aa0: 02802025 */ or $a0,$s4,$zero
|
||||
/* f193aa4: 18400022 */ blez $v0,.L0f193b30
|
||||
/* f193aa8: 00008025 */ or $s0,$zero,$zero
|
||||
|
||||
@@ -671,7 +671,7 @@ s16 aibotGetWeaponPad(struct chrdata *chr, u32 weaponnum)
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel chrGiveWeapon
|
||||
glabel aibotGiveProp
|
||||
/* f197f6c: 27bdffd0 */ addiu $sp,$sp,-48
|
||||
/* f197f70: afb30020 */ sw $s3,0x20($sp)
|
||||
/* f197f74: 00809825 */ or $s3,$a0,$zero
|
||||
@@ -720,7 +720,7 @@ glabel chrGiveWeapon
|
||||
/* f198010: 9629005e */ lhu $t1,0x5e($s1)
|
||||
/* f198014: 59200008 */ blezl $t1,.L0f198038
|
||||
/* f198018: 26100001 */ addiu $s0,$s0,0x1
|
||||
/* f19801c: 0fc668c7 */ jal func0f19a31c
|
||||
/* f19801c: 0fc668c7 */ jal ammotypeGetWeapon
|
||||
/* f198020: 26040001 */ addiu $a0,$s0,0x1
|
||||
/* f198024: 18400003 */ blez $v0,.L0f198034
|
||||
/* f198028: 00402825 */ or $a1,$v0,$zero
|
||||
|
||||
@@ -732,15 +732,15 @@ u32 func0f19a2dc(u32 value)
|
||||
}
|
||||
}
|
||||
|
||||
u32 func0f19a31c(u32 value)
|
||||
u32 ammotypeGetWeapon(u32 ammotype)
|
||||
{
|
||||
switch (value) {
|
||||
case 18: return 31;
|
||||
case 7: return 30;
|
||||
case 9: return 26;
|
||||
case 12: return 34;
|
||||
case 13: return 33;
|
||||
case 14: return 32;
|
||||
switch (ammotype) {
|
||||
case AMMOTYPE_NBOMB: return WEAPON_NBOMB;
|
||||
case AMMOTYPE_GRENADE: return WEAPON_GRENADE;
|
||||
case AMMOTYPE_KNIFE: return WEAPON_COMBATKNIFE;
|
||||
case AMMOTYPE_REMOTE_MINE: return WEAPON_REMOTEMINE;
|
||||
case AMMOTYPE_PROXY_MINE: return WEAPON_PROXIMITYMINE;
|
||||
case AMMOTYPE_TIMED_MINE: return WEAPON_TIMEDMINE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
+28
-75
@@ -38886,81 +38886,34 @@ void func0f087b0c(u32 arg0)
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel propPlayPickupSound
|
||||
/* f087c0c: 27bdffb8 */ addiu $sp,$sp,-72
|
||||
/* f087c10: 2402001a */ addiu $v0,$zero,0x1a
|
||||
/* f087c14: afbf0044 */ sw $ra,0x44($sp)
|
||||
/* f087c18: 10a20003 */ beq $a1,$v0,.L0f087c28
|
||||
/* f087c1c: afa40048 */ sw $a0,0x48($sp)
|
||||
/* f087c20: 14a20003 */ bne $a1,$v0,.L0f087c30
|
||||
/* f087c24: 24010022 */ addiu $at,$zero,0x22
|
||||
.L0f087c28:
|
||||
/* f087c28: 10000021 */ beqz $zero,.L0f087cb0
|
||||
/* f087c2c: 240600e9 */ addiu $a2,$zero,0xe9
|
||||
.L0f087c30:
|
||||
/* f087c30: 10a1000d */ beq $a1,$at,.L0f087c68
|
||||
/* f087c34: 24010021 */ addiu $at,$zero,0x21
|
||||
/* f087c38: 10a1000b */ beq $a1,$at,.L0f087c68
|
||||
/* f087c3c: 24010020 */ addiu $at,$zero,0x20
|
||||
/* f087c40: 10a10009 */ beq $a1,$at,.L0f087c68
|
||||
/* f087c44: 2401003d */ addiu $at,$zero,0x3d
|
||||
/* f087c48: 10a10007 */ beq $a1,$at,.L0f087c68
|
||||
/* f087c4c: 2401003e */ addiu $at,$zero,0x3e
|
||||
/* f087c50: 10a10005 */ beq $a1,$at,.L0f087c68
|
||||
/* f087c54: 2401003f */ addiu $at,$zero,0x3f
|
||||
/* f087c58: 10a10003 */ beq $a1,$at,.L0f087c68
|
||||
/* f087c5c: 24010035 */ addiu $at,$zero,0x35
|
||||
/* f087c60: 54a10004 */ bnel $a1,$at,.L0f087c74
|
||||
/* f087c64: 2401001e */ addiu $at,$zero,0x1e
|
||||
.L0f087c68:
|
||||
/* f087c68: 10000011 */ beqz $zero,.L0f087cb0
|
||||
/* f087c6c: 240600eb */ addiu $a2,$zero,0xeb
|
||||
/* f087c70: 2401001e */ addiu $at,$zero,0x1e
|
||||
.L0f087c74:
|
||||
/* f087c74: 10a10007 */ beq $a1,$at,.L0f087c94
|
||||
/* f087c78: 24010055 */ addiu $at,$zero,0x55
|
||||
/* f087c7c: 10a10005 */ beq $a1,$at,.L0f087c94
|
||||
/* f087c80: 24010053 */ addiu $at,$zero,0x53
|
||||
/* f087c84: 10a10003 */ beq $a1,$at,.L0f087c94
|
||||
/* f087c88: 24010054 */ addiu $at,$zero,0x54
|
||||
/* f087c8c: 54a10004 */ bnel $a1,$at,.L0f087ca0
|
||||
/* f087c90: 2401001d */ addiu $at,$zero,0x1d
|
||||
.L0f087c94:
|
||||
/* f087c94: 10000006 */ beqz $zero,.L0f087cb0
|
||||
/* f087c98: 240600ea */ addiu $a2,$zero,0xea
|
||||
/* f087c9c: 2401001d */ addiu $at,$zero,0x1d
|
||||
.L0f087ca0:
|
||||
/* f087ca0: 14a10003 */ bne $a1,$at,.L0f087cb0
|
||||
/* f087ca4: 240600e8 */ addiu $a2,$zero,0xe8
|
||||
/* f087ca8: 10000001 */ beqz $zero,.L0f087cb0
|
||||
/* f087cac: 240600f2 */ addiu $a2,$zero,0xf2
|
||||
.L0f087cb0:
|
||||
/* f087cb0: 3c01bf80 */ lui $at,0xbf80
|
||||
/* f087cb4: 44810000 */ mtc1 $at,$f0
|
||||
/* f087cb8: 240effff */ addiu $t6,$zero,-1
|
||||
/* f087cbc: 240f0400 */ addiu $t7,$zero,0x400
|
||||
/* f087cc0: 2418ffff */ addiu $t8,$zero,-1
|
||||
/* f087cc4: afb8002c */ sw $t8,0x2c($sp)
|
||||
/* f087cc8: afaf0014 */ sw $t7,0x14($sp)
|
||||
/* f087ccc: afae0010 */ sw $t6,0x10($sp)
|
||||
/* f087cd0: 00002025 */ or $a0,$zero,$zero
|
||||
/* f087cd4: 8fa50048 */ lw $a1,0x48($sp)
|
||||
/* f087cd8: 2407ffff */ addiu $a3,$zero,-1
|
||||
/* f087cdc: afa00018 */ sw $zero,0x18($sp)
|
||||
/* f087ce0: afa0001c */ sw $zero,0x1c($sp)
|
||||
/* f087ce4: afa00020 */ sw $zero,0x20($sp)
|
||||
/* f087ce8: afa00028 */ sw $zero,0x28($sp)
|
||||
/* f087cec: e7a00024 */ swc1 $f0,0x24($sp)
|
||||
/* f087cf0: e7a00030 */ swc1 $f0,0x30($sp)
|
||||
/* f087cf4: e7a00034 */ swc1 $f0,0x34($sp)
|
||||
/* f087cf8: 0fc24e7e */ jal func0f0939f8
|
||||
/* f087cfc: e7a00038 */ swc1 $f0,0x38($sp)
|
||||
/* f087d00: 8fbf0044 */ lw $ra,0x44($sp)
|
||||
/* f087d04: 27bd0048 */ addiu $sp,$sp,0x48
|
||||
/* f087d08: 03e00008 */ jr $ra
|
||||
/* f087d0c: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
u32 propPlayPickupSound(struct prop *prop, s32 weapon)
|
||||
{
|
||||
s16 sound;
|
||||
|
||||
if (weapon == WEAPON_COMBATKNIFE || weapon == WEAPON_COMBATKNIFE) {
|
||||
sound = 0xe9;
|
||||
} else if (weapon == WEAPON_REMOTEMINE
|
||||
|| weapon == WEAPON_PROXIMITYMINE
|
||||
|| weapon == WEAPON_TIMEDMINE
|
||||
|| weapon == WEAPON_COMMSRIDER
|
||||
|| weapon == WEAPON_TRACERBUG
|
||||
|| weapon == WEAPON_TARGETAMPLIFIER
|
||||
|| weapon == WEAPON_ECMMINE) {
|
||||
sound = 0xeb;
|
||||
} else if (weapon == WEAPON_GRENADE
|
||||
|| weapon == WEAPON_GRENADEROUND
|
||||
|| weapon == WEAPON_ROCKET
|
||||
|| weapon == WEAPON_HOMINGROCKET) {
|
||||
sound = 0xea;
|
||||
} else if (weapon == WEAPON_LASER) {
|
||||
sound = 0xf2;
|
||||
} else {
|
||||
sound = 0xe8;
|
||||
}
|
||||
|
||||
return func0f0939f8(NULL, prop, sound, -1,
|
||||
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f087d10
|
||||
|
||||
@@ -13,7 +13,7 @@ u32 aibotGetInvItemType(struct chrdata *chr, u32 weaponnum);
|
||||
u32 func0f197e8c(void);
|
||||
void aibotGiveDualWeapon(struct chrdata *chr, u32 weaponnum);
|
||||
s16 aibotGetWeaponPad(struct chrdata *chr, u32 weaponnum);
|
||||
void chrGiveWeapon(struct chrdata *chr, struct prop *prop);
|
||||
void aibotGiveProp(struct chrdata *chr, struct prop *prop);
|
||||
u32 func0f198068(void);
|
||||
u32 func0f198278(void);
|
||||
u32 func0f1982d4(void);
|
||||
|
||||
@@ -14,7 +14,7 @@ void aibotGiveAmmo(struct aibot *aibot, u32 ammotype, s32 quantity);
|
||||
u32 func0f199f84(void);
|
||||
bool func0f19a29c(u32 value, bool fallback);
|
||||
u32 func0f19a2dc(u32 value);
|
||||
u32 func0f19a31c(u32 value);
|
||||
u32 ammotypeGetWeapon(u32 ammotype);
|
||||
u32 func0f19a37c(void);
|
||||
u32 func0f19a60c(void);
|
||||
u32 func0f19a6d0(void);
|
||||
|
||||
@@ -237,7 +237,7 @@ u32 func0f087638(void);
|
||||
u32 func0f087668(void);
|
||||
u32 func0f08791c(void);
|
||||
void func0f087b0c(u32 arg0);
|
||||
u32 propPlayPickupSound(struct prop *prop, s32 weaponnum);
|
||||
u32 propPlayPickupSound(struct prop *prop, s32 weapon);
|
||||
u32 func0f087d10(void);
|
||||
u32 func0f087e40(void);
|
||||
u32 func0f087fb0(void);
|
||||
|
||||
Reference in New Issue
Block a user