diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index fb27de925..fb6ba0670 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -8347,7 +8347,7 @@ Gfx *chrRender(struct prop *prop, Gfx *gdl, bool withalpha) } if (g_Vars.normmplayerisrunning) { - speb = func0f185e20(prop, colour); + speb = scenarioHighlight(prop, colour); } if (!speb) { diff --git a/src/game/mplayer/scenarios.c b/src/game/mplayer/scenarios.c index d5cf03f29..ef7e64f8c 100644 --- a/src/game/mplayer/scenarios.c +++ b/src/game/mplayer/scenarios.c @@ -680,7 +680,7 @@ bool scenarioHtbRadar2(Gfx **gdl, struct prop *prop) return false; } -bool scenarioHtbHighlight(struct prop *prop, u32 *colour) +bool scenarioHtbHighlight(struct prop *prop, s32 *colour) { if ((g_MpSetup.options & MPOPTION_HTB_HIGHLIGHTBRIEFCASE) && prop == g_ScenarioData.htb.token) { colour[0] = 0; @@ -1669,7 +1669,7 @@ bool scenarioCtcRadar2(Gfx **gdl, struct prop *prop) return false; } -bool scenarioCtcHighlight(struct prop *prop, u32 *colour) +bool scenarioCtcHighlight(struct prop *prop, s32 *colour) { struct defaultobj *obj = prop->obj; @@ -5252,7 +5252,7 @@ bool scenarioHtmRadar2(Gfx **gdl, struct prop *prop) return false; } -bool scenarioHtmHighlight(struct prop *prop, u32 *colour) +bool scenarioHtmHighlight(struct prop *prop, s32 *colour) { if (g_MpSetup.options & MPOPTION_HTM_HIGHLIGHTTERMINAL) { bool highlight = false; @@ -5331,7 +5331,7 @@ void scenarioPacReset(void) scenarioPacChooseVictims(); } -bool scenarioPacHighlight(struct prop *prop, u32 *colour) +bool scenarioPacHighlight(struct prop *prop, s32 *colour) { struct scenariodata_pac *data = &g_ScenarioData.pac; @@ -6044,270 +6044,82 @@ bool scenarioRadar2(Gfx **gdl, struct prop *prop) return false; } -GLOBAL_ASM( -glabel func0f185e20 -.late_rodata -glabel var7f1b8980 -.word func0f185e20+0xf4 # f185f14 -glabel var7f1b8984 -.word func0f185e20+0xf4 # f185f14 -glabel var7f1b8988 -.word func0f185e20+0x348 # f186168 -glabel var7f1b898c -.word func0f185e20+0x348 # f186168 -glabel var7f1b8990 -.word func0f185e20+0x348 # f186168 -glabel var7f1b8994 -.word func0f185e20+0x348 # f186168 -glabel var7f1b8998 -.word func0f185e20+0x348 # f186168 -glabel var7f1b899c -.word func0f185e20+0xf4 # f185f14 -glabel var7f1b89a0 -.word func0f185e20+0x348 # f186168 -glabel var7f1b89a4 -.word func0f185e20+0x348 # f186168 -glabel var7f1b89a8 -.word func0f185e20+0x348 # f186168 -glabel var7f1b89ac -.word func0f185e20+0x348 # f186168 -glabel var7f1b89b0 -.word func0f185e20+0x348 # f186168 -glabel var7f1b89b4 -.word func0f185e20+0xf4 # f185f14 -glabel var7f1b89b8 -.word func0f185e20+0xf4 # f185f14 -.text -/* f185e20: 3c07800b */ lui $a3,%hi(g_MpSetup) -/* f185e24: 24e7cb88 */ addiu $a3,$a3,%lo(g_MpSetup) -/* f185e28: 90ee0010 */ lbu $t6,0x10($a3) -/* f185e2c: 3c028008 */ lui $v0,%hi(g_MpScenarios+0x28) -/* f185e30: 27bdffd0 */ addiu $sp,$sp,-48 -/* f185e34: 000e78c0 */ sll $t7,$t6,0x3 -/* f185e38: 01ee7821 */ addu $t7,$t7,$t6 -/* f185e3c: 000f78c0 */ sll $t7,$t7,0x3 -/* f185e40: 004f1021 */ addu $v0,$v0,$t7 -/* f185e44: 8c426fc0 */ lw $v0,%lo(g_MpScenarios+0x28)($v0) -/* f185e48: afbf0014 */ sw $ra,0x14($sp) -/* f185e4c: afa40030 */ sw $a0,0x30($sp) -/* f185e50: 5040000a */ beqzl $v0,.L0f185e7c -/* f185e54: 8fb80030 */ lw $t8,0x30($sp) -/* f185e58: 0040f809 */ jalr $v0 -/* f185e5c: afa50034 */ sw $a1,0x34($sp) -/* f185e60: 3c07800b */ lui $a3,%hi(g_MpSetup) -/* f185e64: 24e7cb88 */ addiu $a3,$a3,%lo(g_MpSetup) -/* f185e68: 10400003 */ beqz $v0,.L0f185e78 -/* f185e6c: 8fa50034 */ lw $a1,0x34($sp) -/* f185e70: 100000be */ b .L0f18616c -/* f185e74: 24020001 */ addiu $v0,$zero,0x1 -.L0f185e78: -/* f185e78: 8fb80030 */ lw $t8,0x30($sp) -.L0f185e7c: -/* f185e7c: 24010001 */ addiu $at,$zero,0x1 -/* f185e80: 93020000 */ lbu $v0,0x0($t8) -/* f185e84: 10410005 */ beq $v0,$at,.L0f185e9c -/* f185e88: 24010002 */ addiu $at,$zero,0x2 -/* f185e8c: 10410003 */ beq $v0,$at,.L0f185e9c -/* f185e90: 24010004 */ addiu $at,$zero,0x4 -/* f185e94: 54410032 */ bnel $v0,$at,.L0f185f60 -/* f185e98: 24010003 */ addiu $at,$zero,0x3 -.L0f185e9c: -/* f185e9c: 90e90010 */ lbu $t1,0x10($a3) -/* f185ea0: 8fb90030 */ lw $t9,0x30($sp) -/* f185ea4: 3c0c800a */ lui $t4,%hi(g_Vars+0x288) -/* f185ea8: 15200005 */ bnez $t1,.L0f185ec0 -/* f185eac: 8f220004 */ lw $v0,0x4($t9) -/* f185eb0: 8cea000c */ lw $t2,0xc($a3) -/* f185eb4: 314b0020 */ andi $t3,$t2,0x20 -/* f185eb8: 556000ac */ bnezl $t3,.L0f18616c -/* f185ebc: 00001025 */ or $v0,$zero,$zero -.L0f185ec0: -/* f185ec0: 8d8ca248 */ lw $t4,%lo(g_Vars+0x288)($t4) -/* f185ec4: 3c0f800b */ lui $t7,%hi(g_PlayerConfigsArray+0x14) -/* f185ec8: 8d8d0070 */ lw $t5,0x70($t4) -/* f185ecc: 000d7080 */ sll $t6,$t5,0x2 -/* f185ed0: 01cd7021 */ addu $t6,$t6,$t5 -/* f185ed4: 000e7140 */ sll $t6,$t6,0x5 -/* f185ed8: 01ee7821 */ addu $t7,$t7,$t6 -/* f185edc: 8defc7cc */ lw $t7,%lo(g_PlayerConfigsArray+0x14)($t7) -/* f185ee0: 31f80002 */ andi $t8,$t7,0x2 -/* f185ee4: 530000a1 */ beqzl $t8,.L0f18616c -/* f185ee8: 00001025 */ or $v0,$zero,$zero -/* f185eec: 90590003 */ lbu $t9,0x3($v0) -/* f185ef0: 2729fff9 */ addiu $t1,$t9,-7 -/* f185ef4: 2d21000f */ sltiu $at,$t1,0xf -/* f185ef8: 1020009b */ beqz $at,.L0f186168 -/* f185efc: 00094880 */ sll $t1,$t1,0x2 -/* f185f00: 3c017f1c */ lui $at,%hi(var7f1b8980) -/* f185f04: 00290821 */ addu $at,$at,$t1 -/* f185f08: 8c298980 */ lw $t1,%lo(var7f1b8980)($at) -/* f185f0c: 01200008 */ jr $t1 -/* f185f10: 00000000 */ nop -/* f185f14: 240a00cd */ addiu $t2,$zero,0xcd -/* f185f18: 240b00ff */ addiu $t3,$zero,0xff -/* f185f1c: 3c0141a0 */ lui $at,0x41a0 -/* f185f20: aca00000 */ sw $zero,0x0($a1) -/* f185f24: acaa0004 */ sw $t2,0x4($a1) -/* f185f28: acab0008 */ sw $t3,0x8($a1) -/* f185f2c: 44816000 */ mtc1 $at,$f12 -/* f185f30: 0fc01ac2 */ jal func0f006b08 -/* f185f34: afa50034 */ sw $a1,0x34($sp) -/* f185f38: 3c01437f */ lui $at,0x437f -/* f185f3c: 44812000 */ mtc1 $at,$f4 -/* f185f40: 8fa50034 */ lw $a1,0x34($sp) -/* f185f44: 24020001 */ addiu $v0,$zero,0x1 -/* f185f48: 46040182 */ mul.s $f6,$f0,$f4 -/* f185f4c: 4600320d */ trunc.w.s $f8,$f6 -/* f185f50: 440d4000 */ mfc1 $t5,$f8 -/* f185f54: 10000085 */ b .L0f18616c -/* f185f58: acad000c */ sw $t5,0xc($a1) -/* f185f5c: 24010003 */ addiu $at,$zero,0x3 -.L0f185f60: -/* f185f60: 10410004 */ beq $v0,$at,.L0f185f74 -/* f185f64: 00003025 */ or $a2,$zero,$zero -/* f185f68: 24010006 */ addiu $at,$zero,0x6 -/* f185f6c: 5441007f */ bnel $v0,$at,.L0f18616c -/* f185f70: 00001025 */ or $v0,$zero,$zero -.L0f185f74: -/* f185f74: 8cee000c */ lw $t6,0xc($a3) -/* f185f78: 00001825 */ or $v1,$zero,$zero -/* f185f7c: 00004025 */ or $t0,$zero,$zero -/* f185f80: 31cf0002 */ andi $t7,$t6,0x2 -/* f185f84: 11e00017 */ beqz $t7,.L0f185fe4 -/* f185f88: 00002025 */ or $a0,$zero,$zero -/* f185f8c: afa00024 */ sw $zero,0x24($sp) -/* f185f90: afa0001c */ sw $zero,0x1c($sp) -/* f185f94: afa50034 */ sw $a1,0x34($sp) -/* f185f98: afa00028 */ sw $zero,0x28($sp) -/* f185f9c: 0fc3f594 */ jal currentPlayerGetCommandingAibot -/* f185fa0: afa00020 */ sw $zero,0x20($sp) -/* f185fa4: 3c07800b */ lui $a3,%hi(g_MpSetup) -/* f185fa8: 24e7cb88 */ addiu $a3,$a3,%lo(g_MpSetup) -/* f185fac: 8fa30024 */ lw $v1,0x24($sp) -/* f185fb0: 8fa4001c */ lw $a0,0x1c($sp) -/* f185fb4: 8fa50034 */ lw $a1,0x34($sp) -/* f185fb8: 8fa60028 */ lw $a2,0x28($sp) -/* f185fbc: 10400009 */ beqz $v0,.L0f185fe4 -/* f185fc0: 8fa80020 */ lw $t0,0x20($sp) -/* f185fc4: 8fb80030 */ lw $t8,0x30($sp) -/* f185fc8: 8f190004 */ lw $t9,0x4($t8) -/* f185fcc: 54590005 */ bnel $v0,$t9,.L0f185fe4 -/* f185fd0: 24030001 */ addiu $v1,$zero,0x1 -/* f185fd4: 24060001 */ addiu $a2,$zero,0x1 -/* f185fd8: 10000002 */ b .L0f185fe4 -/* f185fdc: 24040001 */ addiu $a0,$zero,0x1 -/* f185fe0: 24030001 */ addiu $v1,$zero,0x1 -.L0f185fe4: -/* f185fe4: 14c00025 */ bnez $a2,.L0f18607c -/* f185fe8: 00000000 */ nop -/* f185fec: 14600023 */ bnez $v1,.L0f18607c -/* f185ff0: 00000000 */ nop -/* f185ff4: 90e90010 */ lbu $t1,0x10($a3) -/* f185ff8: 8ce2000c */ lw $v0,0xc($a3) -/* f185ffc: 15200002 */ bnez $t1,.L0f186008 -/* f186000: 304a0010 */ andi $t2,$v0,0x10 -/* f186004: 1540001d */ bnez $t2,.L0f18607c -.L0f186008: -/* f186008: 304b0002 */ andi $t3,$v0,0x2 -/* f18600c: 1160000e */ beqz $t3,.L0f186048 -/* f186010: 3c0c800a */ lui $t4,%hi(g_Vars+0x288) -/* f186014: 8d8ca248 */ lw $t4,%lo(g_Vars+0x288)($t4) -/* f186018: 3c0f800b */ lui $t7,%hi(g_PlayerConfigsArray+0x14) -/* f18601c: 8d8d0070 */ lw $t5,0x70($t4) -/* f186020: 000d7080 */ sll $t6,$t5,0x2 -/* f186024: 01cd7021 */ addu $t6,$t6,$t5 -/* f186028: 000e7140 */ sll $t6,$t6,0x5 -/* f18602c: 01ee7821 */ addu $t7,$t7,$t6 -/* f186030: 8defc7cc */ lw $t7,%lo(g_PlayerConfigsArray+0x14)($t7) -/* f186034: 31f80008 */ andi $t8,$t7,0x8 -/* f186038: 13000003 */ beqz $t8,.L0f186048 -/* f18603c: 00000000 */ nop -/* f186040: 1000000e */ b .L0f18607c -/* f186044: 24040001 */ addiu $a0,$zero,0x1 -.L0f186048: -/* f186048: 3c19800a */ lui $t9,%hi(g_Vars+0x288) -/* f18604c: 8f39a248 */ lw $t9,%lo(g_Vars+0x288)($t9) -/* f186050: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray+0x14) -/* f186054: 8f290070 */ lw $t1,0x70($t9) -/* f186058: 00095080 */ sll $t2,$t1,0x2 -/* f18605c: 01495021 */ addu $t2,$t2,$t1 -/* f186060: 000a5140 */ sll $t2,$t2,0x5 -/* f186064: 016a5821 */ addu $t3,$t3,$t2 -/* f186068: 8d6bc7cc */ lw $t3,%lo(g_PlayerConfigsArray+0x14)($t3) -/* f18606c: 316c0001 */ andi $t4,$t3,0x1 -/* f186070: 11800002 */ beqz $t4,.L0f18607c -/* f186074: 00000000 */ nop -/* f186078: 24080001 */ addiu $t0,$zero,0x1 -.L0f18607c: -/* f18607c: 10800027 */ beqz $a0,.L0f18611c -/* f186080: 8fad0030 */ lw $t5,0x30($sp) -/* f186084: 8dae0004 */ lw $t6,0x4($t5) -/* f186088: 91c40125 */ lbu $a0,0x125($t6) -/* f18608c: afa60028 */ sw $a2,0x28($sp) -/* f186090: 0fc63a5a */ jal radarGetTeamIndex -/* f186094: afa50034 */ sw $a1,0x34($sp) -/* f186098: 00027880 */ sll $t7,$v0,0x2 -/* f18609c: 3c038008 */ lui $v1,%hi(g_TeamColours) -/* f1860a0: 006f1821 */ addu $v1,$v1,$t7 -/* f1860a4: 8c637cc4 */ lw $v1,%lo(g_TeamColours)($v1) -/* f1860a8: 8fa50034 */ lw $a1,0x34($sp) -/* f1860ac: 8fa60028 */ lw $a2,0x28($sp) -/* f1860b0: 0003c602 */ srl $t8,$v1,0x18 -/* f1860b4: 00034c02 */ srl $t1,$v1,0x10 -/* f1860b8: 00035a02 */ srl $t3,$v1,0x8 -/* f1860bc: 331900ff */ andi $t9,$t8,0xff -/* f1860c0: 312a00ff */ andi $t2,$t1,0xff -/* f1860c4: 316c00ff */ andi $t4,$t3,0xff -/* f1860c8: acb90000 */ sw $t9,0x0($a1) -/* f1860cc: acaa0004 */ sw $t2,0x4($a1) -/* f1860d0: 10c0000e */ beqz $a2,.L0f18610c -/* f1860d4: acac0008 */ sw $t4,0x8($a1) -/* f1860d8: 3c0141a0 */ lui $at,0x41a0 -/* f1860dc: 44816000 */ mtc1 $at,$f12 -/* f1860e0: 0fc01ac2 */ jal func0f006b08 -/* f1860e4: afa50034 */ sw $a1,0x34($sp) -/* f1860e8: 3c014300 */ lui $at,0x4300 -/* f1860ec: 44815000 */ mtc1 $at,$f10 -/* f1860f0: 8fa50034 */ lw $a1,0x34($sp) -/* f1860f4: 24020001 */ addiu $v0,$zero,0x1 -/* f1860f8: 460a0402 */ mul.s $f16,$f0,$f10 -/* f1860fc: 4600848d */ trunc.w.s $f18,$f16 -/* f186100: 440e9000 */ mfc1 $t6,$f18 -/* f186104: 10000019 */ b .L0f18616c -/* f186108: acae000c */ sw $t6,0xc($a1) -.L0f18610c: -/* f18610c: 240f004b */ addiu $t7,$zero,0x4b -/* f186110: acaf000c */ sw $t7,0xc($a1) -/* f186114: 10000015 */ b .L0f18616c -/* f186118: 24020001 */ addiu $v0,$zero,0x1 -.L0f18611c: -/* f18611c: 11000012 */ beqz $t0,.L0f186168 -/* f186120: 241800cd */ addiu $t8,$zero,0xcd -/* f186124: 241900ff */ addiu $t9,$zero,0xff -/* f186128: 3c0141a0 */ lui $at,0x41a0 -/* f18612c: aca00000 */ sw $zero,0x0($a1) -/* f186130: acb80004 */ sw $t8,0x4($a1) -/* f186134: acb90008 */ sw $t9,0x8($a1) -/* f186138: 44816000 */ mtc1 $at,$f12 -/* f18613c: 0fc01ac2 */ jal func0f006b08 -/* f186140: afa50034 */ sw $a1,0x34($sp) -/* f186144: 3c01434d */ lui $at,0x434d -/* f186148: 44812000 */ mtc1 $at,$f4 -/* f18614c: 8fa50034 */ lw $a1,0x34($sp) -/* f186150: 24020001 */ addiu $v0,$zero,0x1 -/* f186154: 46040182 */ mul.s $f6,$f0,$f4 -/* f186158: 4600320d */ trunc.w.s $f8,$f6 -/* f18615c: 440a4000 */ mfc1 $t2,$f8 -/* f186160: 10000002 */ b .L0f18616c -/* f186164: acaa000c */ sw $t2,0xc($a1) -.L0f186168: -/* f186168: 00001025 */ or $v0,$zero,$zero -.L0f18616c: -/* f18616c: 8fbf0014 */ lw $ra,0x14($sp) -/* f186170: 27bd0030 */ addiu $sp,$sp,0x30 -/* f186174: 03e00008 */ jr $ra -/* f186178: 00000000 */ nop -); +bool scenarioHighlight(struct prop *prop, s32 *colour) +{ + if (g_MpScenarios[g_MpSetup.scenario].highlightfunc) { + if (g_MpScenarios[g_MpSetup.scenario].highlightfunc(prop, colour)) { + return true; + } + } + + if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_DOOR || prop->type == PROPTYPE_WEAPON) { + struct defaultobj *obj = prop->obj; + + if ((g_MpSetup.scenario != MPSCENARIO_COMBAT || (g_MpSetup.options & MPOPTION_NOPICKUPHIGHLIGHT) == 0) + && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].base.displayoptions & MPDISPLAYOPTION_HIGHLIGHTPICKUPS)) { + switch (obj->type) { + case OBJTYPE_AMMOCRATE: + case OBJTYPE_WEAPON: + case OBJTYPE_LINKGUNS: + case OBJTYPE_MULTIAMMOCRATE: + case OBJTYPE_SHIELD: + colour[0] = 0; + colour[1] = 0xcd; + colour[2] = 0xff; + colour[3] = func0f006b08(20) * 255; + return true; + } + } + } else if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) { + bool pulse = false; + bool isunselectedbot = false; + bool useblue = false; + bool useteamcolour = false; + + if (g_MpSetup.options & MPOPTION_TEAMSENABLED) { + struct chrdata *botchr = currentPlayerGetCommandingAibot(); + + if (botchr) { + if (botchr == prop->chr) { + pulse = true; + useteamcolour = true; + } else { + isunselectedbot = true; + } + } + } + + if (!pulse && !isunselectedbot + && (g_MpSetup.scenario != MPSCENARIO_COMBAT || (g_MpSetup.options & MPOPTION_NOPLAYERHIGHLIGHT) == 0)) { + if ((g_MpSetup.options & MPOPTION_TEAMSENABLED) + && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].base.displayoptions & MPDISPLAYOPTION_HIGHLIGHTTEAMS)) { + useteamcolour = true; + } else if (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].base.displayoptions & MPDISPLAYOPTION_HIGHLIGHTPLAYERS) { + useblue = true; + } + } + + if (useteamcolour) { + u32 tmp = g_TeamColours[radarGetTeamIndex(prop->chr->team)]; + + colour[0] = tmp >> 24 & 0xff; + colour[1] = tmp >> 16 & 0xff; + colour[2] = tmp >> 8 & 0xff; + colour[3] = pulse ? (s32)(func0f006b08(20) * 128) : 75; + return true; + } + + if (useblue) { + colour[0] = 0; + colour[1] = 0xcd; + colour[2] = 0xff; + colour[3] = func0f006b08(20) * 205; + return true; + } + } + + return false; +} f32 scenarioChooseSpawnLocation(f32 arg0, struct coord *pos, s16 *rooms, struct prop *prop) { diff --git a/src/game/propobj.c b/src/game/propobj.c index a85d137ee..95f9374df 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -52709,7 +52709,7 @@ glabel var7f1aa82c /* f0818b0: 8cca0318 */ lw $t2,0x318($a2) /* f0818b4: 51400006 */ beqzl $t2,.L0f0818d0 /* f0818b8: 8cc20284 */ lw $v0,0x284($a2) -/* f0818bc: 0fc61788 */ jal func0f185e20 +/* f0818bc: 0fc61788 */ jal scenarioHighlight /* f0818c0: 8fa400f8 */ lw $a0,0xf8($sp) /* f0818c4: 3c06800a */ lui $a2,%hi(g_Vars) /* f0818c8: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars) @@ -53344,7 +53344,7 @@ glabel var7f1aa82c /* f0818b0: 8cca0318 */ lw $t2,0x318($a2) /* f0818b4: 51400006 */ beqzl $t2,.L0f0818d0 /* f0818b8: 8cc20284 */ lw $v0,0x284($a2) -/* f0818bc: 0fc61788 */ jal func0f185e20 +/* f0818bc: 0fc61788 */ jal scenarioHighlight /* f0818c0: 8fa400f8 */ lw $a0,0xf8($sp) /* f0818c4: 3c06800a */ lui $a2,%hi(g_Vars) /* f0818c8: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars) @@ -53755,7 +53755,7 @@ glabel var7f1aa82c // } // // if (g_Vars.normmplayerisrunning) { -// func0f185e20(prop, colour); +// scenarioHighlight(prop, colour); // } // // if (g_Vars.currentplayer->visionmode == VISIONMODE_XRAY) { diff --git a/src/include/game/mplayer/scenarios.h b/src/include/game/mplayer/scenarios.h index 7a3a612c8..4145ce6c4 100644 --- a/src/include/game/mplayer/scenarios.h +++ b/src/include/game/mplayer/scenarios.h @@ -15,7 +15,7 @@ void scenarioHtbCallback14(struct chrdata *chr); void scenarioHtbCalculatePlayerScore(struct mpchrconfig *mpchr, s32 mpchrnum, s32 *score, s32 *deaths); Gfx *scenarioHtbRadar(Gfx *gdl); bool scenarioHtbRadar2(Gfx **gdl, struct prop *prop); -bool scenarioHtbHighlight(struct prop *prop, u32 *colour); +bool scenarioHtbHighlight(struct prop *prop, s32 *colour); void scenarioCtcInit(void); s32 scenarioCtcCallback08(void); void scenarioCtcTick(void); @@ -39,7 +39,7 @@ s32 scenarioHtmCallback08(void); void scenarioHtmTick(void); void scenarioHtmCalculatePlayerScore(struct mpchrconfig *mpchr, s32 mpchrnum, s32 *score, s32 *arg3); bool scenarioHtmRadar2(Gfx **gdl, struct prop *prop); -bool scenarioHtmHighlight(struct prop *prop, u32 *colour); +bool scenarioHtmHighlight(struct prop *prop, s32 *colour); void scenarioPacInit(void); void scenarioPacReset(void); void scenarioPacCalculatePlayerScore(struct mpchrconfig *mpchr, s32 mpchrnum, s32 *score, s32 *arg3); diff --git a/src/include/game/mplayer/setup.h b/src/include/game/mplayer/setup.h index 6cedd1c67..c787d161f 100644 --- a/src/include/game/mplayer/setup.h +++ b/src/include/game/mplayer/setup.h @@ -79,7 +79,7 @@ void func0f180078(void); void scenarioHtbCreateToken(void); Gfx *scenarioHtbRenderHud(Gfx *gdl); void scenarioCtcReset(void); -bool scenarioCtcHighlight(struct prop *prop, u32 *colour); +bool scenarioCtcHighlight(struct prop *prop, s32 *colour); void mpCtcAddPad(s32 *cmd); void scenarioCtcCallback38(s16 roomnum, s32 *arg1, s32 *arg2, s32 *arg3); void scenarioKohTick(void); @@ -94,7 +94,7 @@ void scenarioHtmCallback14(struct chrdata *chr); Gfx *scenarioHtmRenderHud(Gfx *gdl); Gfx *scenarioHtmRadar(Gfx *gdl); void scenarioPacChooseVictims(void); -bool scenarioPacHighlight(struct prop *prop, u32 *colour); +bool scenarioPacHighlight(struct prop *prop, s32 *colour); void scenarioPacApplyNextVictim(void); void scenarioPacHandleDeath(s32 cplayernum, s32 vplayernum); void scenarioPacTick(void); @@ -107,7 +107,7 @@ s32 scenarioScenarioMenuHandler(s32 operation, struct menuitem *item, union hand void mpCreateMatchStartHudmsgs(void); Gfx *scenarioRenderHud(Gfx *gdl); void scenarioCalculatePlayerScore(struct mpchrconfig *mpchr, s32 chrnum, s32 *arg2, s32 *arg3); -bool func0f185e20(struct prop *prop, s32 *arg1); +bool scenarioHighlight(struct prop *prop, s32 *colour); void mpPrepareScenario(void); struct prop *scenarioCreateObj(s32 modelnum, s16 padnum, f32 arg2, u32 flags, u32 flags2, u32 flags3); void mpCreateScenarioHudmsg(s32 playernum, char *message); diff --git a/src/include/types.h b/src/include/types.h index 257daf6a5..c8125f802 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4677,7 +4677,7 @@ struct mpscenario { void (*calcscorefunc)(struct mpchrconfig *mpchr, s32 chrnum, s32 *score, s32 *deaths); Gfx *(*radarfunc)(Gfx *gdl); bool (*radar2func)(Gfx **gdl, struct prop *prop); - bool (*highlightfunc)(struct prop *prop, u32 *colour); + bool (*highlightfunc)(struct prop *prop, s32 *colour); bool (*spawnfunc)(f32 arg0, struct coord *pos, s16 *rooms, struct prop *prop, f32 *arg4); s32 (*maxteamsfunc)(void); bool (*isroomhighlightedfunc)(s16 room);