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
4. Сделать HOOK для определения типа вывода OK
5. подключить кастомный хандлер для ошибок
6. погасить рендер при фатальной ошибке
platform.dll
1. разобраться наконец с записью файлов

View File

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

View File

@ -81,6 +81,25 @@ void SV_AddCvarLump( dsavehdr_t *hdr, file_t *f )
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;
/*
@ -115,7 +134,7 @@ void SV_WriteSaveFile( char *name )
//write lumps
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));
ge->WriteLump ( header, savfile, LUMP_GAMELEVEL);
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 )
{
char *in;
int size;
int i, len = 0;
in = (void *)(sav_base + l->fileofs);
if (l->filelen % sizeof(*in)) Com_Error (ERR_DROP, "Sav_LoadCfgString: funny lump size\n" );
size = l->filelen / sizeof(*in);
strlcpy((char *)sv.configstrings, in, size );
//unpack the cfg string data
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 )

View File

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