26 Mar 2010

This commit is contained in:
g-cont 2010-03-26 00:00:00 +03:00 committed by Alibek Omarov
parent 3838496cd6
commit c02dcaa4fc
23 changed files with 440 additions and 898 deletions

View File

@ -6,30 +6,6 @@
--------------------Configuration: baserc - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP179F.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\baserc\!debug/" /Fo"..\temp\baserc\!debug/" /Fd"..\temp\baserc\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\baserc\rc_main.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP179F.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17A0.tmp" with contents
[
msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\baserc\!debug/baserc.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\baserc\!debug/baserc.dll" /implib:"..\temp\baserc\!debug/baserc.lib" /pdbtype:sept
"\Xash3D\src_main\temp\baserc\!debug\rc_main.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17A0.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17A1.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\baserc\!debug\baserc.dll "D:\Xash3D\bin\baserc.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17A1.bat""
Compiling...
rc_main.c
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\baserc\!debug\baserc.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -6,56 +6,6 @@
--------------------Configuration: cms_qf - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17AF.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\cms_qf\!debug/" /Fo"..\temp\cms_qf\!debug/" /Fd"..\temp\cms_qf\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\cms_qf\cm_debug.c"
"D:\Xash3D\src_main\cms_qf\cm_main.c"
"D:\Xash3D\src_main\cms_qf\cm_math.c"
"D:\Xash3D\src_main\cms_qf\cm_model.c"
"D:\Xash3D\src_main\cms_qf\cm_patch.c"
"D:\Xash3D\src_main\cms_qf\cm_portals.c"
"D:\Xash3D\src_main\cms_qf\cm_studio.c"
"D:\Xash3D\src_main\cms_qf\cm_test.c"
"D:\Xash3D\src_main\cms_qf\cm_trace.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17AF.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B0.tmp" with contents
[
user32.lib msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\cms_qf\!debug/cms_qf.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\cms_qf\!debug/cms_qf.dll" /implib:"..\temp\cms_qf\!debug/cms_qf.lib" /pdbtype:sept
"\Xash3D\src_main\temp\cms_qf\!debug\cm_debug.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_main.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_math.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_model.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_patch.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_portals.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_studio.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_test.obj"
"\Xash3D\src_main\temp\cms_qf\!debug\cm_trace.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B0.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B1.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\cms_qf\!debug\cms_qf.dll "D:\Xash3D\bin\cms_qf.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B1.bat""
Compiling...
cm_debug.c
cm_main.c
cm_math.c
cm_model.c
cm_patch.c
cm_portals.c
cm_studio.c
cm_test.c
cm_trace.c
Generating Code...
Linking...
Creating library ..\temp\cms_qf\!debug/cms_qf.lib and object ..\temp\cms_qf\!debug/cms_qf.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\cms_qf\!debug\cms_qf.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -6,62 +6,6 @@
--------------------Configuration: cms_xr - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B6.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\cms_xr\!debug/" /Fo"..\temp\cms_xr\!debug/" /Fd"..\temp\cms_xr\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\cms_xr\cm_debug.c"
"D:\Xash3D\src_main\cms_xr\cm_main.c"
"D:\Xash3D\src_main\cms_xr\cm_math.c"
"D:\Xash3D\src_main\cms_xr\cm_model.c"
"D:\Xash3D\src_main\cms_xr\cm_patch.c"
"D:\Xash3D\src_main\cms_xr\cm_polylib.c"
"D:\Xash3D\src_main\cms_xr\cm_portals.c"
"D:\Xash3D\src_main\cms_xr\cm_studio.c"
"D:\Xash3D\src_main\cms_xr\cm_test.c"
"D:\Xash3D\src_main\cms_xr\cm_trace.c"
"D:\Xash3D\src_main\cms_xr\cm_trisoup.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B6.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B7.tmp" with contents
[
user32.lib msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\cms_xr\!debug/cms_xr.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\cms_xr\!debug/cms_xr.dll" /implib:"..\temp\cms_xr\!debug/cms_xr.lib" /pdbtype:sept
"\Xash3D\src_main\temp\cms_xr\!debug\cm_debug.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_main.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_math.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_model.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_patch.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_polylib.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_portals.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_studio.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_test.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_trace.obj"
"\Xash3D\src_main\temp\cms_xr\!debug\cm_trisoup.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B7.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B8.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\cms_xr\!debug\cms_xr.dll "D:\Xash3D\bin\cms_xr.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17B8.bat""
Compiling...
cm_debug.c
cm_main.c
cm_math.c
cm_model.c
cm_patch.c
cm_polylib.c
cm_portals.c
cm_studio.c
cm_test.c
cm_trace.c
cm_trisoup.c
Generating Code...
Linking...
Creating library ..\temp\cms_xr\!debug/cms_xr.lib and object ..\temp\cms_xr\!debug/cms_xr.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\cms_xr\!debug\cms_xr.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -38,9 +38,13 @@ client_static_t cls;
clgame_static_t clgame;
//======================================================================
bool CL_Active( void )
{
return ( cls.state == ca_active );
}
//======================================================================
bool CL_Active( void )
bool CL_IsInGame( void )
{
if( host.type == HOST_DEDICATED ) return true; // always active for dedicated servers
if( CL_GetMaxClients() > 1 ) return true; // always active for multiplayer
@ -401,10 +405,12 @@ void CL_Crashed_f( void )
byte final[32];
// already freed
if( host.state == HOST_ERROR ) return;
if( host.state == HOST_CRASHED ) return;
if( host.type != HOST_NORMAL ) return;
if( !cls.initialized ) return;
host.state = HOST_CRASHED;
CL_Stop_f(); // stop any demos
// send a disconnect message to the server
@ -1137,7 +1143,7 @@ void CL_Frame( int time )
Host_CheckChanges();
// allow rendering DLL change
// allow sound and video DLL change
if( cls.state == ca_active )
{
if( !cl.video_prepped ) CL_PrepVideo();

View File

@ -50,7 +50,8 @@ typedef enum
HOST_ERROR, // host stopped by error
HOST_SLEEP, // sleeped by different reason, e.g. minimize window
HOST_NOFOCUS, // same as HOST_FRAME, but disable mouse
HOST_RESTART // during the changes video mode
HOST_RESTART, // during the changes video mode
HOST_CRASHED // an exception handler called
} host_state;
typedef enum
@ -105,6 +106,7 @@ int com_buildnum( void );
void Host_SetServerState( int state );
int Host_ServerState( void );
int Host_CompareFileTime( long ft1, long ft2 );
bool Host_NewGame( const char *mapName, bool loadGame );
void Host_EndGame( const char *message, ... );
void Host_AbortCurrentFrame( void );
void Host_WriteDefaultConfig( void );
@ -209,6 +211,7 @@ void CIN_ReadChunk( cinematics_t *cin );
byte *CIN_ReadNextFrame( cinematics_t *cin, bool silent );
// shared calls
bool CL_IsInGame( void );
int CL_GetServerTime( void );
float CL_GetLerpFrac( void );
void CL_CharEvent( int key );
@ -227,7 +230,8 @@ const char *CL_LevelshotType( void );
int CL_GetMaxClients( void );
byte CL_GetMouthOpen( int entityIndex );
bool SV_GetComment( const char *savename, char *comment );
void SV_LoadProgs( const char *name );
bool SV_NewGame( const char *mapName, bool loadGame );
bool SV_LoadProgs( const char *name );
void SV_ForceMod( void );
void CL_MouseEvent( int mx, int my );
void CL_AddLoopingSounds( void );

View File

@ -330,7 +330,7 @@ void IN_Frame( void )
{
if( host.state == HOST_NOFOCUS )
{
if( Host_ServerState() && CL_Active( ))
if( Host_ServerState() && CL_IsInGame( ))
Sys_Sleep( 5 ); // listenserver
else Sys_Sleep( 20 ); // sleep 20 ms otherwise
}

View File

@ -6,75 +6,13 @@
--------------------Configuration: engine - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A3.tmp" with contents
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP19C.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "common" /I "server" /I "client" /I "uimenu" /I "../public" /I "../common" /I "../pm_shared" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\engine\!debug/" /Fo"..\temp\engine\!debug/" /Fd"..\temp\engine\!debug/" /FD /c
"D:\Xash3D\src_main\engine\build.c"
"D:\Xash3D\src_main\engine\common\cinematic.c"
"D:\Xash3D\src_main\engine\client\cl_cmds.c"
"D:\Xash3D\src_main\engine\client\cl_demo.c"
"D:\Xash3D\src_main\engine\client\cl_effects.c"
"D:\Xash3D\src_main\engine\client\cl_frame.c"
"D:\Xash3D\src_main\engine\client\cl_game.c"
"D:\Xash3D\src_main\engine\client\cl_main.c"
"D:\Xash3D\src_main\engine\client\cl_move.c"
"D:\Xash3D\src_main\engine\client\cl_parse.c"
"D:\Xash3D\src_main\engine\client\cl_phys.c"
"D:\Xash3D\src_main\engine\client\cl_scrn.c"
"D:\Xash3D\src_main\engine\client\cl_tent.c"
"D:\Xash3D\src_main\engine\client\cl_video.c"
"D:\Xash3D\src_main\engine\client\cl_view.c"
"D:\Xash3D\src_main\engine\client\cl_world.c"
"D:\Xash3D\src_main\engine\common\com_keys.c"
"D:\Xash3D\src_main\engine\common\com_library.c"
"D:\Xash3D\src_main\engine\common\com_world.c"
"D:\Xash3D\src_main\engine\common\con_main.c"
"D:\Xash3D\src_main\engine\common\con_utils.c"
"D:\Xash3D\src_main\engine\common\engfuncs.c"
"D:\Xash3D\src_main\engine\host.c"
"D:\Xash3D\src_main\engine\common\infostring.c"
"D:\Xash3D\src_main\engine\common\input.c"
"D:\Xash3D\src_main\engine\common\net_chan.c"
"D:\Xash3D\src_main\engine\common\net_huff.c"
"D:\Xash3D\src_main\engine\common\net_msg.c"
"D:\Xash3D\src_main\engine\server\sv_client.c"
"D:\Xash3D\src_main\engine\server\sv_cmds.c"
"D:\Xash3D\src_main\engine\server\sv_frame.c"
"D:\Xash3D\src_main\engine\server\sv_game.c"
"D:\Xash3D\src_main\engine\server\sv_init.c"
"D:\Xash3D\src_main\engine\server\sv_main.c"
"D:\Xash3D\src_main\engine\server\sv_move.c"
"D:\Xash3D\src_main\engine\server\sv_phys.c"
"D:\Xash3D\src_main\engine\server\sv_save.c"
"D:\Xash3D\src_main\engine\server\sv_saverestore.c"
"D:\Xash3D\src_main\engine\server\sv_world.c"
"D:\Xash3D\src_main\engine\uimenu\ui_advcontrols.c"
"D:\Xash3D\src_main\engine\uimenu\ui_audio.c"
"D:\Xash3D\src_main\engine\uimenu\ui_configuration.c"
"D:\Xash3D\src_main\engine\uimenu\ui_controls.c"
"D:\Xash3D\src_main\engine\uimenu\ui_creategame.c"
"D:\Xash3D\src_main\engine\uimenu\ui_credits.c"
"D:\Xash3D\src_main\engine\uimenu\ui_customgame.c"
"D:\Xash3D\src_main\engine\uimenu\ui_gameoptions.c"
"D:\Xash3D\src_main\engine\uimenu\ui_langame.c"
"D:\Xash3D\src_main\engine\uimenu\ui_loadgame.c"
"D:\Xash3D\src_main\engine\uimenu\ui_main.c"
"D:\Xash3D\src_main\engine\uimenu\ui_menu.c"
"D:\Xash3D\src_main\engine\uimenu\ui_multiplayer.c"
"D:\Xash3D\src_main\engine\uimenu\ui_newgame.c"
"D:\Xash3D\src_main\engine\uimenu\ui_playdemo.c"
"D:\Xash3D\src_main\engine\uimenu\ui_playersetup.c"
"D:\Xash3D\src_main\engine\uimenu\ui_playrec.c"
"D:\Xash3D\src_main\engine\uimenu\ui_qmenu.c"
"D:\Xash3D\src_main\engine\uimenu\ui_recdemo.c"
"D:\Xash3D\src_main\engine\uimenu\ui_savegame.c"
"D:\Xash3D\src_main\engine\uimenu\ui_saveload.c"
"D:\Xash3D\src_main\engine\uimenu\ui_video.c"
"D:\Xash3D\src_main\engine\uimenu\ui_vidmodes.c"
"D:\Xash3D\src_main\engine\uimenu\ui_vidoptions.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A3.tmp""
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A4.tmp" with contents
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP19C.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP19D.tmp" with contents
[
user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\engine\!debug/engine.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\engine\!debug/engine.dll" /implib:"..\temp\engine\!debug/engine.lib" /pdbtype:sept
"\Xash3D\src_main\temp\engine\!debug\build.obj"
@ -141,93 +79,29 @@ user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..
"\Xash3D\src_main\temp\engine\!debug\ui_vidmodes.obj"
"\Xash3D\src_main\temp\engine\!debug\ui_vidoptions.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A4.tmp""
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A5.bat" with contents
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP19D.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP19E.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\engine\!debug\engine.dll "D:\Xash3D\bin\engine.dll"
]
Creating command line ""C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A5.bat""
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP19E.bat""
Compiling...
build.c
cinematic.c
cl_cmds.c
cl_demo.c
cl_effects.c
cl_frame.c
cl_game.c
cl_main.c
cl_move.c
cl_parse.c
cl_phys.c
cl_scrn.c
cl_tent.c
cl_video.c
cl_view.c
cl_world.c
com_keys.c
com_library.c
com_world.c
con_main.c
Generating Code...
Compiling...
con_utils.c
engfuncs.c
host.c
infostring.c
input.c
net_chan.c
net_huff.c
net_msg.c
sv_client.c
sv_cmds.c
sv_frame.c
sv_game.c
sv_init.c
sv_main.c
sv_move.c
sv_phys.c
sv_save.c
d:\xash3d\src_main\engine\server\sv_save.c(73) : error C2039: 'rotr' : is not a member of 'stdilib_api_s'
d:\xash3d\src_main\public\launch_api.h(414) : see declaration of 'stdilib_api_s'
sv_saverestore.c
sv_world.c
ui_advcontrols.c
Generating Code...
Compiling...
ui_audio.c
ui_configuration.c
ui_controls.c
ui_creategame.c
ui_credits.c
ui_customgame.c
ui_gameoptions.c
ui_langame.c
ui_loadgame.c
ui_main.c
ui_menu.c
ui_multiplayer.c
ui_newgame.c
ui_playdemo.c
ui_playersetup.c
ui_playrec.c
ui_qmenu.c
ui_recdemo.c
ui_savegame.c
ui_saveload.c
Generating Code...
Compiling...
ui_video.c
ui_vidmodes.c
ui_vidoptions.c
Generating Code...
Error executing cl.exe.
d:\xash3d\src_main\engine\server\sv_saverestore.c(1394) : warning C4013: 'SV_DirectoryExtract' undefined; assuming extern returning int
d:\xash3d\src_main\engine\server\sv_saverestore.c(1411) : warning C4013: 'Host_NewGame' undefined; assuming extern returning int
Linking...
Creating library ..\temp\engine\!debug/engine.lib and object ..\temp\engine\!debug/engine.exp
sv_saverestore.obj : error LNK2001: unresolved external symbol _Host_NewGame
sv_saverestore.obj : error LNK2001: unresolved external symbol _SV_DirectoryExtract
..\temp\engine\!debug/engine.dll : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
<h3>Output Window</h3>
<h3>Results</h3>
engine.dll - 1 error(s), 0 warning(s)
engine.dll - 3 error(s), 2 warning(s)
</pre>
</body>
</html>

View File

@ -60,6 +60,21 @@ void Host_ShutdownServer( void )
SV_Shutdown( false );
}
/*
================
Host_NewGame
================
*/
bool Host_NewGame( const char *mapName, bool loadGame )
{
bool iRet;
S_StopAllSounds ();
iRet = SV_NewGame( mapName, loadGame );
return iRet;
}
/*
================
Host_EndGame
@ -78,7 +93,7 @@ void Host_EndGame( const char *message, ... )
if( SV_Active())
{
com.strncpy( host.finalmsg, "Host_EndGame\n", MAX_STRING );
com.snprintf( host.finalmsg, sizeof( host.finalmsg ), "Host_EndGame: %s\n", string );
SV_Shutdown( false );
}
@ -279,7 +294,7 @@ void Host_CheckChanges( void )
// restart or change renderer
while( host_video->modified )
{
host_video->modified = false;
host_video->modified = false; // predict state
Host_FreeRender(); // release render.dll
if( !Host_InitRender( )) // load it again
@ -302,7 +317,7 @@ void Host_CheckChanges( void )
// restart or change sound engine
while( host_audio->modified )
{
host_audio->modified = false;
host_audio->modified = false; // predict state
Host_FreeSound(); // release sound.dll
if( !Host_InitSound( )) // load it again
@ -378,6 +393,13 @@ void Host_PhysRestart_f( void )
host_cphys->modified = true;
}
/*
=================
Host_ChangeGame_f
Change game modification
=================
*/
void Host_ChangeGame_f( void )
{
int i;
@ -814,7 +836,7 @@ void Host_Init( const int argc, const char **argv )
}
// init commands and vars
if( host.developer )
if( host.developer >= 3 )
{
Cmd_AddCommand ( "sys_error", Sys_Error_f, "just throw a fatal error to test shutdown procedures");
Cmd_AddCommand ( "host_error", Host_Error_f, "just throw a host error to test shutdown procedures");

View File

@ -392,7 +392,7 @@ void SV_InactivateClients( void );
//
// sv_game.c
//
void SV_LoadProgs( const char *name );
bool SV_LoadProgs( const char *name );
void SV_UnloadProgs( void );
void SV_FreeEdicts( void );
edict_t *SV_AllocEdict( void );
@ -429,6 +429,9 @@ _inline edict_t *SV_EDICT_NUM( int n, const char * file, const int line )
//
// sv_save.c
//
void SV_ClearSaveDir( void );
void SV_SaveGame( const char *pName );
bool SV_LoadGame( const char *pName );
void SV_MergeLevelFile( const char *name );
void SV_ChangeLevel( bool loadfromsavedgame, const char *mapname, const char *start );
void SV_WriteSaveFile( const char *name, bool autosave, bool bUseLandmark );

View File

@ -236,15 +236,18 @@ void SV_Map_f( void )
void SV_Newgame_f( void )
{
// FIXME: parse newgame script or somewhat
if( com.strlen( GI->startmap ))
Cbuf_ExecuteText( EXEC_APPEND, va( "map %s\n", GI->startmap ));
else Host_EndGame( "end game" );
if( Cmd_Argc() != 1 )
{
Msg( "Usage: newgame\n" );
return;
}
Host_NewGame( GI->startmap, false );
}
void SV_Endgame_f( void )
{
Host_EndGame( "end game" );
Host_EndGame( "The End" );
}
/*
@ -255,27 +258,13 @@ SV_Load_f
*/
void SV_Load_f( void )
{
string filename;
if( Cmd_Argc() != 2 )
{
Msg( "Usage: load <filename>\n" );
Msg( "Usage: load <savename>\n" );
return;
}
com.strncpy( filename, Cmd_Argv( 1 ), sizeof( filename ));
if(WAD_Check( va( "save/%s.sav", filename )) != 1 )
{
Msg( "Can't loading %s\n", filename );
return;
}
sv.loadgame = true; // set right state
SV_ReadSaveFile( filename );
SV_SpawnServer( svs.mapname, NULL );
SV_LevelInit( svs.mapname, NULL, filename, true );
SV_ActivateServer();
SV_LoadGame( Cmd_Argv( 1 ));
}
/*
@ -299,17 +288,16 @@ void SV_Save_f( void )
{
const char *name;
if( Cmd_Argc() == 1 )
name = "new";
else if( Cmd_Argc() == 2 )
name = Cmd_Argv( 1 );
else
switch( Cmd_Argc() )
{
case 1: name = "new"; break;
case 2: name = Cmd_Argv( 1 ); break;
default:
Msg( "Usage: save <savename>\n" );
return;
}
SV_WriteSaveFile( name, false, true );
SV_SaveGame( name );
}
/*
@ -350,7 +338,7 @@ SV_AutoSave_f
*/
void SV_AutoSave_f( void )
{
SV_WriteSaveFile( "autosave", true, true );
SV_SaveGame( "autosave" );
}
/*
@ -419,7 +407,9 @@ void SV_Reload_f( void )
const char *save;
string loadname;
if( sv.state != ss_active ) return;
if( sv.state != ss_active )
return;
save = SV_GetLatestSave();
if( save )
{

View File

@ -3826,7 +3826,7 @@ void SV_UnloadProgs( void )
Mem_Set( &svgame, 0, sizeof( svgame ));
}
void SV_LoadProgs( const char *name )
bool SV_LoadProgs( const char *name )
{
static SERVERAPI GetEntityAPI;
static globalvars_t gpGlobals;
@ -3848,27 +3848,27 @@ void SV_LoadProgs( const char *name )
if( !svgame.hInstance )
{
Host_Error( "SV_LoadProgs: can't initialize server.dll\n" );
return;
MsgDev( D_ERROR, "SV_LoadProgs: can't initialize server.dll\n" );
return false;
}
GetEntityAPI = (SERVERAPI)Com_GetProcAddress( svgame.hInstance, "CreateAPI" );
if( !GetEntityAPI )
{
Host_Error( "SV_LoadProgs: failed to get address of CreateAPI proc\n" );
return;
MsgDev( D_ERROR, "SV_LoadProgs: failed to get address of CreateAPI proc\n" );
return false;
}
if( !Sys_LoadSymbols( name ))
{
Host_Error( "SV_LoadProgs: can't loading export symbols\n" );
return;
MsgDev( D_ERROR, "SV_LoadProgs: can't loading export symbols\n" );
return false;
}
if( !GetEntityAPI( &svgame.dllFuncs, &gEngfuncs, svgame.globals ))
{
Host_Error( "SV_LoadProgs: couldn't get entity API\n" );
return;
MsgDev( D_ERROR, "SV_LoadProgs: couldn't get entity API\n" );
return false;
}
// 65535 unique strings should be enough ...
@ -3888,4 +3888,6 @@ void SV_LoadProgs( const char *name )
// fire once
MsgDev( D_INFO, "Dll loaded for mod %s\n", svgame.dllFuncs.pfnGetGameDescription() );
return true;
}

View File

@ -240,6 +240,9 @@ Spawn all entities
*/
void SV_LevelInit( const char *pMapName, char const *pOldLevel, char const *pLandmarkName, bool loadGame )
{
if( !svs.initialized )
return;
if( loadGame )
{
if( !SV_LoadGameState( pMapName, 1 ))
@ -288,6 +291,9 @@ bool SV_SpawnServer( const char *server, const char *startspot )
if( sv.state == ss_dead && !sv.loadgame )
SV_InitGame(); // the game is just starting
if( !svs.initialized )
return false;
SV_BroadcastCommand( "changing\n" );
if( sv.state == ss_active )
@ -386,14 +392,15 @@ void SV_InitGame( void )
{
// init game after host error
if( !svgame.hInstance )
SV_LoadProgs( "server" );
{
if( !SV_LoadProgs( "server" ))
return; // can't loading
}
// make sure the client is down
CL_Drop();
}
svs.initialized = true;
if( Cvar_VariableValue( "coop" ) && Cvar_VariableValue ( "deathmatch" ) && Cvar_VariableValue( "teamplay" ))
{
Msg("Deathmatch, Teamplay and Coop set, defaulting to Deathmatch\n");
@ -463,6 +470,8 @@ void SV_InitGame( void )
Mem_Set( &svs.clients[i].lastcmd, 0, sizeof( svs.clients[i].lastcmd ));
}
svs.initialized = true;
}
bool SV_Active( void )
@ -473,4 +482,38 @@ bool SV_Active( void )
void SV_ForceMod( void )
{
sv.cphys_prepped = false;
}
bool SV_NewGame( const char *mapName, bool loadGame )
{
if( !loadGame )
{
// in case we unload game dll and flush memory
Host_EndGame( "start a new game" );
}
else
{
SV_InactivateClients ();
SV_DeactivateServer ();
}
if( !SV_SpawnServer( mapName, NULL ))
return false;
// make sure the time is set
svgame.globals->time = (sv.time * 0.001f);
SV_LevelInit( mapName, NULL, NULL, loadGame );
if( loadGame )
{
sv.loadgame = true;
svgame.globals->time = (sv.time * 0.001f);
}
SV_ActivateServer();
if( sv.state != ss_active )
return false;
return true;
}

View File

@ -353,8 +353,9 @@ void SV_RunGameFrame( void )
// has the "current" frame
sv.framenum++;
// don't run if paused
if( !sv.paused && CL_Active()) SV_Physics();
// don't run if paused or not in game
if( !sv.paused && CL_IsInGame( ))
SV_Physics();
// never get more than one tic behind
if( sv.time < svs.realtime )
@ -388,8 +389,7 @@ void SV_Frame( int time )
// allow physic DLL change
if( sv.state == ss_active )
{
if( !sv.cphys_prepped )
SV_PrepModels();
if( !sv.cphys_prepped ) SV_PrepModels();
}
// move autonomous things around if enough time has passed
@ -561,13 +561,13 @@ void SV_Init( void )
sv_check_errors = Cvar_Get( "sv_check_errors", "0", CVAR_ARCHIVE, "ignore physic engine errors" );
sv_synchthink = Cvar_Get( "sv_fast_think", "0", CVAR_ARCHIVE, "allows entities to think more often than the server framerate" );
physinfo = Cvar_Get( "@physinfo", "0", CVAR_READ_ONLY, "" ); // use ->modified value only
public_server = Cvar_Get ("public", "0", 0, "change server type from private to public" );
sv_reconnect_limit = Cvar_Get ("sv_reconnect_limit", "3", CVAR_ARCHIVE, "max reconnect attempts" );
Host_CheckRestart ();
SV_ClearSaveDir (); // delete all temporary *.hl files
MSG_Init( &net_message, net_message_buffer, sizeof( net_message_buffer ));
Host_CheckRestart ();
}
/*

View File

@ -287,28 +287,7 @@ static void SV_SaveServerData( wfile_t *f, const char *name, bool bUseLandMark )
svgame.globals->pSaveData = NULL;
}
/*
==================
SV_SaveGetName
==================
*/
void SV_SaveGetName( int lastnum, char *filename )
{
int a, b;
if( !filename ) return;
if( lastnum < 0 || lastnum > 99 )
{
// bound
com.strcpy( filename, "save99" );
return;
}
a = lastnum / 10;
b = lastnum % 10;
com.sprintf( filename, "save%i%i", a, b );
}
/*
=============
@ -337,23 +316,6 @@ void SV_WriteSaveFile( const char *inname, bool autosave, bool bUseLandmark )
return;
}
if( !com.stricmp( inname, "new" ))
{
// scan for a free filename
for( n = 0; n < 100; n++ )
{
SV_SaveGetName( n, name );
if( !FS_FileExists( va( "save/%s.sav", name )))
break;
}
if( n == 100 )
{
Msg( "^3ERROR: no free slots for savegame\n" );
return;
}
}
else com.strncpy( name, inname, sizeof( name ));
com.sprintf( path, "save/%s.sav", name );
// make sure what oldsave is removed
@ -728,39 +690,4 @@ bool SV_GetComment( const char *savename, char *comment )
WAD_Close( savfile );
return true;
}
const char *SV_GetLatestSave( void )
{
search_t *f = FS_Search( "save/*.sav", true );
int i, found = 0;
long newest = 0, ft;
string savename;
if( !f ) return NULL;
for( i = 0; i < f->numfilenames; i++ )
{
if( WAD_Check( f->filenames[i] ) != 1 )
continue; // corrupted or somewhat
ft = FS_FileTime( va( "%s/%s", GI->gamedir, f->filenames[i] ));
// found a match?
if( ft > 0 )
{
// should we use the matche?
if( !found || Host_CompareFileTime( newest, ft ) < 0 )
{
newest = ft;
com.strncpy( savename, f->filenames[i], MAX_STRING );
found = 1;
}
}
}
Mem_Free( f ); // release search
if( found )
return va( "%s", savename ); // move to static memory
return NULL;
}

View File

@ -8,7 +8,7 @@
#include "const.h"
#define SAVE_AGED_COUNT 1
#define MAX_SAVEGAMES 12
#define SAVENAME_LENGTH 128 // matches with MAX_OSPATH
typedef struct
{
@ -302,7 +302,7 @@ int SV_MapCount( const char *pPath )
search_t *t;
int count = 0;
t = FS_Search( "pPath", true );
t = FS_Search( pPath, true );
if( !t ) return count; // empty
count = t->numfilenames;
@ -377,6 +377,50 @@ void SV_ClearSaveDir( void )
Mem_Free( t );
}
int SV_IsValidSave( void )
{
if( !svs.initialized || sv.state != ss_active )
{
Msg( "Not playing a local game.\n" );
return 0;
}
if( CL_Active() == false )
{
Msg( "Can't save if not active.\n" );
return 0;
}
if( sv_maxclients->integer != 1 )
{
Msg( "Can't save multiplayer games.\n" );
return 0;
}
if( svs.clients && svs.clients[0].state == cs_spawned )
{
edict_t *pl = svs.clients[0].edict;
if( !pl )
{
Msg( "Can't savegame without a player!\n" );
return 0;
}
if( pl->v.deadflag != false )
{
Msg( "Can't savegame with a dead player\n" );
return 0;
}
// Passed all checks, it's ok to save
return 1;
}
Msg( "Can't savegame without a client!\n" );
return 0;
}
void SV_AgeSaveList( const char *pName, int count )
{
string newName, oldName;
@ -427,12 +471,13 @@ void SV_FileCopy( file_t *pOutput, file_t *pInput, int fileSize )
}
}
void SV_SaveDirectoryCopy( const char *pPath, file_t *pFile )
void SV_DirectoryCopy( const char *pPath, file_t *pFile )
{
search_t *t;
int i;
int fileSize;
file_t *pCopy;
char szName[SAVENAME_LENGTH];
t = FS_Search( pPath, true );
if( !t ) return;
@ -441,8 +486,10 @@ void SV_SaveDirectoryCopy( const char *pPath, file_t *pFile )
{
fileSize = FS_FileSize( t->filenames[i] );
pCopy = FS_Open( t->filenames[i], "rb" );
// filename can only be as long as a map name + extension
FS_Write( pFile, t->filenames[i], com.strlen( t->filenames[i] ));
com.strncpy( szName, FS_RemovePath( t->filenames[i] ), SAVENAME_LENGTH );
FS_Write( pFile, szName, SAVENAME_LENGTH );
FS_Write( pFile, &fileSize, sizeof( int ));
SV_FileCopy( pFile, pCopy, fileSize );
FS_Close( pCopy );
@ -450,6 +497,27 @@ void SV_SaveDirectoryCopy( const char *pPath, file_t *pFile )
Mem_Free( t );
}
void SV_DirectoryExtract( file_t *pFile, int fileCount )
{
int i, fileSize;
char szName[SAVENAME_LENGTH], fileName[SAVENAME_LENGTH];
file_t *pCopy;
Msg( "SV_DirectoryExtract: %i files\n", fileCount );
for( i = 0; i < fileCount; i++ )
{
// filename can only be as long as a map name + extension
FS_Read( pFile, fileName, SAVENAME_LENGTH );
FS_Read( pFile, &fileSize, sizeof( int ));
com.snprintf( szName, sizeof( szName ), "save/%s", fileName );
pCopy = FS_Open( szName, "wb" );
SV_FileCopy( pCopy, pFile, fileSize );
FS_Close( pCopy );
}
}
void SV_SaveFinish( SAVERESTOREDATA *pSaveData )
{
char **pTokens;
@ -475,9 +543,9 @@ SAVERESTOREDATA *SV_SaveInit( int size )
if( size <= 0 ) size = 0x80000; // Reserve 512K for now, UNDONE: Shrink this after compressing strings
numents = svgame.globals->numEntities;
pSaveData = Mem_Alloc( svgame.temppool, sizeof(SAVERESTOREDATA) + ( sizeof(ENTITYTABLE) * numents ) + size );
pSaveData = Mem_Alloc( host.mempool, sizeof(SAVERESTOREDATA) + ( sizeof(ENTITYTABLE) * numents ) + size );
SaveRestore_Init( pSaveData, (char *)(pSaveData + 1), size ); // skip the save structure
SaveRestore_InitSymbolTable( pSaveData, (char **)Mem_Alloc( svgame.temppool, nTokens * sizeof( char* )), nTokens );
SaveRestore_InitSymbolTable( pSaveData, (char **)Mem_Alloc( host.mempool, nTokens * sizeof( char* )), nTokens );
pSaveData->time = svgame.globals->time; // Use DLL time
VectorClear( pSaveData->vecLandmarkOffset );
@ -583,7 +651,7 @@ SAVERESTOREDATA *SV_LoadSaveData( const char *level )
// Read the sections info and the data
FS_Read( pFile, &sectionsInfo, sizeof( sectionsInfo ));
pSaveData = Mem_Alloc( svgame.temppool, sizeof(SAVERESTOREDATA) + SumBytes( &sectionsInfo ));
pSaveData = Mem_Alloc( host.mempool, sizeof(SAVERESTOREDATA) + SumBytes( &sectionsInfo ));
com.strncpy( pSaveData->szCurrentMapName, level, sizeof( pSaveData->szCurrentMapName ));
FS_Read( pFile, (char *)(pSaveData + 1), SumBytes( &sectionsInfo ));
@ -594,7 +662,7 @@ SAVERESTOREDATA *SV_LoadSaveData( const char *level )
if( sectionsInfo.nBytesSymbols > 0 )
{
SaveRestore_InitSymbolTable( pSaveData, (char **)Mem_Alloc( svgame.temppool, sectionsInfo.nSymbols * sizeof( char* )), sectionsInfo.nSymbols );
SaveRestore_InitSymbolTable( pSaveData, (char **)Mem_Alloc( host.mempool, sectionsInfo.nSymbols * sizeof( char* )), sectionsInfo.nSymbols );
// make sure the token strings pointed to by the pToken hashtable.
for( i = 0; i < sectionsInfo.nSymbols; i++ )
@ -741,7 +809,7 @@ void SV_ReadEntityTable( SAVERESTOREDATA *pSaveData )
ENTITYTABLE *pEntityTable;
int i;
pEntityTable = (ENTITYTABLE *)Mem_Alloc( svgame.temppool, sizeof( ENTITYTABLE ) * pSaveData->tableCount );
pEntityTable = (ENTITYTABLE *)Mem_Alloc( host.mempool, sizeof( ENTITYTABLE ) * pSaveData->tableCount );
SaveRestore_InitEntityTable( pSaveData, pEntityTable, pSaveData->tableCount );
for( i = 0; i < pSaveData->tableCount; i++ )
@ -772,7 +840,7 @@ SAVERESTOREDATA *SV_SaveGameState( void )
numents = svgame.globals->numEntities;
SaveRestore_InitEntityTable( pSaveData, Mem_Alloc( svgame.temppool, sizeof(ENTITYTABLE) * numents ), numents );
SaveRestore_InitEntityTable( pSaveData, Mem_Alloc( host.mempool, sizeof(ENTITYTABLE) * numents ), numents );
// Build the adjacent map list (after entity table build by game in presave)
svgame.dllFuncs.pfnParmsChangeLevel();
@ -1252,9 +1320,11 @@ int SV_SaveGameSlot( const char *pSaveName, const char *pSaveComment )
tokenSize = SaveRestore_AccessCurPos( pSaveData ) - pTokenData;
SaveRestore_Rewind( pSaveData, tokenSize );
com.snprintf( name, sizeof( name ), "save/%s.save", pSaveName );
com.snprintf( name, sizeof( name ), "save/%s.sav", pSaveName );
MsgDev( D_INFO, "Saving game to %s...\n", name );
Cbuf_AddText( va( "saveshot \"%s\"\n", pSaveName ));
// output to disk
if( com.stricmp( pSaveName, "quick" ) || com.stricmp( pSaveName, "autosave" ))
SV_AgeSaveList( pSaveName, SAVE_AGED_COUNT );
@ -1277,9 +1347,219 @@ int SV_SaveGameSlot( const char *pSaveName, const char *pSaveComment )
// save gamestate
FS_Write( pFile, SaveRestore_GetBuffer( pSaveData ), SaveRestore_GetCurPos( pSaveData ));
SV_SaveDirectoryCopy( hlPath, pFile );
SV_DirectoryCopy( hlPath, pFile );
FS_Close( pFile );
SV_SaveFinish( pSaveData );
return 1;
}
int SV_SaveReadHeader( file_t *pFile, GAME_HEADER *pHeader, int readGlobalState )
{
int i, tag, size, tokenCount, tokenSize;
char *pszTokenList;
SAVERESTOREDATA *pSaveData;
FS_Read( pFile, &tag, sizeof( int ));
if( tag != SAVEGAME_HEADER )
{
FS_Close( pFile );
return 0;
}
FS_Read( pFile, &tag, sizeof( int ));
if( tag != SAVEGAME_VERSION )
{
FS_Close( pFile );
return 0;
}
FS_Read( pFile, &size, sizeof( int ));
FS_Read( pFile, &tokenCount, sizeof( int ));
FS_Read( pFile, &tokenSize, sizeof( int ));
pSaveData = Mem_Alloc( host.mempool, sizeof( SAVERESTOREDATA ) + tokenSize + size );
pSaveData->connectionCount = 0;
pszTokenList = (char *)(pSaveData + 1);
if( tokenSize > 0 )
{
FS_Read( pFile, pszTokenList, tokenSize );
SaveRestore_InitSymbolTable( pSaveData, (char **)Mem_Alloc( host.mempool, tokenCount * sizeof( char* )), tokenCount );
// make sure the token strings pointed to by the pToken hashtable.
for( i = 0; i < tokenCount; i++ )
{
if( *pszTokenList )
{
Com_Assert( SaveRestore_DefineSymbol( pSaveData, pszTokenList, i ) == 0 );
}
while( *pszTokenList++ ); // find next token (after next null)
}
}
else
{
SaveRestore_InitSymbolTable( pSaveData, NULL, 0 );
}
pSaveData->fUseLandmark = false;
pSaveData->time = 0.0f;
// pszTokenList now points after token data
SaveRestore_Init( pSaveData, (char *)(pszTokenList), size );
FS_Read( pFile, SaveRestore_GetBuffer( pSaveData ), size );
svgame.dllFuncs.pfnSaveReadFields( pSaveData, "GameHeader", pHeader, gGameHeader, ARRAYSIZE( gGameHeader ));
if( readGlobalState )
svgame.dllFuncs.pfnRestoreGlobalState( pSaveData );
SV_SaveFinish( pSaveData );
return 1;
}
bool SV_LoadGame( const char *pName )
{
file_t *pFile;
bool validload = false;
GAME_HEADER gameHeader;
string name;
if( !pName || !pName[0] )
return false;
com.snprintf( name, sizeof( name ), "save/%s.sav", pName );
MsgDev( D_INFO, "Loading game from %s...\n", name );
SV_ClearSaveDir();
if( !svs.initialized ) SV_InitGame ();
pFile = FS_Open( name, "rb" );
if( pFile )
{
if( SV_SaveReadHeader( pFile, &gameHeader, 1 ))
{
SV_DirectoryExtract( pFile, gameHeader.mapCount );
validload = true;
}
FS_Close( pFile );
}
else MsgDev( D_ERROR, "File not found or failed to open.\n" );
if( !validload )
{
CL_Disconnect();
return false;
}
Cvar_FullSet( "coop", "0", CVAR_SERVERINFO|CVAR_LATCH );
Cvar_FullSet( "teamplay", "0", CVAR_SERVERINFO|CVAR_LATCH );
Cvar_FullSet( "deathmatch", "0", CVAR_SERVERINFO|CVAR_LATCH );
return Host_NewGame( gameHeader.mapName, true );
}
/*
==================
SV_SaveGetName
==================
*/
void SV_SaveGetName( int lastnum, char *filename )
{
int a, b, c;
if( !filename ) return;
if( lastnum < 0 || lastnum > 999 )
{
// bound
com.strcpy( filename, "save999" );
return;
}
a = lastnum / 100;
lastnum -= a * 100;
b = lastnum / 10;
c = lastnum % 10;
com.sprintf( filename, "save%i%i%i", a, b, c );
}
void SV_SaveGame( const char *pName )
{
char comment[80];
string savename;
int n;
if( !pName || !*pName )
return;
// can we save at this point?
if( !SV_IsValidSave( ))
return;
if( !com.stricmp( pName, "new" ))
{
// scan for a free filename
for( n = 0; n < 999; n++ )
{
SV_SaveGetName( n, savename );
if( !FS_FileExists( va( "save/%s.sav", savename )))
break;
}
if( n == 1000 )
{
Msg( "^3ERROR: no free slots for savegame\n" );
return;
}
}
else com.strncpy( savename, pName, sizeof( savename ));
SV_BuildSaveComment( comment, sizeof( comment ));
SV_SaveGameSlot( savename, comment );
// UNDONE: get the user controls, use HudMessage instead
MSG_Begin( svc_centerprint );
MSG_WriteString( &sv.multicast, "Game Saved" );
MSG_Send( MSG_ONE, NULL, EDICT_NUM( 1 ));
}
/*
==================
SV_GetLatestSave
used for reload game after player death
==================
*/
const char *SV_GetLatestSave( void )
{
search_t *f = FS_Search( "save/*.sav", true );
int i, found = 0;
long newest = 0, ft;
string savename;
if( !f ) return NULL;
for( i = 0; i < f->numfilenames; i++ )
{
ft = FS_FileTime( va( "%s/%s", GI->gamedir, f->filenames[i] ));
// found a match?
if( ft > 0 )
{
// should we use the matche?
if( !found || Host_CompareFileTime( newest, ft ) < 0 )
{
newest = ft;
com.strncpy( savename, f->filenames[i], MAX_STRING );
found = 1;
}
}
}
Mem_Free( f ); // release search
if( found )
return va( "%s", savename ); // move to static memory
return NULL;
}

View File

@ -6,103 +6,6 @@
--------------------Configuration: launch - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A7.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "imagelib" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\launch\!debug/" /Fo"..\temp\launch\!debug/" /Fd"..\temp\launch\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\launch\cmd.c"
"D:\Xash3D\src_main\launch\console.c"
"D:\Xash3D\src_main\launch\cpuinfo.c"
"D:\Xash3D\src_main\launch\crclib.c"
"D:\Xash3D\src_main\launch\cvar.c"
"D:\Xash3D\src_main\launch\export.c"
"D:\Xash3D\src_main\launch\filesystem.c"
"D:\Xash3D\src_main\launch\imagelib\img_bmp.c"
"D:\Xash3D\src_main\launch\imagelib\img_dds.c"
"D:\Xash3D\src_main\launch\imagelib\img_jpg.c"
"D:\Xash3D\src_main\launch\imagelib\img_main.c"
"D:\Xash3D\src_main\launch\imagelib\img_pcx.c"
"D:\Xash3D\src_main\launch\imagelib\img_png.c"
"D:\Xash3D\src_main\launch\imagelib\img_tga.c"
"D:\Xash3D\src_main\launch\imagelib\img_utils.c"
"D:\Xash3D\src_main\launch\imagelib\img_vtf.c"
"D:\Xash3D\src_main\launch\imagelib\img_wad.c"
"D:\Xash3D\src_main\launch\memlib.c"
"D:\Xash3D\src_main\launch\network.c"
"D:\Xash3D\src_main\launch\parselib.c"
"D:\Xash3D\src_main\launch\patch.c"
"D:\Xash3D\src_main\launch\stdlib.c"
"D:\Xash3D\src_main\launch\system.c"
"D:\Xash3D\src_main\launch\utils.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A7.tmp""
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A8.tmp" with contents
[
zlib.lib png.lib jpg.lib user32.lib gdi32.lib shell32.lib advapi32.lib winmm.lib /nologo /dll /incremental:yes /pdb:"..\temp\launch\!debug/launch.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\launch\!debug/launch.dll" /implib:"..\temp\launch\!debug/launch.lib" /pdbtype:sept /libpath:"./imagelib"
"\Xash3D\src_main\temp\launch\!debug\cmd.obj"
"\Xash3D\src_main\temp\launch\!debug\console.obj"
"\Xash3D\src_main\temp\launch\!debug\cpuinfo.obj"
"\Xash3D\src_main\temp\launch\!debug\crclib.obj"
"\Xash3D\src_main\temp\launch\!debug\cvar.obj"
"\Xash3D\src_main\temp\launch\!debug\export.obj"
"\Xash3D\src_main\temp\launch\!debug\filesystem.obj"
"\Xash3D\src_main\temp\launch\!debug\img_bmp.obj"
"\Xash3D\src_main\temp\launch\!debug\img_dds.obj"
"\Xash3D\src_main\temp\launch\!debug\img_jpg.obj"
"\Xash3D\src_main\temp\launch\!debug\img_main.obj"
"\Xash3D\src_main\temp\launch\!debug\img_pcx.obj"
"\Xash3D\src_main\temp\launch\!debug\img_png.obj"
"\Xash3D\src_main\temp\launch\!debug\img_tga.obj"
"\Xash3D\src_main\temp\launch\!debug\img_utils.obj"
"\Xash3D\src_main\temp\launch\!debug\img_vtf.obj"
"\Xash3D\src_main\temp\launch\!debug\img_wad.obj"
"\Xash3D\src_main\temp\launch\!debug\memlib.obj"
"\Xash3D\src_main\temp\launch\!debug\network.obj"
"\Xash3D\src_main\temp\launch\!debug\parselib.obj"
"\Xash3D\src_main\temp\launch\!debug\patch.obj"
"\Xash3D\src_main\temp\launch\!debug\stdlib.obj"
"\Xash3D\src_main\temp\launch\!debug\system.obj"
"\Xash3D\src_main\temp\launch\!debug\utils.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A8.tmp""
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A9.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\launch\!debug\launch.dll "D:\Xash3D\bin\launch.dll"
]
Creating command line ""C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP17A9.bat""
Compiling...
cmd.c
console.c
cpuinfo.c
crclib.c
cvar.c
export.c
filesystem.c
img_bmp.c
img_dds.c
img_jpg.c
img_main.c
img_pcx.c
img_png.c
img_tga.c
img_utils.c
img_vtf.c
img_wad.c
memlib.c
network.c
parselib.c
Generating Code...
Compiling...
patch.c
stdlib.c
system.c
utils.c
Generating Code...
Linking...
Creating library ..\temp\launch\!debug/launch.lib and object ..\temp\launch\!debug/launch.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\launch\!debug\launch.dll
‘Ş®Ż¨ŕ®˘ ­® ä ©«®˘: 1.

View File

@ -920,7 +920,7 @@ long _stdcall Sys_Crash( PEXCEPTION_POINTERS pInfo )
if( Sys.oldFilter )
return Sys.oldFilter( pInfo );
return EXCEPTION_CONTINUE_SEARCH;
return EXCEPTION_CONTINUE_EXECUTION;
}
void Sys_Init( void )

View File

@ -763,6 +763,7 @@ filesystem manager
#define FS_Close( file ) com.fclose( file )
#define FS_FileBase( x, y ) com.Com_FileBase( x, y )
#define FS_LoadInternal( x, y ) com.Com_LoadRes( x, y )
#define FS_RemovePath( x ) com.Com_RemovePath( x )
#define FS_Printf (*com.fprintf)
#define FS_Print (*com.fprint)
#define FS_Seek (*com.fseek)

View File

@ -6,43 +6,6 @@
--------------------Configuration: snd_al - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C4.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\snd_al\!debug/" /Fo"..\temp\snd_al\!debug/" /Fd"..\temp\snd_al\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\snd_al\s_export.c"
"D:\Xash3D\src_main\snd_al\s_load.c"
"D:\Xash3D\src_main\snd_al\s_main.c"
"D:\Xash3D\src_main\snd_al\s_openal.c"
"D:\Xash3D\src_main\snd_al\s_stream.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C4.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C5.tmp" with contents
[
libogg.lib vorbis.lib /nologo /dll /incremental:yes /pdb:"..\temp\snd_al\!debug/snd_al.pdb" /debug /machine:I386 /nodefaultlib:"libcmt.lib" /out:"..\temp\snd_al\!debug/snd_al.dll" /implib:"..\temp\snd_al\!debug/snd_al.lib" /pdbtype:sept
"\Xash3D\src_main\temp\snd_al\!debug\s_export.obj"
"\Xash3D\src_main\temp\snd_al\!debug\s_load.obj"
"\Xash3D\src_main\temp\snd_al\!debug\s_main.obj"
"\Xash3D\src_main\temp\snd_al\!debug\s_openal.obj"
"\Xash3D\src_main\temp\snd_al\!debug\s_stream.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C5.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C6.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\snd_al\!debug\snd_al.dll "D:\Xash3D\bin\snd_al.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C6.bat""
Compiling...
s_export.c
s_load.c
s_main.c
s_openal.c
s_stream.c
Generating Code...
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\snd_al\!debug\snd_al.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -6,50 +6,6 @@
--------------------Configuration: snd_dx - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C8.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\snd_dx\!debug/" /Fo"..\temp\snd_dx\!debug/" /Fd"..\temp\snd_dx\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\snd_dx\s_direct.c"
"D:\Xash3D\src_main\snd_dx\s_dsp.c"
"D:\Xash3D\src_main\snd_dx\s_export.c"
"D:\Xash3D\src_main\snd_dx\s_load.c"
"D:\Xash3D\src_main\snd_dx\s_main.c"
"D:\Xash3D\src_main\snd_dx\s_mix.c"
"D:\Xash3D\src_main\snd_dx\s_stream.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C8.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C9.tmp" with contents
[
winmm.lib /nologo /dll /incremental:yes /pdb:"..\temp\snd_dx\!debug/snd_dx.pdb" /debug /machine:I386 /nodefaultlib:"libcmt.lib" /out:"..\temp\snd_dx\!debug/snd_dx.dll" /implib:"..\temp\snd_dx\!debug/snd_dx.lib" /pdbtype:sept
"\Xash3D\src_main\temp\snd_dx\!debug\s_direct.obj"
"\Xash3D\src_main\temp\snd_dx\!debug\s_dsp.obj"
"\Xash3D\src_main\temp\snd_dx\!debug\s_export.obj"
"\Xash3D\src_main\temp\snd_dx\!debug\s_load.obj"
"\Xash3D\src_main\temp\snd_dx\!debug\s_main.obj"
"\Xash3D\src_main\temp\snd_dx\!debug\s_mix.obj"
"\Xash3D\src_main\temp\snd_dx\!debug\s_stream.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17C9.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17CA.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\snd_dx\!debug\snd_dx.dll "D:\Xash3D\bin\snd_dx.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17CA.bat""
Compiling...
s_direct.c
s_dsp.c
s_export.c
s_load.c
s_main.c
s_mix.c
s_stream.c
Generating Code...
Linking...
Creating library ..\temp\snd_dx\!debug/snd_dx.lib and object ..\temp\snd_dx\!debug/snd_dx.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\snd_dx\!debug\snd_dx.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -29,4 +29,5 @@ Xash 0.71 Beta 05.05.10
5. revision server physic
6. revision monster moving
7. reborn Xash 0.4 Source Code
8. completely finalize Save\restore & Changelevel
8. completely finalize Save\restore & Changelevel
9. creates an imagelib user profile

View File

@ -6,94 +6,6 @@
--------------------Configuration: vid_gl - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17BD.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\vid_gl\!debug/" /Fo"..\temp\vid_gl\!debug/" /Fd"..\temp\vid_gl\!debug/" /FD /c
"D:\Xash3D\src_main\vid_gl\r_backend.c"
"D:\Xash3D\src_main\vid_gl\r_bloom.c"
"D:\Xash3D\src_main\vid_gl\r_cin.c"
"D:\Xash3D\src_main\vid_gl\r_cull.c"
"D:\Xash3D\src_main\vid_gl\r_draw.c"
"D:\Xash3D\src_main\vid_gl\r_image.c"
"D:\Xash3D\src_main\vid_gl\r_light.c"
"D:\Xash3D\src_main\vid_gl\r_main.c"
"D:\Xash3D\src_main\vid_gl\r_math.c"
"D:\Xash3D\src_main\vid_gl\r_mesh.c"
"D:\Xash3D\src_main\vid_gl\r_model.c"
"D:\Xash3D\src_main\vid_gl\r_opengl.c"
"D:\Xash3D\src_main\vid_gl\r_poly.c"
"D:\Xash3D\src_main\vid_gl\r_program.c"
"D:\Xash3D\src_main\vid_gl\r_register.c"
"D:\Xash3D\src_main\vid_gl\r_shader.c"
"D:\Xash3D\src_main\vid_gl\r_shadow.c"
"D:\Xash3D\src_main\vid_gl\r_sky.c"
"D:\Xash3D\src_main\vid_gl\r_sprite.c"
"D:\Xash3D\src_main\vid_gl\r_studio.c"
"D:\Xash3D\src_main\vid_gl\r_surf.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17BD.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17BE.tmp" with contents
[
msvcrtd.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\vid_gl\!debug/vid_gl.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\vid_gl\!debug/vid_gl.dll" /implib:"..\temp\vid_gl\!debug/vid_gl.lib" /pdbtype:sept
"\Xash3D\src_main\temp\vid_gl\!debug\r_backend.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_bloom.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_cin.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_cull.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_draw.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_image.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_light.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_main.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_math.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_mesh.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_model.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_opengl.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_poly.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_program.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_register.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_shader.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_shadow.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_sky.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_sprite.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_studio.obj"
"\Xash3D\src_main\temp\vid_gl\!debug\r_surf.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17BE.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17BF.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\vid_gl\!debug\vid_gl.dll "D:\Xash3D\bin\vid_gl.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17BF.bat""
Compiling...
r_backend.c
r_bloom.c
r_cin.c
r_cull.c
r_draw.c
r_image.c
r_light.c
r_main.c
r_math.c
r_mesh.c
r_model.c
r_opengl.c
r_poly.c
r_program.c
r_register.c
r_shader.c
r_shadow.c
r_sky.c
r_sprite.c
r_studio.c
Generating Code...
Compiling...
r_surf.c
Generating Code...
Linking...
Creating library ..\temp\vid_gl\!debug/vid_gl.lib and object ..\temp\vid_gl\!debug/vid_gl.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\vid_gl\!debug\vid_gl.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -6,221 +6,6 @@
--------------------Configuration: xtools - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17CF.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "bsplib" /I "models" /I "ripper" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\xtools\!debug/" /Fo"..\temp\xtools\!debug/" /Fd"..\temp\xtools\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\xtools\bsplib\brush.c"
"D:\Xash3D\src_main\xtools\bsplib\brush_primit.c"
"D:\Xash3D\src_main\xtools\bsplib\bsp.c"
"D:\Xash3D\src_main\xtools\bsplib\bspfile_abstract.c"
"D:\Xash3D\src_main\xtools\bsplib\bspfile_ibsp.c"
"D:\Xash3D\src_main\xtools\bsplib\bspfile_rbsp.c"
"D:\Xash3D\src_main\xtools\bsplib\bsplib.c"
"D:\Xash3D\src_main\xtools\ripper\conv_bsplumps.c"
"D:\Xash3D\src_main\xtools\ripper\conv_doom.c"
"D:\Xash3D\src_main\xtools\ripper\conv_image.c"
"D:\Xash3D\src_main\xtools\ripper\conv_main.c"
"D:\Xash3D\src_main\xtools\ripper\conv_shader.c"
"D:\Xash3D\src_main\xtools\ripper\conv_sprite.c"
"D:\Xash3D\src_main\xtools\bsplib\convert_ase.c"
"D:\Xash3D\src_main\xtools\bsplib\convert_map.c"
"D:\Xash3D\src_main\xtools\bsplib\decals.c"
"D:\Xash3D\src_main\xtools\bsplib\facebsp.c"
"D:\Xash3D\src_main\xtools\bsplib\fog.c"
"D:\Xash3D\src_main\xtools\bsplib\image.c"
"D:\Xash3D\src_main\xtools\bsplib\leakfile.c"
"D:\Xash3D\src_main\xtools\bsplib\light.c"
"D:\Xash3D\src_main\xtools\bsplib\light_bounce.c"
"D:\Xash3D\src_main\xtools\bsplib\light_trace.c"
"D:\Xash3D\src_main\xtools\bsplib\light_ydnar.c"
"D:\Xash3D\src_main\xtools\bsplib\lightmaps_ydnar.c"
"D:\Xash3D\src_main\xtools\bsplib\map.c"
"D:\Xash3D\src_main\xtools\bsplib\md5.c"
"D:\Xash3D\src_main\xtools\bsplib\mesh.c"
"D:\Xash3D\src_main\xtools\bsplib\model.c"
"D:\Xash3D\src_main\xtools\bsplib\patch.c"
"D:\Xash3D\src_main\xtools\models\picointernal.c"
"D:\Xash3D\src_main\xtools\models\picomodel.c"
"D:\Xash3D\src_main\xtools\models\picomodules.c"
"D:\Xash3D\src_main\xtools\models\pm_3ds.c"
"D:\Xash3D\src_main\xtools\models\pm_ase.c"
"D:\Xash3D\src_main\xtools\models\pm_fm.c"
"D:\Xash3D\src_main\xtools\models\pm_md2.c"
"D:\Xash3D\src_main\xtools\models\pm_md3.c"
"D:\Xash3D\src_main\xtools\models\pm_mdc.c"
"D:\Xash3D\src_main\xtools\models\pm_ms3d.c"
"D:\Xash3D\src_main\xtools\models\pm_obj.c"
"D:\Xash3D\src_main\xtools\bsplib\polylib.c"
"D:\Xash3D\src_main\xtools\bsplib\portals.c"
"D:\Xash3D\src_main\xtools\bsplib\prtfile.c"
"D:\Xash3D\src_main\xtools\bsplib\shaders.c"
"D:\Xash3D\src_main\xtools\spritegen.c"
"D:\Xash3D\src_main\xtools\studio.c"
"D:\Xash3D\src_main\xtools\studio_utils.c"
"D:\Xash3D\src_main\xtools\bsplib\surface.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_extra.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_foliage.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_fur.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_meta.c"
"D:\Xash3D\src_main\xtools\bsplib\tjunction.c"
"D:\Xash3D\src_main\xtools\bsplib\tree.c"
"D:\Xash3D\src_main\xtools\utils.c"
"D:\Xash3D\src_main\xtools\bsplib\vis.c"
"D:\Xash3D\src_main\xtools\bsplib\visflow.c"
"D:\Xash3D\src_main\xtools\wadlib.c"
"D:\Xash3D\src_main\xtools\bsplib\writebsp.c"
"D:\Xash3D\src_main\xtools\ximage.c"
"D:\Xash3D\src_main\xtools\xtools.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17CF.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17D0.tmp" with contents
[
msvcrtd.lib user32.lib /nologo /dll /incremental:yes /pdb:"..\temp\xtools\!debug/xtools.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\xtools\!debug/xtools.dll" /implib:"..\temp\xtools\!debug/xtools.lib" /pdbtype:sept
"\Xash3D\src_main\temp\xtools\!debug\brush.obj"
"\Xash3D\src_main\temp\xtools\!debug\brush_primit.obj"
"\Xash3D\src_main\temp\xtools\!debug\bsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\bspfile_abstract.obj"
"\Xash3D\src_main\temp\xtools\!debug\bspfile_ibsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\bspfile_rbsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\bsplib.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_bsplumps.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_doom.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_image.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_main.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_shader.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_sprite.obj"
"\Xash3D\src_main\temp\xtools\!debug\convert_ase.obj"
"\Xash3D\src_main\temp\xtools\!debug\convert_map.obj"
"\Xash3D\src_main\temp\xtools\!debug\decals.obj"
"\Xash3D\src_main\temp\xtools\!debug\facebsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\fog.obj"
"\Xash3D\src_main\temp\xtools\!debug\image.obj"
"\Xash3D\src_main\temp\xtools\!debug\leakfile.obj"
"\Xash3D\src_main\temp\xtools\!debug\light.obj"
"\Xash3D\src_main\temp\xtools\!debug\light_bounce.obj"
"\Xash3D\src_main\temp\xtools\!debug\light_trace.obj"
"\Xash3D\src_main\temp\xtools\!debug\light_ydnar.obj"
"\Xash3D\src_main\temp\xtools\!debug\lightmaps_ydnar.obj"
"\Xash3D\src_main\temp\xtools\!debug\map.obj"
"\Xash3D\src_main\temp\xtools\!debug\md5.obj"
"\Xash3D\src_main\temp\xtools\!debug\mesh.obj"
"\Xash3D\src_main\temp\xtools\!debug\model.obj"
"\Xash3D\src_main\temp\xtools\!debug\patch.obj"
"\Xash3D\src_main\temp\xtools\!debug\picointernal.obj"
"\Xash3D\src_main\temp\xtools\!debug\picomodel.obj"
"\Xash3D\src_main\temp\xtools\!debug\picomodules.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_3ds.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_ase.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_fm.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_md2.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_md3.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_mdc.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_ms3d.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_obj.obj"
"\Xash3D\src_main\temp\xtools\!debug\polylib.obj"
"\Xash3D\src_main\temp\xtools\!debug\portals.obj"
"\Xash3D\src_main\temp\xtools\!debug\prtfile.obj"
"\Xash3D\src_main\temp\xtools\!debug\shaders.obj"
"\Xash3D\src_main\temp\xtools\!debug\spritegen.obj"
"\Xash3D\src_main\temp\xtools\!debug\studio.obj"
"\Xash3D\src_main\temp\xtools\!debug\studio_utils.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_extra.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_foliage.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_fur.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_meta.obj"
"\Xash3D\src_main\temp\xtools\!debug\tjunction.obj"
"\Xash3D\src_main\temp\xtools\!debug\tree.obj"
"\Xash3D\src_main\temp\xtools\!debug\utils.obj"
"\Xash3D\src_main\temp\xtools\!debug\vis.obj"
"\Xash3D\src_main\temp\xtools\!debug\visflow.obj"
"\Xash3D\src_main\temp\xtools\!debug\wadlib.obj"
"\Xash3D\src_main\temp\xtools\!debug\writebsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\ximage.obj"
"\Xash3D\src_main\temp\xtools\!debug\xtools.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17D0.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17D1.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\xtools\!debug\xtools.dll "D:\Xash3D\bin\xtools.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP17D1.bat""
Compiling...
brush.c
brush_primit.c
bsp.c
bspfile_abstract.c
bspfile_ibsp.c
bspfile_rbsp.c
bsplib.c
conv_bsplumps.c
conv_doom.c
conv_image.c
conv_main.c
conv_shader.c
conv_sprite.c
convert_ase.c
convert_map.c
decals.c
facebsp.c
fog.c
image.c
leakfile.c
Generating Code...
Compiling...
light.c
light_bounce.c
light_trace.c
light_ydnar.c
lightmaps_ydnar.c
map.c
md5.c
mesh.c
model.c
patch.c
picointernal.c
picomodel.c
picomodules.c
pm_3ds.c
pm_ase.c
pm_fm.c
pm_md2.c
pm_md3.c
pm_mdc.c
pm_ms3d.c
Generating Code...
Compiling...
pm_obj.c
polylib.c
portals.c
prtfile.c
shaders.c
spritegen.c
studio.c
studio_utils.c
surface.c
surface_extra.c
surface_foliage.c
surface_fur.c
surface_meta.c
tjunction.c
tree.c
utils.c
vis.c
visflow.c
wadlib.c
writebsp.c
Generating Code...
Compiling...
ximage.c
xtools.c
Generating Code...
Linking...
Creating library ..\temp\xtools\!debug/xtools.lib and object ..\temp\xtools\!debug/xtools.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\xtools\!debug\xtools.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.