Decompile currentPlayerQueueMessage

This commit is contained in:
Ryan Dwyer 2020-03-17 08:01:27 +10:00
parent 5d07f0889f
commit 20778b6ffb
5 changed files with 60 additions and 144 deletions

View File

@ -943,102 +943,22 @@ u32 var80070fe0 = 0x0000000a;
u32 var80070fe4 = 0x00000018;
u32 var80070fe8 = 0x00000000;
u32 var80070fec = 0x00000000;
u32 var80070ff0 = 0x01010000;
u32 var80070ff4 = 0x8007fb10;
u32 var80070ff8 = 0x8007fb0c;
u32 var80070ffc = 0x00ff0000;
u32 var80071000 = 0x000000a0;
u32 var80071004 = 0x01060000;
u32 var80071008 = 0x00000000;
u32 var8007100c = 0x00000050;
u32 var80071010 = 0x00010000;
u32 var80071014 = 0x8007fb18;
u32 var80071018 = 0x8007fb14;
u32 var8007101c = 0x00ff0000;
u32 var80071020 = 0x000000a0;
u32 var80071024 = 0x03070000;
u32 var80071028 = 0x00000000;
u32 var8007102c = 0x00000078;
u32 var80071030 = 0x00000100;
u32 var80071034 = 0x8007fb18;
u32 var80071038 = 0x8007fb14;
u32 var8007103c = 0xff000000;
u32 var80071040 = 0xffffffa0;
u32 var80071044 = 0x03070000;
u32 var80071048 = 0x00000000;
u32 var8007104c = 0x00000078;
u32 var80071050 = 0x00010000;
u32 var80071054 = 0x8007fb18;
u32 var80071058 = 0x8007fb14;
u32 var8007105c = 0x00ff0000;
u32 var80071060 = 0x000000a0;
u32 var80071064 = 0x01060000;
u32 var80071068 = 0x00000000;
u32 var8007106c = 0x00000078;
u32 var80071070 = 0x01010000;
u32 var80071074 = 0x8007fb10;
u32 var80071078 = 0x8007fb0c;
u32 var8007107c = 0x00ffc000;
u32 var80071080 = 0x000000a0;
u32 var80071084 = 0x01060000;
u32 var80071088 = 0x00000000;
u32 var8007108c = 0x00000028;
u32 var80071090 = 0x00000000;
u32 var80071094 = 0x8007fb18;
u32 var80071098 = 0x8007fb14;
u32 var8007109c = 0x00ff0000;
u32 var800710a0 = 0x000000a0;
u32 var800710a4 = 0x01050000;
u32 var800710a8 = 0x00000000;
u32 var800710ac = 0x00000078;
u32 var800710b0 = 0x01000000;
u32 var800710b4 = 0x8007fb10;
u32 var800710b8 = 0x8007fb0c;
u32 var800710bc = 0x00ff0000;
u32 var800710c0 = 0x000000a0;
u32 var800710c4 = 0x03050000;
u32 var800710c8 = 0x00000000;
u32 var800710cc = 0x00000078;
u32 var800710d0 = 0x01010000;
u32 var800710d4 = 0x8007fb10;
u32 var800710d8 = 0x8007fb0c;
u32 var800710dc = 0x00ff0000;
u32 var800710e0 = 0x000000a0;
u32 var800710e4 = 0x03050000;
u32 var800710e8 = 0x00000000;
u32 var800710ec = 0xffffffff;
u32 var800710f0 = 0x01010000;
u32 var800710f4 = 0x8007fb10;
u32 var800710f8 = 0x8007fb0c;
u32 var800710fc = 0x00ffc000;
u32 var80071100 = 0x000000a0;
u32 var80071104 = 0x03060000;
u32 var80071108 = 0x00000000;
u32 var8007110c = 0x000001f4;
u32 var80071110 = 0x01010000;
u32 var80071114 = 0x8007fb08;
u32 var80071118 = 0x8007fb04;
u32 var8007111c = 0x00ff0000;
u32 var80071120 = 0x000000a0;
u32 var80071124 = 0x01060000;
u32 var80071128 = 0x00000000;
u32 var8007112c = 0x00000078;
u32 var80071130 = 0x01010000;
u32 var80071134 = 0x8007fb10;
u32 var80071138 = 0x8007fb0c;
u32 var8007113c = 0x00ff0000;
u32 var80071140 = 0x000000a0;
u32 var80071144 = 0x01060000;
u32 var80071148 = 0x00000000;
u32 var8007114c = 0x000000f0;
u32 var80071150 = 0x00000000;
u32 var80071154 = 0x8007fb10;
u32 var80071158 = 0x8007fb0c;
u32 var8007115c = 0x00ff0000;
u32 var80071160 = 0x000000a0;
u32 var80071164 = 0x03080000;
u32 var80071168 = 0x00000000;
u32 var8007116c = 0x00000078;
struct hudmessageconfig g_HudMessageConfigs[] = {
/* 0*/ { 1, 1, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ff0000, 0x000000a0, 1, 6, 0, 0, 80 }, // bottom left
/* 1*/ { 0, 1, 0, (void*)0x8007fb18, (void*)0x8007fb14, 0x00ff0000, 0x000000a0, 3, 7, 0, 0, 120 }, // middle of screen, larger font, like objectives
/* 2*/ { 0, 0, 1, (void*)0x8007fb18, (void*)0x8007fb14, 0xff000000, 0xffffffa0, 3, 7, 0, 0, 120 }, // middle of screen, larger font, like objectives
/* 3*/ { 0, 1, 0, (void*)0x8007fb18, (void*)0x8007fb14, 0x00ff0000, 0x000000a0, 1, 6, 0, 0, 120 }, // bottom left, large font
/* 4*/ { 1, 1, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ffc000, 0x000000a0, 1, 6, 0, 0, 40 }, // bottom left
/* 5*/ { 0, 0, 0, (void*)0x8007fb18, (void*)0x8007fb14, 0x00ff0000, 0x000000a0, 1, 5, 0, 0, 120 }, // top left, large font
/* 6*/ { 1, 0, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ff0000, 0x000000a0, 3, 5, 0, 0, 120 }, // top middle
/* 7*/ { 1, 1, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ff0000, 0x000000a0, 3, 5, 0, 0, -1 }, // top middle
/* 8*/ { 1, 1, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ffc000, 0x000000a0, 3, 6, 0, 0, 500 }, // bottom middle
/* 9*/ { 1, 1, 0, (void*)0x8007fb08, (void*)0x8007fb04, 0x00ff0000, 0x000000a0, 1, 6, 0, 0, 120 }, // bottom left, smaller font
/*10*/ { 1, 1, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ff0000, 0x000000a0, 1, 6, 0, 0, 240 }, // bottom left but longer duration
/*11*/ { 0, 0, 0, (void*)0x8007fb10, (void*)0x8007fb0c, 0x00ff0000, 0x000000a0, 3, 8, 0, 0, 120 }, // none
};
u32 var80071170 = 0x2e3b213f;
u32 var80071174 = 0x2c000000;
u32 var80071178 = 0x00000000;

View File

@ -1286,49 +1286,28 @@ glabel func0f0ddeac
/* f0ddf18: 00601025 */ or $v0,$v1,$zero
);
GLOBAL_ASM(
glabel currentPlayerQueueMessage
/* f0ddf1c: 3c0f8007 */ lui $t7,%hi(var80070ff0)
/* f0ddf20: 25ef0ff0 */ addiu $t7,$t7,%lo(var80070ff0)
/* f0ddf24: 00057140 */ sll $t6,$a1,0x5
/* f0ddf28: 27bdffb8 */ addiu $sp,$sp,-72
/* f0ddf2c: 01cf1021 */ addu $v0,$t6,$t7
/* f0ddf30: 90580002 */ lbu $t8,0x2($v0)
/* f0ddf34: 8c590004 */ lw $t9,0x4($v0)
/* f0ddf38: 8c480008 */ lw $t0,0x8($v0)
/* f0ddf3c: 8c49000c */ lw $t1,0xc($v0)
/* f0ddf40: 8c4a0010 */ lw $t2,0x10($v0)
/* f0ddf44: 904b0014 */ lbu $t3,0x14($v0)
/* f0ddf48: 844c0016 */ lh $t4,0x16($v0)
/* f0ddf4c: 904d0015 */ lbu $t5,0x15($v0)
/* f0ddf50: 844e0018 */ lh $t6,0x18($v0)
/* f0ddf54: afbf0044 */ sw $ra,0x44($sp)
/* f0ddf58: 240fffff */ addiu $t7,$zero,-1
/* f0ddf5c: afaf0034 */ sw $t7,0x34($sp)
/* f0ddf60: 90460000 */ lbu $a2,0x0($v0)
/* f0ddf64: 90470001 */ lbu $a3,0x1($v0)
/* f0ddf68: afa00038 */ sw $zero,0x38($sp)
/* f0ddf6c: afb80010 */ sw $t8,0x10($sp)
/* f0ddf70: afb90014 */ sw $t9,0x14($sp)
/* f0ddf74: afa80018 */ sw $t0,0x18($sp)
/* f0ddf78: afa9001c */ sw $t1,0x1c($sp)
/* f0ddf7c: afaa0020 */ sw $t2,0x20($sp)
/* f0ddf80: afab0024 */ sw $t3,0x24($sp)
/* f0ddf84: afac0028 */ sw $t4,0x28($sp)
/* f0ddf88: afad002c */ sw $t5,0x2c($sp)
/* f0ddf8c: 0fc37baf */ jal func0f0deebc
/* f0ddf90: afae0030 */ sw $t6,0x30($sp)
/* f0ddf94: 8fbf0044 */ lw $ra,0x44($sp)
/* f0ddf98: 27bd0048 */ addiu $sp,$sp,0x48
/* f0ddf9c: 03e00008 */ jr $ra
/* f0ddfa0: 00000000 */ sll $zero,$zero,0x0
);
void currentPlayerQueueMessage(char *text, s32 confignum)
{
func0f0deebc(text, confignum,
g_HudMessageConfigs[confignum].unk00,
g_HudMessageConfigs[confignum].unk01,
g_HudMessageConfigs[confignum].unk02,
g_HudMessageConfigs[confignum].unk04,
g_HudMessageConfigs[confignum].unk08,
g_HudMessageConfigs[confignum].colour,
g_HudMessageConfigs[confignum].unk10,
g_HudMessageConfigs[confignum].alignh,
g_HudMessageConfigs[confignum].unk16,
g_HudMessageConfigs[confignum].alignv,
g_HudMessageConfigs[confignum].unk18,
-1, 0);
}
GLOBAL_ASM(
glabel func0f0ddfa4
/* f0ddfa4: 27bdffb8 */ addiu $sp,$sp,-72
/* f0ddfa8: 3c0f8007 */ lui $t7,%hi(var80070ff0)
/* f0ddfac: 25ef0ff0 */ addiu $t7,$t7,%lo(var80070ff0)
/* f0ddfa8: 3c0f8007 */ lui $t7,%hi(g_HudMessageConfigs)
/* f0ddfac: 25ef0ff0 */ addiu $t7,$t7,%lo(g_HudMessageConfigs)
/* f0ddfb0: 00057140 */ sll $t6,$a1,0x5
/* f0ddfb4: 01cf1021 */ addu $v0,$t6,$t7
/* f0ddfb8: 90580002 */ lbu $t8,0x2($v0)
@ -1367,8 +1346,8 @@ glabel func0f0ddfa4
GLOBAL_ASM(
glabel func0f0de034
/* f0de034: 27bdffb8 */ addiu $sp,$sp,-72
/* f0de038: 3c0f8007 */ lui $t7,%hi(var80070ff0)
/* f0de03c: 25ef0ff0 */ addiu $t7,$t7,%lo(var80070ff0)
/* f0de038: 3c0f8007 */ lui $t7,%hi(g_HudMessageConfigs)
/* f0de03c: 25ef0ff0 */ addiu $t7,$t7,%lo(g_HudMessageConfigs)
/* f0de040: 00057140 */ sll $t6,$a1,0x5
/* f0de044: 01cf1021 */ addu $v0,$t6,$t7
/* f0de048: afa60050 */ sw $a2,0x50($sp)
@ -1489,12 +1468,12 @@ glabel func0f0de160
.L0f0de1f0:
/* f0de1f0: 8fb904c4 */ lw $t9,0x4c4($sp)
/* f0de1f4: 0015c080 */ sll $t8,$s5,0x2
/* f0de1f8: 3c0f8007 */ lui $t7,%hi(var80070ff0)
/* f0de1f8: 3c0f8007 */ lui $t7,%hi(g_HudMessageConfigs)
/* f0de1fc: 00197140 */ sll $t6,$t9,0x5
/* f0de200: 3c198007 */ lui $t9,%hi(var80070fb4)
/* f0de204: 0338c821 */ addu $t9,$t9,$t8
/* f0de208: 8f390fb4 */ lw $t9,%lo(var80070fb4)($t9)
/* f0de20c: 25ef0ff0 */ addiu $t7,$t7,%lo(var80070ff0)
/* f0de20c: 25ef0ff0 */ addiu $t7,$t7,%lo(g_HudMessageConfigs)
/* f0de210: 01cf8021 */ addu $s0,$t6,$t7
/* f0de214: 3c0e800a */ lui $t6,%hi(g_Vars+0x2ac)
/* f0de218: ae19000c */ sw $t9,0xc($s0)
@ -2726,7 +2705,7 @@ glabel func0f0deebc
/* f0df2f8: ae2c01d4 */ sw $t4,0x1d4($s1)
/* f0df2fc: 8fad0230 */ lw $t5,0x230($sp)
/* f0df300: 8fb901fc */ lw $t9,0x1fc($sp)
/* f0df304: 3c0a8007 */ lui $t2,%hi(var8007100c)
/* f0df304: 3c0a8007 */ lui $t2,%hi(g_HudMessageConfigs+0x1c)
/* f0df308: 31ae0004 */ andi $t6,$t5,0x4
/* f0df30c: 11c00007 */ beqz $t6,.L0f0df32c
/* f0df310: 00195940 */ sll $t3,$t9,0x5
@ -2738,7 +2717,7 @@ glabel func0f0deebc
/* f0df328: ae3801bc */ sw $t8,0x1bc($s1)
.L0f0df32c:
/* f0df32c: 014b5021 */ addu $t2,$t2,$t3
/* f0df330: 8d4a100c */ lw $t2,%lo(var8007100c)($t2)
/* f0df330: 8d4a100c */ lw $t2,%lo(g_HudMessageConfigs+0x1c)($t2)
/* f0df334: 24030001 */ addiu $v1,$zero,0x1
/* f0df338: ae2a01bc */ sw $t2,0x1bc($s1)
/* f0df33c: 8fac022c */ lw $t4,0x22c($sp)

View File

@ -134,7 +134,7 @@ extern u32 var80070f9c;
extern u32 var80070fa0;
extern u32 var80070fe8;
extern u32 var80070fec;
extern u32 var80070ff0;
extern struct hudmessageconfig g_HudMessageConfigs[];
extern u32 var80071170;
extern u32 var80071180;
extern u32 var80071184;

View File

@ -13,13 +13,15 @@ u32 func0f0ddd44(void);
void func0f0ddda0(void);
u32 func0f0dde60(void);
u32 func0f0ddeac(void);
void currentPlayerQueueMessage(char *text, u32 arg1);
void currentPlayerQueueMessage(char *text, s32 confignum);
void func0f0ddfa4(char *text, s32 arg1, s32 arg2);
void func0f0de034(char *text, u32 arg1, u32 arg2);
u32 func0f0de0d4(void);
u32 func0f0de160(void);
u32 func0f0de7fc(void);
u32 func0f0deebc(void);
u32 func0f0deebc(char *text, s32 confignum, u8 conf00, u8 conf01, u8 conf02,
void *conf04, void *conf08, u32 colour, u32 conf10, u8 alignh, s16 conf16,
u8 alignv, s16 conf18, s32 arg14, s32 arg15);
void func0f0df364(void);
void currentPlayerUnsetFlag(u32 flag);
void currentPlayerSetFlag(u32 flag);

View File

@ -5257,4 +5257,19 @@ struct mpteaminfo {
s32 score;
};
struct hudmessageconfig {
/*0x00*/ u8 unk00;
/*0x01*/ u8 unk01;
/*0x02*/ u8 unk02;
/*0x04*/ void *unk04;
/*0x08*/ void *unk08;
/*0x0c*/ u32 colour;
/*0x10*/ u32 unk10;
/*0x14*/ u8 alignh;
/*0x15*/ u8 alignv;
/*0x16*/ s16 unk16;
/*0x18*/ s16 unk18;
/*0x1c*/ s32 duration;
};
#endif