mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 00:41:55 +00:00
Replace gamefunc_Alt_Weapon with a gamefunc_Alt_Fire that works as expected
git-svn-id: https://svn.eduke32.com/eduke32@7761 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
6f54235b7a
commit
4e81b4e2f0
8 changed files with 22 additions and 31 deletions
|
@ -110,7 +110,7 @@ char gamefunctions[NUMGAMEFUNCTIONS][MAXGAMEFUNCLEN] =
|
|||
#endif
|
||||
"Dpad_Select",
|
||||
"Dpad_Aiming",
|
||||
"Alternate_Weapon",
|
||||
"Alt_Fire",
|
||||
"Last_Used_Weapon",
|
||||
"Quick_Save",
|
||||
"Quick_Load",
|
||||
|
@ -249,7 +249,7 @@ const char oldkeydefaults[NUMGAMEFUNCTIONS*2][MAXGAMEFUNCLEN] =
|
|||
static const char * mousedefaults[MAXMOUSEBUTTONS] =
|
||||
{
|
||||
"Fire",
|
||||
"MedKit",
|
||||
"Alt_Fire",
|
||||
"Jetpack",
|
||||
"",
|
||||
"Previous_Weapon",
|
||||
|
|
|
@ -140,7 +140,7 @@ enum GameEvent_t {
|
|||
EVENT_ENDLEVELSCREEN,
|
||||
EVENT_EXITGAMESCREEN,
|
||||
EVENT_EXITPROGRAMSCREEN,
|
||||
EVENT_ALTWEAPON,
|
||||
EVENT_ALTFIRE,
|
||||
EVENT_DISPLAYOVERHEADMAPPLAYER,
|
||||
EVENT_MENUCURSORLEFT,
|
||||
EVENT_MENUCURSORRIGHT,
|
||||
|
|
|
@ -99,7 +99,7 @@ enum GameFunction_t
|
|||
gamefunc_Show_DukeMatch_Scores,
|
||||
gamefunc_Dpad_Select,
|
||||
gamefunc_Dpad_Aiming,
|
||||
gamefunc_Alt_Weapon,
|
||||
gamefunc_Alt_Fire,
|
||||
gamefunc_Last_Weapon,
|
||||
gamefunc_Quick_Save,
|
||||
gamefunc_Quick_Load,
|
||||
|
|
|
@ -7032,15 +7032,13 @@ int G_DoMoveThings(void)
|
|||
|
||||
for (bssize_t TRAVERSE_CONNECT(i))
|
||||
{
|
||||
if (g_player[i].inputBits->extbits&(1<<6))
|
||||
if (g_player[i].ps->team != g_player[i].pteam && g_gametypeFlags[ud.coop] & GAMETYPE_TDM)
|
||||
{
|
||||
g_player[i].ps->team = g_player[i].pteam;
|
||||
if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM)
|
||||
{
|
||||
actor[g_player[i].ps->i].picnum = APLAYERTOP;
|
||||
P_QuickKill(g_player[i].ps);
|
||||
}
|
||||
actor[g_player[i].ps->i].picnum = APLAYERTOP;
|
||||
P_QuickKill(g_player[i].ps);
|
||||
}
|
||||
|
||||
if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM)
|
||||
g_player[i].ps->palookup = g_player[i].pcolor = G_GetTeamPalette(g_player[i].ps->team);
|
||||
|
||||
|
@ -7256,7 +7254,7 @@ static void G_SetupGameButtons(void)
|
|||
CONTROL_DefineFlag(gamefunc_Quick_Kick,FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Next_Weapon,FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Previous_Weapon,FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Alt_Weapon,FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Alt_Fire,FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Last_Weapon,FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Quick_Save, FALSE);
|
||||
CONTROL_DefineFlag(gamefunc_Quick_Load, FALSE);
|
||||
|
|
|
@ -967,7 +967,7 @@ const char *EventNames[MAXEVENTS] =
|
|||
"EVENT_ENDLEVELSCREEN",
|
||||
"EVENT_EXITGAMESCREEN",
|
||||
"EVENT_EXITPROGRAMSCREEN",
|
||||
"EVENT_ALTWEAPON",
|
||||
"EVENT_ALTFIRE",
|
||||
"EVENT_DISPLAYOVERHEADMAPPLAYER",
|
||||
"EVENT_MENUCURSORLEFT",
|
||||
"EVENT_MENUCURSORRIGHT",
|
||||
|
|
|
@ -2895,8 +2895,7 @@ void P_GetInput(int const playerNum)
|
|||
Bmemset(&localInput, 0, sizeof(input_t));
|
||||
|
||||
localInput.bits = (((int32_t)g_gameQuit) << SK_GAMEQUIT);
|
||||
localInput.extbits = (g_player[playerNum].pteam != pPlayer->team) << 6;
|
||||
localInput.extbits |= (1 << 7);
|
||||
localInput.extbits |= (1<<7);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -3032,8 +3031,6 @@ void P_GetInput(int const playerNum)
|
|||
}
|
||||
|
||||
if (BUTTON(gamefunc_Last_Weapon))
|
||||
weaponSelection = 14;
|
||||
else if (BUTTON(gamefunc_Alt_Weapon))
|
||||
weaponSelection = 13;
|
||||
else if (BUTTON(gamefunc_Next_Weapon) || (BUTTON(gamefunc_Dpad_Select) && input.fvel > 0))
|
||||
weaponSelection = 12;
|
||||
|
@ -3090,15 +3087,9 @@ void P_GetInput(int const playerNum)
|
|||
localInput.extbits |= (BUTTON(gamefunc_Move_Backward) || (input.fvel < 0)) << 1;
|
||||
localInput.extbits |= (BUTTON(gamefunc_Strafe_Left) || (input.svel > 0)) << 2;
|
||||
localInput.extbits |= (BUTTON(gamefunc_Strafe_Right) || (input.svel < 0)) << 3;
|
||||
|
||||
if (VM_HaveEvent(EVENT_PROCESSINPUT) || VM_HaveEvent(EVENT_TURNLEFT))
|
||||
localInput.extbits |= BUTTON(gamefunc_Turn_Left)<<4;
|
||||
|
||||
if (VM_HaveEvent(EVENT_PROCESSINPUT) || VM_HaveEvent(EVENT_TURNRIGHT))
|
||||
localInput.extbits |= BUTTON(gamefunc_Turn_Right)<<5;
|
||||
|
||||
// used for changing team
|
||||
localInput.extbits |= (g_player[playerNum].pteam != pPlayer->team)<<6;
|
||||
localInput.extbits |= BUTTON(gamefunc_Turn_Left)<<4;
|
||||
localInput.extbits |= BUTTON(gamefunc_Turn_Right)<<5;
|
||||
localInput.extbits |= BUTTON(gamefunc_Alt_Fire)<<6;
|
||||
|
||||
if (ud.scrollmode && ud.overhead_on)
|
||||
{
|
||||
|
@ -3945,9 +3936,11 @@ static void P_ProcessWeapon(int playerNum)
|
|||
pPlayer->rapid_fire_hold = 0;
|
||||
}
|
||||
|
||||
int const doAltFire = g_player[playerNum].inputBits->extbits & (1<<6);
|
||||
|
||||
if (playerShrunk || pPlayer->tipincs || pPlayer->access_incs)
|
||||
playerBits &= ~BIT(SK_FIRE);
|
||||
else if ((playerBits & (1 << 2)) && (*weaponFrame) == 0 && pPlayer->fist_incs == 0 &&
|
||||
else if ((playerBits & BIT(SK_FIRE) || doAltFire) && (*weaponFrame) == 0 && pPlayer->fist_incs == 0 &&
|
||||
pPlayer->last_weapon == -1 && (pPlayer->weapon_pos == 0 || pPlayer->holster_weapon == 1))
|
||||
{
|
||||
pPlayer->crack_time = PCRACKTIME;
|
||||
|
@ -3965,7 +3958,10 @@ static void P_ProcessWeapon(int playerNum)
|
|||
{
|
||||
P_SetWeaponGamevars(playerNum, pPlayer);
|
||||
|
||||
if (VM_OnEvent(EVENT_FIRE, pPlayer->i, playerNum) == 0)
|
||||
if (doAltFire)
|
||||
VM_OnEvent(EVENT_ALTFIRE, pPlayer->i, playerNum);
|
||||
|
||||
if (playerBits & BIT(SK_FIRE) && VM_OnEvent(EVENT_FIRE, pPlayer->i, playerNum) == 0)
|
||||
{
|
||||
// this event is deprecated
|
||||
VM_OnEvent(EVENT_FIREWEAPON, pPlayer->i, playerNum);
|
||||
|
|
|
@ -126,7 +126,7 @@ typedef struct {
|
|||
uint32_t bits;
|
||||
int16_t fvel, svel;
|
||||
fix16_t q16avel, q16horz;
|
||||
int8_t extbits;
|
||||
uint8_t extbits;
|
||||
} input_t;
|
||||
|
||||
#pragma pack(push,1)
|
||||
|
|
|
@ -2655,9 +2655,6 @@ CHECKINV1:
|
|||
weaponNum = VM_OnEventWithReturn(EVENT_NEXTWEAPON,pPlayer->i,playerNum, weaponNum);
|
||||
break;
|
||||
case 12:
|
||||
weaponNum = VM_OnEventWithReturn(EVENT_ALTWEAPON,pPlayer->i,playerNum, weaponNum);
|
||||
break;
|
||||
case 13:
|
||||
weaponNum = VM_OnEventWithReturn(EVENT_LASTWEAPON,pPlayer->i,playerNum, weaponNum);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue