Decompile speedpillAddBoost

This commit is contained in:
Ryan Dwyer 2020-11-01 23:50:24 +10:00
parent d9efaa4fb0
commit 307687f6a3
5 changed files with 47 additions and 82 deletions

View File

@ -23602,59 +23602,24 @@ glabel hudRenderAmmo
/* f0abacc: 00000000 */ nop
);
GLOBAL_ASM(
glabel func0f0abad0
/* f0abad0: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0abad4: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0abad8: 8c6e045c */ lw $t6,0x45c($v1)
/* f0abadc: 27bdffd8 */ addiu $sp,$sp,-40
/* f0abae0: afbf0024 */ sw $ra,0x24($sp)
/* f0abae4: 01c47821 */ addu $t7,$t6,$a0
/* f0abae8: 29e14651 */ slti $at,$t7,0x4651
/* f0abaec: 14200003 */ bnez $at,.L0f0abafc
/* f0abaf0: ac6f045c */ sw $t7,0x45c($v1)
/* f0abaf4: 24194650 */ addiu $t9,$zero,0x4650
/* f0abaf8: ac79045c */ sw $t9,0x45c($v1)
.L0f0abafc:
/* f0abafc: 8c680464 */ lw $t0,0x464($v1)
/* f0abb00: 5500001b */ bnezl $t0,.L0f0abb70
/* f0abb04: 8fbf0024 */ lw $ra,0x24($sp)
/* f0abb08: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f0abb0c: 00000000 */ nop
/* f0abb10: 10400003 */ beqz $v0,.L0f0abb20
/* f0abb14: 3c048009 */ lui $a0,%hi(var80095200)
/* f0abb18: 10000002 */ b .L0f0abb24
/* f0abb1c: 240202ad */ addiu $v0,$zero,0x2ad
.L0f0abb20:
/* f0abb20: 240205c9 */ addiu $v0,$zero,0x5c9
.L0f0abb24:
/* f0abb24: 3c01bf80 */ lui $at,0xbf80
/* f0abb28: 44812000 */ mtc1 $at,$f4
/* f0abb2c: 00022c00 */ sll $a1,$v0,0x10
/* f0abb30: 00054c03 */ sra $t1,$a1,0x10
/* f0abb34: 240affff */ addiu $t2,$zero,-1
/* f0abb38: 240bffff */ addiu $t3,$zero,-1
/* f0abb3c: 240cffff */ addiu $t4,$zero,-1
/* f0abb40: afac001c */ sw $t4,0x1c($sp)
/* f0abb44: afab0018 */ sw $t3,0x18($sp)
/* f0abb48: afaa0010 */ sw $t2,0x10($sp)
/* f0abb4c: 01202825 */ or $a1,$t1,$zero
/* f0abb50: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f0abb54: 00003025 */ or $a2,$zero,$zero
/* f0abb58: 2407ffff */ addiu $a3,$zero,-1
/* f0abb5c: 0c004241 */ jal audioStart
/* f0abb60: e7a40014 */ swc1 $f4,0x14($sp)
/* f0abb64: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0abb68: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0abb6c: 8fbf0024 */ lw $ra,0x24($sp)
.L0f0abb70:
/* f0abb70: 240d0001 */ addiu $t5,$zero,0x1
/* f0abb74: ac6d0464 */ sw $t5,0x464($v1)
/* f0abb78: 03e00008 */ jr $ra
/* f0abb7c: 27bd0028 */ addiu $sp,$sp,0x28
);
void speedpillAddBoost(s32 amount)
{
g_Vars.speedpilltime += amount;
void func0f0abb80(s32 amount)
if (g_Vars.speedpilltime > 5 * 60 * 60) { // 5 minutes
g_Vars.speedpilltime = 5 * 60 * 60;
}
if (!g_Vars.speedpillwant) {
u32 sound = getEffectiveSlowMotion() ? 0x2ad : 0x5c9;
audioStart(var80095200, sound, 0, -1, -1, -1, -1, -1);
}
g_Vars.speedpillwant = true;
}
void speedpillRevert(s32 amount)
{
g_Vars.speedpilltime -= amount;
@ -23667,18 +23632,18 @@ void func0f0abb80(s32 amount)
void func0f0abba8(void)
{
if (getEffectiveSlowMotion()) {
func0f0abb80(1200);
speedpillRevert(SECSTOTIME60(20));
} else {
func0f0abad0(600);
speedpillAddBoost(SECSTOTIME60(10));
}
}
void func0f0abbe8(void)
{
if (getEffectiveSlowMotion()) {
func0f0abad0(1200);
speedpillAddBoost(SECSTOTIME60(20));
} else {
func0f0abb80(600);
speedpillRevert(SECSTOTIME60(10));
}
}

View File

@ -802,7 +802,7 @@ void scenarioHtbCallback14(struct chrdata *chr)
if (chr->aibot->unk09c_00) {
chr->aibot->unk0a0 += g_Vars.lvupdate240;
if (chr->aibot->unk0a0 >= SECSTOFRAMES240(30)) {
if (chr->aibot->unk0a0 >= SECSTOTIME240(30)) {
// Point scored sound
audioStart(var80095200, 0x5b8, NULL, -1, -1, -1, -1, -1);
var800ac500[mpPlayerGetIndex(chr)]->unk3e++;
@ -815,7 +815,7 @@ void scenarioHtbCallback14(struct chrdata *chr)
if (currentPlayerHasBriefcase()) {
g_Vars.currentplayerstats->tokenheldtime += g_Vars.lvupdate240;
if (g_Vars.currentplayerstats->tokenheldtime >= SECSTOFRAMES240(30)) {
if (g_Vars.currentplayerstats->tokenheldtime >= SECSTOTIME240(30)) {
// Point scored sound
audioStart(var80095200, 0x5b8, NULL, -1, -1, -1, -1, -1);
var800ac500[g_Vars.currentplayernum]->unk3e++;
@ -4807,7 +4807,7 @@ glabel scenarioPacCallback10
// g_Vars.players[g_ScenarioData.pac.victims[g_ScenarioData.pac.victimindex]]->isdead == false) {
// g_ScenarioData.pac.age240 += g_Vars.lvupdate240;
//
// if (g_ScenarioData.pac.age240 > SECSTOFRAMES240(60)) {
// if (g_ScenarioData.pac.age240 > SECSTOTIME240(60)) {
// g_ScenarioData.pac.age240 = 0;
// g_ScenarioData.pac.wincounts[g_ScenarioData.pac.victims[g_ScenarioData.pac.victimindex]]++;
// func0f1866b8(g_ScenarioData.pac.victims[g_ScenarioData.pac.victimindex], langGet(L_MPWEAPONS(7))); // "Have a point for living!"

View File

@ -497,7 +497,7 @@ void frInitDefaults(void)
g_FrData.targets[i].scriptoffset = 0;
g_FrData.targets[i].travelspeed = 0;
g_FrData.targets[i].scriptsleep = SECSTOFRAMES60(255);
g_FrData.targets[i].scriptsleep = SECSTOTIME60(255);
g_FrData.targets[i].timeuntilrotate = 0;
g_FrData.targets[i].rotating = false;
@ -1161,7 +1161,7 @@ void frExecuteHelpScript(void)
g_FrData.helpscriptoffset += 2;
break;
case FRCMD_HELPWAITSECONDS:
g_FrData.helpscriptsleep = SECSTOFRAMES60(script[offset + 1]);
g_FrData.helpscriptsleep = SECSTOTIME60(script[offset + 1]);
g_FrData.helpscriptoffset += 2;
break;
case FRCMD_WAITUNTILSHOOT:
@ -1443,7 +1443,7 @@ glabel var7f1b941c
// switch (script[offset]) {
// case FRCMD_END:
// g_FrData.targets[targetnum].scriptenabled = true;
// g_FrData.targets[targetnum].scriptsleep = SECSTOFRAMES60(255);
// g_FrData.targets[targetnum].scriptsleep = SECSTOTIME60(255);
// return true;
// case FRCMD_GOTOPAD:
// frpadnum = frResolveFrPad(script[offset + 1]);
@ -1476,7 +1476,7 @@ glabel var7f1b941c
// g_FrData.targets[targetnum].travelling = true;
// }
//
// g_FrData.targets[targetnum].scriptsleep = SECSTOFRAMES60(script[offset + 3]);
// g_FrData.targets[targetnum].scriptsleep = SECSTOTIME60(script[offset + 3]);
// g_FrData.targets[targetnum].donestopsound = false;
// g_FrData.targets[targetnum].scriptoffset += 4;
// return true;
@ -1485,7 +1485,7 @@ glabel var7f1b941c
// return true;
// case FRCMD_WAITSECONDS:
// g_FrData.targets[targetnum].scriptenabled = true;
// g_FrData.targets[targetnum].scriptsleep = SECSTOFRAMES60(script[offset + 1]);
// g_FrData.targets[targetnum].scriptsleep = SECSTOTIME60(script[offset + 1]);
// g_FrData.targets[targetnum].scriptoffset += 2;
// return true;
// case FRCMD_ROTATE:
@ -3840,7 +3840,7 @@ glabel var7f1b94e4
//
// // 398
// if (g_FrData.timelimit != 255
// && g_FrData.timetaken >= SECSTOFRAMES60(g_FrData.timelimit)) {
// && g_FrData.timetaken >= SECSTOTIME60(g_FrData.timelimit)) {
// frSetFailReason(FRFAILREASON_TIMEOVER);
// return;
// }
@ -4005,7 +4005,7 @@ glabel var7f1b94e4
//
// // 854
// if (g_FrData.targets[i].scriptenabled
// && g_FrData.targets[i].scriptsleep != SECSTOFRAMES60(255)) {
// && g_FrData.targets[i].scriptsleep != SECSTOTIME60(255)) {
// // 874
// g_FrData.targets[i].scriptsleep -= g_Vars.lvupdate240_60;
//

View File

@ -11,20 +11,20 @@
#define S32_MAX 2147483647
#define U32_MAX 4294967295
#define ABS(val) ((val) > 0 ? (val) : -(val))
#define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7)
#define ALIGN16(val) (((val) + 0xf | 0xf) ^ 0xf)
#define ALIGN64(val) ((((u32)val) + 0x3f | 0x3f) ^ 0x3f)
#define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0]))
#define CHRRACE(chr) (chr ? chr->race : RACE_HUMAN)
#define FRAMEDURATION (1 / 60.0f)
#define IS4MB() (g_Is4Mb == true)
#define PLAYERCOUNT() ((g_Vars.players[0] ? 1 : 0) + (g_Vars.players[1] ? 1 : 0) + (g_Vars.players[2] ? 1 : 0) + (g_Vars.players[3] ? 1 : 0))
#define PLAYERCOUNT3012() ((g_Vars.players[3] ? 1 : 0) + (g_Vars.players[0] ? 1 : 0) + (g_Vars.players[1] ? 1 : 0) + (g_Vars.players[2] ? 1 : 0))
#define SECSTOFRAMES240(secs) (secs * 240)
#define SECSTOFRAMES60(secs) (secs * 60)
#define TEXT(bankid, index) ((bankid << 9) | index)
#define VOLUME(volume) (volume > 0x5000 ? 0x5000 : volume)
#define ABS(val) ((val) > 0 ? (val) : -(val))
#define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7)
#define ALIGN16(val) (((val) + 0xf | 0xf) ^ 0xf)
#define ALIGN64(val) ((((u32)val) + 0x3f | 0x3f) ^ 0x3f)
#define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0]))
#define CHRRACE(chr) (chr ? chr->race : RACE_HUMAN)
#define FRAMEDURATION (1 / 60.0f)
#define IS4MB() (g_Is4Mb == true)
#define PLAYERCOUNT() ((g_Vars.players[0] ? 1 : 0) + (g_Vars.players[1] ? 1 : 0) + (g_Vars.players[2] ? 1 : 0) + (g_Vars.players[3] ? 1 : 0))
#define PLAYERCOUNT3012() ((g_Vars.players[3] ? 1 : 0) + (g_Vars.players[0] ? 1 : 0) + (g_Vars.players[1] ? 1 : 0) + (g_Vars.players[2] ? 1 : 0))
#define SECSTOTIME240(secs) (secs * 240)
#define SECSTOTIME60(secs) (secs * 60)
#define TEXT(bankid, index) ((bankid << 9) | index)
#define VOLUME(volume) (volume > 0x5000 ? 0x5000 : volume)
// These actions are assigned to chr->actiontype
#define ACT_INIT 0

View File

@ -167,8 +167,8 @@ u32 func0f0a9d94(void);
u32 func0f0a9da8(void);
u32 func0f0a9fc0(void);
Gfx *hudRenderAmmo(Gfx *gdl);
void func0f0abad0(s32 arg0);
void func0f0abb80(s32 arg0);
void speedpillAddBoost(s32 arg0);
void speedpillRevert(s32 arg0);
void func0f0abba8(void);
void func0f0abbe8(void);
void speedpillTick(void);