Attempt to decompile handRenderHud

This commit is contained in:
Ryan Dwyer 2021-04-14 17:44:32 +10:00
parent b77e3167ba
commit 125046899e
7 changed files with 458 additions and 57 deletions

View File

@ -16911,8 +16911,6 @@ char *weaponGetShortName(s32 weaponnum)
const char var7f1ac170[] = "wantedfn %d tiggle %d\n";
const char var7f1ac188[] = "%d\n";
const char var7f1ac18c[] = "%02d:%02d:%02d\n";
const char var7f1ac19c[] = "%02d:%02d\n";
void currentPlayerReloadHandIfPossible(s32 handnum)
{
@ -32300,7 +32298,7 @@ s32 weaponGetAmmoCapacity(s32 weaponnum, s32 func)
}
GLOBAL_ASM(
glabel func0f0a9b68
glabel handRenderHudString
/* f0a9b68: 27bdffa0 */ addiu $sp,$sp,-96
/* f0a9b6c: 3c0e8008 */ lui $t6,%hi(g_FontNumeric2)
/* f0a9b70: 8dcefafc */ lw $t6,%lo(g_FontNumeric2)($t6)
@ -32425,7 +32423,7 @@ glabel func0f0a9b68
);
GLOBAL_ASM(
glabel func0f0a9d2c
glabel handRenderHudInteger
/* f0a9d2c: 27bdffc8 */ addiu $sp,$sp,-56
/* f0a9d30: afa60040 */ sw $a2,0x40($sp)
/* f0a9d34: 00a03025 */ or $a2,$a1,$zero
@ -32446,7 +32444,7 @@ glabel func0f0a9d2c
/* f0a9d70: 8fa70044 */ lw $a3,0x44($sp)
/* f0a9d74: afae0010 */ sw $t6,0x10($sp)
/* f0a9d78: afaf0014 */ sw $t7,0x14($sp)
/* f0a9d7c: 0fc2a6da */ jal func0f0a9b68
/* f0a9d7c: 0fc2a6da */ jal handRenderHudString
/* f0a9d80: afb80018 */ sw $t8,0x18($sp)
/* f0a9d84: 8fbf0024 */ lw $ra,0x24($sp)
/* f0a9d88: 27bd0038 */ addiu $sp,$sp,0x38
@ -32778,7 +32776,7 @@ glabel func0f0a9da8
#if VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0f0a9fc0
glabel handRenderHudGauge
/* f0aa41c: 27bdff28 */ addiu $sp,$sp,-216
/* f0aa420: afbe0038 */ sw $s8,0x38($sp)
/* f0aa424: afa600e0 */ sw $a2,0xe0($sp)
@ -33401,7 +33399,7 @@ glabel func0f0a9fc0
);
#else
GLOBAL_ASM(
glabel func0f0a9fc0
glabel handRenderHudGauge
/* f0a9fc0: 27bdff30 */ addiu $sp,$sp,-208
/* f0a9fc4: afa600d8 */ sw $a2,0xd8($sp)
/* f0a9fc8: 8faf00d8 */ lw $t7,0xd8($sp)
@ -33998,7 +33996,7 @@ glabel func0f0a9fc0
#if VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel hudRenderAmmo
glabel handRenderHud
/* f0aad34: 3c0e800a */ lui $t6,0x800a
/* f0aad38: 8dcea794 */ lw $t6,-0x586c($t6)
/* f0aad3c: 27bdfed0 */ addiu $sp,$sp,-304
@ -34869,7 +34867,7 @@ glabel hudRenderAmmo
/* f0ab9dc: afa00028 */ sw $zero,0x28($sp)
/* f0ab9e0: afa8001c */ sw $t0,0x1c($sp)
/* f0ab9e4: 24c6fffd */ addiu $a2,$a2,-3
/* f0ab9e8: 0fc2a907 */ jal func0f0a9fc0
/* f0ab9e8: 0fc2a907 */ jal handRenderHudGauge
/* f0ab9ec: afaf0018 */ sw $t7,0x18($sp)
/* f0ab9f0: 8fa3004c */ lw $v1,0x4c($sp)
/* f0ab9f4: 8fb80048 */ lw $t8,0x48($sp)
@ -34883,7 +34881,7 @@ glabel hudRenderAmmo
/* f0aba14: afa00014 */ sw $zero,0x14($sp)
/* f0aba18: 00402025 */ move $a0,$v0
/* f0aba1c: 24070001 */ li $a3,0x1
/* f0aba20: 0fc2a85e */ jal func0f0a9d2c
/* f0aba20: 0fc2a85e */ jal handRenderHudInteger
/* f0aba24: 24c60002 */ addiu $a2,$a2,0x2
/* f0aba28: 8faa0058 */ lw $t2,0x58($sp)
/* f0aba2c: afa20130 */ sw $v0,0x130($sp)
@ -35008,7 +35006,7 @@ glabel hudRenderAmmo
/* f0abbe8: afa3001c */ sw $v1,0x1c($sp)
/* f0abbec: 24c6fffd */ addiu $a2,$a2,-3
/* f0abbf0: 8fa40130 */ lw $a0,0x130($sp)
/* f0abbf4: 0fc2a907 */ jal func0f0a9fc0
/* f0abbf4: 0fc2a907 */ jal handRenderHudGauge
/* f0abbf8: afb90018 */ sw $t9,0x18($sp)
/* f0abbfc: 8fa80038 */ lw $t0,0x38($sp)
/* f0abc00: 8fa60100 */ lw $a2,0x100($sp)
@ -35021,7 +35019,7 @@ glabel hudRenderAmmo
/* f0abc1c: 00402025 */ move $a0,$v0
/* f0abc20: 00003825 */ move $a3,$zero
/* f0abc24: 24c6fffe */ addiu $a2,$a2,-2
/* f0abc28: 0fc2a85e */ jal func0f0a9d2c
/* f0abc28: 0fc2a85e */ jal handRenderHudInteger
/* f0abc2c: afb90010 */ sw $t9,0x10($sp)
/* f0abc30: 8fa80038 */ lw $t0,0x38($sp)
/* f0abc34: 8faa0058 */ lw $t2,0x58($sp)
@ -35089,7 +35087,7 @@ glabel hudRenderAmmo
/* f0abd18: afab001c */ sw $t3,0x1c($sp)
/* f0abd1c: afa60048 */ sw $a2,0x48($sp)
/* f0abd20: afa9009c */ sw $t1,0x9c($sp)
/* f0abd24: 0fc2a907 */ jal func0f0a9fc0
/* f0abd24: 0fc2a907 */ jal handRenderHudGauge
/* f0abd28: afae0010 */ sw $t6,0x10($sp)
/* f0abd2c: 8fae0048 */ lw $t6,0x48($sp)
/* f0abd30: 3c1800ff */ lui $t8,0xff
@ -35101,7 +35099,7 @@ glabel hudRenderAmmo
/* f0abd48: 8fa5009c */ lw $a1,0x9c($sp)
/* f0abd4c: 8fa60054 */ lw $a2,0x54($sp)
/* f0abd50: 00003825 */ move $a3,$zero
/* f0abd54: 0fc2a85e */ jal func0f0a9d2c
/* f0abd54: 0fc2a85e */ jal handRenderHudInteger
/* f0abd58: afa00014 */ sw $zero,0x14($sp)
/* f0abd5c: afa20130 */ sw $v0,0x130($sp)
/* f0abd60: 8fb9005c */ lw $t9,0x5c($sp)
@ -35244,7 +35242,7 @@ glabel hudRenderAmmo
/* f0abf50: 00003825 */ move $a3,$zero
/* f0abf54: afa00014 */ sw $zero,0x14($sp)
/* f0abf58: 24c6fffe */ addiu $a2,$a2,-2
/* f0abf5c: 0fc2a7ed */ jal func0f0a9b68
/* f0abf5c: 0fc2a7ed */ jal handRenderHudString
/* f0abf60: afae0010 */ sw $t6,0x10($sp)
/* f0abf64: afa20130 */ sw $v0,0x130($sp)
.PF0f0abf68:
@ -35261,7 +35259,7 @@ glabel hudRenderAmmo
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel hudRenderAmmo
glabel handRenderHud
/* f0aa86c: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
/* f0aa870: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
/* f0aa874: 27bdfed0 */ addiu $sp,$sp,-304
@ -36137,7 +36135,7 @@ glabel hudRenderAmmo
/* f0ab520: afa00028 */ sw $zero,0x28($sp)
/* f0ab524: afa8001c */ sw $t0,0x1c($sp)
/* f0ab528: 24c6fffd */ addiu $a2,$a2,-3
/* f0ab52c: 0fc2a7f0 */ jal func0f0a9fc0
/* f0ab52c: 0fc2a7f0 */ jal handRenderHudGauge
/* f0ab530: afb90018 */ sw $t9,0x18($sp)
/* f0ab534: 8fa3004c */ lw $v1,0x4c($sp)
/* f0ab538: 8fae0048 */ lw $t6,0x48($sp)
@ -36151,7 +36149,7 @@ glabel hudRenderAmmo
/* f0ab558: afa00014 */ sw $zero,0x14($sp)
/* f0ab55c: 00402025 */ or $a0,$v0,$zero
/* f0ab560: 24070001 */ addiu $a3,$zero,0x1
/* f0ab564: 0fc2a74b */ jal func0f0a9d2c
/* f0ab564: 0fc2a74b */ jal handRenderHudInteger
/* f0ab568: 24c60002 */ addiu $a2,$a2,0x2
/* f0ab56c: 8faa0058 */ lw $t2,0x58($sp)
/* f0ab570: afa20130 */ sw $v0,0x130($sp)
@ -36276,7 +36274,7 @@ glabel hudRenderAmmo
/* f0ab72c: afa3001c */ sw $v1,0x1c($sp)
/* f0ab730: 24c6fffd */ addiu $a2,$a2,-3
/* f0ab734: 8fa40130 */ lw $a0,0x130($sp)
/* f0ab738: 0fc2a7f0 */ jal func0f0a9fc0
/* f0ab738: 0fc2a7f0 */ jal handRenderHudGauge
/* f0ab73c: afaf0018 */ sw $t7,0x18($sp)
/* f0ab740: 8fa80038 */ lw $t0,0x38($sp)
/* f0ab744: 8fa60100 */ lw $a2,0x100($sp)
@ -36289,7 +36287,7 @@ glabel hudRenderAmmo
/* f0ab760: 00402025 */ or $a0,$v0,$zero
/* f0ab764: 00003825 */ or $a3,$zero,$zero
/* f0ab768: 24c6fffe */ addiu $a2,$a2,-2
/* f0ab76c: 0fc2a74b */ jal func0f0a9d2c
/* f0ab76c: 0fc2a74b */ jal handRenderHudInteger
/* f0ab770: afaf0010 */ sw $t7,0x10($sp)
/* f0ab774: 8fa80038 */ lw $t0,0x38($sp)
/* f0ab778: 8faa0058 */ lw $t2,0x58($sp)
@ -36357,7 +36355,7 @@ glabel hudRenderAmmo
/* f0ab85c: afab001c */ sw $t3,0x1c($sp)
/* f0ab860: afa60048 */ sw $a2,0x48($sp)
/* f0ab864: afa9009c */ sw $t1,0x9c($sp)
/* f0ab868: 0fc2a7f0 */ jal func0f0a9fc0
/* f0ab868: 0fc2a7f0 */ jal handRenderHudGauge
/* f0ab86c: afb80010 */ sw $t8,0x10($sp)
/* f0ab870: 8fb80048 */ lw $t8,0x48($sp)
/* f0ab874: 3c0e00ff */ lui $t6,0xff
@ -36369,7 +36367,7 @@ glabel hudRenderAmmo
/* f0ab88c: 8fa5009c */ lw $a1,0x9c($sp)
/* f0ab890: 8fa60054 */ lw $a2,0x54($sp)
/* f0ab894: 00003825 */ or $a3,$zero,$zero
/* f0ab898: 0fc2a74b */ jal func0f0a9d2c
/* f0ab898: 0fc2a74b */ jal handRenderHudInteger
/* f0ab89c: afa00014 */ sw $zero,0x14($sp)
/* f0ab8a0: afa20130 */ sw $v0,0x130($sp)
/* f0ab8a4: 8faf005c */ lw $t7,0x5c($sp)
@ -36512,7 +36510,7 @@ glabel hudRenderAmmo
/* f0aba94: 00003825 */ or $a3,$zero,$zero
/* f0aba98: afa00014 */ sw $zero,0x14($sp)
/* f0aba9c: 24c6fffe */ addiu $a2,$a2,-2
/* f0abaa0: 0fc2a6da */ jal func0f0a9b68
/* f0abaa0: 0fc2a6da */ jal handRenderHudString
/* f0abaa4: afb80010 */ sw $t8,0x10($sp)
/* f0abaa8: afa20130 */ sw $v0,0x130($sp)
.L0f0abaac:
@ -36529,7 +36527,7 @@ glabel hudRenderAmmo
);
#else
GLOBAL_ASM(
glabel hudRenderAmmo
glabel handRenderHud
/* f0a860c: 3c0e800a */ lui $t6,0x800a
/* f0a8610: 8dcee944 */ lw $t6,-0x16bc($t6)
/* f0a8614: 27bdfee0 */ addiu $sp,$sp,-288
@ -37388,7 +37386,7 @@ glabel hudRenderAmmo
/* f0a9280: afa00028 */ sw $zero,0x28($sp)
/* f0a9284: afa8001c */ sw $t0,0x1c($sp)
/* f0a9288: 24c6fffd */ addiu $a2,$a2,-3
/* f0a928c: 0fc29f58 */ jal func0f0a9fc0
/* f0a928c: 0fc29f58 */ jal handRenderHudGauge
/* f0a9290: afaf0018 */ sw $t7,0x18($sp)
/* f0a9294: 8fa3004c */ lw $v1,0x4c($sp)
/* f0a9298: 8fae0048 */ lw $t6,0x48($sp)
@ -37402,7 +37400,7 @@ glabel hudRenderAmmo
/* f0a92b8: afa00014 */ sw $zero,0x14($sp)
/* f0a92bc: 00402025 */ or $a0,$v0,$zero
/* f0a92c0: 24070001 */ addiu $a3,$zero,0x1
/* f0a92c4: 0fc29eb3 */ jal func0f0a9d2c
/* f0a92c4: 0fc29eb3 */ jal handRenderHudInteger
/* f0a92c8: 24c60002 */ addiu $a2,$a2,0x2
/* f0a92cc: 8faa0058 */ lw $t2,0x58($sp)
/* f0a92d0: afa20120 */ sw $v0,0x120($sp)
@ -37527,7 +37525,7 @@ glabel hudRenderAmmo
/* f0a948c: afa3001c */ sw $v1,0x1c($sp)
/* f0a9490: 24c6fffd */ addiu $a2,$a2,-3
/* f0a9494: 8fa40120 */ lw $a0,0x120($sp)
/* f0a9498: 0fc29f58 */ jal func0f0a9fc0
/* f0a9498: 0fc29f58 */ jal handRenderHudGauge
/* f0a949c: afb90018 */ sw $t9,0x18($sp)
/* f0a94a0: 8fa80038 */ lw $t0,0x38($sp)
/* f0a94a4: 8fa600f0 */ lw $a2,0xf0($sp)
@ -37540,7 +37538,7 @@ glabel hudRenderAmmo
/* f0a94c0: 00402025 */ or $a0,$v0,$zero
/* f0a94c4: 00003825 */ or $a3,$zero,$zero
/* f0a94c8: 24c6fffe */ addiu $a2,$a2,-2
/* f0a94cc: 0fc29eb3 */ jal func0f0a9d2c
/* f0a94cc: 0fc29eb3 */ jal handRenderHudInteger
/* f0a94d0: afb90010 */ sw $t9,0x10($sp)
/* f0a94d4: 8fa80038 */ lw $t0,0x38($sp)
/* f0a94d8: 8faa0058 */ lw $t2,0x58($sp)
@ -37608,7 +37606,7 @@ glabel hudRenderAmmo
/* f0a95bc: afab001c */ sw $t3,0x1c($sp)
/* f0a95c0: afa60048 */ sw $a2,0x48($sp)
/* f0a95c4: afa9009c */ sw $t1,0x9c($sp)
/* f0a95c8: 0fc29f58 */ jal func0f0a9fc0
/* f0a95c8: 0fc29f58 */ jal handRenderHudGauge
/* f0a95cc: afb80010 */ sw $t8,0x10($sp)
/* f0a95d0: 8fb80048 */ lw $t8,0x48($sp)
/* f0a95d4: 3c0e00ff */ lui $t6,0xff
@ -37620,7 +37618,7 @@ glabel hudRenderAmmo
/* f0a95ec: 8fa5009c */ lw $a1,0x9c($sp)
/* f0a95f0: 8fa60054 */ lw $a2,0x54($sp)
/* f0a95f4: 00003825 */ or $a3,$zero,$zero
/* f0a95f8: 0fc29eb3 */ jal func0f0a9d2c
/* f0a95f8: 0fc29eb3 */ jal handRenderHudInteger
/* f0a95fc: afa00014 */ sw $zero,0x14($sp)
/* f0a9600: afa20120 */ sw $v0,0x120($sp)
/* f0a9604: 8fb9005c */ lw $t9,0x5c($sp)
@ -37763,7 +37761,7 @@ glabel hudRenderAmmo
/* f0a97f4: 00003825 */ or $a3,$zero,$zero
/* f0a97f8: afa00014 */ sw $zero,0x14($sp)
/* f0a97fc: 24c6fffe */ addiu $a2,$a2,-2
/* f0a9800: 0fc29e42 */ jal func0f0a9b68
/* f0a9800: 0fc29e42 */ jal handRenderHudString
/* f0a9804: afb80010 */ sw $t8,0x10($sp)
/* f0a9808: afa20120 */ sw $v0,0x120($sp)
.NB0f0a980c:
@ -37780,6 +37778,409 @@ glabel hudRenderAmmo
);
#endif
const char var7f1ac18c[] = "%02d:%02d:%02d\n";
const char var7f1ac19c[] = "%02d:%02d\n";
// Mismatch: regalloc near da8
//Gfx *handRenderHud(Gfx *gdl)
//{
// struct player *player = g_Vars.currentplayer; // 12c
// s32 bottom = viGetViewTop() + viGetViewHeight() - 13; // 128
// s32 playercount; // 124
// s32 playernum; // 120
// struct hand *lefthand;
// s32 secs60;
// s32 secs;
// s32 ammoindex; // 110
// s32 barwidth; // 10c
// s32 reserveheight; // 108
// s32 clipheight; // 104
// s32 xpos; // 100
// struct weapon *weapon; // fc
// u32 alpha;
// u32 fncolour; // f4
// s32 funcnum; // f0
// s32 fnfaderinc; // ec
// s32 tmpfuncnum; // e8
//
// struct handweaponinfo info; // dc
// struct hand *hand;
// char *str; // d4
// u32 colour; // d0
// s32 x; // cc
// s32 y; // c8
// s32 textheight; // c4
// s32 textwidth; // c0
// struct weaponfunc *func; // bc
// u16 nameid; // ba
//
// s32 ammotype; // a4
// s32 ammoheld; // a0
// s32 ammototal; // 9c
//
// char text[32]; // 78
// s32 mins; // 5c
// struct gunctrl *ctrl; // 58
//
// playercount = PLAYERCOUNT();
// playernum = g_Vars.currentplayernum;
// ammoindex = 0;
// barwidth = 9;
// reserveheight = 36;
// clipheight = 57;
// weapon = weaponFindById(player->gunctrl.weaponnum);
//
// hand = &player->hands[HAND_RIGHT];
// lefthand = &player->hands[HAND_LEFT];
// ctrl = &player->gunctrl;
//
// // 958
// if (player->isdead) {
// return gdl;
// }
//
// if (g_Vars.currentplayer->gunctrl.passivemode) {
// return gdl;
// }
//
// if (g_Vars.lvframenum < 5) {
// return gdl;
// }
//
// if (g_ViMode == VIMODE_HIRES) {
// g_ScaleX = 2;
// } else {
// g_ScaleX = 1;
// }
//
// gdl = func0f153628(gdl);
//
// // 9d8
// if (playercount >= 2) {
// barwidth = 5;
// reserveheight = 26;
// clipheight = 47;
//
// if (playercount == 2) {
// if (IS4MB() || (optionsGetScreenSplit() != SCREENSPLIT_VERTICAL && playernum == 0)) {
// bottom += 10;
// } else {
// bottom += 2;
// }
// } else if (playercount >= 3) {
// if (playernum < 2) {
// bottom += 10;
// } else {
// bottom += 2;
// }
// }
// } else if (optionsGetEffectiveScreenSize() != SCREENSIZE_FULL) {
// bottom += 8;
// }
//
// // a9c
// fncolour = 0xff000040;
// funcnum = hand->base.weaponfunc;
// fnfaderinc = g_Vars.lvupdate240 * 2;
//
// handGetWeaponInfo(&info, HAND_RIGHT);
// tmpfuncnum = currentPlayerIsUsingSecondaryFunction();
//
// if (func0f098ca0(tmpfuncnum, &info, hand) >= 0) {
// funcnum = tmpfuncnum;
// }
//
// xpos = (viGetViewLeft() + viGetViewWidth()) / g_ScaleX - barwidth - 24;
//
// // b64
// if (playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()) && playernum == 0) {
// xpos += 15;
// } else if (playercount >= 3 && (playernum % 2) == 0) {
// xpos += 15;
// }
//
// // bd4
// // Render function square
// if (funcnum == FUNC_SECONDARY && ctrl->fnfader < 255) {
// if (ctrl->fnfader < 128) {
// ctrl->fnfader = 128;
// }
//
// if (ctrl->fnfader + fnfaderinc > 255) {
// ctrl->fnfader = 255;
// } else {
// ctrl->fnfader += fnfaderinc;
// }
// }
//
// if (funcnum == FUNC_PRIMARY && ctrl->fnfader > 0) {
// if (ctrl->fnfader - fnfaderinc < 0) {
// ctrl->fnfader = 0;
// } else {
// ctrl->fnfader -= fnfaderinc;
// }
// }
//
// if (ctrl->fnfader > 128) {
// fncolour = ((ctrl->fnfader * 2) - 256) << 16 | 0xff000040;
// }
//
// gdl = gfxSetPrimColour(gdl, fncolour);
//
// gDPFillRectangleScaled(gdl++, xpos - 13, bottom - 11, xpos - 2, bottom);
//
// gdl = func0f153838(gdl);
//
// // d20
// // Render weapon name and function name
// if (optionsGetShowGunFunction(g_Vars.currentplayerstats->mpindex)) {
// func = weaponGetFunctionById(hand->base.weaponnum, funcnum);
// nameid = invGetNameIdByIndex(invGetCurrentIndex());
// str = langGet(nameid);
//
// // d70
// if (ctrl->curgunstr != nameid) {
// ctrl->guntypetimer = 0;
// ctrl->curgunstr = nameid;
// }
//
// // d8c
// if (ctrl->guntypetimer < 255) {
// colour = 0x55ffffff;
//
// if (ctrl->guntypetimer);
//
// // da8
// if (ctrl->guntypetimer + g_Vars.lvupdate240_60 > 255) {
// ctrl->guntypetimer = 255;
// } else {
// ctrl->guntypetimer = (u32)ctrl->guntypetimer + g_Vars.lvupdate240_60;
// }
//
// textMeasure(&textheight, &textwidth, str, g_FontHandelGothicXs1, g_FontHandelGothicXs2, 0);
// textwidth += 2;
//
// if (textwidth > ctrl->guntypetimer * 3) {
// textwidth = ctrl->guntypetimer * 3;
// }
//
// // e24
// if (playercount >= 2) {
// x = xpos - textwidth - 13;
// } else {
// x = xpos - textwidth - 2;
// }
//
// y = bottom - textheight - 15;
//
// if (ctrl->guntypetimer > 192) {
// alpha = 255 - (ctrl->guntypetimer - 192) * 255 / 63U;
// colour = (colour & 0xfffffff00) | alpha;
// }
//
// gdl = gfxSetPrimColour(gdl, 0);
//
// gDPFillRectangleScaled(gdl++, x - 1, y - 1, xpos - 11, bottom);
//
// gdl = func0f153838(gdl);
// func0f153d50(var80061630 * 50.0f, 0, 50);
// func0f153e38(0xffffffff, 0xffffffff);
// gdl = textRenderProjected(gdl, &x, &y, str, g_FontHandelGothicXs1, g_FontHandelGothicXs2, colour, textwidth, 1000, 0, 0);
// func0f153e4c();
// }
//
// // fbc
// if (func) {
// langGet(func->name);
//
// colour = 0xff5555ff;
//
// if ((ctrl->curfnstr != func->name && ctrl->fnfader > 128) || !ctrl->curfnstr) {
// ctrl->fnstrtimer = 0;
// ctrl->curfnstr = func->name;
// }
//
// // A match can be made here by changing langGet's argument to a u32
// // but that causes a mismatch within langGet
// str = langGet(ctrl->curfnstr);
//
// // 040
// if (ctrl->fnstrtimer < 255) {
// if (ctrl->fnstrtimer + g_Vars.lvupdate240_60 > 255) {
// ctrl->fnstrtimer = 255;
// } else {
// ctrl->fnstrtimer += (u32)g_Vars.lvupdate240_60;
// }
//
// if (funcnum == FUNC_SECONDARY && func->name == ctrl->curfnstr) {
// colour |= 0x00ff0000;
// }
//
// if (funcnum == FUNC_PRIMARY && func->name != ctrl->curfnstr) {
// colour |= 0x00ff0000;
// }
//
// textMeasure(&textheight, &textwidth, str, g_FontHandelGothicXs1, g_FontHandelGothicXs2, 0);
// textwidth += 2;
//
// if (textwidth > ctrl->fnstrtimer * 3) {
// textwidth = ctrl->fnstrtimer * 3;
// }
//
// x = xpos - textwidth - 13;
// y = bottom - textheight - 1;
//
// // 158
// if (ctrl->fnstrtimer > 192) {
// alpha = 255 - (ctrl->fnstrtimer - 192) * 255 / 63U;
// colour = (colour & 0xffffff00) | alpha;
// }
//
// gdl = gfxSetPrimColour(gdl, 0);
//
// gDPFillRectangleScaled(gdl++, x - 1, y - 1, xpos - 11, bottom + 3);
//
// gdl = func0f153838(gdl);
//
// func0f153d50(var80061630 * 50.0f, 0, 50);
// func0f153e38(0xffffffff, 0xffffffff);
//
// gdl = textRenderProjected(gdl, &x, &y, str,
// g_FontHandelGothicXs1, g_FontHandelGothicXs2, colour, textwidth,
// 1000, 0, 0);
//
// func0f153e4c();
// }
// }
// }
//
// // 2b8
// if (weapon && weapon->functions[hand->base.weaponfunc] != NULL) {
// ammoindex = ((struct weaponfunc *)(weapon->functions[hand->base.weaponfunc]))->ammoindex;
// }
//
// if (ammoindex == -1) {
// if (weapon->functions[1 - hand->base.weaponfunc] != NULL) {
// ammoindex = ((struct weaponfunc *)(weapon->functions[1 - hand->base.weaponfunc]))->ammoindex;
// }
//
// if (ammoindex == -1) {
// gdl = func0f153780(gdl);
// g_ScaleX = 1;
// return gdl;
// }
// }
//
// if (ammoindex != ctrl->lastmag) {
// abmagReset(&player->hands[HAND_LEFT].abmag);
// abmagReset(&hand->abmag);
// abmagReset(&ctrl->abmag);
// ctrl->lastmag = ammoindex;
// }
//
// // 39c
// // Left hand - mag
// if (lefthand->inuse
// && weapon->ammos[ammoindex] != NULL
// && lefthand->base.weaponnum != WEAPON_REMOTEMINE) {
// xpos = viGetViewLeft() / g_ScaleX + 24;
//
// if (playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()) && playernum == 1) {
// xpos -= 14;
// } else if (playercount >= 3 && (playernum & 1) == 1) {
// xpos -= 14;
// }
//
// if (lefthand->clipsizes[ammoindex] > 0 && (weapon->ammos[ammoindex]->flags & 2) == 0) {
// gdl = handRenderHudGauge(gdl,
// xpos, bottom - reserveheight - clipheight - 3, xpos + barwidth, bottom - reserveheight - 3,
// &lefthand->abmag, lefthand->loadedammo[ammoindex], lefthand->clipsizes[ammoindex],
// 0x00300080, 0x00ff0040, false);
// gdl = handRenderHudInteger(gdl, lefthand->loadedammo[ammoindex], xpos + barwidth + 2, true,
// bottom - reserveheight - 8, 0, 0x00ff00a0);
// }
// }
//
// // 584
// // Right hand - mag, reserve and combat boost timer
// if (hand->inuse && ctrl->ammotypes[ammoindex] >= 0) {
// ammotype = player->gunctrl.ammotypes[ammoindex];
//
// xpos = (viGetViewLeft() + viGetViewWidth()) / g_ScaleX - barwidth - 24;
//
// if (playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()) && playernum == 0) {
// xpos += 15;
// } else if (playercount >= 3 && (playernum % 2) == 0) {
// xpos += 15;
// }
//
// // Mag
// // 6a8
// ammoheld = player->ammoheldarr[ammotype];
//
// if (hand->clipsizes[ammoindex] > 0
// && weapon->ammos[ammoindex] != NULL
// && (weapon->ammos[ammoindex]->flags & 2) == 0) {
// gdl = handRenderHudGauge(gdl, xpos, bottom - reserveheight - clipheight - 3, xpos + barwidth,
// bottom - reserveheight - 3, &hand->abmag, hand->loadedammo[ammoindex], hand->clipsizes[ammoindex],
// 0x00300080, 0x00ff0040, false);
// gdl = handRenderHudInteger(gdl, hand->loadedammo[ammoindex], xpos - 2, false,
// bottom - reserveheight - 8, 0, 0x00ff00a0);
// }
//
// // Reserve
// // 7ac
// if (g_AmmoTypes[ammotype].capacity > 0
// && (weapon->ammos[ammoindex]->flags & 1) == 0) {
// ammototal = ammoheld;
//
// if (weapon->ammos[ammoindex]->flags & 2) {
// if (hand->clipsizes[ammoindex] > 0) {
// ammototal += hand->loadedammo[ammoindex];
// }
//
// if (lefthand->clipsizes[ammoindex] > 0) {
// ammototal += lefthand->loadedammo[ammoindex];
// }
// }
//
// gdl = handRenderHudGauge(gdl, xpos, bottom - reserveheight, xpos + barwidth,
// bottom, &ctrl->abmag, ammototal, g_AmmoTypes[ammotype].capacity,
// 0x00403080, 0x00ffc040, true);
// gdl = handRenderHudInteger(gdl, ammototal, xpos - 2, false, bottom - reserveheight + 1, 0, 0x00ffc0a0);
// }
//
// // 8b8
// // Combat boost timer
// if (hand->base.weaponnum == WEAPON_COMBATBOOST) {
// mins = g_Vars.speedpilltime / 3600;
//
// // 91c
// if (mins >= 1) {
// secs60 = g_Vars.speedpilltime - mins * 3600;
// secs = secs60 / 60;
//
// sprintf(text, "%02d:%02d:%02d\n", mins, secs, (secs60 - secs * 60) * 100 / 60);
// } else {
// // 9d4
// secs60 = g_Vars.speedpilltime - mins * 3600;
// secs = secs60 / 60;
//
// sprintf(text, "%02d:%02d\n", secs, (secs60 - secs * 60) * 100 / 60);
// }
//
// // a7c
// gdl = handRenderHudString(gdl, text, xpos + barwidth - 2, 0, bottom - reserveheight + 1, 0, 0x00ffc0a0);
// }
// }
//
// // aac
// gdl = func0f153780(gdl);
// g_ScaleX = 1;
//
// return gdl;
//}
void cboostAdd(s32 amount)
{
g_Vars.speedpilltime += amount;

View File

@ -16014,7 +16014,7 @@ Gfx *func0f0c07c8(Gfx *gdl)
}
if (optionsGetAmmoOnScreen(g_Vars.currentplayerstats->mpindex)) {
gdl = hudRenderAmmo(gdl);
gdl = handRenderHud(gdl);
}
#if VERSION >= VERSION_NTSC_1_0

View File

@ -600,7 +600,7 @@ void func0f153d3c(void)
var800a45d0.unk00 = var800a45d0.unk2a;
}
void func0f153d50(u32 arg0, u32 arg1, u32 arg2)
void func0f153d50(s32 arg0, s32 arg1, s32 arg2)
{
var800a45d0.unk00 |= 0x04;
var800a45d0.unk4c = arg0;

View File

@ -75595,7 +75595,7 @@ glabel var7f1ab1a8
/* f090a54: 00402025 */ move $a0,$v0
/* f090a58: 24070002 */ li $a3,0x2
/* f090a5c: afb00010 */ sw $s0,0x10($sp)
/* f090a60: 0fc2a85e */ jal func0f0a9d2c
/* f090a60: 0fc2a85e */ jal handRenderHudInteger
/* f090a64: 24c6ffee */ addiu $a2,$a2,-18
/* f090a68: 8fa5005c */ lw $a1,0x5c($sp)
/* f090a6c: 2401000a */ li $at,0xa
@ -75610,7 +75610,7 @@ glabel var7f1ab1a8
/* f090a90: 00402025 */ move $a0,$v0
/* f090a94: 24070002 */ li $a3,0x2
/* f090a98: afb00010 */ sw $s0,0x10($sp)
/* f090a9c: 0fc2a85e */ jal func0f0a9d2c
/* f090a9c: 0fc2a85e */ jal handRenderHudInteger
/* f090aa0: 24c6fff2 */ addiu $a2,$a2,-14
/* f090aa4: 8fa60044 */ lw $a2,0x44($sp)
/* f090aa8: 3c0f00ff */ lui $t7,0xff
@ -75623,7 +75623,7 @@ glabel var7f1ab1a8
/* f090ac4: 00402025 */ move $a0,$v0
/* f090ac8: 24070002 */ li $a3,0x2
/* f090acc: afb00010 */ sw $s0,0x10($sp)
/* f090ad0: 0fc2a7ed */ jal func0f0a9b68
/* f090ad0: 0fc2a7ed */ jal handRenderHudString
/* f090ad4: 24c6fff8 */ addiu $a2,$a2,-8
/* f090ad8: 8fa50058 */ lw $a1,0x58($sp)
/* f090adc: 2401003c */ li $at,0x3c
@ -75641,7 +75641,7 @@ glabel var7f1ab1a8
/* f090b0c: 00402025 */ move $a0,$v0
/* f090b10: 24070002 */ li $a3,0x2
/* f090b14: afb00010 */ sw $s0,0x10($sp)
/* f090b18: 0fc2a85e */ jal func0f0a9d2c
/* f090b18: 0fc2a85e */ jal handRenderHudInteger
/* f090b1c: 24c6fffe */ addiu $a2,$a2,-2
/* f090b20: 8fa50058 */ lw $a1,0x58($sp)
/* f090b24: 2401000a */ li $at,0xa
@ -75656,7 +75656,7 @@ glabel var7f1ab1a8
/* f090b48: 00402025 */ move $a0,$v0
/* f090b4c: 24070002 */ li $a3,0x2
/* f090b50: afb00010 */ sw $s0,0x10($sp)
/* f090b54: 0fc2a85e */ jal func0f0a9d2c
/* f090b54: 0fc2a85e */ jal handRenderHudInteger
/* f090b58: 24c60002 */ addiu $a2,$a2,0x2
/* f090b5c: 8fa60044 */ lw $a2,0x44($sp)
/* f090b60: 3c0f00ff */ lui $t7,0xff
@ -75669,7 +75669,7 @@ glabel var7f1ab1a8
/* f090b7c: 00402025 */ move $a0,$v0
/* f090b80: 24070002 */ li $a3,0x2
/* f090b84: afb00010 */ sw $s0,0x10($sp)
/* f090b88: 0fc2a7ed */ jal func0f0a9b68
/* f090b88: 0fc2a7ed */ jal handRenderHudString
/* f090b8c: 24c60008 */ addiu $a2,$a2,0x8
/* f090b90: 8fa50054 */ lw $a1,0x54($sp)
/* f090b94: 24010064 */ li $at,0x64
@ -75687,7 +75687,7 @@ glabel var7f1ab1a8
/* f090bc4: 00402025 */ move $a0,$v0
/* f090bc8: 24070002 */ li $a3,0x2
/* f090bcc: afb00010 */ sw $s0,0x10($sp)
/* f090bd0: 0fc2a85e */ jal func0f0a9d2c
/* f090bd0: 0fc2a85e */ jal handRenderHudInteger
/* f090bd4: 24c6000e */ addiu $a2,$a2,0xe
/* f090bd8: 8fa50054 */ lw $a1,0x54($sp)
/* f090bdc: 2401000a */ li $at,0xa
@ -75702,7 +75702,7 @@ glabel var7f1ab1a8
/* f090c00: 00402025 */ move $a0,$v0
/* f090c04: 24070002 */ li $a3,0x2
/* f090c08: afb00010 */ sw $s0,0x10($sp)
/* f090c0c: 0fc2a85e */ jal func0f0a9d2c
/* f090c0c: 0fc2a85e */ jal handRenderHudInteger
/* f090c10: 24c60012 */ addiu $a2,$a2,0x12
/* f090c14: 0fc55125 */ jal func0f153780
/* f090c18: 00402025 */ move $a0,$v0
@ -75909,7 +75909,7 @@ glabel var7f1ab1a8
/* f090b54: 00402025 */ or $a0,$v0,$zero
/* f090b58: 24070002 */ addiu $a3,$zero,0x2
/* f090b5c: afb00010 */ sw $s0,0x10($sp)
/* f090b60: 0fc2a74b */ jal func0f0a9d2c
/* f090b60: 0fc2a74b */ jal handRenderHudInteger
/* f090b64: 24c6ffee */ addiu $a2,$a2,-18
/* f090b68: 8fa5005c */ lw $a1,0x5c($sp)
/* f090b6c: 2401000a */ addiu $at,$zero,0xa
@ -75924,7 +75924,7 @@ glabel var7f1ab1a8
/* f090b90: 00402025 */ or $a0,$v0,$zero
/* f090b94: 24070002 */ addiu $a3,$zero,0x2
/* f090b98: afb00010 */ sw $s0,0x10($sp)
/* f090b9c: 0fc2a74b */ jal func0f0a9d2c
/* f090b9c: 0fc2a74b */ jal handRenderHudInteger
/* f090ba0: 24c6fff2 */ addiu $a2,$a2,-14
/* f090ba4: 8fa60044 */ lw $a2,0x44($sp)
/* f090ba8: 3c0900ff */ lui $t1,0xff
@ -75937,7 +75937,7 @@ glabel var7f1ab1a8
/* f090bc4: 00402025 */ or $a0,$v0,$zero
/* f090bc8: 24070002 */ addiu $a3,$zero,0x2
/* f090bcc: afb00010 */ sw $s0,0x10($sp)
/* f090bd0: 0fc2a6da */ jal func0f0a9b68
/* f090bd0: 0fc2a6da */ jal handRenderHudString
/* f090bd4: 24c6fff8 */ addiu $a2,$a2,-8
/* f090bd8: 8fa50058 */ lw $a1,0x58($sp)
/* f090bdc: 2401003c */ addiu $at,$zero,0x3c
@ -75955,7 +75955,7 @@ glabel var7f1ab1a8
/* f090c0c: 00402025 */ or $a0,$v0,$zero
/* f090c10: 24070002 */ addiu $a3,$zero,0x2
/* f090c14: afb00010 */ sw $s0,0x10($sp)
/* f090c18: 0fc2a74b */ jal func0f0a9d2c
/* f090c18: 0fc2a74b */ jal handRenderHudInteger
/* f090c1c: 24c6fffe */ addiu $a2,$a2,-2
/* f090c20: 8fa50058 */ lw $a1,0x58($sp)
/* f090c24: 2401000a */ addiu $at,$zero,0xa
@ -75970,7 +75970,7 @@ glabel var7f1ab1a8
/* f090c48: 00402025 */ or $a0,$v0,$zero
/* f090c4c: 24070002 */ addiu $a3,$zero,0x2
/* f090c50: afb00010 */ sw $s0,0x10($sp)
/* f090c54: 0fc2a74b */ jal func0f0a9d2c
/* f090c54: 0fc2a74b */ jal handRenderHudInteger
/* f090c58: 24c60002 */ addiu $a2,$a2,0x2
/* f090c5c: 8fa60044 */ lw $a2,0x44($sp)
/* f090c60: 3c0900ff */ lui $t1,0xff
@ -75983,7 +75983,7 @@ glabel var7f1ab1a8
/* f090c7c: 00402025 */ or $a0,$v0,$zero
/* f090c80: 24070002 */ addiu $a3,$zero,0x2
/* f090c84: afb00010 */ sw $s0,0x10($sp)
/* f090c88: 0fc2a6da */ jal func0f0a9b68
/* f090c88: 0fc2a6da */ jal handRenderHudString
/* f090c8c: 24c60008 */ addiu $a2,$a2,0x8
/* f090c90: 8fa50054 */ lw $a1,0x54($sp)
/* f090c94: 24010064 */ addiu $at,$zero,0x64
@ -76001,7 +76001,7 @@ glabel var7f1ab1a8
/* f090cc4: 00402025 */ or $a0,$v0,$zero
/* f090cc8: 24070002 */ addiu $a3,$zero,0x2
/* f090ccc: afb00010 */ sw $s0,0x10($sp)
/* f090cd0: 0fc2a74b */ jal func0f0a9d2c
/* f090cd0: 0fc2a74b */ jal handRenderHudInteger
/* f090cd4: 24c6000e */ addiu $a2,$a2,0xe
/* f090cd8: 8fa50054 */ lw $a1,0x54($sp)
/* f090cdc: 2401000a */ addiu $at,$zero,0xa
@ -76016,7 +76016,7 @@ glabel var7f1ab1a8
/* f090d00: 00402025 */ or $a0,$v0,$zero
/* f090d04: 24070002 */ addiu $a3,$zero,0x2
/* f090d08: afb00010 */ sw $s0,0x10($sp)
/* f090d0c: 0fc2a74b */ jal func0f0a9d2c
/* f090d0c: 0fc2a74b */ jal handRenderHudInteger
/* f090d10: 24c60012 */ addiu $a2,$a2,0x12
/* f090d14: 0fc54de0 */ jal func0f153780
/* f090d18: 00402025 */ or $a0,$v0,$zero

View File

@ -162,12 +162,12 @@ u32 weaponGetAmmoType(u32 weaponnum, u32 func);
s32 currentPlayerGetAmmoQuantityForWeapon(u32 weaponnum, u32 func);
void currentPlayerGiveAmmoForWeapon(u32 weaponnum, u32 func, u32 quantity);
s32 weaponGetAmmoCapacity(s32 weaponnum, s32 func);
u32 func0f0a9b68(void);
u32 func0f0a9d2c(void);
Gfx *handRenderHudString(Gfx *gdl, char *text, s32 arg2, s32 arg3, s32 arg4, s32 arg5, u32 colour);
Gfx *handRenderHudInteger(Gfx *gdl, s32 value, s32 x, bool leftalign, s32 y, s32 arg5, u32 colour);
void abmagReset(struct abmag *abmag);
u32 func0f0a9da8(void);
u32 func0f0a9fc0(void);
Gfx *hudRenderAmmo(Gfx *gdl);
Gfx *handRenderHudGauge(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, struct abmag *abmag, s32 remaining, s32 capacity, u32 vacantcolour, u32 occupiedcolour, bool flip);
Gfx *handRenderHud(Gfx *gdl);
void cboostAdd(s32 arg0);
void cboostSubtract(s32 arg0);
void cboostBoost(void);

View File

@ -26,7 +26,7 @@ void func0f153c88(void);
void func0f153ce8(s32 x1, s32 x2, u32 arg2);
void func0f153d24(void);
void func0f153d3c(void);
void func0f153d50(u32 arg0, u32 arg1, u32 arg2);
void func0f153d50(s32 arg0, s32 arg1, s32 arg2);
void func0f153d88(f32 arg0);
void func0f153e38(u32 colour1, u32 colour2);
void func0f153e4c(void);

View File

@ -188,7 +188,7 @@ struct g_vars {
/*000450*/ s32 pendingantiplayernum;
/*000454*/ s32 coopfriendlyfire;
/*000458*/ u32 modifiedfiles;
/*00045c*/ s32 speedpilltime;
/*00045c*/ s32 speedpilltime; // in time60
/*000460*/ s32 speedpillchange;
/*000464*/ u32 speedpillwant;
/*000468*/ bool speedpillon;
@ -2500,11 +2500,11 @@ struct gunctrl {
/*0x15e6*/ u8 action;
/*0x15e7*/ u8 fnfader;
/*0x15e8*/ u8 upgradewant;
/*0x15e9*/ u8 lastmag;
/*0x15e9*/ s8 lastmag;
/*0x15ea*/ u8 gunmemowner;
/*0x15eb*/ s8 gunlocktimer;
/*0x15ec*/ u16 curfnstr;
/*0x15ee*/ s8 fnstrtimer;
/*0x15ee*/ u8 fnstrtimer;
/*0x15ef*/ u8 guntypetimer;
/*0x15f0*/ u8 guntypefader;
/*0x15f2*/ u16 curgunstr;