diff --git a/cl_dll/cl_dll.plg b/cl_dll/cl_dll.plg new file mode 100644 index 00000000..33b2fc35 --- /dev/null +++ b/cl_dll/cl_dll.plg @@ -0,0 +1,278 @@ + + +
+

Build Log

+

+--------------------Configuration: cl_dll - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPACB.tmp" with contents +[ +/nologo /G5 /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\dlls" /I "..\common" /I "..\pm_shared" /I "..\engine" /I "..\utils\vgui\include" /I "..\game_shared" /D "_DEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "CLIENT_DLL" /D "CLIENT_WEAPONS" /FR"..\temp\cl_dll\!debug/" /Fp"..\temp\cl_dll\!debug/cl_dll.pch" /YX /Fo"..\temp\cl_dll\!debug/" /Fd"..\temp\cl_dll\!debug/" /FD /c +"D:\Xash3D\src_main\dlls\crossbow.cpp" +"D:\Xash3D\src_main\dlls\crowbar.cpp" +"D:\Xash3D\src_main\dlls\egon.cpp" +"D:\Xash3D\src_main\cl_dll\ev_hldm.cpp" +"D:\Xash3D\src_main\dlls\gauss.cpp" +"D:\Xash3D\src_main\dlls\handgrenade.cpp" +"D:\Xash3D\src_main\cl_dll\hl\hl_baseentity.cpp" +"D:\Xash3D\src_main\cl_dll\hl\hl_events.cpp" +"D:\Xash3D\src_main\cl_dll\hl\hl_objects.cpp" +"D:\Xash3D\src_main\cl_dll\hl\hl_weapons.cpp" +"D:\Xash3D\src_main\dlls\glock.cpp" +"D:\Xash3D\src_main\dlls\hornetgun.cpp" +"D:\Xash3D\src_main\dlls\mp5.cpp" +"D:\Xash3D\src_main\dlls\python.cpp" +"D:\Xash3D\src_main\dlls\rpg.cpp" +"D:\Xash3D\src_main\dlls\satchel.cpp" +"D:\Xash3D\src_main\dlls\shotgun.cpp" +"D:\Xash3D\src_main\dlls\squeakgrenade.cpp" +"D:\Xash3D\src_main\dlls\tripmine.cpp" +"D:\Xash3D\src_main\game_shared\vgui_scrollbar2.cpp" +"D:\Xash3D\src_main\game_shared\vgui_slider2.cpp" +"D:\Xash3D\src_main\game_shared\voice_banmgr.cpp" +"D:\Xash3D\src_main\game_shared\voice_status.cpp" +"D:\Xash3D\src_main\cl_dll\ammo.cpp" +"D:\Xash3D\src_main\cl_dll\ammo_secondary.cpp" +"D:\Xash3D\src_main\cl_dll\ammohistory.cpp" +"D:\Xash3D\src_main\cl_dll\battery.cpp" +"D:\Xash3D\src_main\cl_dll\cdll_int.cpp" +"D:\Xash3D\src_main\cl_dll\com_weapons.cpp" +"D:\Xash3D\src_main\cl_dll\death.cpp" +"D:\Xash3D\src_main\cl_dll\demo.cpp" +"D:\Xash3D\src_main\cl_dll\entity.cpp" +"D:\Xash3D\src_main\cl_dll\ev_common.cpp" +"D:\Xash3D\src_main\cl_dll\events.cpp" +"D:\Xash3D\src_main\cl_dll\flashlight.cpp" +"D:\Xash3D\src_main\cl_dll\GameStudioModelRenderer.cpp" +"D:\Xash3D\src_main\cl_dll\geiger.cpp" +"D:\Xash3D\src_main\cl_dll\health.cpp" +"D:\Xash3D\src_main\cl_dll\hud.cpp" +"D:\Xash3D\src_main\cl_dll\hud_msg.cpp" +"D:\Xash3D\src_main\cl_dll\hud_redraw.cpp" +"D:\Xash3D\src_main\cl_dll\hud_servers.cpp" +"D:\Xash3D\src_main\cl_dll\hud_spectator.cpp" +"D:\Xash3D\src_main\cl_dll\hud_update.cpp" +"D:\Xash3D\src_main\cl_dll\in_camera.cpp" +"D:\Xash3D\src_main\cl_dll\input.cpp" +"D:\Xash3D\src_main\cl_dll\inputw32.cpp" +"D:\Xash3D\src_main\cl_dll\menu.cpp" +"D:\Xash3D\src_main\cl_dll\message.cpp" +"D:\Xash3D\src_main\cl_dll\parsemsg.cpp" +"D:\Xash3D\src_main\pm_shared\pm_debug.c" +"D:\Xash3D\src_main\pm_shared\pm_math.c" +"D:\Xash3D\src_main\pm_shared\pm_shared.c" +"D:\Xash3D\src_main\cl_dll\saytext.cpp" +"D:\Xash3D\src_main\cl_dll\status_icons.cpp" +"D:\Xash3D\src_main\cl_dll\statusbar.cpp" +"D:\Xash3D\src_main\cl_dll\studio_util.cpp" +"D:\Xash3D\src_main\cl_dll\StudioModelRenderer.cpp" +"D:\Xash3D\src_main\cl_dll\text_message.cpp" +"D:\Xash3D\src_main\cl_dll\train.cpp" +"D:\Xash3D\src_main\cl_dll\tri.cpp" +"D:\Xash3D\src_main\cl_dll\util.cpp" +"D:\Xash3D\src_main\game_shared\vgui_checkbutton2.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_ClassMenu.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_ConsolePanel.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_ControlConfigPanel.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_CustomObjects.cpp" +"D:\Xash3D\src_main\game_shared\vgui_grid.cpp" +"D:\Xash3D\src_main\game_shared\vgui_helpers.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_int.cpp" +"D:\Xash3D\src_main\game_shared\vgui_listbox.cpp" +"D:\Xash3D\src_main\game_shared\vgui_loadtga.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_MOTDWindow.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_SchemeManager.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_ScorePanel.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_ServerBrowser.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_SpectatorPanel.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_TeamFortressViewport.cpp" +"D:\Xash3D\src_main\cl_dll\vgui_teammenu.cpp" +"D:\Xash3D\src_main\cl_dll\view.cpp" +] +Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPACB.tmp"" +Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPACC.tmp" with contents +[ +oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib winmm.lib ../utils/vgui/lib/win32_vc6/vgui.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\cl_dll\!debug/client.pdb" /debug /machine:I386 /out:"..\temp\cl_dll\!debug/client.dll" /implib:"..\temp\cl_dll\!debug/client.lib" +"\Xash3D\src_main\temp\cl_dll\!debug\crossbow.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\crowbar.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\egon.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\ev_hldm.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\gauss.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\handgrenade.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hl_baseentity.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hl_events.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hl_objects.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hl_weapons.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\glock.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hornetgun.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\mp5.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\python.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\rpg.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\satchel.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\shotgun.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\squeakgrenade.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\tripmine.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_scrollbar2.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_slider2.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\voice_banmgr.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\voice_status.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\ammo.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\ammo_secondary.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\ammohistory.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\battery.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\cdll_int.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\com_weapons.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\death.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\demo.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\entity.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\ev_common.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\events.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\flashlight.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\GameStudioModelRenderer.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\geiger.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\health.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hud.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hud_msg.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hud_redraw.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hud_servers.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hud_spectator.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\hud_update.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\in_camera.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\input.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\inputw32.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\menu.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\message.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\parsemsg.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\pm_debug.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\pm_math.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\pm_shared.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\saytext.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\status_icons.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\statusbar.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\studio_util.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\StudioModelRenderer.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\text_message.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\train.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\tri.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\util.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_checkbutton2.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_ClassMenu.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_ConsolePanel.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_ControlConfigPanel.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_CustomObjects.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_grid.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_helpers.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_int.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_listbox.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_loadtga.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_MOTDWindow.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_SchemeManager.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_ScorePanel.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_ServerBrowser.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_SpectatorPanel.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_TeamFortressViewport.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\vgui_teammenu.obj" +"\Xash3D\src_main\temp\cl_dll\!debug\view.obj" +] +Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPACC.tmp"" +Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPACD.bat" with contents +[ +@echo off +copy \Xash3D\src_main\temp\cl_dll\!debug\client.dll "D:\Xash3D\valve\cl_dlls\client.dll" +] +Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPACD.bat"" +Compiling... +crossbow.cpp +crowbar.cpp +egon.cpp +ev_hldm.cpp +gauss.cpp +handgrenade.cpp +hl_baseentity.cpp +hl_events.cpp +hl_objects.cpp +hl_weapons.cpp +glock.cpp +hornetgun.cpp +mp5.cpp +python.cpp +rpg.cpp +satchel.cpp +shotgun.cpp +squeakgrenade.cpp +tripmine.cpp +vgui_scrollbar2.cpp +vgui_slider2.cpp +voice_banmgr.cpp +voice_status.cpp +ammo.cpp +ammo_secondary.cpp +ammohistory.cpp +battery.cpp +cdll_int.cpp +com_weapons.cpp +death.cpp +demo.cpp +entity.cpp +ev_common.cpp +events.cpp +flashlight.cpp +GameStudioModelRenderer.cpp +geiger.cpp +health.cpp +hud.cpp +hud_msg.cpp +hud_redraw.cpp +hud_servers.cpp +hud_spectator.cpp +hud_update.cpp +in_camera.cpp +input.cpp +inputw32.cpp +menu.cpp +message.cpp +parsemsg.cpp +pm_debug.c +pm_math.c +pm_shared.c +saytext.cpp +status_icons.cpp +statusbar.cpp +studio_util.cpp +StudioModelRenderer.cpp +text_message.cpp +train.cpp +tri.cpp +util.cpp +vgui_checkbutton2.cpp +vgui_ClassMenu.cpp +vgui_ConsolePanel.cpp +vgui_ControlConfigPanel.cpp +vgui_CustomObjects.cpp +vgui_grid.cpp +vgui_helpers.cpp +vgui_int.cpp +vgui_listbox.cpp +vgui_loadtga.cpp +vgui_MOTDWindow.cpp +vgui_SchemeManager.cpp +vgui_ScorePanel.cpp +vgui_ServerBrowser.cpp +vgui_SpectatorPanel.cpp +vgui_TeamFortressViewport.cpp +vgui_teammenu.cpp +view.cpp +Linking... + Creating library ..\temp\cl_dll\!debug/client.lib and object ..\temp\cl_dll\!debug/client.exp +

Output Window

+Performing Custom Build Step on \Xash3D\src_main\temp\cl_dll\!debug\client.dll +‘ª®¯¨à®¢ ­® ä ©«®¢: 1. + + + +

Results

+client.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/engine/client/cl_main.c b/engine/client/cl_main.c index ed3c14c3..5966a81a 100644 --- a/engine/client/cl_main.c +++ b/engine/client/cl_main.c @@ -98,6 +98,16 @@ qboolean CL_DisableVisibility( void ) return cls.envshot_disable_vis; } +qboolean CL_IsBackgroundDemo( void ) +{ + return ( cls.demoplayback && cls.demonum != -1 ); +} + +qboolean CL_IsBackgroundMap( void ) +{ + return ( cl.background && !cls.demoplayback ); +} + /* =============== CL_ChangeGame @@ -127,7 +137,7 @@ qboolean CL_ChangeGame( const char *gamefolder, qboolean bReset ) jlook_active = true; // so reload all images (remote connect) - Mod_ClearAll(); + Mod_ClearAll( true ); R_ShutdownImages(); FS_LoadGameInfo( (bReset) ? host.gamefolder : gamefolder ); R_InitImages(); @@ -1477,7 +1487,7 @@ void CL_ReadPackets( void ) return; // check timeout - if( cls.state >= ca_connected && !cls.demoplayback ) + if( cls.state >= ca_connected && !cls.demoplayback && cls.state != ca_cinematic ) { if( host.realtime - cls.netchan.last_received > cl_timeout->value ) { diff --git a/engine/client/cl_tent.c b/engine/client/cl_tent.c index 8b9c1600..c2ca4d17 100644 --- a/engine/client/cl_tent.c +++ b/engine/client/cl_tent.c @@ -790,6 +790,10 @@ void CL_MuzzleFlash( const vec3_t pos, int type ) pTemp->entity.angles[2] = Com_RandomLong( 0, 359 ); } + // play playermodel muzzleflashes only for mirror pass + if( RP_LOCALCLIENT( RI.currententity ) && !RI.thirdPerson && ( RI.params & RP_MIRRORVIEW )) + pTemp->entity.curstate.effects |= EF_REFLECTONLY; + CL_TEntAddEntity( &pTemp->entity ); } diff --git a/engine/client/gl_rsurf.c b/engine/client/gl_rsurf.c index 6ed0d7f0..0772d670 100644 --- a/engine/client/gl_rsurf.c +++ b/engine/client/gl_rsurf.c @@ -1386,6 +1386,8 @@ void R_DrawBrushModel( cl_entity_t *e ) qboolean rotated; dlight_t *l; + if( !RI.drawWorld ) return; + clmodel = e->model; RI.currentWaveHeight = RI.currententity->curstate.scale * 32.0f; diff --git a/engine/common/build.c b/engine/common/build.c index 3f98da2d..cd62a594 100644 --- a/engine/common/build.c +++ b/engine/common/build.c @@ -23,7 +23,7 @@ static char mond[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int Q_buildnum( void ) { // do not touch this! Only author of Xash3D can increase buildnumbers! -#if 0 +#if 1 int m = 0, d = 0, y = 0; static int b = 0; diff --git a/engine/common/common.h b/engine/common/common.h index 3322abd5..b93b9ef5 100644 --- a/engine/common/common.h +++ b/engine/common/common.h @@ -796,6 +796,8 @@ qboolean UI_CreditsActive( void ); void CL_ExtraUpdate( void ); int CL_GetMaxClients( void ); qboolean CL_IsPlaybackDemo( void ); +qboolean CL_IsBackgroundDemo( void ); +qboolean CL_IsBackgroundMap( void ); qboolean CL_LoadProgs( const char *name ); qboolean SV_GetComment( const char *savename, char *comment ); qboolean SV_NewGame( const char *mapName, qboolean loadGame ); diff --git a/engine/common/host.c b/engine/common/host.c index 3944a762..f567ec07 100644 --- a/engine/common/host.c +++ b/engine/common/host.c @@ -138,7 +138,7 @@ void Host_EndGame( const char *message, ... ) CL_ClearEdicts (); // release all models - Mod_ClearAll(); + Mod_ClearAll( true ); Host_AbortCurrentFrame (); } @@ -644,7 +644,7 @@ void Host_Error( const char *error, ... ) CL_ClearEdicts (); // release all models - Mod_ClearAll(); + Mod_ClearAll( false ); recursive = false; Host_AbortCurrentFrame(); diff --git a/engine/common/input.c b/engine/common/input.c index 0c71172b..7b1794d6 100644 --- a/engine/common/input.c +++ b/engine/common/input.c @@ -183,7 +183,7 @@ void IN_ToggleClientMouse( int newstate, int oldstate ) clgame.dllFuncs.IN_ActivateMouse(); } - if( newstate == key_menu && !cl.background ) + if( newstate == key_menu && ( !CL_IsBackgroundMap() || CL_IsBackgroundDemo())) { in_mouseactive = false; ClipCursor( NULL ); diff --git a/engine/common/mod_local.h b/engine/common/mod_local.h index 4be7a0db..214933ce 100644 --- a/engine/common/mod_local.h +++ b/engine/common/mod_local.h @@ -83,6 +83,7 @@ typedef struct int lm_sample_size; // defaulting to 16 (BSP31 uses 8) int block_size; // lightmap blocksize color24 *deluxedata; // deluxemap data pointer + char message[2048]; // just for debug vec3_t mins; // real accuracy world bounds vec3_t maxs; @@ -99,7 +100,7 @@ extern int bmodel_version; // only actual during loading // model.c // void Mod_Init( void ); -void Mod_ClearAll( void ); +void Mod_ClearAll( qboolean keep_playermodel ); void Mod_Shutdown( void ); void Mod_ClearUserData( void ); void Mod_PrintBSPFileSizes( void ); diff --git a/engine/common/mod_studio.c b/engine/common/mod_studio.c index 46ab0e9f..534350fa 100644 --- a/engine/common/mod_studio.c +++ b/engine/common/mod_studio.c @@ -208,6 +208,10 @@ hull_t *Mod_HullForStudio( model_t *model, float frame, int sequence, vec3_t ang mstudiobbox_t *phitbox; int i, j; + ASSERT( numhitboxes ); + + *numhitboxes = 0; // assume error + if( mod_studiocache->integer ) { bonecache = Mod_CheckStudioCache( model, frame, sequence, angles, origin, size, pcontroller, pblending ); diff --git a/engine/common/model.c b/engine/common/model.c index 26f8f47b..d980112b 100644 --- a/engine/common/model.c +++ b/engine/common/model.c @@ -159,6 +159,8 @@ void Mod_PrintBSPFileSizes_f( void ) Msg( "=== Total BSP file data space used: %s ===\n", Q_memprint( totalmemory )); Msg( "World size ( %g %g %g ) units\n", world.size[0], world.size[1], world.size[2] ); + Msg( "original name: ^1%s\n", worldmodel->name ); + Msg( "internal name: %s\n", (world.message[0]) ? va( "^2%s", world.message ) : "none" ); } /* @@ -546,15 +548,23 @@ void Mod_Init( void ) Mod_InitStudioHull (); } -void Mod_ClearAll( void ) +void Mod_ClearAll( qboolean keep_playermodel ) { + model_t *plr = com_models[MAX_MODELS-1]; + model_t *mod; int i; - for( i = 0; i < cm_nummodels; i++ ) - Mod_FreeModel( &cm_models[i] ); + for( i = 0, mod = cm_models; i < cm_nummodels; i++, mod++ ) + { + if( keep_playermodel && mod == plr ) + continue; - Q_memset( cm_models, 0, sizeof( cm_models )); - cm_nummodels = 0; + Mod_FreeModel( mod ); + memset( mod, 0, sizeof( *mod )); + } + + // g-cont. may be just leave unchanged? + if( !keep_playermodel ) cm_nummodels = 0; } void Mod_ClearUserData( void ) @@ -567,7 +577,7 @@ void Mod_ClearUserData( void ) void Mod_Shutdown( void ) { - Mod_ClearAll(); + Mod_ClearAll( false ); Mem_FreePool( &com_studiocache ); } @@ -2202,6 +2212,7 @@ static void Mod_LoadEntities( const dlump_t *l ) world.entdatasize = l->filelen; pfile = (char *)loadmodel->entities; + world.message[0] = '\0'; wadlist.count = 0; // parse all the wads for loading textures in right ordering @@ -2244,6 +2255,8 @@ static void Mod_LoadEntities( const dlump_t *l ) } else if( !Q_stricmp( keyname, "mapversion" )) world.mapversion = Q_atoi( token ); + else if( !Q_stricmp( keyname, "message" )) + Q_strncpy( world.message, token, sizeof( world.message )); } return; // all done } diff --git a/engine/common/net_encode.c b/engine/common/net_encode.c index 1dcbed90..29ca0a6a 100644 --- a/engine/common/net_encode.c +++ b/engine/common/net_encode.c @@ -1237,7 +1237,7 @@ qboolean Delta_ReadField( sizebuf_t *msg, delta_t *pField, void *from, void *to, if( bChanged ) { iValue = BF_ReadBitLong( msg, pField->bits, bSigned ); - flValue = (float)(iValue * 0.01f); + flValue = (float)((int)(iValue * 0.01f)); flTime = timebase + flValue; } else diff --git a/engine/common/pm_trace.c b/engine/common/pm_trace.c index eed47ee3..a1775984 100644 --- a/engine/common/pm_trace.c +++ b/engine/common/pm_trace.c @@ -138,7 +138,7 @@ hull_t *PM_HullForBsp( physent_t *pe, playermove_t *pmove, float *offset ) ASSERT( hull != NULL ); // force to use hull0 because other hulls doesn't exist for water - if( pe->model->flags & MODEL_LIQUID ) + if( pe->model->flags & MODEL_LIQUID && pe->solid != SOLID_TRIGGER ) hull = &pe->model->hulls[0]; // calculate an offset value to center the origin diff --git a/engine/server/sv_cmds.c b/engine/server/sv_cmds.c index 43669b50..ff40daf4 100644 --- a/engine/server/sv_cmds.c +++ b/engine/server/sv_cmds.c @@ -292,7 +292,13 @@ void SV_MapBackground_f( void ) SV_ActivateServer (); } -void SV_Newgame_f( void ) +/* +============== +SV_NewGame_f + +============== +*/ +void SV_NewGame_f( void ) { if( Cmd_Argc() != 1 ) { @@ -303,6 +309,12 @@ void SV_Newgame_f( void ) Host_NewGame( GI->startmap, false ); } +/* +============== +SV_HazardCourse_f + +============== +*/ void SV_HazardCourse_f( void ) { if( Cmd_Argc() != 1 ) @@ -314,7 +326,24 @@ void SV_HazardCourse_f( void ) Host_NewGame( GI->trainmap, false ); } -void SV_Endgame_f( void ) +/* +============== +SV_EndGame_f + +============== +*/ +void SV_EndGame_f( void ) +{ + Host_EndGame( Cmd_Argv( 1 )); +} + +/* +============== +SV_KillGame_f + +============== +*/ +void SV_KillGame_f( void ) { Host_EndGame( "The End" ); } @@ -888,8 +917,9 @@ void SV_InitOperatorCommands( void ) Cmd_AddCommand( "playersonly", SV_PlayersOnly_f, "freezes time, except for players" ); Cmd_AddCommand( "map", SV_Map_f, "start new level" ); - Cmd_AddCommand( "newgame", SV_Newgame_f, "begin new game" ); - Cmd_AddCommand( "killgame", SV_Endgame_f, "end current game" ); + Cmd_AddCommand( "newgame", SV_NewGame_f, "begin new game" ); + Cmd_AddCommand( "endgame", SV_EndGame_f, "end current game" ); + Cmd_AddCommand( "killgame", SV_KillGame_f, "end current game" ); Cmd_AddCommand( "hazardcourse", SV_HazardCourse_f, "starting a Hazard Course" ); Cmd_AddCommand( "changelevel", SV_ChangeLevel_f, "changing level" ); Cmd_AddCommand( "restart", SV_Restart_f, "restarting current level" ); @@ -932,6 +962,7 @@ void SV_KillOperatorCommands( void ) Cmd_RemoveCommand( "map" ); Cmd_RemoveCommand( "newgame" ); + Cmd_RemoveCommand( "endgame" ); Cmd_RemoveCommand( "killgame" ); Cmd_RemoveCommand( "hazardcourse" ); Cmd_RemoveCommand( "changelevel" ); diff --git a/engine/server/sv_game.c b/engine/server/sv_game.c index ddd3edbd..5a98458a 100644 --- a/engine/server/sv_game.c +++ b/engine/server/sv_game.c @@ -4021,7 +4021,7 @@ void pfnEndSection( const char *pszSection ) { if( !Q_stricmp( "oem_end_credits", pszSection )) Host_Credits (); - else Host_EndGame( pszSection ); + else Cbuf_AddText( va( "endgame \"%s\"\n", pszSection )); } /* diff --git a/engine/server/sv_init.c b/engine/server/sv_init.c index 451e91f6..a0490bbc 100644 --- a/engine/server/sv_init.c +++ b/engine/server/sv_init.c @@ -531,9 +531,17 @@ qboolean SV_SpawnServer( const char *mapname, const char *startspot ) Cvar_SetFloat( "skill", (float)current_skill ); - if( sv.background ) // tell the game parts about background state + if( sv.background ) + { + // tell the game parts about background state Cvar_FullSet( "sv_background", "1", CVAR_READ_ONLY ); - else Cvar_FullSet( "sv_background", "0", CVAR_READ_ONLY ); + Cvar_FullSet( "cl_background", "1", CVAR_READ_ONLY ); + } + else + { + Cvar_FullSet( "sv_background", "0", CVAR_READ_ONLY ); + Cvar_FullSet( "cl_background", "0", CVAR_READ_ONLY ); + } // make sure what server name doesn't contain path and extension FS_FileBase( mapname, sv.name ); diff --git a/engine/server/sv_world.c b/engine/server/sv_world.c index b2965b81..f1f7090a 100644 --- a/engine/server/sv_world.c +++ b/engine/server/sv_world.c @@ -193,7 +193,7 @@ hull_t *SV_HullForBsp( edict_t *ent, const vec3_t mins, const vec3_t maxs, float if( sv_quakehulls->integer == 1 ) { // Using quake-style hull select for my Quake remake - if( size[0] < 3.0f || model->flags & MODEL_LIQUID ) + if( size[0] < 3.0f || ( model->flags & MODEL_LIQUID && ent->v.solid != SOLID_TRIGGER )) hull = &model->hulls[0]; else if( size[0] <= 32.0f ) hull = &model->hulls[1]; @@ -208,7 +208,7 @@ hull_t *SV_HullForBsp( edict_t *ent, const vec3_t mins, const vec3_t maxs, float } else { - if( size[0] <= 8.0f || model->flags & MODEL_LIQUID ) + if( size[0] <= 8.0f || ( model->flags & MODEL_LIQUID && ent->v.solid != SOLID_TRIGGER )) { hull = &model->hulls[0]; VectorCopy( hull->clip_mins, offset ); @@ -276,6 +276,7 @@ hull_t *SV_HullForStudioModel( edict_t *ent, vec3_t mins, vec3_t maxs, vec3_t of { int isPointTrace; float scale = 0.5f; + hull_t *hull = NULL; vec3_t size; model_t *mod; @@ -333,12 +334,16 @@ hull_t *SV_HullForStudioModel( edict_t *ent, vec3_t mins, vec3_t maxs, vec3_t of blending[0] = (byte)iBlend; blending[1] = 0; - return Mod_HullForStudio( mod, ent->v.frame, ent->v.sequence, angles, ent->v.origin, size, controller, blending, numhitboxes, ent ); + hull = Mod_HullForStudio( mod, ent->v.frame, ent->v.sequence, angles, ent->v.origin, size, controller, blending, numhitboxes, ent ); + } + else + { + hull = Mod_HullForStudio( mod, ent->v.frame, ent->v.sequence, ent->v.angles, ent->v.origin, size, ent->v.controller, ent->v.blending, numhitboxes, ent ); } - - return Mod_HullForStudio( mod, ent->v.frame, ent->v.sequence, ent->v.angles, ent->v.origin, size, ent->v.controller, ent->v.blending, numhitboxes, ent ); } + if( hull ) return hull; + *numhitboxes = 1; return SV_HullForEntity( ent, mins, maxs, offset ); } diff --git a/mainui/menu_playersetup.cpp b/mainui/menu_playersetup.cpp index 7732e07f..982f8746 100644 --- a/mainui/menu_playersetup.cpp +++ b/mainui/menu_playersetup.cpp @@ -453,7 +453,7 @@ static void UI_PlayerSetup_Init( void ) uiPlayerSetup.showModels.generic.id = ID_SHOWMODELS; uiPlayerSetup.showModels.generic.type = QMTYPE_CHECKBOX; uiPlayerSetup.showModels.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW|addFlags; - uiPlayerSetup.showModels.generic.name = "Show Player Models"; + uiPlayerSetup.showModels.generic.name = "Show 3D Preview"; uiPlayerSetup.showModels.generic.x = 72; uiPlayerSetup.showModels.generic.y = 380; uiPlayerSetup.showModels.generic.callback = UI_PlayerSetup_Callback; diff --git a/mainui/menu_strings.cpp b/mainui/menu_strings.cpp index d9bab119..548a013d 100644 --- a/mainui/menu_strings.cpp +++ b/mainui/menu_strings.cpp @@ -422,7 +422,7 @@ char *MenuStrings[HINT_MAXSTRINGS] = "", "Find more about Valve's product lineup", // 400 "", -"http://www.valvesoftware.com/projects.htm", +"http://store.steampowered.com/app/70/", "", "", "",