25 Jul 2007

This commit is contained in:
g-cont 2007-07-25 00:00:00 +04:00 committed by Alibek Omarov
parent a5f7ee5e3d
commit 9327f82918
7 changed files with 263 additions and 210 deletions

View File

@ -31,6 +31,7 @@ launcher.dll
3. Оставить только одну консоль win32 OK 3. Оставить только одну консоль win32 OK
4. Сделать HOOK для определения типа вывода OK 4. Сделать HOOK для определения типа вывода OK
5. подключить кастомный хандлер для ошибок 5. подключить кастомный хандлер для ошибок
6. погасить рендер при фатальной ошибке
platform.dll platform.dll
1. разобраться наконец с записью файлов 1. разобраться наконец с записью файлов

View File

@ -967,7 +967,7 @@ void SCR_ExecuteLayoutString (char *s)
while (s) while (s)
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
if(!token) break;//strange bug if(!token) break;
if (!strcmp(token, "xl")) if (!strcmp(token, "xl"))
{ {
@ -987,7 +987,6 @@ void SCR_ExecuteLayoutString (char *s)
x = viddef.width/2 - 160 + atoi(token); x = viddef.width/2 - 160 + atoi(token);
continue; continue;
} }
if (!strcmp(token, "yt")) if (!strcmp(token, "yt"))
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
@ -1006,13 +1005,12 @@ void SCR_ExecuteLayoutString (char *s)
y = viddef.height/2 - 120 + atoi(token); y = viddef.height/2 - 120 + atoi(token);
continue; continue;
} }
if (!strcmp(token, "pic")) if (!strcmp(token, "pic"))
{ // draw a pic from a stat number {
// draw a pic from a stat number
token = COM_Parse (&s); token = COM_Parse (&s);
value = cl.frame.playerstate.stats[atoi(token)]; value = cl.frame.playerstate.stats[atoi(token)];
if (value >= MAX_IMAGES) if (value >= MAX_IMAGES) Com_Error (ERR_DROP, "Pic >= MAX_IMAGES");
Com_Error (ERR_DROP, "Pic >= MAX_IMAGES");
if (cl.configstrings[CS_IMAGES+value]) if (cl.configstrings[CS_IMAGES+value])
{ {
SCR_AddDirtyPoint (x, y); SCR_AddDirtyPoint (x, y);
@ -1021,9 +1019,9 @@ void SCR_ExecuteLayoutString (char *s)
} }
continue; continue;
} }
if (!strcmp(token, "client")) if (!strcmp(token, "client"))
{ // draw a deathmatch client block {
// draw a deathmatch client block
int score, ping, time; int score, ping, time;
token = COM_Parse (&s); token = COM_Parse (&s);
@ -1059,10 +1057,10 @@ void SCR_ExecuteLayoutString (char *s)
re.DrawPic (x, y, ci->iconname); re.DrawPic (x, y, ci->iconname);
continue; continue;
} }
if (!strcmp(token, "ctf")) if (!strcmp(token, "ctf"))
{ // draw a ctf client block {
int score, ping; // draw a ctf client block
int score, ping;
char block[80]; char block[80];
token = COM_Parse (&s); token = COM_Parse (&s);
@ -1083,29 +1081,27 @@ void SCR_ExecuteLayoutString (char *s)
token = COM_Parse (&s); token = COM_Parse (&s);
ping = atoi(token); ping = atoi(token);
if (ping > 999) if (ping > 999) ping = 999;
ping = 999;
sprintf(block, "%3d %3d %-12.12s", score, ping, ci->name); sprintf(block, "%3d %3d %-12.12s", score, ping, ci->name);
if (value == cl.playernum) if (value == cl.playernum)
DrawAltString (x, y, block); DrawAltString (x, y, block);
else else DrawString (x, y, block);
DrawString (x, y, block);
continue; continue;
} }
if (!strcmp(token, "picn")) if (!strcmp(token, "picn"))
{ // draw a pic from a name {
// draw a pic from a name
token = COM_Parse (&s); token = COM_Parse (&s);
SCR_AddDirtyPoint (x, y); SCR_AddDirtyPoint (x, y);
SCR_AddDirtyPoint (x+23, y+23); SCR_AddDirtyPoint (x+23, y+23);
re.DrawPic (x, y, token); re.DrawPic (x, y, token);
continue; continue;
} }
if (!strcmp(token, "num")) if (!strcmp(token, "num"))
{ // draw a number {
// draw a number
token = COM_Parse (&s); token = COM_Parse (&s);
width = atoi(token); width = atoi(token);
token = COM_Parse (&s); token = COM_Parse (&s);
@ -1113,19 +1109,16 @@ void SCR_ExecuteLayoutString (char *s)
SCR_DrawField (x, y, 0, width, value); SCR_DrawField (x, y, 0, width, value);
continue; continue;
} }
if (!strcmp(token, "hnum")) if (!strcmp(token, "hnum"))
{ // health number {
// health number
int color; int color;
width = 3; width = 3;
value = cl.frame.playerstate.stats[STAT_HEALTH]; value = cl.frame.playerstate.stats[STAT_HEALTH];
if (value > 25) if (value > 25) color = 0; // green
color = 0; // green else if (value > 0) color = (cl.frame.serverframe>>2) & 1; // flash
else if (value > 0) else color = 1;
color = (cl.frame.serverframe>>2) & 1; // flash
else
color = 1;
if (cl.frame.playerstate.stats[STAT_FLASHES] & 1) if (cl.frame.playerstate.stats[STAT_FLASHES] & 1)
re.DrawPic (x, y, "field_3"); re.DrawPic (x, y, "field_3");
@ -1133,19 +1126,16 @@ void SCR_ExecuteLayoutString (char *s)
SCR_DrawField (x, y, color, width, value); SCR_DrawField (x, y, color, width, value);
continue; continue;
} }
if (!strcmp(token, "anum")) if (!strcmp(token, "anum"))
{ // ammo number {
// ammo number
int color; int color;
width = 3; width = 3;
value = cl.frame.playerstate.stats[STAT_AMMO]; value = cl.frame.playerstate.stats[STAT_AMMO];
if (value > 5) if (value > 5) color = 0; // green
color = 0; // green else if (value >= 0) color = (cl.frame.serverframe>>2) & 1; // flash
else if (value >= 0) else continue; // negative number = don't show
color = (cl.frame.serverframe>>2) & 1; // flash
else
continue; // negative number = don't show
if (cl.frame.playerstate.stats[STAT_FLASHES] & 4) if (cl.frame.playerstate.stats[STAT_FLASHES] & 4)
re.DrawPic (x, y, "field_3"); re.DrawPic (x, y, "field_3");
@ -1153,17 +1143,16 @@ void SCR_ExecuteLayoutString (char *s)
SCR_DrawField (x, y, color, width, value); SCR_DrawField (x, y, color, width, value);
continue; continue;
} }
if (!strcmp(token, "rnum")) if (!strcmp(token, "rnum"))
{ // armor number {
int color; // armor number
int color;
width = 3; width = 3;
value = cl.frame.playerstate.stats[STAT_ARMOR]; value = cl.frame.playerstate.stats[STAT_ARMOR];
if (value < 1) if (value < 1) continue;
continue;
color = 0; // green color = 0; // green
if (cl.frame.playerstate.stats[STAT_FLASHES] & 2) if (cl.frame.playerstate.stats[STAT_FLASHES] & 2)
re.DrawPic (x, y, "field_3"); re.DrawPic (x, y, "field_3");
@ -1171,8 +1160,6 @@ void SCR_ExecuteLayoutString (char *s)
SCR_DrawField (x, y, color, width, value); SCR_DrawField (x, y, color, width, value);
continue; continue;
} }
if (!strcmp(token, "stat_string")) if (!strcmp(token, "stat_string"))
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
@ -1185,51 +1172,51 @@ void SCR_ExecuteLayoutString (char *s)
DrawString (x, y, cl.configstrings[index]); DrawString (x, y, cl.configstrings[index]);
continue; continue;
} }
if (!strcmp(token, "cstring")) if (!strcmp(token, "cstring"))
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
DrawHUDString (token, x, y, 320, 0); DrawHUDString (token, x, y, 320, 0);
continue; continue;
} }
if (!strcmp(token, "string")) if (!strcmp(token, "string"))
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
DrawString (x, y, token); DrawString (x, y, token);
continue; continue;
} }
if (!strcmp(token, "cstring2")) if (!strcmp(token, "cstring2"))
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
DrawHUDString (token, x, y, 320,0x80); DrawHUDString (token, x, y, 320,0x80);
continue; continue;
} }
if (!strcmp(token, "string2")) if (!strcmp(token, "string2"))
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
DrawAltString (x, y, token); DrawAltString (x, y, token);
continue; continue;
} }
if (!strcmp(token, "if")) if (!strcmp(token, "if"))
{ // draw a number { // draw a number
token = COM_Parse (&s); token = COM_Parse (&s);
value = cl.frame.playerstate.stats[atoi(token)]; value = cl.frame.playerstate.stats[atoi(token)];
if (!value)
{ // skip to endif if (!value) //find "}"
while (s && strcmp(token, "endif") ) {
while (s && strcmp(token, "}") )
{
token = COM_Parse (&s);
}
}
else // find "{"
{
while (s && strcmp(token, "{") )
{ {
token = COM_Parse (&s); token = COM_Parse (&s);
} }
} }
continue; continue;
} }
} }
} }

86
engine/engine.plg Normal file
View File

@ -0,0 +1,86 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: engine - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\Temp\RSP1491.tmp" with contents
[
/nologo /MTd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "prvm" /I "common" /I "server" /I "client" /I "../public" /I "../platform/formats" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\engine\!debug/" /Fo"..\temp\engine\!debug/" /Fd"..\temp\engine\!debug/" /FD /c
"D:\XASH3D\src_main\!source\engine\server\sv_save.c"
]
Creating command line "cl.exe @C:\Temp\RSP1491.tmp"
Creating temporary file "C:\Temp\RSP1492.tmp" with contents
[
winmm.lib wsock32.lib kernel32.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\engine\!debug/engine.pdb" /debug /machine:I386 /out:"..\temp\engine\!debug/engine.dll" /implib:"..\temp\engine\!debug/engine.lib" /pdbtype:sept
"\XASH3D\src_main\!source\temp\engine\!debug\cd_win.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_cin.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_ents.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_fx.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_input.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_inv.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_main.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_newfx.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_parse.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_pred.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_scrn.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_tent.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cl_view.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cmd.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cmodel.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\common.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\console.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\crc.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\cvar.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\host.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\in_win.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\keys.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\m_flash.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\md4.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\menu.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\net_chan.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\net_wins.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\pmove.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\q_shared.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\qmenu.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\snd_dma.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\snd_mem.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\snd_mix.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\snd_win.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_ccmds.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_ents.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_game.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_init.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_main.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_save.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_send.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_studio.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_user.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\sv_world.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\system.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\vid_dll.obj"
"\XASH3D\src_main\!source\temp\engine\!debug\vid_menu.obj"
]
Creating command line "link.exe @C:\Temp\RSP1492.tmp"
Creating temporary file "C:\Temp\RSP1493.bat" with contents
[
@echo off
copy \XASH3D\src_main\!source\temp\engine\!debug\engine.dll "D:\Xash3D\bin\engine.dll"
]
Creating command line "C:\Temp\RSP1493.bat"
Compiling...
sv_save.c
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \XASH3D\src_main\!source\temp\engine\!debug\engine.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.
<h3>Results</h3>
engine.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

@ -213,15 +213,14 @@ void PF_Configstring (int index, char *val)
if (index < 0 || index >= MAX_CONFIGSTRINGS) if (index < 0 || index >= MAX_CONFIGSTRINGS)
Com_Error (ERR_DROP, "configstring: bad index %i value %s\n", index, val); Com_Error (ERR_DROP, "configstring: bad index %i value %s\n", index, val);
if (!val) if (!val) val = "";
val = "";
// change the string in sv // change the string in sv
strcpy (sv.configstrings[index], val); strcpy (sv.configstrings[index], val);
if (sv.state != ss_loading) if (sv.state != ss_loading)
{ // send the update to everyone {
// send the update to everyone
SZ_Clear (&sv.multicast); SZ_Clear (&sv.multicast);
MSG_WriteChar (&sv.multicast, svc_configstring); MSG_WriteChar (&sv.multicast, svc_configstring);
MSG_WriteShort (&sv.multicast, index); MSG_WriteShort (&sv.multicast, index);

View File

@ -81,6 +81,25 @@ void SV_AddCvarLump( dsavehdr_t *hdr, file_t *f )
Z_Free( dout ); Z_Free( dout );
} }
void SV_AddCStrLump( dsavehdr_t *hdr, file_t *f )
{
int i, strsize, bufsize = 0;
char *csbuffer = Z_Malloc( MAX_CONFIGSTRINGS * MAX_QPATH );
//pack the cfg string data
for(i = 0; i < MAX_CONFIGSTRINGS; i++)
{
strsize = strlen(sv.configstrings[i]);
if(strsize > MAX_QPATH) strsize = MAX_QPATH; //critical stuff
strsize++;
strlcpy(csbuffer + bufsize, sv.configstrings[i], strsize );
bufsize += strsize;
}
SV_AddSaveLump( hdr, f, LUMP_CFGSTRING, csbuffer, bufsize );
Z_Free( csbuffer ); // free memory
}
byte *sav_base; byte *sav_base;
/* /*
@ -115,7 +134,7 @@ void SV_WriteSaveFile( char *name )
//write lumps //write lumps
SV_AddSaveLump( header, savfile, LUMP_COMMENTS, comment, sizeof(comment)); SV_AddSaveLump( header, savfile, LUMP_COMMENTS, comment, sizeof(comment));
SV_AddSaveLump( header, savfile, LUMP_CFGSTRING, sv.configstrings, sizeof(sv.configstrings)); SV_AddCStrLump( header, savfile );
SV_AddSaveLump( header, savfile, LUMP_AREASTATE, portalopen, sizeof(portalopen)); SV_AddSaveLump( header, savfile, LUMP_AREASTATE, portalopen, sizeof(portalopen));
ge->WriteLump ( header, savfile, LUMP_GAMELEVEL); ge->WriteLump ( header, savfile, LUMP_GAMELEVEL);
SV_AddSaveLump( header, savfile, LUMP_MAPCMDS, svs.mapcmd, sizeof(svs.mapcmd)); SV_AddSaveLump( header, savfile, LUMP_MAPCMDS, svs.mapcmd, sizeof(svs.mapcmd));
@ -174,13 +193,19 @@ void Sav_LoadMapCmds( lump_t *l )
void Sav_LoadCfgString( lump_t *l ) void Sav_LoadCfgString( lump_t *l )
{ {
char *in; char *in;
int size; int i, len = 0;
in = (void *)(sav_base + l->fileofs); in = (void *)(sav_base + l->fileofs);
if (l->filelen % sizeof(*in)) Com_Error (ERR_DROP, "Sav_LoadCfgString: funny lump size\n" ); if (l->filelen % sizeof(*in)) Com_Error (ERR_DROP, "Sav_LoadCfgString: funny lump size\n" );
size = l->filelen / sizeof(*in); //unpack the cfg string data
strlcpy((char *)sv.configstrings, in, size ); for(i = 0; i < MAX_CONFIGSTRINGS; i++)
{
len = 0;
while(*in != '\0') { in++, len++; };
if(!in) break; //corrupted lump ?
strlcpy(sv.configstrings[i], in, len );
}
} }
void Sav_LoadAreaPortals( lump_t *l ) void Sav_LoadAreaPortals( lump_t *l )

View File

@ -964,226 +964,165 @@ void SpawnEntities (char *mapname, char *entities, char *spawnpoint)
#endif #endif
#ifdef WESQ2
char *single_statusbar = char *single_statusbar =
"yb -24 " "yb -24 "
// pressure
"if 18 "
" xv 0 "
" num 5 19 "
" xv 90 "
" pic 18 "
"endif "
// temperature
"if 20 "
" xv 200 "
" num 5 21 "
" xv 290 "
" pic 20 "
"endif "
// vehicle speed
"if 22 "
" yb -90 "
" xv 128 "
" pic 22 "
"endif "
;
char *dm_statusbar =
"yb -24 "
// pressure
"if 18 "
" xv 80 "
" pic 18 "
" xv 106 "
" num 5 19 "
"endif "
// temperature
"if 20 "
" xv 220 "
" pic 20 "
" xv 246 "
" num 5 21 "
"endif "
// vehicle speed
"if 22 "
" yb -90 "
" xv 128 "
" pic 22 "
"endif "
;
#else
char *single_statusbar =
"yb -24 "
// health // health
"xv 0 " "xv 0 "
"hnum " "hnum "
"xv 50 " "xv 50 "
"pic 0 " "pic 0 "
// ammo // ammo
"if 2 " "if 2 "
" xv 100 " "{ xv 100 "
" anum " "anum "
" xv 150 " "xv 150 "
" pic 2 " "pic 2 "
"endif " "} "
// armor // armor
"if 4 " "if 4 "
" xv 200 " "{ xv 200 "
" rnum " "rnum "
" xv 250 " "xv 250 "
" pic 4 " "pic 4 "
"endif " "} "
// selected item // selected item
"if 6 " "if 6 "
" xv 296 " "{ xv 296 "
" pic 6 " "pic 6 "
"endif " "} "
"yb -50 " "yb -50 "
// picked up item // picked up item
"if 7 " "if 7 "
" xv 0 " "{ xv 0 "
" pic 7 " "pic 7 "
" xv 26 " "xv 26 "
" yb -42 " "yb -42 "
" stat_string 8 " "stat_string 8 "
" yb -50 " "yb -50 "
"endif " "} "
// timer (was xv 262) // timer (was xv 262)
"if 9 " "if 9 "
" xv 230 " "{ xv 230 "
" num 4 10 " "num 4 10 "
" xv 296 " "xv 296 "
" pic 9 " "pic 9 "
"endif " "} "
// help / weapon icon // help / weapon icon
"if 11 " "if 11 "
" xv 148 " "{ xv 148 "
" pic 11 " "pic 11 "
"endif " "} "
// vehicle speed // vehicle speed
"if 22 " "if 22 "
" yb -90 " "{ yb -90 "
" xv 128 " "xv 128 "
" pic 22 " "pic 22 "
"endif " "} "
// zoom // zoom
"if 23 " "if 23 "
" yv 0 " "{ yv 0 "
" xv 0 " "xv 0 "
" pic 23 " "pic 23 "
"endif " "} "
; ;
char *dm_statusbar = char *dm_statusbar =
"yb -24 " "yb -24 "
// health // health
"xv 0 " "xv 0 "
"hnum " "hnum "
"xv 50 " "xv 50 "
"pic 0 " "pic 0 "
// ammo // ammo
"if 2 " "if 2 "
" xv 100 " "{ xv 100 "
" anum " "anum "
" xv 150 " "xv 150 "
" pic 2 " "pic 2 "
"endif " "} "
// armor // armor
"if 4 " "if 4 "
" xv 200 " "{ xv 200 "
" rnum " "rnum "
" xv 250 " "xv 250 "
" pic 4 " "pic 4 "
"endif " "} "
// selected item // selected item
"if 6 " "if 6 "
" xv 296 " "{ xv 296 "
" pic 6 " "pic 6 "
"endif " "} "
"yb -50 " "yb -50 "
// picked up item // picked up item
"if 7 " "if 7 "
" xv 0 " "{ xv 0 "
" pic 7 " "pic 7 "
" xv 26 " "xv 26 "
" yb -42 " "yb -42 "
" stat_string 8 " "stat_string 8 "
" yb -50 " "yb -50 "
"endif " "} "
// timer // timer
"if 9 " "if 9 "
" xv 230 " "{ xv 230 "
" num 4 10 " "num 4 10 "
" xv 296 " "xv 296 "
" pic 9 " "pic 9 "
"endif " "} "
// help / weapon icon // help / weapon icon
"if 11 " "if 11 "
" xv 148 " "{ xv 148 "
" pic 11 " "pic 11 "
"endif " "} "
// frags // frags
"xr -50 " "xr -50 "
"yt 2 " "yt 2 "
"num 3 14 " "num 3 14 "
// spectator // spectator
"if 17 " "if 17 "
"xv 0 " "{ xv 0 "
"yb -58 " "yb -58 "
"string2 \"SPECTATOR MODE\" " "string2 \"SPECTATOR MODE\" "
"endif " "} "
// chase camera // chase camera
"if 16 " "if 16 "
"xv 0 " "{ xv 0 "
"yb -68 " "yb -68 "
"string \"Chasing\" " "string \"Chasing\" "
"xv 64 " "xv 64 "
"stat_string 16 " "stat_string 16 "
"endif " "} "
// vehicle speed // vehicle speed
"if 22 " "if 22 "
" yb -90 " "{ yb -90 "
" xv 128 " "xv 128 "
" pic 22 " "pic 22 "
"endif " "} "
; ;
#endif // ifdef WESQ2
/*QUAKED worldspawn (0 0 0) ? /*QUAKED worldspawn (0 0 0) ?
Only used for the world. Only used for the world.

16
server/server.plg Normal file
View File

@ -0,0 +1,16 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: server - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
<h3>Results</h3>
server.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>