support for /me, as well as autodownloading of the palette (for when running off q3 data)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@452 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
e19ea04207
commit
f8629df2a8
1 changed files with 57 additions and 16 deletions
|
@ -669,7 +669,17 @@ void Model_NextDownload (void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cls.downloadtype = dl_model;
|
cls.downloadtype = dl_model;
|
||||||
|
|
||||||
|
if (!COM_FCheckExists("pics/colormap.pcx")) //no false alarms if on q2 data.
|
||||||
|
{
|
||||||
|
if (!CL_CheckOrDownloadFile("gfx/colormap.lmp", false))
|
||||||
|
return;
|
||||||
|
if (!CL_CheckOrDownloadFile("gfx/palette.lmp", false))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (
|
for (
|
||||||
; cl.model_name[cls.downloadnumber][0]
|
; cl.model_name[cls.downloadnumber][0]
|
||||||
; cls.downloadnumber++)
|
; cls.downloadnumber++)
|
||||||
|
@ -680,7 +690,7 @@ void Model_NextDownload (void)
|
||||||
|
|
||||||
if (!stricmp(COM_FileExtension(s), "dsp")) //doom sprites are weird, and not really downloadable via this system
|
if (!stricmp(COM_FileExtension(s), "dsp")) //doom sprites are weird, and not really downloadable via this system
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!CL_CheckOrDownloadFile(s, cls.downloadnumber==1)) //world is required to be loaded.
|
if (!CL_CheckOrDownloadFile(s, cls.downloadnumber==1)) //world is required to be loaded.
|
||||||
return; // started a download
|
return; // started a download
|
||||||
|
|
||||||
|
@ -829,15 +839,22 @@ void CL_RequestNextDownload (void)
|
||||||
|
|
||||||
if (CL_CheckOrDownloadFile(cl.downloadlist->name, true))
|
if (CL_CheckOrDownloadFile(cl.downloadlist->name, true))
|
||||||
{
|
{
|
||||||
for (i = 0; i < mod_numknown; i++) //go and load this model now.
|
if (!strcmp(cl.downloadlist->name, "gfx/palette.lmp"))
|
||||||
{
|
{
|
||||||
if (!strcmp(mod_known[i].name, cl.downloadlist->name))
|
Cbuf_AddText("vid_restart\n", RESTRICT_LOCAL);
|
||||||
{
|
}
|
||||||
Mod_ForName(mod_known[i].name, false); //throw away result.
|
else
|
||||||
break;
|
{
|
||||||
}
|
for (i = 0; i < mod_numknown; i++) //go and load this model now.
|
||||||
|
{
|
||||||
|
if (!strcmp(mod_known[i].name, cl.downloadlist->name))
|
||||||
|
{
|
||||||
|
Mod_ForName(mod_known[i].name, false); //throw away result.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Skin_FlushSkin(cl.downloadlist->name);
|
||||||
}
|
}
|
||||||
Skin_FlushSkin(cl.downloadlist->name);
|
|
||||||
|
|
||||||
|
|
||||||
next = cl.downloadlist->next;
|
next = cl.downloadlist->next;
|
||||||
|
@ -1039,6 +1056,11 @@ void CL_ParseDownload (void)
|
||||||
|
|
||||||
cls.downloadmethod = DL_NONE;
|
cls.downloadmethod = DL_NONE;
|
||||||
|
|
||||||
|
if (!strcmp(cls.downloadname, "gfx/palette.lmp"))
|
||||||
|
{
|
||||||
|
Cbuf_AddText("vid_restart\n", RESTRICT_LOCAL);
|
||||||
|
}
|
||||||
|
|
||||||
*cls.downloadname = '\0';
|
*cls.downloadname = '\0';
|
||||||
cls.downloadqw = NULL;
|
cls.downloadqw = NULL;
|
||||||
cls.downloadpercent = 0;
|
cls.downloadpercent = 0;
|
||||||
|
@ -1274,11 +1296,19 @@ void CL_ParseServerData (void)
|
||||||
Con_TPrintf (TLC_LINEBREAK_NEWLEVEL);
|
Con_TPrintf (TLC_LINEBREAK_NEWLEVEL);
|
||||||
Con_TPrintf (TLC_PC_PS_NL, 2, str);
|
Con_TPrintf (TLC_PC_PS_NL, 2, str);
|
||||||
|
|
||||||
// ask for the sound list next
|
|
||||||
memset(cl.sound_name, 0, sizeof(cl.sound_name));
|
memset(cl.sound_name, 0, sizeof(cl.sound_name));
|
||||||
MSG_WriteByte (&cls.netchan.message, clc_stringcmd);
|
if (cls.fteprotocolextensions & PEXT_PK3DOWNLOADS)
|
||||||
// MSG_WriteString (&cls.netchan.message, va("soundlist %i 0", cl.servercount));
|
{
|
||||||
MSG_WriteString (&cls.netchan.message, va(soundlist_name, cl.servercount, 0));
|
MSG_WriteByte (&cls.netchan.message, clc_stringcmd);
|
||||||
|
MSG_WriteString (&cls.netchan.message, va("pk3list %i 0", cl.servercount, 0));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// ask for the sound list next
|
||||||
|
MSG_WriteByte (&cls.netchan.message, clc_stringcmd);
|
||||||
|
// MSG_WriteString (&cls.netchan.message, va("soundlist %i 0", cl.servercount));
|
||||||
|
MSG_WriteString (&cls.netchan.message, va(soundlist_name, cl.servercount, 0));
|
||||||
|
}
|
||||||
|
|
||||||
// now waiting for downloads, etc
|
// now waiting for downloads, etc
|
||||||
cls.state = ca_onserver;
|
cls.state = ca_onserver;
|
||||||
|
@ -1987,6 +2017,8 @@ void CL_ParseStatic (int version)
|
||||||
|
|
||||||
VectorCopy (es.origin, ent->origin);
|
VectorCopy (es.origin, ent->origin);
|
||||||
VectorCopy (es.angles, ent->angles);
|
VectorCopy (es.angles, ent->angles);
|
||||||
|
es.angles[0]*=-1;
|
||||||
|
AngleVectors(es.angles, ent->axis[0], ent->axis[1], ent->axis[2]);
|
||||||
|
|
||||||
if (!cl.worldmodel)
|
if (!cl.worldmodel)
|
||||||
{
|
{
|
||||||
|
@ -3148,15 +3180,15 @@ extern cvar_t cl_chatsound, cl_nofake;
|
||||||
qboolean suppress_talksound;
|
qboolean suppress_talksound;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
flags = TP_CategorizeMessage (s, &offset);
|
flags = TP_CategorizeMessage (text, &offset);
|
||||||
|
|
||||||
if (flags == 2 && !TP_FilterMessage(s + offset))
|
if (flags == 2 && !TP_FilterMessage(text + offset))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
suppress_talksound = false;
|
suppress_talksound = false;
|
||||||
|
|
||||||
if (flags == 2)
|
if (flags == 2 || (!cl.teamplay && flags))
|
||||||
suppress_talksound = TP_CheckSoundTrigger (s + offset);
|
suppress_talksound = TP_CheckSoundTrigger (text + offset);
|
||||||
|
|
||||||
if (!cl_chatsound.value || // no sound at all
|
if (!cl_chatsound.value || // no sound at all
|
||||||
(cl_chatsound.value == 2 && flags != 2)) // only play sound in mm2
|
(cl_chatsound.value == 2 && flags != 2)) // only play sound in mm2
|
||||||
|
@ -3171,7 +3203,16 @@ extern cvar_t cl_chatsound, cl_nofake;
|
||||||
*p = ' ';
|
*p = ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//funky /me stuff
|
||||||
|
p = strchr(text, ':');
|
||||||
|
if (!strncmp(p, ": /me", 5))
|
||||||
|
{
|
||||||
|
//shift name right 1 (for the *)
|
||||||
|
memmove(text+1, text, p - text);
|
||||||
|
*text = '*';
|
||||||
|
|
||||||
|
memmove(p+1, p+5, strlen(p+5)+1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue