mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
rename SetUserInfo to UserInfoCallback.
set self to the client entity for UserInfoCallback. add void (entity ent, string key, string value) setinfokey = #102; similar usage to infokey.
This commit is contained in:
parent
d30f1ee0c2
commit
743fd9cc19
4 changed files with 27 additions and 8 deletions
|
@ -170,6 +170,6 @@ extern func_t EndFrame;
|
|||
extern func_t SpectatorConnect;
|
||||
extern func_t SpectatorThink;
|
||||
extern func_t SpectatorDisconnect;
|
||||
extern func_t SetUserInfo;
|
||||
extern func_t UserInfoCallback;
|
||||
|
||||
#endif // __sv_progs_h
|
||||
|
|
|
@ -1675,6 +1675,23 @@ PF_charcount (progs_t *pr)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
PF_setinfokey (progs_t *pr)
|
||||
{
|
||||
edict_t *edict = G_EDICT (pr, OFS_PARM0);
|
||||
int e1 = NUM_FOR_EDICT (pr, edict);
|
||||
const char *key = G_STRING (pr, OFS_PARM1);
|
||||
const char *value = G_STRING (pr, OFS_PARM2);
|
||||
|
||||
if (e1 == 0) {
|
||||
Info_SetValueForKey (localinfo, key, value, MAX_LOCALINFO_STRING);
|
||||
} else if (e1 <= MAX_CLIENTS) {
|
||||
Info_SetValueForKey (svs.clients[e1 - 1].userinfo, key, value,
|
||||
MAX_INFO_STRING);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
PF_Fixme (progs_t *pr)
|
||||
{
|
||||
|
@ -1829,9 +1846,10 @@ builtin_t sv_builtins[] = {
|
|||
PF_Fixme,
|
||||
PF_Fixme,
|
||||
PF_Fixme,
|
||||
PF_Checkextension,
|
||||
PF_Checkextension, // 99
|
||||
PF_strlen,
|
||||
PF_charcount,
|
||||
PF_setinfokey,
|
||||
};
|
||||
|
||||
int sv_numbuiltins = sizeof (sv_builtins) / sizeof (sv_builtins[0]);
|
||||
|
|
|
@ -59,7 +59,7 @@ func_t EndFrame;
|
|||
func_t SpectatorConnect;
|
||||
func_t SpectatorDisconnect;
|
||||
func_t SpectatorThink;
|
||||
func_t SetUserInfo;
|
||||
func_t UserInfoCallback;
|
||||
|
||||
static int reserved_edicts = MAX_CLIENTS;
|
||||
|
||||
|
@ -256,7 +256,7 @@ SV_LoadProgs (void)
|
|||
|
||||
// Zoid, find the spectator functions
|
||||
SpectatorConnect = SpectatorThink = SpectatorDisconnect = 0;
|
||||
SetUserInfo = 0;
|
||||
UserInfoCallback = 0;
|
||||
|
||||
if ((f = ED_FindFunction (&sv_pr_state, "SpectatorConnect")) != NULL)
|
||||
SpectatorConnect = (func_t) (f - sv_pr_state.pr_functions);
|
||||
|
@ -264,8 +264,8 @@ SV_LoadProgs (void)
|
|||
SpectatorThink = (func_t) (f - sv_pr_state.pr_functions);
|
||||
if ((f = ED_FindFunction (&sv_pr_state, "SpectatorDisconnect")) != NULL)
|
||||
SpectatorDisconnect = (func_t) (f - sv_pr_state.pr_functions);
|
||||
if ((f = ED_FindFunction (&sv_pr_state, "SetUserInfo")) != NULL)
|
||||
SetUserInfo = (func_t) (f - sv_pr_state.pr_functions);
|
||||
if ((f = ED_FindFunction (&sv_pr_state, "UserInfoCallback")) != NULL)
|
||||
UserInfoCallback = (func_t) (f - sv_pr_state.pr_functions);
|
||||
|
||||
// 2000-01-02 EndFrame function by Maddes/FrikaC
|
||||
EndFrame = 0;
|
||||
|
|
|
@ -1105,14 +1105,15 @@ SV_SetInfo_f (void)
|
|||
return; // don't set priveledged values
|
||||
|
||||
|
||||
if (SetUserInfo) {
|
||||
if (UserInfoCallback) {
|
||||
float ret;
|
||||
|
||||
*sv_globals.self = EDICT_TO_PROG (&sv_pr_state, host_client);
|
||||
G_var (&sv_pr_state, OFS_PARM0, string) = PR_SetString (&sv_pr_state,
|
||||
Cmd_Argv (1));
|
||||
G_var (&sv_pr_state, OFS_PARM1, string) = PR_SetString (&sv_pr_state,
|
||||
Cmd_Argv (2));
|
||||
PR_ExecuteProgram (&sv_pr_state, SetUserInfo);
|
||||
PR_ExecuteProgram (&sv_pr_state, UserInfoCallback);
|
||||
ret = G_FLOAT (&sv_pr_state, OFS_RETURN); // get the return value
|
||||
if (!ret)
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue