Decompile activemenuTick
This commit is contained in:
parent
22674de5a0
commit
2ce6b73949
File diff suppressed because it is too large
Load Diff
|
|
@ -61,8 +61,8 @@ void mpOpenPickTarget(void)
|
|||
u32 prevplayernum = g_MpPlayerNum;
|
||||
|
||||
if (!mpIsPaused()) {
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk33 = g_ActiveMenus[g_ActiveMenuIndex].allbots;
|
||||
g_Vars.currentplayer->activemenumode = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].prevallbots = g_ActiveMenus[g_ActiveMenuIndex].allbots;
|
||||
g_Vars.currentplayer->activemenumode = AMMODE_CLOSED;
|
||||
g_MpPlayerNum = g_Vars.currentplayerstats->mpindex;
|
||||
menuPushRootDialog(&menudialog_picktarget, 8);
|
||||
g_MpPlayerNum = prevplayernum;
|
||||
|
|
@ -679,11 +679,11 @@ void activemenuApply(s32 slot)
|
|||
&& g_Vars.currentplayer->weaponnum <= WEAPON_COMBATBOOST
|
||||
&& g_MpPlayers[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] & (1 << (g_Vars.currentplayer->weaponnum - 1 & 7))) {
|
||||
if (slot == 1) {
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk30 = 1;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].togglefunc = true;
|
||||
}
|
||||
} else {
|
||||
if (slot != 1) {
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk30 = 1;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].togglefunc = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -824,10 +824,10 @@ void activemenusInit(void)
|
|||
s32 j;
|
||||
|
||||
// @bug? Should this be set for each player?
|
||||
g_Vars.currentplayer->activemenumode = 0;
|
||||
g_Vars.currentplayer->activemenumode = AMMODE_CLOSED;
|
||||
|
||||
for (i = 0; i < ARRAYCOUNT(g_ActiveMenus); i++) {
|
||||
g_ActiveMenus[i].unk30 = 0;
|
||||
g_ActiveMenus[i].togglefunc = false;
|
||||
|
||||
for (j = 0; j < ARRAYCOUNT(g_ActiveMenus[i].weaponnums); j++) {
|
||||
g_ActiveMenus[i].weaponnums[j] = 0xff;
|
||||
|
|
@ -936,12 +936,12 @@ void activemenuChangeScreen(s32 step)
|
|||
g_ActiveMenus[g_ActiveMenuIndex].screenindex = maxscreenindex;
|
||||
}
|
||||
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk02 = 10;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk0a = -123;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].xradius = 10;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].dstx = -123;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].slotnum = 4;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk14 = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk10 = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk18 = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].returntimer = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].cornertimer = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].alphafrac = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].slotwidth = activemenuCalculateSlotWidth();
|
||||
}
|
||||
|
||||
|
|
@ -1038,16 +1038,16 @@ void activemenuOpen(void)
|
|||
{
|
||||
if (g_Vars.currentplayer->passivemode == false) {
|
||||
g_ActiveMenuIndex = g_Vars.currentplayernum;
|
||||
g_Vars.currentplayer->activemenumode = 1;
|
||||
g_Vars.currentplayer->activemenumode = AMMODE_VIEW;
|
||||
g_PlayersWithControl[g_Vars.currentplayernum] = false;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].screenindex = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk1c = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].selpulse = 0;
|
||||
activemenuAssignWeaponSlots();
|
||||
activemenuChangeScreen(0);
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk02 = g_ActiveMenus[g_ActiveMenuIndex].slotwidth + 5;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk18 = 0.3;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk34 = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].unk33 = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].xradius = g_ActiveMenus[g_ActiveMenuIndex].slotwidth + 5;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].alphafrac = 0.3;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].origscreennum = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].prevallbots = 0;
|
||||
g_ActiveMenus[g_ActiveMenuIndex].allbots = false;
|
||||
}
|
||||
}
|
||||
|
|
@ -1058,7 +1058,7 @@ void activemenuClose(void)
|
|||
activemenuApply(g_ActiveMenus[g_ActiveMenuIndex].slotnum);
|
||||
}
|
||||
|
||||
g_Vars.currentplayer->activemenumode = 0;
|
||||
g_Vars.currentplayer->activemenumode = AMMODE_CLOSED;
|
||||
g_Vars.currentplayer->joybutinhibit = 0xffffffff;
|
||||
g_PlayersWithControl[g_Vars.currentplayernum] = 1;
|
||||
}
|
||||
|
|
@ -1074,7 +1074,7 @@ void activemenuCalculateSlotPosition(s16 arg0, s16 arg1, s16 *x, s16 *y)
|
|||
{
|
||||
s32 playercount = PLAYERCOUNT();
|
||||
|
||||
*x = g_ActiveMenus[g_ActiveMenuIndex].unk02 * (arg0 - 1);
|
||||
*x = g_ActiveMenus[g_ActiveMenuIndex].xradius * (arg0 - 1);
|
||||
*y = arg1 * 50 - 50;
|
||||
|
||||
if (arg0 != 1 && arg1 != 1) {
|
||||
|
|
@ -1857,7 +1857,7 @@ Gfx *activemenuRenderSlot(Gfx *gdl, char *text, s16 x, s16 y, s32 mode, s32 flag
|
|||
func0000db30("pickcol2", &pickcol2);
|
||||
|
||||
// Render background colour
|
||||
colour = (u32)(g_ActiveMenus[g_ActiveMenuIndex].unk18 * (ibcol & 0xff)) | (ibcol & 0xffffff00);
|
||||
colour = (u32)(g_ActiveMenus[g_ActiveMenuIndex].alphafrac * (ibcol & 0xff)) | (ibcol & 0xffffff00);
|
||||
|
||||
if (mode == 1) {
|
||||
colour &= 0x000000ff;
|
||||
|
|
@ -1871,7 +1871,7 @@ Gfx *activemenuRenderSlot(Gfx *gdl, char *text, s16 x, s16 y, s32 mode, s32 flag
|
|||
colour &= 0x000000ff;
|
||||
}
|
||||
|
||||
if (g_Vars.currentplayer->activemenumode == 2) {
|
||||
if (g_Vars.currentplayer->activemenumode == AMMODE_EDIT) {
|
||||
colour = 0x0000006f;
|
||||
}
|
||||
|
||||
|
|
@ -1896,9 +1896,9 @@ Gfx *activemenuRenderSlot(Gfx *gdl, char *text, s16 x, s16 y, s32 mode, s32 flag
|
|||
colour = 0xffffff8f;
|
||||
}
|
||||
|
||||
colour = (u32)(g_ActiveMenus[g_ActiveMenuIndex].unk18 * (colour & 0xff)) | (colour & 0xffffff00);
|
||||
colour = (u32)(g_ActiveMenus[g_ActiveMenuIndex].alphafrac * (colour & 0xff)) | (colour & 0xffffff00);
|
||||
|
||||
if (g_Vars.currentplayer->activemenumode == 2) {
|
||||
if (g_Vars.currentplayer->activemenumode == AMMODE_EDIT) {
|
||||
colour = 0x4f4f4f7f;
|
||||
}
|
||||
|
||||
|
|
@ -1945,9 +1945,9 @@ Gfx *activemenuRenderSlot(Gfx *gdl, char *text, s16 x, s16 y, s32 mode, s32 flag
|
|||
colour = colourBlend(0xffaf8fff, colour, func0f006b54(10) * 255.0f);
|
||||
}
|
||||
|
||||
colour = (u32)(g_ActiveMenus[g_ActiveMenuIndex].unk18 * (colour & 0xff)) | (colour & 0xffffff00);
|
||||
colour = (u32)(g_ActiveMenus[g_ActiveMenuIndex].alphafrac * (colour & 0xff)) | (colour & 0xffffff00);
|
||||
|
||||
if (g_Vars.currentplayer->activemenumode == 2) {
|
||||
if (g_Vars.currentplayer->activemenumode == AMMODE_EDIT) {
|
||||
colour = 0x4f4f4f7f;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -156,6 +156,11 @@
|
|||
#define AMSLOTFLAG_ACTIVE 0x08 // pulsates slightly, eg. cloak/xray when active
|
||||
#define AMSLOTFLAG_NOAMMO 0x10 // black BG, no border, orange text
|
||||
|
||||
// Active menu (weapon wheel) modes
|
||||
#define AMMODE_CLOSED 0
|
||||
#define AMMODE_VIEW 1
|
||||
#define AMMODE_EDIT 2 // unused
|
||||
|
||||
#define ANIM_IDLE 0x0000
|
||||
#define ANIM_TWO_GUN_HOLD 0x0001
|
||||
#define ANIM_KNEEL_TWO_HANDED_GUN 0x0008
|
||||
|
|
@ -1765,6 +1770,21 @@
|
|||
#define MPBODY_DALTON 0x3b
|
||||
#define MPBODY_DJBOND 0x3c
|
||||
|
||||
#define MPBOTCOMMAND_FOLLOW 0
|
||||
#define MPBOTCOMMAND_ATTACK 1
|
||||
#define MPBOTCOMMAND_DEFEND 2
|
||||
#define MPBOTCOMMAND_HOLD 3
|
||||
#define MPBOTCOMMAND_NORMAL 4
|
||||
#define MPBOTCOMMAND_DOWNLOAD 5
|
||||
#define MPBOTCOMMAND_GETCASE 6
|
||||
#define MPBOTCOMMAND_TAGBOX 7
|
||||
#define MPBOTCOMMAND_SAVECASE 8
|
||||
#define MPBOTCOMMAND_DEFHILL 9
|
||||
#define MPBOTCOMMAND_HOLDHILL 10
|
||||
#define MPBOTCOMMAND_GETCASE2 11
|
||||
#define MPBOTCOMMAND_POPCAP 12
|
||||
#define MPBOTCOMMAND_PROTECT 13
|
||||
|
||||
#define MPCONFIG_TEMPLE 0x00
|
||||
#define MPCONFIG_PISTOLS 0x01
|
||||
#define MPCONFIG_FARSIGHT 0x02
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ void func0f0a7d98(u8 *arg0, struct prop *prop, s32 arg2);
|
|||
u32 func0f0a8404(void);
|
||||
u32 func0f0a84c8(void);
|
||||
void handSetFiring(s32 hand, bool firing);
|
||||
u32 currentPlayerConsiderToggleGunFunction(s32 usedowntime, bool firing, s32 arg2);
|
||||
s32 currentPlayerConsiderToggleGunFunction(s32 usedowntime, bool firing, s32 arg2);
|
||||
void func0f0a8c50(void);
|
||||
bool currentPlayerIsUsingSecondaryFunction(void);
|
||||
void currentPlayerTickInventory(bool triggeron);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ void activemenuSetAiBuddyTemperament(bool aggressive);
|
|||
void activemenuSetAiBuddyStealth(void);
|
||||
s32 activemenuGetFirstBuddyIndex(void);
|
||||
void activemenuApply(s32 slot);
|
||||
void activemenuGetSlotDetails(s32 slot, u32 *flags, char *dst);
|
||||
void activemenuGetSlotDetails(s32 slot, u32 *flags, char *label);
|
||||
void activemenusInit(void);
|
||||
s16 activemenuCalculateSlotWidth(void);
|
||||
void activemenuChangeScreen(s32 step);
|
||||
|
|
|
|||
|
|
@ -4728,17 +4728,18 @@ struct trainingdata {
|
|||
|
||||
struct activemenu {
|
||||
/*0x00*/ s8 screenindex;
|
||||
/*0x02*/ s16 unk02;
|
||||
/*0x02*/ s16 xradius;
|
||||
/*0x04*/ s16 slotwidth;
|
||||
/*0x06*/ u16 unk06;
|
||||
/*0x08*/ u16 unk08;
|
||||
/*0x0a*/ s16 unk0a;
|
||||
/*0x0c*/ u16 unk0c;
|
||||
/*0x0e*/ u8 slotnum;
|
||||
/*0x10*/ u32 unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
/*0x18*/ f32 unk18; // seems like a fade duration or current alpha level
|
||||
/*0x1c*/ f32 unk1c;
|
||||
/*0x06*/ s16 selx;
|
||||
/*0x08*/ s16 sely;
|
||||
/*0x0a*/ s16 dstx;
|
||||
/*0x0c*/ s16 dsty;
|
||||
/*0x0e*/ u8 slotnum; // 0-8, where 4 is middle
|
||||
/*0x0f*/ u8 fromslotnum; // when moving from one slot to another
|
||||
/*0x10*/ s32 cornertimer;
|
||||
/*0x14*/ s32 returntimer; // time before selection returns to middle after releasing control stick
|
||||
/*0x18*/ f32 alphafrac;
|
||||
/*0x1c*/ f32 selpulse; // determines the border colour of the selection box
|
||||
|
||||
/**
|
||||
* Indexes into the player's inventory. Element 0 is AM slot top left,
|
||||
|
|
@ -4754,11 +4755,11 @@ struct activemenu {
|
|||
*/
|
||||
/*0x28*/ u8 weaponnums[8];
|
||||
|
||||
/*0x30*/ u8 unk30;
|
||||
/*0x30*/ u8 togglefunc;
|
||||
/*0x31*/ u8 numitems; // number of items in player's inventory; can be higher than the number of AM slots
|
||||
/*0x32*/ u8 allbots; // when player holds R on the bot command screen
|
||||
/*0x33*/ u8 unk33;
|
||||
/*0x34*/ u8 unk34;
|
||||
/*0x33*/ u8 prevallbots; // used when opening "Pick Target" menu for attack command
|
||||
/*0x34*/ s8 origscreennum; // original screen number before using allbots
|
||||
};
|
||||
|
||||
struct briefing {
|
||||
|
|
|
|||
Loading…
Reference in New Issue