mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-14 11:50:49 +00:00
- cleanup on pausing code.
This commit is contained in:
parent
381e15a9b2
commit
a0cd407632
27 changed files with 145 additions and 163 deletions
|
@ -195,4 +195,5 @@ enum
|
|||
};
|
||||
|
||||
void updatePauseStatus();
|
||||
void updatePauseStatus(bool state, bool multiplayer);
|
||||
extern int paused;
|
||||
|
|
|
@ -462,13 +462,7 @@ CVAR(String, usermapfolder, "", CVAR_ARCHIVE);
|
|||
CUSTOM_CVAR(Int, playercolor, 0, CVAR_ARCHIVE|CVAR_USERINFO)
|
||||
{
|
||||
if (self < 0 || self > 10) self = 0;
|
||||
else ;// gi->UpdatePlayerColor(); // this part is game specific
|
||||
}
|
||||
|
||||
CUSTOM_CVAR(Int, playerteam, 0, CVAR_USERINFO) // this one is transient and won't be saved.
|
||||
{
|
||||
if (self < 0 || self > 3) self = 0;
|
||||
else ;// gi->UpdatePlayerTeam(); // this part is game specific
|
||||
else ;// gi->PlayerColorChanged(); // this part is game specific
|
||||
}
|
||||
|
||||
// Will only become useful if the obituary system gets overhauled and for localization
|
||||
|
|
|
@ -110,7 +110,6 @@ EXTERN_CVAR(Int, m_marker)
|
|||
EXTERN_CVAR(Int, m_ffire)
|
||||
EXTERN_CVAR(Int, m_noexits)
|
||||
EXTERN_CVAR(Int, playercolor)
|
||||
EXTERN_CVAR(Int, playerteam)
|
||||
|
||||
extern bool gNoAutoLoad;
|
||||
extern int hud_statusbarrange; // will be set by the game's configuration setup.
|
||||
|
|
|
@ -203,3 +203,9 @@ void CONTROL_GetInput(ControlInfo* info)
|
|||
info->dpitch += -joyaxes[JOYAXIS_Pitch] * 22.5f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CCMD(pause)
|
||||
{
|
||||
inputState.SetPause();
|
||||
}
|
||||
|
|
|
@ -36,6 +36,11 @@ class InputState
|
|||
KEYFIFOSIZ = 64,
|
||||
};
|
||||
|
||||
enum EAction
|
||||
{
|
||||
Action_Pause = 1,
|
||||
};
|
||||
|
||||
uint8_t KeyStatus[NUM_KEYS];
|
||||
|
||||
kb_scancode g_keyFIFO[KEYFIFOSIZ];
|
||||
|
@ -47,6 +52,8 @@ class InputState
|
|||
|
||||
vec2f_t g_mousePos;
|
||||
|
||||
int actions;
|
||||
|
||||
void keySetState(int32_t key, int32_t state);
|
||||
|
||||
public:
|
||||
|
@ -166,6 +173,7 @@ public:
|
|||
keyFlushChars();
|
||||
keyFlushScans();
|
||||
buttonMap.ResetButtonStates(); // this is important. If all input is cleared, the buttons must be cleared as well.
|
||||
actions = 0;
|
||||
}
|
||||
|
||||
bool CheckAllInput()
|
||||
|
@ -178,6 +186,10 @@ public:
|
|||
return res;
|
||||
}
|
||||
|
||||
void SetPause() { actions |= Action_Pause; }
|
||||
void ClearPause() { actions &= ~Action_Pause; }
|
||||
bool CheckPause() { bool b = !!(actions & Action_Pause); ClearPause(); return b; }
|
||||
|
||||
};
|
||||
|
||||
extern InputState inputState;
|
||||
|
|
|
@ -2273,11 +2273,7 @@ GAMELOOP:
|
|||
// loc_11FBC:
|
||||
while (paused)
|
||||
{
|
||||
inputState.ClearAllInput();
|
||||
if (WaitAnyKey(-1) != sc_Pause)
|
||||
{
|
||||
paused = kFalse;
|
||||
}
|
||||
updatePauseStatus();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -711,7 +711,7 @@ public:
|
|||
mysnprintf(tempbuf, 32, "%ld", i + 1);
|
||||
|
||||
MiniText(30, 90 + t, tempbuf, 0);
|
||||
MiniText(38, 90 + t, g_player[i].user_name, 0, -1, ps[i].palookup);
|
||||
MiniText(38, 90 + t, ud.user_name[i], 0, -1, ps[i].palookup);
|
||||
|
||||
for (int y = 0; y < playerswhenstarted; y++)
|
||||
{
|
||||
|
|
|
@ -294,7 +294,7 @@ public:
|
|||
mysnprintf(tempbuf, 32, "%ld", i + 1);
|
||||
|
||||
MiniText(30, 90 + t, tempbuf, 0);
|
||||
MiniText(38, 90 + t, g_player[i].user_name, 0, -1, ps[i].palookup);
|
||||
MiniText(38, 90 + t, ud.user_name[i], 0, -1, ps[i].palookup);
|
||||
|
||||
for (int y = 0; y < playerswhenstarted; y++)
|
||||
{
|
||||
|
|
|
@ -58,7 +58,7 @@ static void dowarp(MapRecord *map)
|
|||
newgame(map, ud.m_player_skill);
|
||||
ps[myconnectindex].gm = MODE_RESTART;
|
||||
}
|
||||
else G_NewGame_EnterLevel(map, ud.m_player_skill);
|
||||
else startnewgame(map, ud.m_player_skill);
|
||||
}
|
||||
|
||||
static int ccmd_levelwarp(CCmdFuncPtr parm)
|
||||
|
|
|
@ -318,7 +318,7 @@ void GameInterface::StartGame(FNewGameStartup& gs)
|
|||
auto map = FindMapByLevelNum(levelnum(gs.Episode, gs.Level));
|
||||
if (map)
|
||||
{
|
||||
G_NewGame_EnterLevel(map, ud.m_player_skill);
|
||||
startnewgame(map, ud.m_player_skill);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -185,6 +185,7 @@ void initwaterdrip(int j, int i);
|
|||
int initreactor(int j, int i, bool isrecon);
|
||||
void spawneffector(int i);
|
||||
void gameexitfrommenu();
|
||||
int startrts(int lumpNum, int localPlayer);
|
||||
|
||||
void pickrandomspot(int pn);
|
||||
void resetinventory(int pn);
|
||||
|
@ -225,5 +226,8 @@ void clearfrags(void);
|
|||
int exitlevel();
|
||||
int enterlevel(MapRecord* mi, int gm);
|
||||
void newgame(MapRecord* mi, int sk);
|
||||
void startnewgame(MapRecord* map, int skill);
|
||||
void setlocalplayerinput(player_struct *pp);
|
||||
void PlayerColorChanged(void);
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -69,15 +69,6 @@ struct TileInfo
|
|||
extern TileInfo tileinfo[MAXTILES];
|
||||
|
||||
|
||||
extern int startrts(int lumpNum, int localPlayer);
|
||||
|
||||
static inline void G_NewGame_EnterLevel(MapRecord *map, int skill)
|
||||
{
|
||||
newgame(map, skill);
|
||||
|
||||
if (enterlevel(map, MODE_GAME))
|
||||
G_BackToMenu();
|
||||
}
|
||||
|
||||
extern void setupbackdrop();
|
||||
|
||||
|
|
|
@ -423,7 +423,7 @@ void displayrest(int smoothratio)
|
|||
|
||||
if (ud.scrollmode == 0)
|
||||
{
|
||||
if (pp->newowner == -1 && !ud.pause_on)
|
||||
if (pp->newowner == -1 && !paused)
|
||||
{
|
||||
if (screenpeek == myconnectindex && numplayers > 1)
|
||||
{
|
||||
|
@ -447,7 +447,7 @@ void displayrest(int smoothratio)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!ud.pause_on)
|
||||
if (!paused)
|
||||
{
|
||||
ud.fola += ud.folavel >> 3;
|
||||
ud.folx += (ud.folfvel * sintable[(512 + 2048 - ud.fola) & 2047]) >> 14;
|
||||
|
@ -490,7 +490,7 @@ void displayrest(int smoothratio)
|
|||
}
|
||||
}
|
||||
|
||||
if (ud.pause_on == 1 && (ps[myconnectindex].gm & MODE_MENU) == 0)
|
||||
if (paused == 1 && (ps[myconnectindex].gm & MODE_MENU) == 0)
|
||||
fi.PrintPaused();
|
||||
}
|
||||
|
||||
|
|
|
@ -239,7 +239,7 @@ int domovethings()
|
|||
if (numplayers < 2 && !isRR())
|
||||
S_PlaySound(GENERIC_AMBIENCE17, CHAN_AUTO, CHANF_UI);
|
||||
|
||||
Printf(PRINT_NOTIFY, "%s is history!", g_player[i].user_name);
|
||||
Printf(PRINT_NOTIFY, "%s is history!", ud.user_name[i]);
|
||||
|
||||
quickkill(&ps[i]);
|
||||
deletesprite(ps[i].i);
|
||||
|
@ -249,7 +249,7 @@ int domovethings()
|
|||
|
||||
//if(ud.recstat == 1) record();
|
||||
|
||||
if (ud.pause_on == 0)
|
||||
if (paused == 0)
|
||||
{
|
||||
global_random = krand();
|
||||
movedummyplayers();//ST 13
|
||||
|
@ -257,7 +257,7 @@ int domovethings()
|
|||
|
||||
for (i = connecthead; i >= 0; i = connectpoint2[i])
|
||||
{
|
||||
if (ud.pause_on == 0)
|
||||
if (paused == 0)
|
||||
{
|
||||
auto p = &ps[i];
|
||||
if (p->pals.a > 0)
|
||||
|
@ -268,7 +268,7 @@ int domovethings()
|
|||
}
|
||||
}
|
||||
|
||||
if (ud.pause_on == 0)
|
||||
if (paused == 0)
|
||||
{
|
||||
if (levelTextTime > 0)
|
||||
levelTextTime--;
|
||||
|
|
|
@ -160,7 +160,7 @@ inline void SetPlayerPal(player_struct* p, PalEntry pe)
|
|||
inline int calc_smoothratio(ClockTicks totalclk, ClockTicks ototalclk)
|
||||
{
|
||||
if (!((ud.multimode < 2 && ((ps[myconnectindex].gm & MODE_MENU) == 0)) ||
|
||||
ud.multimode > 1 || ud.recstat == 2) || ud.pause_on)
|
||||
ud.multimode > 1 || ud.recstat == 2) || paused)
|
||||
{
|
||||
return 65536;
|
||||
}
|
||||
|
|
|
@ -105,16 +105,8 @@ void hud_input(int snum)
|
|||
{
|
||||
p->interface_toggle_flag = 1;
|
||||
|
||||
if (PlayerInput(snum, SKB_PAUSE))
|
||||
{
|
||||
ud.pause_on = !ud.pause_on;
|
||||
if (ud.pause_on == 1 && PlayerInput(snum, SKB_RUN)) ud.pause_on = 2; // Mode 2 is silent, i.e. prints no notification.
|
||||
Mus_SetPaused(ud.pause_on);
|
||||
S_PauseSounds(ud.pause_on);
|
||||
}
|
||||
|
||||
// Don't go on if paused or dead.
|
||||
if (ud.pause_on) return;
|
||||
if (paused) return;
|
||||
if (sprite[p->i].extra <= 0) return;
|
||||
|
||||
// Activate an inventory item. This just forwards to the other inventory bits. If the inventory selector was taken out of the playsim this could be removed.
|
||||
|
|
|
@ -39,6 +39,50 @@ source as it is released.
|
|||
|
||||
BEGIN_DUKE_NS
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// callback for playercolor CVAR
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
inline int playercolor2lookup(int color)
|
||||
{
|
||||
static int8_t player_pals[] = { 0, 9, 10, 11, 12, 13, 14, 15, 16, 21, 23, };
|
||||
if (color >= 0 && color < 10) return player_pals[color];
|
||||
return 0;
|
||||
}
|
||||
|
||||
void PlayerColorChanged(void)
|
||||
{
|
||||
if (ud.recstat != 0)
|
||||
return;
|
||||
|
||||
if (ud.multimode > 1)
|
||||
{
|
||||
//Net_SendClientInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
ps[myconnectindex].palookup = ud.user_pals[myconnectindex] = playercolor2lookup(playercolor);
|
||||
}
|
||||
if (sprite[ps[myconnectindex].i].picnum == TILE_APLAYER && sprite[ps[myconnectindex].i].pal != 1)
|
||||
sprite[ps[myconnectindex].i].pal = ud.user_pals[myconnectindex];
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Sync local player with CVARs.
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void setlocalplayerinput(player_struct* pp)
|
||||
{
|
||||
pp->aim_mode = in_mousemode;
|
||||
pp->auto_aim = cl_autoaim;
|
||||
pp->weaponswitch = cl_weaponswitch;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// why is this such a mess?
|
||||
|
@ -502,8 +546,7 @@ void playerisdead(int snum, int psectlotag, int fz, int cz)
|
|||
ps[p->frag_ps].frag++;
|
||||
frags[p->frag_ps][snum]++;
|
||||
|
||||
auto pname = &g_player[p->frag_ps].user_name[0]; // TRANSITIONAL
|
||||
//&ud.user_name[p->frag_ps][0]);
|
||||
auto pname = &ud.user_name[p->frag_ps][0];
|
||||
if (snum == screenpeek)
|
||||
{
|
||||
quoteMgr.InitializeQuote(QUOTE_RESERVED, "Killed by %s", pname);
|
||||
|
|
|
@ -48,14 +48,8 @@ enum gamemode_t {
|
|||
|
||||
typedef struct
|
||||
{
|
||||
bool horizRecenter;
|
||||
float horizAngleAdjust;
|
||||
fix16_t horizSkew;
|
||||
|
||||
int32_t pcolor, pteam;
|
||||
// NOTE: wchoice[HANDREMOTE_WEAPON .. MAX_WEAPONS-1] unused
|
||||
|
||||
char user_name[32];
|
||||
double lastInputTicks;
|
||||
|
||||
} playerdata_t;
|
||||
|
|
|
@ -415,7 +415,7 @@ void resetprestat(int snum,int g)
|
|||
animatecnt = 0;
|
||||
parallaxtype = 0;
|
||||
randomseed = 17L;
|
||||
ud.pause_on = 0;
|
||||
paused = 0;
|
||||
ud.camerasprite =-1;
|
||||
ud.eog = 0;
|
||||
tempwallptr = 0;
|
||||
|
@ -623,14 +623,14 @@ void resetpspritevars(int g)
|
|||
if (s->pal == 0)
|
||||
{
|
||||
s->pal = ps[j].palookup = which_palookup;
|
||||
//ud.user_pals[j] = which_palookup;
|
||||
ud.user_pals[j] = which_palookup;
|
||||
which_palookup++;
|
||||
if (which_palookup == 17) which_palookup = 9;
|
||||
}
|
||||
else /*ud.user_pals[j] =*/ ps[j].palookup = s->pal;
|
||||
else ud.user_pals[j] = ps[j].palookup = s->pal;
|
||||
}
|
||||
else
|
||||
s->pal = ps[j].palookup = g_player[j].pcolor;// ud.user_pals[j];
|
||||
s->pal = ps[j].palookup = ud.user_pals[j];
|
||||
|
||||
ps[j].i = i;
|
||||
ps[j].frag_ps = j;
|
||||
|
@ -1009,6 +1009,24 @@ int enterlevel(MapRecord *mi, int gamemode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Start a new game from the menu
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void startnewgame(MapRecord* map, int skill)
|
||||
{
|
||||
newgame(map, skill);
|
||||
|
||||
if (enterlevel(map, MODE_GAME))
|
||||
{
|
||||
ps[myconnectindex].gm = 0;
|
||||
M_StartControlPanel(false);
|
||||
M_SetMenu(NAME_Mainmenu);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Ideally this will become the only place where map progression gets set up.
|
||||
|
|
|
@ -295,7 +295,7 @@ void setdrugmode(player_struct *p, int oyrepeat)
|
|||
{
|
||||
if (!paused)
|
||||
{
|
||||
if (p->DrugMode > 0 && !(p->gm & MODE_TYPE) && !ud.pause_on)
|
||||
if (p->DrugMode > 0 && !(p->gm & MODE_TYPE) && !paused)
|
||||
{
|
||||
int var_8c;
|
||||
if (p->drug_stat[0] == 0)
|
||||
|
@ -491,7 +491,7 @@ void displayrooms(int snum, int smoothratio)
|
|||
videoSetCorrectedAspect();
|
||||
|
||||
smoothratio = min(max(smoothratio, 0), 65536);
|
||||
if (ud.pause_on || ps[snum].on_crane > -1) smoothratio = 65536;
|
||||
if (paused || ps[snum].on_crane > -1) smoothratio = 65536;
|
||||
|
||||
sect = p->cursectnum;
|
||||
if (sect < 0 || sect >= MAXSECTORS) return;
|
||||
|
|
|
@ -47,8 +47,9 @@ struct user_defs
|
|||
unsigned char show_help, scrollmode, clipping;
|
||||
char user_name[MAXPLAYERS][32];
|
||||
unsigned char overhead_on, last_overhead, showweapons;
|
||||
unsigned char user_pals[MAXPLAYERS];
|
||||
|
||||
short pause_on, from_bonus;
|
||||
short from_bonus;
|
||||
short camerasprite, last_camsprite;
|
||||
short last_level, secretlevel;
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ int32_t moveloop(void);
|
|||
int menuloop(void);
|
||||
void advancequeue(int myconnectindex);
|
||||
input_t& nextinput(int myconnectindex);
|
||||
void GetInput();
|
||||
|
||||
int16_t max_ammo_amount[MAX_WEAPONS];
|
||||
int32_t spriteqamount = 64;
|
||||
|
@ -287,14 +288,6 @@ static int parsedefinitions_game(scriptfile *, int);
|
|||
===================
|
||||
*/
|
||||
|
||||
inline int G_CheckPlayerColor(int color)
|
||||
{
|
||||
static int32_t player_pals[] = { 0, 9, 10, 11, 12, 13, 14, 15, 16, 21, 23, };
|
||||
if (color >= 0 && color < 10) return player_pals[color];
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void G_Startup(void)
|
||||
{
|
||||
timerInit(TICRATE);
|
||||
|
@ -346,46 +339,6 @@ static void G_Startup(void)
|
|||
screenpeek = myconnectindex;
|
||||
}
|
||||
|
||||
static void P_SetupMiscInputSettings(void)
|
||||
{
|
||||
struct player_struct *pp = &ps[myconnectindex];
|
||||
|
||||
pp->aim_mode = in_mousemode;
|
||||
pp->auto_aim = cl_autoaim;
|
||||
pp->weaponswitch = cl_weaponswitch;
|
||||
}
|
||||
|
||||
void G_UpdatePlayerFromMenu(void)
|
||||
{
|
||||
if (ud.recstat != 0)
|
||||
return;
|
||||
|
||||
if (numplayers > 1)
|
||||
{
|
||||
//Net_SendClientInfo();
|
||||
if (sprite[ps[myconnectindex].i].picnum == TILE_APLAYER && sprite[ps[myconnectindex].i].pal != 1)
|
||||
sprite[ps[myconnectindex].i].pal = g_player[myconnectindex].pcolor;
|
||||
}
|
||||
else
|
||||
{
|
||||
P_SetupMiscInputSettings();
|
||||
ps[myconnectindex].palookup = g_player[myconnectindex].pcolor = G_CheckPlayerColor(playercolor);
|
||||
|
||||
g_player[myconnectindex].pteam = playerteam;
|
||||
|
||||
if (sprite[ps[myconnectindex].i].picnum == TILE_APLAYER && sprite[ps[myconnectindex].i].pal != 1)
|
||||
sprite[ps[myconnectindex].i].pal = g_player[myconnectindex].pcolor;
|
||||
}
|
||||
}
|
||||
|
||||
void G_BackToMenu(void)
|
||||
{
|
||||
ps[myconnectindex].gm = 0;
|
||||
M_StartControlPanel(false);
|
||||
M_SetMenu(NAME_Mainmenu);
|
||||
inputState.keyFlushChars();
|
||||
}
|
||||
|
||||
void app_loop();
|
||||
|
||||
// TODO: reorder (net)weaponhit to eliminate slop and update assertion
|
||||
|
@ -480,8 +433,7 @@ int GameInterface::app_main()
|
|||
ud.ShowOpponentWeapons = 0;
|
||||
ud.camerasprite = -1;
|
||||
ud.camera_time = 0;//4;
|
||||
playerteam = 0;
|
||||
|
||||
|
||||
S_InitSound();
|
||||
|
||||
|
||||
|
@ -513,8 +465,7 @@ int GameInterface::app_main()
|
|||
|
||||
for (int i=1, j=numplayers; j<ud.multimode; j++)
|
||||
{
|
||||
Bsprintf(g_player[j].user_name,"%s %d", GStrings("PLAYER"),j+1);
|
||||
g_player[j].pteam = i;
|
||||
Bsprintf(ud.user_name[j],"%s %d", GStrings("PLAYER"),j+1);
|
||||
ps[j].weaponswitch = 3;
|
||||
ps[j].auto_aim = 0;
|
||||
i = 1-i;
|
||||
|
@ -606,13 +557,9 @@ MAIN_LOOP_RESTART:
|
|||
}
|
||||
|
||||
ud.showweapons = ud.ShowOpponentWeapons;
|
||||
P_SetupMiscInputSettings();
|
||||
g_player[myconnectindex].pteam = playerteam;
|
||||
|
||||
if (playercolor) ps[myconnectindex].palookup = g_player[myconnectindex].pcolor = G_CheckPlayerColor(playercolor);
|
||||
else ps[myconnectindex].palookup = g_player[myconnectindex].pcolor;
|
||||
|
||||
inputState.ClearKeyStatus(sc_Pause); // JBF: I hate the pause key
|
||||
setlocalplayerinput(&ps[myconnectindex]);
|
||||
PlayerColorChanged();
|
||||
inputState.ClearAllInput();
|
||||
|
||||
do //main loop
|
||||
{
|
||||
|
@ -637,13 +584,7 @@ MAIN_LOOP_RESTART:
|
|||
{
|
||||
ototalclock += TICSPERFRAME;
|
||||
|
||||
if (isRRRA() && ps[myconnectindex].OnMotorcycle)
|
||||
P_GetInputMotorcycle(myconnectindex);
|
||||
else if (isRRRA() && ps[myconnectindex].OnBoat)
|
||||
P_GetInputBoat(myconnectindex);
|
||||
else
|
||||
P_GetInput(myconnectindex);
|
||||
|
||||
GetInput();
|
||||
// this is where we fill the input_t struct that is actually processed by P_ProcessInput()
|
||||
auto const pPlayer = &ps[myconnectindex];
|
||||
auto const q16ang = fix16_to_int(pPlayer->q16ang);
|
||||
|
@ -682,12 +623,7 @@ MAIN_LOOP_RESTART:
|
|||
|
||||
if (G_FPSLimit())
|
||||
{
|
||||
if (isRRRA() && ps[myconnectindex].OnMotorcycle)
|
||||
P_GetInputMotorcycle(myconnectindex);
|
||||
else if (isRRRA() && ps[myconnectindex].OnBoat)
|
||||
P_GetInputBoat(myconnectindex);
|
||||
else
|
||||
P_GetInput(myconnectindex);
|
||||
GetInput();
|
||||
|
||||
int const smoothRatio = calc_smoothratio(totalclock, ototalclock);
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ void P_GetInput(int const playerNum)
|
|||
return;
|
||||
|
||||
|
||||
if ((pPlayer->gm & (MODE_MENU|MODE_TYPE)) || (ud.pause_on && !inputState.GetKeyStatus(sc_Pause)))
|
||||
if (paused)
|
||||
{
|
||||
if (!(pPlayer->gm&MODE_MENU))
|
||||
CONTROL_GetInput(&info);
|
||||
|
@ -114,9 +114,7 @@ void P_GetInput(int const playerNum)
|
|||
|
||||
if (numplayers == 1)
|
||||
{
|
||||
pPlayer->aim_mode = in_mousemode;
|
||||
pPlayer->auto_aim = cl_autoaim;
|
||||
pPlayer->weaponswitch = cl_weaponswitch;
|
||||
setlocalplayerinput(pPlayer);
|
||||
}
|
||||
|
||||
|
||||
|
@ -327,7 +325,7 @@ void P_GetInput(int const playerNum)
|
|||
|
||||
localInput.bits |= (mouseaim << SK_AIMMODE);
|
||||
localInput.bits |= (g_gameQuit << SK_GAMEQUIT);
|
||||
localInput.bits |= !!inputState.GetKeyStatus(sc_Pause) << SK_PAUSE;
|
||||
localInput.bits |= inputState.CheckPause() << SK_PAUSE;
|
||||
//localInput.bits |= ((uint32_t)inputState.GetKeyStatus(sc_Escape)) << SK_ESCAPE; fixme.This needs to be done differently
|
||||
|
||||
if (isRR())
|
||||
|
@ -391,14 +389,13 @@ void P_GetInput(int const playerNum)
|
|||
= atan2f(pPlayer->q16horiz - F16(100), F16(128)) * (512.f / fPI) + scaleAdjustmentToInterval(thisPlayer.horizAngleAdjust);
|
||||
pPlayer->q16horiz = F16(100) + Blrintf(F16(128) * tanf(horizAngle * (fPI / 512.f)));
|
||||
}
|
||||
else if (pPlayer->return_to_center > 0 || thisPlayer.horizRecenter)
|
||||
else if (pPlayer->return_to_center > 0)
|
||||
{
|
||||
pPlayer->q16horiz = fix16_sadd(pPlayer->q16horiz, fix16_from_dbl(scaleAdjustmentToInterval(fix16_to_dbl(fix16_from_dbl(200 / 3) - fix16_sdiv(pPlayer->q16horiz, F16(1.5))))));
|
||||
|
||||
if ((!pPlayer->return_to_center && thisPlayer.horizRecenter) || (pPlayer->q16horiz >= F16(99.9) && pPlayer->q16horiz <= F16(100.1)))
|
||||
if ((pPlayer->q16horiz >= F16(99.9) && pPlayer->q16horiz <= F16(100.1)))
|
||||
{
|
||||
pPlayer->q16horiz = F16(100);
|
||||
thisPlayer.horizRecenter = false;
|
||||
}
|
||||
|
||||
if (pPlayer->q16horizoff >= F16(-0.1) && pPlayer->q16horizoff <= F16(0.1))
|
||||
|
@ -446,7 +443,7 @@ void P_GetInputMotorcycle(int playerNum)
|
|||
auto const pPlayer = &ps[playerNum];
|
||||
ControlInfo info;
|
||||
|
||||
if ((pPlayer->gm & (MODE_MENU|MODE_TYPE)) || (ud.pause_on && !inputState.GetKeyStatus(sc_Pause)))
|
||||
if (paused)
|
||||
{
|
||||
if (!(pPlayer->gm&MODE_MENU))
|
||||
CONTROL_GetInput(&info);
|
||||
|
@ -462,9 +459,7 @@ void P_GetInputMotorcycle(int playerNum)
|
|||
|
||||
if (numplayers == 1)
|
||||
{
|
||||
pPlayer->aim_mode = in_mousemode;
|
||||
pPlayer->auto_aim = cl_autoaim;
|
||||
pPlayer->weaponswitch = cl_weaponswitch;
|
||||
setlocalplayerinput(pPlayer);
|
||||
}
|
||||
|
||||
CONTROL_GetInput(&info);
|
||||
|
@ -497,7 +492,7 @@ void P_GetInputMotorcycle(int playerNum)
|
|||
localInput.bits |= buttonMap.ButtonDown(gamefunc_MedKit) << SK_MEDKIT;
|
||||
localInput.bits |= (buttonMap.ButtonDown(gamefunc_Inventory_Left) ||
|
||||
(buttonMap.ButtonDown(gamefunc_Dpad_Select) && (input.svel > 0 || input.q16avel < 0))) << SK_INV_LEFT;
|
||||
localInput.bits |= !!inputState.GetKeyStatus(sc_Pause) << SK_PAUSE;
|
||||
localInput.bits |= inputState.CheckPause() << SK_PAUSE;
|
||||
localInput.bits |= buttonMap.ButtonDown(gamefunc_Holo_Duke) << SK_HOLODUKE;
|
||||
localInput.bits |= buttonMap.ButtonDown(gamefunc_Jetpack) << SK_JETPACK;
|
||||
localInput.bits |= (g_gameQuit << SK_GAMEQUIT);
|
||||
|
@ -638,7 +633,7 @@ void P_GetInputBoat(int playerNum)
|
|||
auto const pPlayer = &ps[playerNum];
|
||||
ControlInfo info;
|
||||
|
||||
if ((pPlayer->gm & (MODE_MENU|MODE_TYPE)) || (ud.pause_on && !inputState.GetKeyStatus(sc_Pause)))
|
||||
if (paused)
|
||||
{
|
||||
if (!(pPlayer->gm&MODE_MENU))
|
||||
CONTROL_GetInput(&info);
|
||||
|
@ -654,9 +649,7 @@ void P_GetInputBoat(int playerNum)
|
|||
|
||||
if (numplayers == 1)
|
||||
{
|
||||
pPlayer->aim_mode = in_mousemode;
|
||||
pPlayer->auto_aim = cl_autoaim;
|
||||
pPlayer->weaponswitch = cl_weaponswitch;
|
||||
setlocalplayerinput(pPlayer);
|
||||
}
|
||||
|
||||
CONTROL_GetInput(&info);
|
||||
|
@ -687,9 +680,9 @@ void P_GetInputBoat(int playerNum)
|
|||
localInput.bits |= buttonMap.ButtonDown(gamefunc_Steroids) << SK_STEROIDS;
|
||||
localInput.bits |= buttonMap.ButtonDown(gamefunc_NightVision) << SK_NIGHTVISION;
|
||||
localInput.bits |= buttonMap.ButtonDown(gamefunc_MedKit) << SK_MEDKIT;
|
||||
localInput.bits |= (buttonMap.ButtonDown(gamefunc_Inventory_Left) ||
|
||||
localInput.bits |= (buttonMap.ButtonDown(gamefunc_Inventory_Left) ||
|
||||
(buttonMap.ButtonDown(gamefunc_Dpad_Select) && (input.svel > 0 || input.q16avel < 0))) << SK_INV_LEFT;
|
||||
localInput.bits |= !!inputState.GetKeyStatus(sc_Pause) << SK_PAUSE;
|
||||
localInput.bits |= inputState.CheckPause() << SK_PAUSE;
|
||||
localInput.bits |= buttonMap.ButtonDown(gamefunc_Holo_Duke) << SK_HOLODUKE;
|
||||
localInput.bits |= buttonMap.ButtonDown(gamefunc_Jetpack) << SK_JETPACK;
|
||||
localInput.bits |= (g_gameQuit << SK_GAMEQUIT);
|
||||
|
@ -805,4 +798,15 @@ void P_GetInputBoat(int playerNum)
|
|||
localInput.fvel = clamp((input.fvel += pPlayer->MotoSpeed), -(MAXVELMOTO / 8), MAXVELMOTO);
|
||||
}
|
||||
|
||||
void GetInput()
|
||||
{
|
||||
updatePauseStatus();
|
||||
|
||||
if (isRRRA() && ps[myconnectindex].OnMotorcycle)
|
||||
P_GetInputMotorcycle(myconnectindex);
|
||||
else if (isRRRA() && ps[myconnectindex].OnBoat)
|
||||
P_GetInputBoat(myconnectindex);
|
||||
else
|
||||
P_GetInput(myconnectindex);
|
||||
}
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -533,9 +533,7 @@ static void sv_restsave();
|
|||
static void sv_restload();
|
||||
static void sv_rrrafog();
|
||||
|
||||
#define SVARDATALEN \
|
||||
((sizeof(g_player[0].user_name)+sizeof(g_player[0].pcolor)+sizeof(g_player[0].pteam) \
|
||||
+sizeof(struct player_struct))*MAXPLAYERS)
|
||||
#define SVARDATALEN 1
|
||||
|
||||
static uint8_t savegame_restdata[SVARDATALEN];
|
||||
|
||||
|
@ -561,7 +559,6 @@ static const dataspec_t svgm_udnetw[] =
|
|||
{ DS_NOCHK, &ud.coop, sizeof(ud.coop), 1 },
|
||||
{ DS_NOCHK, &ud.marker, sizeof(ud.marker), 1 },
|
||||
{ DS_NOCHK, &ud.ffire, sizeof(ud.ffire), 1 },
|
||||
{ 0, &ud.pause_on, sizeof(ud.pause_on), 1 },
|
||||
{ 0, connectpoint2, sizeof(connectpoint2), 1 },
|
||||
{ 0, &randomseed, sizeof(randomseed), 1 },
|
||||
{ 0, &global_random, sizeof(global_random), 1 },
|
||||
|
@ -933,9 +930,6 @@ static void sv_restsave()
|
|||
#define CPDAT(ptr,sz) do { Bmemcpy(mem, ptr, sz), mem+=sz ; } while (0)
|
||||
for (int i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
CPDAT(g_player[i].user_name, 32);
|
||||
CPDAT(&g_player[i].pcolor, sizeof(g_player[0].pcolor));
|
||||
CPDAT(&g_player[i].pteam, sizeof(g_player[0].pteam));
|
||||
CPDAT(&ps[i], sizeof(struct player_struct));
|
||||
}
|
||||
|
||||
|
@ -949,9 +943,6 @@ static void sv_restload()
|
|||
#define CPDAT(ptr,sz) Bmemcpy(ptr, mem, sz), mem+=sz
|
||||
for (int i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
CPDAT(g_player[i].user_name, 32);
|
||||
CPDAT(&g_player[i].pcolor, sizeof(g_player[0].pcolor));
|
||||
CPDAT(&g_player[i].pteam, sizeof(g_player[0].pteam));
|
||||
CPDAT(&ps[i], sizeof(struct player_struct));
|
||||
}
|
||||
#undef CPDAT
|
||||
|
|
|
@ -3160,10 +3160,10 @@ getinput(SW_PACKET *loc, SWBOOL tied)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
else if (inputState.GetKeyStatus(sc_Pause))
|
||||
else if (inputState.CheckPause())
|
||||
{
|
||||
SET_LOC_KEY(loc->bits, SK_PAUSE, inputState.GetKeyStatus(sc_Pause));
|
||||
inputState.ClearKeyStatus(sc_Pause);
|
||||
SET_LOC_KEY(loc->bits, SK_PAUSE, true);
|
||||
inputState.ClearPause();
|
||||
}
|
||||
|
||||
SET_LOC_KEY(loc->bits, SK_CENTER_VIEW, buttonMap.ButtonDown(gamefunc_Center_View));
|
||||
|
|
|
@ -42,6 +42,7 @@ Home "+Aim_Up"
|
|||
End "+Aim_Down"
|
||||
RCtrl "+Fire"
|
||||
Scroll "+Holster_Weapon"
|
||||
Pause "pause"
|
||||
|
||||
Enter "+Inventory"
|
||||
KP-Enter "+Inventory"
|
||||
|
|
|
@ -1079,7 +1079,6 @@ OptionMenu "NewPlayerMenu" //protected
|
|||
Option "$PLYRMNU_PLAYERCOLOR", "playercolor", "PlayerColorsSW"
|
||||
}
|
||||
Option "$PLYRMNU_PLAYERGENDER", "playergender", "Gender"
|
||||
Option "$PLYRMNU_TEAM", "playerteam", "PlayerTeam"
|
||||
Submenu "$PLRMNU_TAUNTS", "TauntsMenu"
|
||||
Class "NewPlayerMenu"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue