playing with teamplay code and plugins
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@265 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
9cf99374db
commit
b08fe6561b
3 changed files with 107 additions and 65 deletions
|
@ -98,6 +98,8 @@ cvar_t bottomcolor = {"bottomcolor", "", NULL, CVAR_ARCHIVE | CVAR_USERINFO};
|
|||
cvar_t rate = {"rate", "2500", NULL, CVAR_ARCHIVE | CVAR_USERINFO};
|
||||
cvar_t noaim = {"noaim", "", NULL, CVAR_ARCHIVE | CVAR_USERINFO};
|
||||
cvar_t msg = {"msg", "1", NULL, CVAR_ARCHIVE | CVAR_USERINFO};
|
||||
cvar_t cl_nofake = {"cl_nofake", "2"};
|
||||
cvar_t cl_chatsound = {"cl_chatsound", "1"};
|
||||
|
||||
cvar_t cl_item_bobbing = {"cl_model_bobbing", "0"};
|
||||
|
||||
|
@ -2037,6 +2039,9 @@ void CL_Init (void)
|
|||
Cvar_Register (&msg, cl_controlgroup);
|
||||
Cvar_Register (&noaim, cl_controlgroup);
|
||||
|
||||
Cvar_Register (&cl_nofake, cl_controlgroup);
|
||||
Cvar_Register (&cl_chatsound, cl_controlgroup);
|
||||
|
||||
Cvar_Register (&requiredownloads, cl_controlgroup);
|
||||
Cvar_Register (&cl_standardchat, cl_controlgroup);
|
||||
Cvar_Register (&cl_nopext, cl_controlgroup);
|
||||
|
@ -2349,7 +2354,9 @@ void Host_Frame (float time)
|
|||
POP3_Think();
|
||||
#endif
|
||||
|
||||
#ifdef PLUGINS
|
||||
Plug_Tick();
|
||||
#endif
|
||||
|
||||
// decide the simulation time
|
||||
realtime += time;
|
||||
|
@ -2384,11 +2391,9 @@ void Host_Frame (float time)
|
|||
return; // framerate is too high
|
||||
|
||||
*/
|
||||
Mod_Think();
|
||||
if (!CL_FilterTime(realtime - oldrealtime))
|
||||
{
|
||||
Mod_Think();
|
||||
return;
|
||||
}
|
||||
|
||||
host_frametime = realtime - oldrealtime;
|
||||
oldrealtime = realtime;
|
||||
|
@ -2640,6 +2645,10 @@ void Host_Init (quakeparms_t *parms)
|
|||
|
||||
UI_Init();
|
||||
|
||||
#ifdef PLUGINS
|
||||
Plug_Init();
|
||||
#endif
|
||||
|
||||
|
||||
Con_TPrintf (TL_NL);
|
||||
#ifdef VERSION3PART
|
||||
|
@ -2661,8 +2670,6 @@ Con_TPrintf (TL_NL);
|
|||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "
|
||||
"\n"
|
||||
"See the GNU General Public License for more details.\n");
|
||||
|
||||
Plug_Init();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2429,19 +2429,6 @@ void CL_SetStat (int pnum, int stat, int value)
|
|||
if ( (value & (1<<j)) && !(cl.stats[pnum][stat] & (1<<j)))
|
||||
cl.item_gettime[pnum][j] = cl.time;
|
||||
}
|
||||
if (stat == STAT_HEALTH && cl.stats[pnum][stat] != value)
|
||||
{
|
||||
if (value <= 0 && cl.stats[pnum][stat] > 0)
|
||||
{
|
||||
if (Cmd_AliasExist("f_death", RESTRICT_LOCAL))
|
||||
Cbuf_AddText("f_death\n", RESTRICT_LOCAL);
|
||||
}
|
||||
if (value > 0 && cl.stats[pnum][stat] <= 0)
|
||||
{
|
||||
if (Cmd_AliasExist("f_spawn", RESTRICT_LOCAL))
|
||||
Cbuf_AddText("f_spawn\n", RESTRICT_LOCAL);
|
||||
}
|
||||
}
|
||||
|
||||
if (stat == STAT_VIEWHEIGHT && cls.z_ext & Z_EXT_VIEWHEIGHT)
|
||||
cl.viewheight[pnum] = value;
|
||||
|
@ -2454,6 +2441,9 @@ void CL_SetStat (int pnum, int stat, int value)
|
|||
}
|
||||
|
||||
cl.stats[pnum][stat] = value;
|
||||
|
||||
if (pnum == 0)
|
||||
TP_StatChanged(stat, value);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3098,15 +3088,12 @@ void CLQ2_ParseMuzzleFlash2 (void)
|
|||
|
||||
int getplayerid(char *msg);
|
||||
int build_number( void );
|
||||
//return if we want to print the message.
|
||||
qboolean CL_ParseChat(char *text)
|
||||
{
|
||||
extern cvar_t cl_chatsound, cl_nofake;
|
||||
|
||||
char *s;
|
||||
qboolean sameteam;
|
||||
int fromid;
|
||||
static float versionresponsetime;
|
||||
static float modifiedresponsetime;
|
||||
static float skinsresponsetime;
|
||||
static float serverresponsetime;
|
||||
s = strchr(text, ':'); //Hmm.. FIXME: Can a player's name contain a ':'?... I think the answer is a yes... Hmmm.. problematic eh?
|
||||
if (!s || s[1] != ' ') //wasn't a real chat...
|
||||
return true;
|
||||
|
@ -3114,54 +3101,84 @@ qboolean CL_ParseChat(char *text)
|
|||
Sys_ServerActivity(); //chat always flashes the screen..
|
||||
|
||||
//check f_ stuff
|
||||
if (!strncmp(s+2, "f_version", 9) && versionresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
if (!strncmp(s+2, "f_", 2))
|
||||
{
|
||||
ValidationPrintVersion(text);
|
||||
versionresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
else if (!strncmp(s+2, "f_server", 9) && serverresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
Validation_Server();
|
||||
serverresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
else if (!strncmp(s+2, "f_modified", 10) && modifiedresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
Validation_FilesModified();
|
||||
modifiedresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
else if (!strncmp(s+2, "f_skins", 7) && skinsresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
Validation_Skins();
|
||||
skinsresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
static float versionresponsetime;
|
||||
static float modifiedresponsetime;
|
||||
static float skinsresponsetime;
|
||||
static float serverresponsetime;
|
||||
|
||||
if (!strncmp(s+2, "f_", 2)) //stop now. No parsing of 'f_' commands. None at all. Nope. Don't even try it.
|
||||
if (!strncmp(s+2, "f_version", 9) && versionresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
ValidationPrintVersion(text);
|
||||
versionresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
else if (!strncmp(s+2, "f_server", 9) && serverresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
Validation_Server();
|
||||
serverresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
else if (!strncmp(s+2, "f_modified", 10) && modifiedresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
Validation_FilesModified();
|
||||
modifiedresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
else if (!strncmp(s+2, "f_skins", 7) && skinsresponsetime < Sys_DoubleTime()) //respond to it.
|
||||
{
|
||||
Validation_Skins();
|
||||
skinsresponsetime = Sys_DoubleTime() + 5;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Validation_CheckIfResponse(text);
|
||||
|
||||
fromid = getplayerid(text);
|
||||
if (!stricmp(Info_ValueForKey(cl.players[fromid].userinfo, "team"), Info_ValueForKey(cls.userinfo, "team")))
|
||||
sameteam = true;
|
||||
else
|
||||
sameteam = false;
|
||||
|
||||
if (Cmd_FilterMessage(text, sameteam))
|
||||
return false;
|
||||
if (sameteam)
|
||||
Cmd_MessageTrigger(s, 0);
|
||||
|
||||
{
|
||||
int flags;
|
||||
int offset=0;
|
||||
qboolean suppress_talksound;
|
||||
char *p;
|
||||
|
||||
flags = TP_CategorizeMessage (s, &offset);
|
||||
|
||||
if (flags == 2 && !TP_FilterMessage(s + offset))
|
||||
return false;
|
||||
|
||||
suppress_talksound = false;
|
||||
|
||||
if (flags == 2)
|
||||
suppress_talksound = TP_CheckSoundTrigger (s + offset);
|
||||
|
||||
if (!cl_chatsound.value || // no sound at all
|
||||
(cl_chatsound.value == 2 && flags != 2)) // only play sound in mm2
|
||||
suppress_talksound = true;
|
||||
|
||||
if (!suppress_talksound)
|
||||
S_LocalSound ("misc/talk.wav");
|
||||
|
||||
if (cl_nofake.value == 1 || (cl_nofake.value == 2 && flags != 2)) {
|
||||
for (p = s; *p; p++)
|
||||
if (*p == 13 || (*p == 10 && p[1]))
|
||||
*p = ' ';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
char printtext[1024];
|
||||
void CL_ParsePrint(char *msg)
|
||||
void CL_ParsePrint(char *msg, int level)
|
||||
{
|
||||
strncat(printtext, msg, sizeof(printtext)-1);
|
||||
while((msg = strchr(printtext, '\n')))
|
||||
{
|
||||
*msg = '\0';
|
||||
Stats_ParsePrintLine(printtext);
|
||||
if (level != PRINT_CHAT)
|
||||
Stats_ParsePrintLine(printtext);
|
||||
TP_SearchForMsgTriggers(msg, level);
|
||||
msg++;
|
||||
|
||||
memmove(printtext, msg, strlen(msg)+1);
|
||||
|
@ -3319,8 +3336,8 @@ void CL_ParseServerMessage (void)
|
|||
{
|
||||
if (CL_ParseChat(s))
|
||||
{
|
||||
if (!TP_SoundTrigger(s))
|
||||
S_LocalSound ("misc/talk.wav");
|
||||
CL_ParsePrint(s, i);
|
||||
|
||||
if (!cl_standardchat.value)
|
||||
Con_TPrintf (TL_CSPECIALPRINT, getplayerchatcolour(s)%6+'1', s); //don't ever print it in white.
|
||||
else
|
||||
|
@ -3333,7 +3350,7 @@ void CL_ParseServerMessage (void)
|
|||
}
|
||||
else
|
||||
{
|
||||
CL_ParsePrint(s);
|
||||
CL_ParsePrint(s, i);
|
||||
Con_TPrintf (TL_ST, Translate(s));
|
||||
}
|
||||
break;
|
||||
|
@ -3755,12 +3772,15 @@ void CLQ2_ParseServerMessage (void)
|
|||
{
|
||||
S_LocalSound ("misc/talk.wav");
|
||||
con_ormask = 0x8000;
|
||||
CL_ParseChat(s);
|
||||
Con_TPrintf (TL_CSPECIALPRINT, getplayerchatcolour(s)%6+'1', s);
|
||||
if (CL_ParseChat(s))
|
||||
{
|
||||
CL_ParsePrint(s, i);
|
||||
Con_TPrintf (TL_CSPECIALPRINT, getplayerchatcolour(s)%6+'1', s);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CL_ParsePrint(s);
|
||||
CL_ParsePrint(s, i);
|
||||
Con_TPrintf (TL_ST, Translate(s));
|
||||
}
|
||||
con_ormask = 0;
|
||||
|
@ -3876,8 +3896,19 @@ void CLNQ_ParseServerMessage (void)
|
|||
|
||||
case svc_print:
|
||||
s = MSG_ReadString ();
|
||||
CL_ParsePrint(s);
|
||||
Con_TPrintf (TL_ST, Translate(s));
|
||||
if (*s == 1 || *s == 2)
|
||||
{
|
||||
if (CL_ParseChat(s+1))
|
||||
{
|
||||
CL_ParsePrint(s+1, 3);
|
||||
Con_TPrintf (TL_ST, Translate(s));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CL_ParsePrint(s, 3);
|
||||
Con_TPrintf (TL_ST, Translate(s));
|
||||
}
|
||||
con_ormask = 0;
|
||||
break;
|
||||
|
||||
|
|
|
@ -909,10 +909,11 @@ void M_Draw (int uimenu)
|
|||
case m_complex:
|
||||
M_Complex_Draw ();
|
||||
break;
|
||||
|
||||
#ifdef PLUGINS
|
||||
case m_plugin:
|
||||
Plug_Menu_Event (0, (int)(realtime*1000));
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (m_entersound)
|
||||
|
@ -958,10 +959,11 @@ void M_Keydown (int key)
|
|||
case m_complex:
|
||||
M_Complex_Key (key);
|
||||
return;
|
||||
|
||||
#ifdef PLUGINS
|
||||
case m_plugin:
|
||||
Plug_Menu_Event (1, key);
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -973,9 +975,11 @@ void M_Keyup (int key)
|
|||
case m_xwindows:
|
||||
XWindows_Keyup(key);
|
||||
return;
|
||||
#ifdef PLUGINS
|
||||
case m_plugin:
|
||||
Plug_Menu_Event (2, key);
|
||||
return;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue