09 Feb 2012

This commit is contained in:
g-cont 2012-02-09 00:00:00 +04:00 committed by Alibek Omarov
parent e5490355c1
commit a52eddecc3
27 changed files with 522 additions and 63 deletions

View File

@ -1654,6 +1654,11 @@ void CStudioModelRenderer::StudioRenderFinal_Hardware( void )
gEngfuncs.pTriAPI->RenderMode( kRenderNormal );
}
if (m_pCvarDrawEntities->value == 5)
{
IEngineStudio.StudioDrawAbsBBox( );
}
IEngineStudio.RestoreRenderer();
}

View File

@ -208,8 +208,9 @@ typedef struct mextrasurf_s
int mirrortexturenum; // gl texnum
float mirrormatrix[4][4];
struct mextrasurf_s *mirrorchain; // for gl_texsort drawing
struct mextrasurf_s *detailchain; // for detail textures drawing
int reserved[8]; // just for future expansions or mod-makers
int reserved[7]; // just for future expansions or mod-makers
} mextrasurf_t;
typedef struct hull_s

View File

@ -266,7 +266,7 @@ void Host_Say( edict_t *pEntity, int teamonly )
// make sure the text has content
for ( char *pc = p; pc != NULL && *pc != 0; pc++ )
{
if ( isprint( *pc ) && !isspace( *pc ) )
if ( !isspace( *pc ) )
{
pc = NULL; // we've found an alphanumeric character, so text is valid
break;

View File

@ -6,6 +6,131 @@
--------------------Configuration: hl - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ~1.E0B\LOCALS~1\Temp\RSP1048.tmp" with contents
[
/nologo /G5 /MT /W3 /O2 /I "..\dlls" /I "..\engine" /I "..\common" /I "..\pm_shared" /I "..\game_shared" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "QUIVER" /D "VOXEL" /D "QUAKE2" /D "VALVE_DLL" /D "CLIENT_WEAPONS" /Fr"..\temp\dlls\!release/" /Fp"..\temp\dlls\!release/hl.pch" /YX /Fo"..\temp\dlls\!release/" /Fd"..\temp\dlls\!release/" /FD /c
"D:\Xash3D\src_main\dlls\client.cpp"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ~1.E0B\LOCALS~1\Temp\RSP1048.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ~1.E0B\LOCALS~1\Temp\RSP1049.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"..\temp\dlls\!release/hl.pdb" /debug /machine:I386 /def:".\hl.def" /out:"..\temp\dlls\!release/hl.dll" /implib:"..\temp\dlls\!release/hl.lib"
"\Xash3D\src_main\temp\dlls\!release\aflock.obj"
"\Xash3D\src_main\temp\dlls\!release\agrunt.obj"
"\Xash3D\src_main\temp\dlls\!release\airtank.obj"
"\Xash3D\src_main\temp\dlls\!release\animating.obj"
"\Xash3D\src_main\temp\dlls\!release\animation.obj"
"\Xash3D\src_main\temp\dlls\!release\apache.obj"
"\Xash3D\src_main\temp\dlls\!release\barnacle.obj"
"\Xash3D\src_main\temp\dlls\!release\barney.obj"
"\Xash3D\src_main\temp\dlls\!release\bigmomma.obj"
"\Xash3D\src_main\temp\dlls\!release\bloater.obj"
"\Xash3D\src_main\temp\dlls\!release\bmodels.obj"
"\Xash3D\src_main\temp\dlls\!release\bullsquid.obj"
"\Xash3D\src_main\temp\dlls\!release\buttons.obj"
"\Xash3D\src_main\temp\dlls\!release\cbase.obj"
"\Xash3D\src_main\temp\dlls\!release\client.obj"
"\Xash3D\src_main\temp\dlls\!release\combat.obj"
"\Xash3D\src_main\temp\dlls\!release\controller.obj"
"\Xash3D\src_main\temp\dlls\!release\crossbow.obj"
"\Xash3D\src_main\temp\dlls\!release\crowbar.obj"
"\Xash3D\src_main\temp\dlls\!release\defaultai.obj"
"\Xash3D\src_main\temp\dlls\!release\doors.obj"
"\Xash3D\src_main\temp\dlls\!release\effects.obj"
"\Xash3D\src_main\temp\dlls\!release\egon.obj"
"\Xash3D\src_main\temp\dlls\!release\explode.obj"
"\Xash3D\src_main\temp\dlls\!release\flyingmonster.obj"
"\Xash3D\src_main\temp\dlls\!release\func_break.obj"
"\Xash3D\src_main\temp\dlls\!release\func_tank.obj"
"\Xash3D\src_main\temp\dlls\!release\game.obj"
"\Xash3D\src_main\temp\dlls\!release\gamerules.obj"
"\Xash3D\src_main\temp\dlls\!release\gargantua.obj"
"\Xash3D\src_main\temp\dlls\!release\gauss.obj"
"\Xash3D\src_main\temp\dlls\!release\genericmonster.obj"
"\Xash3D\src_main\temp\dlls\!release\ggrenade.obj"
"\Xash3D\src_main\temp\dlls\!release\globals.obj"
"\Xash3D\src_main\temp\dlls\!release\gman.obj"
"\Xash3D\src_main\temp\dlls\!release\h_ai.obj"
"\Xash3D\src_main\temp\dlls\!release\h_battery.obj"
"\Xash3D\src_main\temp\dlls\!release\h_cine.obj"
"\Xash3D\src_main\temp\dlls\!release\h_cycler.obj"
"\Xash3D\src_main\temp\dlls\!release\h_export.obj"
"\Xash3D\src_main\temp\dlls\!release\handgrenade.obj"
"\Xash3D\src_main\temp\dlls\!release\hassassin.obj"
"\Xash3D\src_main\temp\dlls\!release\headcrab.obj"
"\Xash3D\src_main\temp\dlls\!release\healthkit.obj"
"\Xash3D\src_main\temp\dlls\!release\hgrunt.obj"
"\Xash3D\src_main\temp\dlls\!release\hl_wpn_glock.obj"
"\Xash3D\src_main\temp\dlls\!release\hornet.obj"
"\Xash3D\src_main\temp\dlls\!release\hornetgun.obj"
"\Xash3D\src_main\temp\dlls\!release\houndeye.obj"
"\Xash3D\src_main\temp\dlls\!release\ichthyosaur.obj"
"\Xash3D\src_main\temp\dlls\!release\islave.obj"
"\Xash3D\src_main\temp\dlls\!release\items.obj"
"\Xash3D\src_main\temp\dlls\!release\leech.obj"
"\Xash3D\src_main\temp\dlls\!release\lights.obj"
"\Xash3D\src_main\temp\dlls\!release\maprules.obj"
"\Xash3D\src_main\temp\dlls\!release\monstermaker.obj"
"\Xash3D\src_main\temp\dlls\!release\monsters.obj"
"\Xash3D\src_main\temp\dlls\!release\monsterstate.obj"
"\Xash3D\src_main\temp\dlls\!release\mortar.obj"
"\Xash3D\src_main\temp\dlls\!release\mp5.obj"
"\Xash3D\src_main\temp\dlls\!release\multiplay_gamerules.obj"
"\Xash3D\src_main\temp\dlls\!release\nihilanth.obj"
"\Xash3D\src_main\temp\dlls\!release\nodes.obj"
"\Xash3D\src_main\temp\dlls\!release\osprey.obj"
"\Xash3D\src_main\temp\dlls\!release\pathcorner.obj"
"\Xash3D\src_main\temp\dlls\!release\plane.obj"
"\Xash3D\src_main\temp\dlls\!release\plats.obj"
"\Xash3D\src_main\temp\dlls\!release\player.obj"
"\Xash3D\src_main\temp\dlls\!release\pm_debug.obj"
"\Xash3D\src_main\temp\dlls\!release\pm_math.obj"
"\Xash3D\src_main\temp\dlls\!release\pm_shared.obj"
"\Xash3D\src_main\temp\dlls\!release\python.obj"
"\Xash3D\src_main\temp\dlls\!release\rat.obj"
"\Xash3D\src_main\temp\dlls\!release\roach.obj"
"\Xash3D\src_main\temp\dlls\!release\rpg.obj"
"\Xash3D\src_main\temp\dlls\!release\satchel.obj"
"\Xash3D\src_main\temp\dlls\!release\schedule.obj"
"\Xash3D\src_main\temp\dlls\!release\scientist.obj"
"\Xash3D\src_main\temp\dlls\!release\scripted.obj"
"\Xash3D\src_main\temp\dlls\!release\shotgun.obj"
"\Xash3D\src_main\temp\dlls\!release\singleplay_gamerules.obj"
"\Xash3D\src_main\temp\dlls\!release\skill.obj"
"\Xash3D\src_main\temp\dlls\!release\sound.obj"
"\Xash3D\src_main\temp\dlls\!release\soundent.obj"
"\Xash3D\src_main\temp\dlls\!release\spectator.obj"
"\Xash3D\src_main\temp\dlls\!release\squadmonster.obj"
"\Xash3D\src_main\temp\dlls\!release\squeakgrenade.obj"
"\Xash3D\src_main\temp\dlls\!release\subs.obj"
"\Xash3D\src_main\temp\dlls\!release\talkmonster.obj"
"\Xash3D\src_main\temp\dlls\!release\teamplay_gamerules.obj"
"\Xash3D\src_main\temp\dlls\!release\tempmonster.obj"
"\Xash3D\src_main\temp\dlls\!release\tentacle.obj"
"\Xash3D\src_main\temp\dlls\!release\triggers.obj"
"\Xash3D\src_main\temp\dlls\!release\tripmine.obj"
"\Xash3D\src_main\temp\dlls\!release\turret.obj"
"\Xash3D\src_main\temp\dlls\!release\util.obj"
"\Xash3D\src_main\temp\dlls\!release\voice_gamemgr.obj"
"\Xash3D\src_main\temp\dlls\!release\weapons.obj"
"\Xash3D\src_main\temp\dlls\!release\world.obj"
"\Xash3D\src_main\temp\dlls\!release\xen.obj"
"\Xash3D\src_main\temp\dlls\!release\zombie.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ~1.E0B\LOCALS~1\Temp\RSP1049.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ~1.E0B\LOCALS~1\Temp\RSP104A.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\dlls\!release\hl.dll "D:\Xash3D\valve\dlls\hl.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ~1.E0B\LOCALS~1\Temp\RSP104A.bat""
Compiling...
client.cpp
Linking...
Creating library ..\temp\dlls\!release/hl.lib and object ..\temp\dlls\!release/hl.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\dlls\!release\hl.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -156,7 +156,7 @@ qboolean CL_AddVisibleEntity( cl_entity_t *ent, int entityType )
VectorCopy( ent->angles, ent->curstate.angles );
}
if( CL_IsInMenu( ))
if( CL_IsInMenu( ) && ( !cl.background || ent->player ))
{
// menu entities ignores client filter
if( !R_AddEntity( ent, entityType ))

View File

@ -2953,7 +2953,7 @@ void NetAPI_Status( net_status_t *status )
status->remote_address = cls.netchan.remote_address;
status->packet_loss = cls.packet_loss / 100; // percent
status->latency = cl.frame.latency;
status->connection_time = cl.time; // FIXME: replace with netchan.first_received
status->connection_time = cl.time; // FIXME: replace with cl.time - netchan.first_received
status->rate = cls.netchan.rate;
}

View File

@ -710,6 +710,9 @@ void CL_ClearState( void )
Cvar_SetFloat( "scr_download", 0.0f );
Cvar_SetFloat( "scr_loading", 0.0f );
// restore real developer level
host.developer = host.old_developer;
}
/*

View File

@ -503,6 +503,9 @@ void CL_ParseServerData( sizebuf_t *msg )
cl.background = BF_ReadOneBit( msg );
Q_strncpy( gamefolder, BF_ReadString( msg ), MAX_STRING );
if( cl.maxclients > 1 && host.developer < 1 )
host.developer++;
if( !cls.changelevel )
{
// continue playing if we are changing level

View File

@ -167,7 +167,7 @@ qboolean R_CullSurface( msurface_t *surf, uint clipflags )
if( surf->flags & SURF_NOCULL )
return false;
// don't cull transparent surfaces because we shold be draw decals on them
// don't cull transparent surfaces because we should be draw decals on them
if( surf->pdecals && ( e->curstate.rendermode == kRenderTransTexture || e->curstate.rendermode == kRenderTransAdd ))
return false;

View File

@ -922,6 +922,8 @@ void DrawSurfaceDecals( msurface_t *fa )
pglDisable( GL_ALPHA_TEST );
}
if( e->curstate.rendermode == kRenderTransColor )
pglEnable( GL_TEXTURE_2D );
if( e->curstate.rendermode == kRenderTransTexture || e->curstate.rendermode == kRenderTransAdd )
GL_Cull( GL_NONE );
@ -958,6 +960,9 @@ void DrawSurfaceDecals( msurface_t *fa )
if( e->curstate.rendermode == kRenderTransTexture || e->curstate.rendermode == kRenderTransAdd )
GL_Cull( GL_FRONT );
if( e->curstate.rendermode == kRenderTransColor )
pglDisable( GL_TEXTURE_2D );
// restore blendfunc here
if( e->curstate.rendermode == kRenderTransAdd || e->curstate.rendermode == kRenderGlow )
pglBlendFunc( GL_SRC_ALPHA, GL_ONE );

View File

@ -213,6 +213,7 @@ typedef struct
int visframecount; // PVS frame
int dlightframecount; // dynamic light frame
int realframecount; // not including passes
int framecount;
// cull info

View File

@ -232,7 +232,7 @@ void R_DrawMirrors( void )
VectorsAngles( forward, right, up, angles );
angles[ROLL] = -angles[ROLL];
RI.params = RP_MIRRORVIEW|RP_FLIPFRONTFACE|RP_CLIPPLANE|RP_OLDVIEWLEAF;
RI.params = RP_MIRRORVIEW|RP_CLIPPLANE|RP_OLDVIEWLEAF;
RI.clipPlane = plane;
RI.clipFlags |= ( 1<<5 );

View File

@ -813,7 +813,7 @@ static void R_SetupGL( void )
R_SetupModelviewMatrix( &RI.refdef, RI.worldviewMatrix );
R_SetupProjectionMatrix( &RI.refdef, RI.projectionMatrix );
if( RI.params & RP_MIRRORVIEW ) RI.projectionMatrix[0][0] = -RI.projectionMatrix[0][0];
// if( RI.params & RP_MIRRORVIEW ) RI.projectionMatrix[0][0] = -RI.projectionMatrix[0][0];
Matrix4x4_Concat( RI.worldviewProjectionMatrix, RI.projectionMatrix, RI.worldviewMatrix );
@ -1173,6 +1173,8 @@ void R_RenderFrame( const ref_params_t *fd, qboolean drawWorld )
if( r_norefresh->integer )
return;
tr.realframecount++;
// completely override rendering
if( clgame.drawFuncs.GL_RenderFrame != NULL )
{

View File

@ -254,7 +254,7 @@ void R_ParseDetailTextures( const char *filename )
gltexture_t *glt;
GL_SetTextureType( tex->dt_texturenum, TEX_DETAIL );
glt = R_GetTexture( tex->dt_texturenum );
glt = R_GetTexture( tex->gl_texturenum );
glt->xscale = xScale;
glt->yscale = yScale;
}

View File

@ -536,10 +536,10 @@ void CL_DrawParticles( void )
// HACKHACK: don't evaluate particles when executes many times at same frame
// e.g. mirror rendering
if( framecount != tr.framecount )
if( framecount != tr.realframecount )
{
frametime = cl.time - cl.oldtime;
framecount = tr.framecount;
framecount = tr.realframecount;
}
else frametime = 0.0f;

View File

@ -34,7 +34,7 @@ static byte visbytes[MAX_MAP_LEAFS/8];
static uint r_blocklights[BLOCK_WIDTH*BLOCK_HEIGHT*3];
static glpoly_t *fullbright_polys[MAX_TEXTURES];
static qboolean draw_fullbrights = false;
static glpoly_t *detail_polys[MAX_TEXTURES];
static mextrasurf_t *detail_surfaces[MAX_TEXTURES];
static qboolean draw_details = false;
static gllightmapstate_t gl_lms;
static msurface_t *skychain = NULL;
@ -928,7 +928,8 @@ R_RenderDetails
void R_RenderDetails( void )
{
gltexture_t *glt;
glpoly_t *p;
mextrasurf_t *es, *p;
msurface_t *fa;
int i;
if( !draw_details )
@ -943,16 +944,20 @@ void R_RenderDetails( void )
for( i = 1; i < MAX_TEXTURES; i++ )
{
if( !detail_polys[i] )
continue;
es = detail_surfaces[i];
if( !es ) continue;
GL_Bind( GL_TEXTURE0, i );
glt = R_GetTexture( i );
for( p = detail_polys[i]; p; p = p->next )
DrawGLPoly( p, glt->xscale, glt->yscale );
for( p = es; p; p = p->detailchain )
{
fa = INFO_SURF( p, RI.currentmodel );
glt = R_GetTexture( fa->texinfo->texture->gl_texturenum ); // get texture scale
DrawGLPoly( fa->polys, glt->xscale, glt->yscale );
}
detail_polys[i] = NULL;
detail_surfaces[i] = NULL;
es->detailchain = NULL;
}
pglDisable( GL_BLEND );
@ -1022,10 +1027,9 @@ void R_RenderBrushPoly( msurface_t *fa )
}
else if( r_detailtextures->integer && t->dt_texturenum )
{
// HACKHACK: store details in poly->next (only for non-water surfaces)
// can't rendering both luma and detail textures simultaneously
fa->polys->next = detail_polys[t->dt_texturenum];
detail_polys[t->dt_texturenum] = fa->polys;
mextrasurf_t *es = SURF_INFO( fa, RI.currentmodel );
es->detailchain = detail_surfaces[t->dt_texturenum];
detail_surfaces[t->dt_texturenum] = es;
draw_details = true;
}
@ -1733,7 +1737,7 @@ void R_DrawWorld( void )
VectorCopy( RI.cullorigin, tr.modelorg );
Q_memset( gl_lms.lightmap_surfaces, 0, sizeof( gl_lms.lightmap_surfaces ));
Q_memset( fullbright_polys, 0, sizeof( fullbright_polys ));
Q_memset( detail_polys, 0, sizeof( detail_polys ));
Q_memset( detail_surfaces, 0, sizeof( detail_surfaces ));
RI.currentWaveHeight = RI.waveHeight;
GL_SetRenderMode( kRenderNormal );

View File

@ -720,10 +720,13 @@ static float R_GlowSightDistance( vec3_t glowOrigin )
VectorSubtract( glowOrigin, RI.vieworg, glowDist );
dist = VectorLength( glowDist );
tr = PM_PlayerTrace( clgame.pmove, RI.vieworg, glowOrigin, PM_GLASS_IGNORE|PM_STUDIO_IGNORE, 2, -1, NULL );
if( RP_NORMALPASS( ))
{
tr = PM_PlayerTrace( clgame.pmove, RI.vieworg, glowOrigin, PM_GLASS_IGNORE|PM_STUDIO_IGNORE, 2, -1, NULL );
if(( 1.0f - tr.fraction ) * dist > 8 )
return -1;
if(( 1.0f - tr.fraction ) * dist > 8 )
return -1;
}
return dist;
}

View File

@ -298,6 +298,7 @@ typedef struct host_parm_s
HWND hWnd; // main window
int developer; // show all developer's message
int old_developer; // keep real dev state (we need enable dev-mode in multiplayer)
qboolean key_overstrike; // key overstrike mode
qboolean stuffcmdsrun; // execute stuff commands
qboolean con_showalways; // show console always (developer and dedicated)

View File

@ -268,7 +268,7 @@ void Con_ToggleConsole_f( void )
{
if( !host.developer ) return; // disabled
if( UI_CreditsActive( )) return; // diabled by final credits
if( UI_CreditsActive( )) return; // disabled by final credits
// show console only in game or by special call from menu
if( cls.state != ca_active || cls.key_dest == key_menu )

View File

@ -563,7 +563,7 @@ void Host_InitCommon( const char *progname, qboolean bChangeGame )
host.hInst = GetModuleHandle( NULL );
host.change_game = bChangeGame;
host.state = HOST_INIT; // initialzation started
host.developer = 0;
host.developer = host.old_developer = 0;
CRT_Init(); // init some CRT functions
@ -635,6 +635,8 @@ void Host_InitCommon( const char *progname, qboolean bChangeGame )
if( host.developer < D_WARN ) host.con_showalways = false;
}
host.old_developer = host.developer;
Con_CreateConsole();
// first text message into console or log
@ -661,8 +663,8 @@ void Host_InitCommon( const char *progname, qboolean bChangeGame )
{
// clear all developer levels when game is protected
Cvar_FullSet( "developer", "0", CVAR_INIT );
host.developer = host.old_developer = 0;
host.con_showalways = false;
host.developer = 0;
}
HPAK_Init();

View File

@ -534,6 +534,13 @@ void Key_Event( int key, qboolean down )
// console key is hardcoded, so the user can never unbind it
if( key == '`' || key == '~' )
{
// we are in typing mode. So don't switch to console
if( (word)GetKeyboardLayout( 0 ) == (word)0x419 )
{
if( cls.key_dest != key_game )
return;
}
if( !down ) return;
Con_ToggleConsole_f();
return;
@ -717,6 +724,12 @@ void CL_CharEvent( int key )
// the console key should never be used as a char
if( key == '`' || key == '~' ) return;
if( cls.key_dest == key_console && !Con_Visible( ))
{
if((char)key == '¸' || (char)key == '¨' )
return; // don't pass '¸' when we open the console
}
// distribute the key down event to the apropriate handler
if( cls.key_dest == key_console || cls.key_dest == key_message )
{

282
engine/engine.plg Normal file
View File

@ -0,0 +1,282 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: engine - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CA.tmp" with contents
[
/nologo /MD /W3 /GX /O2 /I "./" /I "common" /I "common/imagelib" /I "common/soundlib" /I "server" /I "client" /I "client/vgui" /I "../common" /I "../game_shared" /I "../pm_shared" /I "../utils/vgui/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fo"..\temp\engine\!release/" /Fd"..\temp\engine\!release/" /FD /c
"D:\Xash3D\src_main\engine\common\avikit.c"
"D:\Xash3D\src_main\engine\common\build.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_events.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_menu.c"
"D:\Xash3D\src_main\engine\client\cl_parse.c"
"D:\Xash3D\src_main\engine\client\cl_pmove.c"
"D:\Xash3D\src_main\engine\client\cl_remap.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\common\cmd.c"
"D:\Xash3D\src_main\engine\common\common.c"
"D:\Xash3D\src_main\engine\common\con_utils.c"
"D:\Xash3D\src_main\engine\common\console.c"
"D:\Xash3D\src_main\engine\common\crclib.c"
"D:\Xash3D\src_main\engine\common\crtlib.c"
"D:\Xash3D\src_main\engine\common\cvar.c"
"D:\Xash3D\src_main\engine\common\filesystem.c"
"D:\Xash3D\src_main\engine\common\gamma.c"
"D:\Xash3D\src_main\engine\client\gl_backend.c"
"D:\Xash3D\src_main\engine\client\gl_beams.c"
"D:\Xash3D\src_main\engine\client\gl_cull.c"
"D:\Xash3D\src_main\engine\client\gl_decals.c"
"D:\Xash3D\src_main\engine\client\gl_draw.c"
"D:\Xash3D\src_main\engine\client\gl_image.c"
"D:\Xash3D\src_main\engine\client\gl_mirror.c"
"D:\Xash3D\src_main\engine\client\gl_refrag.c"
"D:\Xash3D\src_main\engine\client\gl_rlight.c"
"D:\Xash3D\src_main\engine\client\gl_rmain.c"
"D:\Xash3D\src_main\engine\client\gl_rmath.c"
"D:\Xash3D\src_main\engine\client\gl_rmisc.c"
"D:\Xash3D\src_main\engine\client\gl_rpart.c"
"D:\Xash3D\src_main\engine\client\gl_rsurf.c"
"D:\Xash3D\src_main\engine\client\gl_sprite.c"
"D:\Xash3D\src_main\engine\client\gl_studio.c"
"D:\Xash3D\src_main\engine\client\gl_vidnt.c"
"D:\Xash3D\src_main\engine\client\gl_warp.c"
"D:\Xash3D\src_main\engine\common\host.c"
"D:\Xash3D\src_main\engine\common\hpak.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_bmp.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_jpg.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_main.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_quant.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_tga.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_utils.c"
"D:\Xash3D\src_main\engine\common\imagelib\img_wad.c"
"D:\Xash3D\src_main\engine\common\infostring.c"
"D:\Xash3D\src_main\engine\common\input.c"
"D:\Xash3D\src_main\engine\common\keys.c"
"D:\Xash3D\src_main\engine\common\library.c"
"D:\Xash3D\src_main\engine\common\mathlib.c"
"D:\Xash3D\src_main\engine\common\matrixlib.c"
"D:\Xash3D\src_main\engine\common\model.c"
"D:\Xash3D\src_main\engine\common\net_buffer.c"
"D:\Xash3D\src_main\engine\common\net_chan.c"
"D:\Xash3D\src_main\engine\common\net_encode.c"
"D:\Xash3D\src_main\engine\common\net_huff.c"
"D:\Xash3D\src_main\engine\common\network.c"
"D:\Xash3D\src_main\engine\common\pm_studio.c"
"D:\Xash3D\src_main\engine\common\pm_surface.c"
"D:\Xash3D\src_main\engine\common\pm_trace.c"
"D:\Xash3D\src_main\engine\common\random.c"
"D:\Xash3D\src_main\engine\client\s_backend.c"
"D:\Xash3D\src_main\engine\client\s_dsp.c"
"D:\Xash3D\src_main\engine\client\s_load.c"
"D:\Xash3D\src_main\engine\client\s_main.c"
"D:\Xash3D\src_main\engine\client\s_mix.c"
"D:\Xash3D\src_main\engine\client\s_mouth.c"
"D:\Xash3D\src_main\engine\client\s_stream.c"
"D:\Xash3D\src_main\engine\client\s_utils.c"
"D:\Xash3D\src_main\engine\client\s_vox.c"
"D:\Xash3D\src_main\engine\common\soundlib\snd_main.c"
"D:\Xash3D\src_main\engine\common\soundlib\snd_mp3.c"
"D:\Xash3D\src_main\engine\common\soundlib\snd_utils.c"
"D:\Xash3D\src_main\engine\common\soundlib\snd_wav.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_custom.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_pmove.c"
"D:\Xash3D\src_main\engine\server\sv_save.c"
"D:\Xash3D\src_main\engine\server\sv_studio.c"
"D:\Xash3D\src_main\engine\server\sv_world.c"
"D:\Xash3D\src_main\engine\common\sys_con.c"
"D:\Xash3D\src_main\engine\common\sys_win.c"
"D:\Xash3D\src_main\engine\common\titles.c"
"D:\Xash3D\src_main\engine\client\vgui\vgui_clip.cpp"
"D:\Xash3D\src_main\engine\client\vgui\vgui_draw.c"
"D:\Xash3D\src_main\engine\client\vgui\vgui_font.cpp"
"D:\Xash3D\src_main\engine\client\vgui\vgui_input.cpp"
"D:\Xash3D\src_main\engine\client\vgui\vgui_int.cpp"
"D:\Xash3D\src_main\engine\client\vgui\vgui_surf.cpp"
"D:\Xash3D\src_main\engine\common\world.c"
"D:\Xash3D\src_main\engine\common\zone.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CA.tmp""
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CB.tmp" with contents
[
msvcrt.lib user32.lib gdi32.lib shell32.lib advapi32.lib winmm.lib mpeg.lib ../utils/vgui/lib/win32_vc6/vgui.lib /nologo /subsystem:windows /dll /pdb:none /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\engine\!release/xash.dll" /implib:"..\temp\engine\!release/xash.lib" /libpath:"./common/soundlib" /opt:nowin98
"\Xash3D\src_main\temp\engine\!release\avikit.obj"
"\Xash3D\src_main\temp\engine\!release\build.obj"
"\Xash3D\src_main\temp\engine\!release\cl_cmds.obj"
"\Xash3D\src_main\temp\engine\!release\cl_demo.obj"
"\Xash3D\src_main\temp\engine\!release\cl_events.obj"
"\Xash3D\src_main\temp\engine\!release\cl_frame.obj"
"\Xash3D\src_main\temp\engine\!release\cl_game.obj"
"\Xash3D\src_main\temp\engine\!release\cl_main.obj"
"\Xash3D\src_main\temp\engine\!release\cl_menu.obj"
"\Xash3D\src_main\temp\engine\!release\cl_parse.obj"
"\Xash3D\src_main\temp\engine\!release\cl_pmove.obj"
"\Xash3D\src_main\temp\engine\!release\cl_remap.obj"
"\Xash3D\src_main\temp\engine\!release\cl_scrn.obj"
"\Xash3D\src_main\temp\engine\!release\cl_tent.obj"
"\Xash3D\src_main\temp\engine\!release\cl_video.obj"
"\Xash3D\src_main\temp\engine\!release\cl_view.obj"
"\Xash3D\src_main\temp\engine\!release\cmd.obj"
"\Xash3D\src_main\temp\engine\!release\common.obj"
"\Xash3D\src_main\temp\engine\!release\con_utils.obj"
"\Xash3D\src_main\temp\engine\!release\console.obj"
"\Xash3D\src_main\temp\engine\!release\crclib.obj"
"\Xash3D\src_main\temp\engine\!release\crtlib.obj"
"\Xash3D\src_main\temp\engine\!release\cvar.obj"
"\Xash3D\src_main\temp\engine\!release\filesystem.obj"
"\Xash3D\src_main\temp\engine\!release\gamma.obj"
"\Xash3D\src_main\temp\engine\!release\gl_backend.obj"
"\Xash3D\src_main\temp\engine\!release\gl_beams.obj"
"\Xash3D\src_main\temp\engine\!release\gl_cull.obj"
"\Xash3D\src_main\temp\engine\!release\gl_decals.obj"
"\Xash3D\src_main\temp\engine\!release\gl_draw.obj"
"\Xash3D\src_main\temp\engine\!release\gl_image.obj"
"\Xash3D\src_main\temp\engine\!release\gl_mirror.obj"
"\Xash3D\src_main\temp\engine\!release\gl_refrag.obj"
"\Xash3D\src_main\temp\engine\!release\gl_rlight.obj"
"\Xash3D\src_main\temp\engine\!release\gl_rmain.obj"
"\Xash3D\src_main\temp\engine\!release\gl_rmath.obj"
"\Xash3D\src_main\temp\engine\!release\gl_rmisc.obj"
"\Xash3D\src_main\temp\engine\!release\gl_rpart.obj"
"\Xash3D\src_main\temp\engine\!release\gl_rsurf.obj"
"\Xash3D\src_main\temp\engine\!release\gl_sprite.obj"
"\Xash3D\src_main\temp\engine\!release\gl_studio.obj"
"\Xash3D\src_main\temp\engine\!release\gl_vidnt.obj"
"\Xash3D\src_main\temp\engine\!release\gl_warp.obj"
"\Xash3D\src_main\temp\engine\!release\host.obj"
"\Xash3D\src_main\temp\engine\!release\hpak.obj"
"\Xash3D\src_main\temp\engine\!release\img_bmp.obj"
"\Xash3D\src_main\temp\engine\!release\img_jpg.obj"
"\Xash3D\src_main\temp\engine\!release\img_main.obj"
"\Xash3D\src_main\temp\engine\!release\img_quant.obj"
"\Xash3D\src_main\temp\engine\!release\img_tga.obj"
"\Xash3D\src_main\temp\engine\!release\img_utils.obj"
"\Xash3D\src_main\temp\engine\!release\img_wad.obj"
"\Xash3D\src_main\temp\engine\!release\infostring.obj"
"\Xash3D\src_main\temp\engine\!release\input.obj"
"\Xash3D\src_main\temp\engine\!release\keys.obj"
"\Xash3D\src_main\temp\engine\!release\library.obj"
"\Xash3D\src_main\temp\engine\!release\mathlib.obj"
"\Xash3D\src_main\temp\engine\!release\matrixlib.obj"
"\Xash3D\src_main\temp\engine\!release\model.obj"
"\Xash3D\src_main\temp\engine\!release\net_buffer.obj"
"\Xash3D\src_main\temp\engine\!release\net_chan.obj"
"\Xash3D\src_main\temp\engine\!release\net_encode.obj"
"\Xash3D\src_main\temp\engine\!release\net_huff.obj"
"\Xash3D\src_main\temp\engine\!release\network.obj"
"\Xash3D\src_main\temp\engine\!release\pm_studio.obj"
"\Xash3D\src_main\temp\engine\!release\pm_surface.obj"
"\Xash3D\src_main\temp\engine\!release\pm_trace.obj"
"\Xash3D\src_main\temp\engine\!release\random.obj"
"\Xash3D\src_main\temp\engine\!release\s_backend.obj"
"\Xash3D\src_main\temp\engine\!release\s_dsp.obj"
"\Xash3D\src_main\temp\engine\!release\s_load.obj"
"\Xash3D\src_main\temp\engine\!release\s_main.obj"
"\Xash3D\src_main\temp\engine\!release\s_mix.obj"
"\Xash3D\src_main\temp\engine\!release\s_mouth.obj"
"\Xash3D\src_main\temp\engine\!release\s_stream.obj"
"\Xash3D\src_main\temp\engine\!release\s_utils.obj"
"\Xash3D\src_main\temp\engine\!release\s_vox.obj"
"\Xash3D\src_main\temp\engine\!release\snd_main.obj"
"\Xash3D\src_main\temp\engine\!release\snd_mp3.obj"
"\Xash3D\src_main\temp\engine\!release\snd_utils.obj"
"\Xash3D\src_main\temp\engine\!release\snd_wav.obj"
"\Xash3D\src_main\temp\engine\!release\sv_client.obj"
"\Xash3D\src_main\temp\engine\!release\sv_cmds.obj"
"\Xash3D\src_main\temp\engine\!release\sv_custom.obj"
"\Xash3D\src_main\temp\engine\!release\sv_frame.obj"
"\Xash3D\src_main\temp\engine\!release\sv_game.obj"
"\Xash3D\src_main\temp\engine\!release\sv_init.obj"
"\Xash3D\src_main\temp\engine\!release\sv_main.obj"
"\Xash3D\src_main\temp\engine\!release\sv_move.obj"
"\Xash3D\src_main\temp\engine\!release\sv_phys.obj"
"\Xash3D\src_main\temp\engine\!release\sv_pmove.obj"
"\Xash3D\src_main\temp\engine\!release\sv_save.obj"
"\Xash3D\src_main\temp\engine\!release\sv_studio.obj"
"\Xash3D\src_main\temp\engine\!release\sv_world.obj"
"\Xash3D\src_main\temp\engine\!release\sys_con.obj"
"\Xash3D\src_main\temp\engine\!release\sys_win.obj"
"\Xash3D\src_main\temp\engine\!release\titles.obj"
"\Xash3D\src_main\temp\engine\!release\vgui_clip.obj"
"\Xash3D\src_main\temp\engine\!release\vgui_draw.obj"
"\Xash3D\src_main\temp\engine\!release\vgui_font.obj"
"\Xash3D\src_main\temp\engine\!release\vgui_input.obj"
"\Xash3D\src_main\temp\engine\!release\vgui_int.obj"
"\Xash3D\src_main\temp\engine\!release\vgui_surf.obj"
"\Xash3D\src_main\temp\engine\!release\world.obj"
"\Xash3D\src_main\temp\engine\!release\zone.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CB.tmp""
Creating temporary file "C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CC.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\engine\!release\xash.dll "D:\Xash3D\xash.dll"
]
Creating command line ""C:\DOCUME~1\ĚČŘŔ\LOCALS~1\Temp\RSP77CC.bat""
Compiling...
avikit.c
build.c
cl_cmds.c
cl_demo.c
cl_events.c
cl_frame.c
cl_game.c
cl_main.c
cl_menu.c
cl_parse.c
cl_pmove.c
cl_remap.c
cl_scrn.c
cl_tent.c
cl_video.c
cl_view.c
cmd.c
common.c
con_utils.c
console.c
Generating Code...
Compiling...
crclib.c
crtlib.c
cvar.c
filesystem.c
gamma.c
gl_backend.c
gl_beams.c
gl_cull.c
gl_decals.c
gl_draw.c
gl_image.c
gl_mirror.c
gl_refrag.c
gl_rlight.c
gl_rmain.c
gl_rmath.c
gl_rmisc.c
gl_rpart.c
gl_rsurf.c
gl_sprite.c
Generating Code...
Compiling...
gl_studio.c
gl_vidnt.c
gl_warp.

View File

@ -398,11 +398,9 @@ void SV_DropClient( sv_client_t *drop )
drop->edict->v.modelindex = 0;
if( drop->edict->pvPrivateData )
{
// NOTE: new interface can be missing
if( svgame.dllFuncs2.pfnOnFreeEntPrivateData )
{
// NOTE: new interface can be missing
svgame.dllFuncs2.pfnOnFreeEntPrivateData( drop->edict );
}
// clear any dlls data but keep engine data
Mem_Free( drop->edict->pvPrivateData );

View File

@ -715,11 +715,25 @@ int SV_MapIsValid( const char *filename, const char *spawn_entity, const char *l
return flags;
}
void SV_FreePrivateData( edict_t *pEdict )
{
if( !pEdict || !pEdict->pvPrivateData )
return;
// NOTE: new interface can be missing
if( svgame.dllFuncs2.pfnOnFreeEntPrivateData )
svgame.dllFuncs2.pfnOnFreeEntPrivateData( pEdict );
if( Mem_IsAllocatedExt( svgame.mempool, pEdict->pvPrivateData ))
Mem_Free( pEdict->pvPrivateData );
pEdict->pvPrivateData = NULL;
}
void SV_InitEdict( edict_t *pEdict )
{
ASSERT( pEdict );
ASSERT( pEdict->pvPrivateData == NULL );
SV_FreePrivateData( pEdict );
Q_memset( &pEdict->v, 0, sizeof( entvars_t ));
// g-cont. trying to setup controllers here...
@ -729,7 +743,6 @@ void SV_InitEdict( edict_t *pEdict )
pEdict->v.controller[3] = 0x7F;
pEdict->v.pContainingEntity = pEdict; // make cross-links for consistency
pEdict->pvPrivateData = NULL; // will be alloced later by pfnAllocPrivateData
pEdict->free = false;
}
@ -753,16 +766,7 @@ void SV_FreeEdict( edict_t *pEdict )
return;
}
if( pEdict->pvPrivateData )
{
// NOTE: new interface can be missing
if( svgame.dllFuncs2.pfnOnFreeEntPrivateData )
svgame.dllFuncs2.pfnOnFreeEntPrivateData( pEdict );
if( Mem_IsAllocated( pEdict->pvPrivateData ))
Mem_Free( pEdict->pvPrivateData );
pEdict->pvPrivateData = NULL;
}
SV_FreePrivateData( pEdict );
// NOTE: don't clear all edict fields on releasing
// because gamedll may trying to use edict pointers and crash game (e.g. Opposing Force)
@ -862,10 +866,7 @@ void SV_FreeEdicts( void )
void SV_PlaybackReliableEvent( sizebuf_t *msg, word eventindex, float delay, event_args_t *args )
{
event_args_t nullargs;
ASSERT( msg );
ASSERT( args );
event_args_t nullargs;
Q_memset( &nullargs, 0, sizeof( nullargs ));
@ -2698,13 +2699,14 @@ pfnPvAllocEntPrivateData
void *pfnPvAllocEntPrivateData( edict_t *pEdict, long cb )
{
ASSERT( pEdict );
ASSERT( pEdict->free == false );
if( Mem_IsAllocated( pEdict->pvPrivateData ))
Mem_Free( pEdict->pvPrivateData );
SV_FreePrivateData( pEdict );
// a poke646 have memory corrupt in somewhere - this is trashed last four bytes :(
pEdict->pvPrivateData = Mem_Alloc( svgame.mempool, (cb + 15) & ~15 );
if( cb > 0 )
{
// a poke646 have memory corrupt in somewhere - this is trashed last four bytes :(
pEdict->pvPrivateData = Mem_Alloc( svgame.mempool, (cb + 15) & ~15 );
}
return pEdict->pvPrivateData;
}
@ -2731,10 +2733,7 @@ pfnFreeEntPrivateData
*/
void pfnFreeEntPrivateData( edict_t *pEdict )
{
if( !pEdict ) return;
if( pEdict->pvPrivateData )
Mem_Free( pEdict->pvPrivateData );
pEdict->pvPrivateData = NULL; // freed
SV_FreePrivateData( pEdict );
}
/*
@ -2746,7 +2745,7 @@ allocate new engine string
*/
string_t SV_AllocString( const char *szValue )
{
const char *newString;
const char *newString;
newString = _copystring( svgame.stringspool, szValue, __FILE__, __LINE__ );
return newString - svgame.globals->pStringBase;
@ -4066,6 +4065,7 @@ used by CS:CZ
*/
void *pfnSequenceGet( const char *fileName, const char *entryName )
{
// UNDONE: no description
return NULL;
}
@ -4078,6 +4078,7 @@ used by CS:CZ
*/
void *pfnSequencePickSentence( const char *groupName, int pickMethod, int *picked )
{
// UNDONE: no description
return NULL;
}
@ -4102,6 +4103,7 @@ used by CS:CZ
*/
int pfnIsCareerMatch( void )
{
// UNDONE: no description
return 0;
}
@ -4113,6 +4115,7 @@ pfnGetLocalizedStringLength
*/
int pfnGetLocalizedStringLength( const char *label )
{
// UNDONE: no description
return 0;
}
@ -4124,6 +4127,7 @@ pfnRegisterTutorMessageShown
*/
void pfnRegisterTutorMessageShown( int mid )
{
// UNDONE: no description
}
/*
@ -4134,6 +4138,7 @@ pfnGetTimesTutorMessageShown
*/
int pfnGetTimesTutorMessageShown( int mid )
{
// UNDONE: no description
return 0;
}
@ -4145,6 +4150,7 @@ pfnProcessTutorMessageDecayBuffer
*/
void pfnProcessTutorMessageDecayBuffer( int *buffer, int bufferLength )
{
// UNDONE: no description
}
/*
@ -4155,11 +4161,12 @@ pfnConstructTutorMessageDecayBuffer
*/
void pfnConstructTutorMessageDecayBuffer( int *buffer, int bufferLength )
{
// UNDONE: no description
}
/*
=============
pfnSequenceGet
pfnResetTutorMessageDecayData
=============
*/

View File

@ -685,11 +685,12 @@ qboolean SV_NewGame( const char *mapName, qboolean loadGame )
{
if( !SV_MapIsValid( mapName, GI->sp_entity, NULL ))
return false;
SV_ClearSaveDir ();
}
S_StopAllSounds ();
SV_DeactivateServer ();
SV_ClearSaveDir ();
sv.loadgame = loadGame;
sv.background = false;

View File

@ -19,7 +19,7 @@ GNU General Public License for more details.
#include "r_studioint.h"
#include "library.h"
typedef int (*STUDIOAPI)( int, sv_blending_interface_t*, server_studio_api_t*, matrix3x4, matrix3x4[MAXSTUDIOBONES] );
typedef int (*STUDIOAPI)( int, sv_blending_interface_t**, server_studio_api_t*, float (*transform)[3][4], float (*bones)[MAXSTUDIOBONES][3][4] );
static studiohdr_t *sv_studiohdr;
static mplane_t sv_hitboxplanes[6]; // there a temp hitbox
@ -1051,8 +1051,11 @@ qboolean SV_InitStudioAPI( void )
pBlendAPI = &gBlendAPI;
pBlendIface = (STUDIOAPI)Com_GetProcAddress( svgame.hInstance, "Server_GetBlendingInterface" );
if( pBlendIface && pBlendIface( SV_BLENDING_INTERFACE_VERSION, pBlendAPI, &gStudioAPI, sv_studiomatrix, sv_studiobones ))
if( pBlendIface && pBlendIface( SV_BLENDING_INTERFACE_VERSION, &pBlendAPI, &gStudioAPI, &sv_studiomatrix, &sv_studiobones ))
{
MsgDev( D_AICONSOLE, "SV_LoadProgs: ^2initailized Server Blending interface ^7ver. %i\n", SV_BLENDING_INTERFACE_VERSION );
return true;
}
// NOTE: we always return true even if game interface was not correct
// because SetupBones is used for hitbox tracing on the server-side

View File

@ -183,7 +183,7 @@ static void UI_CreateGame_GetMapsList( void )
{
char *afile;
if( !CHECK_MAP_LIST( FALSE ) || (afile = (char *)LOAD_FILE( "maps.lst", NULL )) == NULL )
if( !CHECK_MAP_LIST( FALSE ) && (afile = (char *)LOAD_FILE( "maps.lst", NULL )) == NULL )
{
uiCreateGame.done.generic.flags |= QMF_GRAYED;
uiCreateGame.mapsList.itemNames = (const char **)uiCreateGame.mapsDescriptionPtr;