mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-22 12:01:25 +00:00
Remove last plugin stubs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6217 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
ba9a852d9d
commit
0d9a269ab4
8 changed files with 45 additions and 32 deletions
|
@ -115,7 +115,7 @@ cvar_t cl_predict_players_latency = CVARD("cl_predict_players_latency", "1.0", "
|
||||||
cvar_t cl_predict_players_nudge = CVARD("cl_predict_players_nudge", "0.02", "An extra nudge of time, to cover video latency.");
|
cvar_t cl_predict_players_nudge = CVARD("cl_predict_players_nudge", "0.02", "An extra nudge of time, to cover video latency.");
|
||||||
cvar_t cl_solid_players = CVARD("cl_solid_players", "1", "Consider other players as solid for player prediction.");
|
cvar_t cl_solid_players = CVARD("cl_solid_players", "1", "Consider other players as solid for player prediction.");
|
||||||
cvar_t cl_noblink = CVARD("cl_noblink", "0", "Disable the ^^b text blinking feature.");
|
cvar_t cl_noblink = CVARD("cl_noblink", "0", "Disable the ^^b text blinking feature.");
|
||||||
cvar_t cl_servername = CVARD("cl_servername", "none", "The hostname of the last server you connected to");
|
cvar_t cl_servername = CVARFD("cl_servername", "", CVAR_NOSET, "The hostname of the last server you connected to");
|
||||||
cvar_t cl_serveraddress = CVARD("cl_serveraddress", "none", "The address of the last server you connected to");
|
cvar_t cl_serveraddress = CVARD("cl_serveraddress", "none", "The address of the last server you connected to");
|
||||||
cvar_t qtvcl_forceversion1 = CVAR("qtvcl_forceversion1", "0");
|
cvar_t qtvcl_forceversion1 = CVAR("qtvcl_forceversion1", "0");
|
||||||
cvar_t qtvcl_eztvextensions = CVAR("qtvcl_eztvextensions", "0");
|
cvar_t qtvcl_eztvextensions = CVAR("qtvcl_eztvextensions", "0");
|
||||||
|
@ -1181,7 +1181,11 @@ void CL_CheckForResend (void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!connectinfo.trying)
|
if (!connectinfo.trying)
|
||||||
|
{
|
||||||
|
if (*cl_servername.string)
|
||||||
|
Cvar_ForceSet(&cl_servername, "");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if (startuppending || r_blockvidrestart)
|
if (startuppending || r_blockvidrestart)
|
||||||
return; //don't send connect requests until we've actually initialised fully. this isn't a huge issue, but makes the startup prints a little more sane.
|
return; //don't send connect requests until we've actually initialised fully. this isn't a huge issue, but makes the startup prints a little more sane.
|
||||||
|
|
||||||
|
@ -2197,7 +2201,7 @@ void CL_Disconnect (const char *reason)
|
||||||
FTENET_AddToCollection(cls.sockets, "conn", NULL, NA_INVALID, NP_DGRAM);
|
FTENET_AddToCollection(cls.sockets, "conn", NULL, NA_INVALID, NP_DGRAM);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Cvar_ForceSet(&cl_servername, "none");
|
Cvar_ForceSet(&cl_servername, "");
|
||||||
|
|
||||||
CL_ClearState(false);
|
CL_ClearState(false);
|
||||||
|
|
||||||
|
@ -2672,7 +2676,6 @@ void CL_CheckServerInfo(void)
|
||||||
CL_CheckServerPacks();
|
CL_CheckServerPacks();
|
||||||
|
|
||||||
Cvar_ForceCheatVars(cls.allow_semicheats, cls.allow_cheats);
|
Cvar_ForceCheatVars(cls.allow_semicheats, cls.allow_cheats);
|
||||||
Validation_Apply_Ruleset();
|
|
||||||
|
|
||||||
if (oldteamplay != cl.teamplay)
|
if (oldteamplay != cl.teamplay)
|
||||||
Skin_FlushPlayers();
|
Skin_FlushPlayers();
|
||||||
|
|
|
@ -1115,6 +1115,7 @@ qboolean Cvar_ApplyLatchFlag(cvar_t *var, char *value, unsigned int newflag, uns
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_CLIENT
|
||||||
void Cvar_ForceCheatVars(qboolean semicheats, qboolean absolutecheats)
|
void Cvar_ForceCheatVars(qboolean semicheats, qboolean absolutecheats)
|
||||||
{ //this either unlatches if the cheat type is allowed, or enforces a default for full cheats and blank for semicheats.
|
{ //this either unlatches if the cheat type is allowed, or enforces a default for full cheats and blank for semicheats.
|
||||||
//this is clientside only.
|
//this is clientside only.
|
||||||
|
@ -1167,7 +1168,10 @@ void Cvar_ForceCheatVars(qboolean semicheats, qboolean absolutecheats)
|
||||||
var->latched_string = latch;
|
var->latched_string = latch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Validation_Apply_Ruleset();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int Cvar_ApplyLatches(int latchflag, qboolean clearflag)
|
int Cvar_ApplyLatches(int latchflag, qboolean clearflag)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2120,9 +2120,15 @@ static void *QDECL PlugBI_GetEngineInterface(const char *interfacename, size_t s
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Con_ClearNotify,
|
||||||
Plug_CL_ClearState,
|
Plug_CL_ClearState,
|
||||||
Plug_CL_SetLoadscreenState,
|
Plug_CL_SetLoadscreenState,
|
||||||
Plug_CL_UpdateGameTime,
|
Plug_CL_UpdateGameTime,
|
||||||
|
|
||||||
|
Cvar_ForceCheatVars,
|
||||||
|
DL_Begun,
|
||||||
|
CL_DownloadFinished,
|
||||||
|
CL_DownloadFailed,
|
||||||
};
|
};
|
||||||
if (structsize == sizeof(funcs))
|
if (structsize == sizeof(funcs))
|
||||||
return &funcs;
|
return &funcs;
|
||||||
|
@ -2150,6 +2156,11 @@ static void *QDECL PlugBI_GetEngineInterface(const char *interfacename, size_t s
|
||||||
Plug_Input_GetMoveCount,
|
Plug_Input_GetMoveCount,
|
||||||
Plug_Input_GetMoveEntry,
|
Plug_Input_GetMoveEntry,
|
||||||
|
|
||||||
|
Sys_Clipboard_PasteText,
|
||||||
|
Sys_SaveClipboard,
|
||||||
|
utf8_decode,
|
||||||
|
utf8_encode,
|
||||||
|
|
||||||
IN_GetKeyDest,
|
IN_GetKeyDest,
|
||||||
IN_KeyEvent,
|
IN_KeyEvent,
|
||||||
IN_MouseMove,
|
IN_MouseMove,
|
||||||
|
|
|
@ -310,9 +310,15 @@ typedef struct //q1 client/network info
|
||||||
F(float, GetTrackerOwnFrags, (int seat, char *text, size_t textsize));
|
F(float, GetTrackerOwnFrags, (int seat, char *text, size_t textsize));
|
||||||
F(void, GetPredInfo, (int seat, vec3_t outvel));
|
F(void, GetPredInfo, (int seat, vec3_t outvel));
|
||||||
|
|
||||||
|
F(void, ClearNotify, (void)); //called for fast map restarts.
|
||||||
F(void, ClearClientState, (void)); //called at the start of map changes.
|
F(void, ClearClientState, (void)); //called at the start of map changes.
|
||||||
F(void, SetLoadingState, (qboolean newstate)); //Change the client's loading screen state.
|
F(void, SetLoadingState, (qboolean newstate)); //Change the client's loading screen state.
|
||||||
F(void, UpdateGameTime, (double)); //tells the client an updated snapshot time for interpolation/timedrift.
|
F(void, UpdateGameTime, (double)); //tells the client an updated snapshot time for interpolation/timedrift.
|
||||||
|
|
||||||
|
void (*ForceCheatVars) (qboolean semicheats, qboolean absolutecheats);
|
||||||
|
qboolean (*DownloadBegun)(qdownload_t *dl);
|
||||||
|
void (*DownloadFinished)(qdownload_t *dl);
|
||||||
|
downloadlist_t *(*DownloadFailed)(const char *name, qdownload_t *qdl, enum dlfailreason_e failreason);
|
||||||
#define plugclientfuncs_name "Client"
|
#define plugclientfuncs_name "Client"
|
||||||
} plugclientfuncs_t;
|
} plugclientfuncs_t;
|
||||||
|
|
||||||
|
@ -339,6 +345,11 @@ typedef struct //for menu-like stuff
|
||||||
F(unsigned int, GetMoveCount, (void));
|
F(unsigned int, GetMoveCount, (void));
|
||||||
F(usercmd_t*, GetMoveEntry, (unsigned int move)); //GetMoveEntry(GetMoveCount()) gives you the partial entry. forgotten entries return NULL.
|
F(usercmd_t*, GetMoveEntry, (unsigned int move)); //GetMoveEntry(GetMoveCount()) gives you the partial entry. forgotten entries return NULL.
|
||||||
|
|
||||||
|
void (*ClipboardGet) (clipboardtype_t clipboardtype, void (*callback)(void *ctx, const char *utf8), void *ctx);
|
||||||
|
void (*ClipboardSet) (clipboardtype_t clipboardtype, const char *utf8);
|
||||||
|
unsigned int (*utf8_decode)(int *error, const void *in, char const**out);
|
||||||
|
unsigned int (*utf8_encode)(void *out, unsigned int unicode, int maxlen);
|
||||||
|
|
||||||
unsigned int (*GetKeyDest) (void);
|
unsigned int (*GetKeyDest) (void);
|
||||||
void (*KeyEvent) (unsigned int devid, int down, int keycode, int unicode);
|
void (*KeyEvent) (unsigned int devid, int down, int keycode, int unicode);
|
||||||
void (*MouseMove) (unsigned int devid, int abs, float x, float y, float z, float size);
|
void (*MouseMove) (unsigned int devid, int abs, float x, float y, float z, float size);
|
||||||
|
|
|
@ -384,7 +384,7 @@ qboolean CG_GetServerCommand(int cmdnum)
|
||||||
if (!strcmp(arg0, "cs"))
|
if (!strcmp(arg0, "cs"))
|
||||||
CG_InsertIntoGameState(atoi(cmdfuncs->Argv(1, NULL, 0)), cmdfuncs->Argv(2, NULL, 0));
|
CG_InsertIntoGameState(atoi(cmdfuncs->Argv(1, NULL, 0)), cmdfuncs->Argv(2, NULL, 0));
|
||||||
else if (!strcmp(arg0, "map_restart"))
|
else if (!strcmp(arg0, "map_restart"))
|
||||||
Con_ClearNotify();
|
clientfuncs->ClearNotify();
|
||||||
else if (!strcmp(arg0, "disconnect"))
|
else if (!strcmp(arg0, "disconnect"))
|
||||||
plugfuncs->EndGame("Server disconnected - %s", (cmdfuncs->Argc()>1)?cmdfuncs->Argv(1, NULL, 0):"No reason given");
|
plugfuncs->EndGame("Server disconnected - %s", (cmdfuncs->Argc()>1)?cmdfuncs->Argv(1, NULL, 0):"No reason given");
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -7,22 +7,6 @@
|
||||||
#include "shader.h"
|
#include "shader.h"
|
||||||
#include "cl_master.h"
|
#include "cl_master.h"
|
||||||
|
|
||||||
#ifndef STATIC_Q3
|
|
||||||
void Cvar_ForceCheatVars(qboolean semicheats, qboolean absolutecheats){} //locks/unlocks cheat cvars depending on weather we are allowed them.
|
|
||||||
|
|
||||||
void Con_ClearNotify (void){}
|
|
||||||
|
|
||||||
unsigned int key_dest_mask;
|
|
||||||
void Sys_Clipboard_PasteText(clipboardtype_t clipboardtype, void (*callback)(void *cb, const char *utf8), void *ctx){}; //calls the callback once the text is available (maybe instantly). utf8 arg may be NULL if the clipboard was unavailable.
|
|
||||||
unsigned int utf8_decode(int *error, const void *in, char const**out){return 0;}
|
|
||||||
|
|
||||||
char *CL_TryingToConnect(void){return NULL;}
|
|
||||||
|
|
||||||
downloadlist_t *CL_DownloadFailed(const char *name, qdownload_t *qdl, enum dlfailreason_e failreason){return NULL;}
|
|
||||||
qboolean DL_Begun(qdownload_t *dl){return 0;}
|
|
||||||
void CL_DownloadFinished(qdownload_t *dl){}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//urm, yeah, this is more than just parse.
|
//urm, yeah, this is more than just parse.
|
||||||
|
|
||||||
#ifdef Q3CLIENT
|
#ifdef Q3CLIENT
|
||||||
|
@ -383,7 +367,7 @@ void CLQ3_ParseDownload(void)
|
||||||
{ //the only downloads we should be getting is pk3s.
|
{ //the only downloads we should be getting is pk3s.
|
||||||
//if they're advertised-but-failing then its probably due to permissions rather than file-not-found
|
//if they're advertised-but-failing then its probably due to permissions rather than file-not-found
|
||||||
s = msgfuncs->ReadString();
|
s = msgfuncs->ReadString();
|
||||||
CL_DownloadFailed(dl->remotename, dl, DLFAIL_SERVERCVAR);
|
clientfuncs->DownloadFailed(dl->remotename, dl, DLFAIL_SERVERCVAR);
|
||||||
plugfuncs->EndGame("%s", s);
|
plugfuncs->EndGame("%s", s);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -411,9 +395,9 @@ void CLQ3_ParseDownload(void)
|
||||||
|
|
||||||
if (!dl->file)
|
if (!dl->file)
|
||||||
{
|
{
|
||||||
if (!DL_Begun(dl))
|
if (!clientfuncs->DownloadBegun(dl))
|
||||||
{
|
{
|
||||||
CL_DownloadFailed(dl->remotename, dl, DLFAIL_CLIENTFILE);
|
clientfuncs->DownloadFailed(dl->remotename, dl, DLFAIL_CLIENTFILE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -422,7 +406,7 @@ void CLQ3_ParseDownload(void)
|
||||||
|
|
||||||
if (!chunksize)
|
if (!chunksize)
|
||||||
{
|
{
|
||||||
CL_DownloadFinished(dl);
|
clientfuncs->DownloadFinished(dl);
|
||||||
|
|
||||||
ccs.servercount = -1; //make sure the server resends us that vital gamestate.
|
ccs.servercount = -1; //make sure the server resends us that vital gamestate.
|
||||||
ccs.downloadchunknum = -1;
|
ccs.downloadchunknum = -1;
|
||||||
|
@ -515,7 +499,7 @@ qboolean CLQ3_SystemInfoChanged(const char *str)
|
||||||
Con_Printf("Server's sv_pure: \"%s\"\n", worldfuncs->GetInfoKey(str, "sv_pure"));
|
Con_Printf("Server's sv_pure: \"%s\"\n", worldfuncs->GetInfoKey(str, "sv_pure"));
|
||||||
usingpure = atoi(worldfuncs->GetInfoKey(str, "sv_pure"));
|
usingpure = atoi(worldfuncs->GetInfoKey(str, "sv_pure"));
|
||||||
usingcheats = atoi(worldfuncs->GetInfoKey(str, "sv_cheats"));
|
usingcheats = atoi(worldfuncs->GetInfoKey(str, "sv_cheats"));
|
||||||
Cvar_ForceCheatVars(usingpure||usingcheats, usingcheats);
|
clientfuncs->ForceCheatVars(usingpure||usingcheats, usingcheats);
|
||||||
|
|
||||||
// if (atoi(value))
|
// if (atoi(value))
|
||||||
// Host_EndGame("Unable to connect to Q3 Pure Servers\n");
|
// Host_EndGame("Unable to connect to Q3 Pure Servers\n");
|
||||||
|
@ -909,7 +893,7 @@ void CLQ3_SendCmd(struct ftenet_connections_s *socket, usercmd_t *cmd, unsigned
|
||||||
cmd->upmove = 100;
|
cmd->upmove = 100;
|
||||||
cmd->buttons &= ~2;
|
cmd->buttons &= ~2;
|
||||||
}
|
}
|
||||||
if (Key_Dest_Has(~kdm_game))
|
if (inputfuncs->GetKeyDest() & ~kdm_game)
|
||||||
cmd->buttons |= 2; //add in the 'at console' button
|
cmd->buttons |= 2; //add in the 'at console' button
|
||||||
|
|
||||||
//FIXME: q3 generates a new command every video frame, but a new packet at a more limited rate.
|
//FIXME: q3 generates a new command every video frame, but a new packet at a more limited rate.
|
||||||
|
|
|
@ -835,7 +835,7 @@ static void UI_SimulateTextEntry(void *cb, const char *utf8)
|
||||||
int err;
|
int err;
|
||||||
while(*line)
|
while(*line)
|
||||||
{
|
{
|
||||||
unicode = utf8_decode(&err, line, &line);
|
unicode = inputfuncs->utf8_decode(&err, line, &line);
|
||||||
if (uivm)
|
if (uivm)
|
||||||
vmfuncs->Call(uivm, UI_KEY_EVENT, unicode|1024, true);
|
vmfuncs->Call(uivm, UI_KEY_EVENT, unicode|1024, true);
|
||||||
}
|
}
|
||||||
|
@ -1089,7 +1089,7 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con
|
||||||
|
|
||||||
//but do we really want to let mods read the system clipboard? I suppose it SHOULD be okay if the UI was manually installed by the user.
|
//but do we really want to let mods read the system clipboard? I suppose it SHOULD be okay if the UI was manually installed by the user.
|
||||||
//side note: q3's text entry logic is kinda flawed.
|
//side note: q3's text entry logic is kinda flawed.
|
||||||
Sys_Clipboard_PasteText(CBT_CLIPBOARD, UI_SimulateTextEntry, NULL);
|
inputfuncs->ClipboardGet(CBT_CLIPBOARD, UI_SimulateTextEntry, NULL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UI_KEY_KEYNUMTOSTRINGBUF:
|
case UI_KEY_KEYNUMTOSTRINGBUF:
|
||||||
|
@ -1124,7 +1124,7 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con
|
||||||
inputfuncs->ClearKeyStates();
|
inputfuncs->ClearKeyStates();
|
||||||
break;
|
break;
|
||||||
case UI_KEY_GETCATCHER:
|
case UI_KEY_GETCATCHER:
|
||||||
if (Key_Dest_Has(kdm_console))
|
if (inputfuncs->GetKeyDest() & kdm_console)
|
||||||
VM_LONG(ret) = keycatcher | 1;
|
VM_LONG(ret) = keycatcher | 1;
|
||||||
else
|
else
|
||||||
VM_LONG(ret) = keycatcher;
|
VM_LONG(ret) = keycatcher;
|
||||||
|
@ -1185,10 +1185,11 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con
|
||||||
uiClientState_t *state = VM_POINTER(arg[0]);
|
uiClientState_t *state = VM_POINTER(arg[0]);
|
||||||
state->connectPacketCount = 0;//clc.connectPacketCount;
|
state->connectPacketCount = 0;//clc.connectPacketCount;
|
||||||
|
|
||||||
|
cvarfuncs->GetString("cl_servername", state->servername, sizeof(state->servername)); //server we're connected to
|
||||||
switch(ccs.state)
|
switch(ccs.state)
|
||||||
{
|
{
|
||||||
case ca_disconnected:
|
case ca_disconnected:
|
||||||
if (CL_TryingToConnect())
|
if (*state->servername)
|
||||||
state->connState = Q3CA_CONNECTING;
|
state->connState = Q3CA_CONNECTING;
|
||||||
else
|
else
|
||||||
state->connState = Q3CA_DISCONNECTED;
|
state->connState = Q3CA_DISCONNECTED;
|
||||||
|
@ -1206,7 +1207,6 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con
|
||||||
state->connState = Q3CA_ACTIVE;
|
state->connState = Q3CA_ACTIVE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cvarfuncs->GetString("cl_servername", state->servername, sizeof(state->servername)); //error message from game server
|
|
||||||
Q_strncpyz(state->updateInfoString, "FTE!", sizeof(state->updateInfoString)); //warning/motd message from update server
|
Q_strncpyz(state->updateInfoString, "FTE!", sizeof(state->updateInfoString)); //warning/motd message from update server
|
||||||
cvarfuncs->GetString("com_errorMessage", state->messageString, sizeof(state->messageString)); //error message from game server
|
cvarfuncs->GetString("com_errorMessage", state->messageString, sizeof(state->messageString)); //error message from game server
|
||||||
state->clientNum = ccs.playernum;
|
state->clientNum = ccs.playernum;
|
||||||
|
|
|
@ -347,7 +347,7 @@ int VM_GetFileList(const char *path, const char *ext, char *output, int buffersi
|
||||||
#include "clq3defs.h" //okay, urr, this is bad for dedicated servers. urhum. Maybe they're not looking? It's only typedefs and one extern.
|
#include "clq3defs.h" //okay, urr, this is bad for dedicated servers. urhum. Maybe they're not looking? It's only typedefs and one extern.
|
||||||
|
|
||||||
#define MAX_VMQ3_CVARS 512 //can be blindly increased
|
#define MAX_VMQ3_CVARS 512 //can be blindly increased
|
||||||
cvar_t *q3cvlist[MAX_VMQ3_CVARS];
|
static cvar_t *q3cvlist[MAX_VMQ3_CVARS];
|
||||||
int VMQ3_Cvar_Register(q3vmcvar_t *v, char *name, char *defval, int flags)
|
int VMQ3_Cvar_Register(q3vmcvar_t *v, char *name, char *defval, int flags)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
Loading…
Reference in a new issue