diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index f0d8fd32d..460efbc23 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -11248,6 +11248,24 @@ glabel scenarioCtcCallback28 /* f1817fc: 00000000 */ sll $zero,$zero,0x0 ); +//bool scenarioCtcCallback28(struct prop *prop, u32 *colour) +//{ +// if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON || prop->type == PROPTYPE_DOOR) { +// if (prop->obj->type == OBJTYPE_WEAPON && prop->weapon->weapon_id == WEAPON_BRIEFCASE2) { +// u32 teamcolour = g_TeamColours[prop->weapon->team]; +// +// colour[0] = teamcolour >> 24 & 0xff; +// colour[1] = teamcolour >> 16 & 0xff; +// colour[2] = teamcolour >> 8 & 0xff; +// colour[3] = 75; +// +// return true; +// } +// } +// +// return false; +//} + GLOBAL_ASM( glabel func0f181800 /* f181800: 8c820000 */ lw $v0,0x0($a0) diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index 4f36f8aac..0ce4b53fd 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -101,7 +101,7 @@ void scenarioCtcReset(void); void scenarioCtcKill(struct mpchr *mpchr, s32 arg1, s32 *score, s32 *arg3); s32 scenarioCtcRadar(s32 value); bool scenarioCtcCallback24(s32 *displaylist, struct prop *prop); -u32 scenarioCtcCallback28(void); +bool scenarioCtcCallback28(struct prop *prop, u32 *colour); u32 func0f181800(void); bool scenarioCtcCallback2c(f32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 *arg4); s32 scenarioCtcCallback30(void); diff --git a/src/include/types.h b/src/include/types.h index 8d676370e..d665519f1 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -646,6 +646,9 @@ struct weaponobj { // objtype 0x08 /*0x5a*/ u8 numtiles; /*0x5b*/ u8 unk5b; /*0x5c*/ u8 weapon_id; + /*0x5e*/ s16 unk5e; + /*0x60*/ s16 unk60; + /*0x62*/ s16 team; }; struct singlemonitorobj { // objtype 0x0a @@ -4117,7 +4120,7 @@ struct mpscenario { void (*killfunc)(struct mpchr *mpchr, s32 arg1, s32 *score, s32 *arg3); s32 (*radarfunc)(s32 value); bool (*unk24)(void *arg0, struct prop *prop); - void *unk28; + bool (*unk28)(struct prop *prop, u32 *colour); bool (*unk2c)(f32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 *arg4); s32 (*unk30)(void); bool (*unk34)(s16 arg0);