30 Oct 2009

This commit is contained in:
g-cont 2009-10-30 00:00:00 +03:00 committed by Alibek Omarov
parent 20358f2b85
commit 5db8612c47
36 changed files with 897 additions and 1396 deletions

View File

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

View File

@ -6,6 +6,56 @@
--------------------Configuration: client - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397B.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../common" /I "global" /I "hud" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\client\!debug/" /Fo"..\temp\client\!debug/" /Fd"..\temp\client\!debug/" /FD /c
"D:\Xash3D\src_main\client\global\dll_int.cpp"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397B.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397C.tmp" with contents
[
msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\client\!debug/client.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /def:".\client.def" /out:"..\temp\client\!debug/client.dll" /implib:"..\temp\client\!debug/client.lib" /pdbtype:sept /libpath:"..\common\libs"
"\Xash3D\src_main\temp\client\!debug\dll_int.obj"
"\Xash3D\src_main\temp\client\!debug\hud.obj"
"\Xash3D\src_main\temp\client\!debug\hud_ammo.obj"
"\Xash3D\src_main\temp\client\!debug\hud_ammohistory.obj"
"\Xash3D\src_main\temp\client\!debug\hud_battery.obj"
"\Xash3D\src_main\temp\client\!debug\hud_death.obj"
"\Xash3D\src_main\temp\client\!debug\hud_flashlight.obj"
"\Xash3D\src_main\temp\client\!debug\hud_geiger.obj"
"\Xash3D\src_main\temp\client\!debug\hud_health.obj"
"\Xash3D\src_main\temp\client\!debug\hud_icons.obj"
"\Xash3D\src_main\temp\client\!debug\hud_menu.obj"
"\Xash3D\src_main\temp\client\!debug\hud_message.obj"
"\Xash3D\src_main\temp\client\!debug\hud_motd.obj"
"\Xash3D\src_main\temp\client\!debug\hud_msg.obj"
"\Xash3D\src_main\temp\client\!debug\hud_saytext.obj"
"\Xash3D\src_main\temp\client\!debug\hud_scoreboard.obj"
"\Xash3D\src_main\temp\client\!debug\hud_sound.obj"
"\Xash3D\src_main\temp\client\!debug\hud_statusbar.obj"
"\Xash3D\src_main\temp\client\!debug\hud_text.obj"
"\Xash3D\src_main\temp\client\!debug\hud_train.obj"
"\Xash3D\src_main\temp\client\!debug\hud_warhead.obj"
"\Xash3D\src_main\temp\client\!debug\hud_zoom.obj"
"\Xash3D\src_main\temp\client\!debug\r_particle.obj"
"\Xash3D\src_main\temp\client\!debug\tempents.obj"
"\Xash3D\src_main\temp\client\!debug\triapi.obj"
"\Xash3D\src_main\temp\client\!debug\utils.obj"
"\Xash3D\src_main\temp\client\!debug\view.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397C.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397D.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\client\!debug\client.dll "D:\Xash3D\bin\client.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397D.bat""
Compiling...
dll_int.cpp
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\client\!debug\client.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -81,6 +81,7 @@ void HUD_Init( void )
g_engfuncs.pfnAddCommand ("gametitle", NULL, "show game logo" );
g_engfuncs.pfnAddCommand ("god", NULL, "classic cheat" );
g_engfuncs.pfnAddCommand ("fov", NULL, "set client field of view" );
g_engfuncs.pfnAddCommand ("fly", NULL, "fly mode (flight)" );
if ( g_pParticleSystems )
{
@ -293,4 +294,5 @@ void HUD_Shutdown( void )
g_engfuncs.pfnDelCommand ("gametitle" );
g_engfuncs.pfnDelCommand ("god" );
g_engfuncs.pfnDelCommand ("fov" );
g_engfuncs.pfnDelCommand ("fly" );
}

View File

@ -63,7 +63,6 @@ typedef struct
BOOL fAllSolid; // if true, plane is not valid
BOOL fStartSolid; // if true, the initial point was in a solid area
float flFraction; // time completed, 1.0 = didn't hit anything
float flRealFrac; // fraction of collision tangetially to the trace direction
vec3_t vecEndPos; // final position
int iContents; // final pos contents
int iHitgroup; // 0 == generic, non zero is specific body part

View File

@ -350,9 +350,8 @@ void CL_AddEntities( void )
//
void CL_GetEntitySoundSpatialization( int entnum, vec3_t origin, vec3_t velocity )
{
edict_t *ent;
model_t handle;
vec3_t mins, maxs, midPoint;
edict_t *ent;
vec3_t mins, maxs, midPoint;
if( entnum < 0 || entnum >= GI->max_edicts )
{
@ -370,10 +369,9 @@ void CL_GetEntitySoundSpatialization( int entnum, vec3_t origin, vec3_t velocity
VectorCopy( ent->v.velocity, velocity );
// if a brush model, offset the origin
if( VectorIsNull( origin ))
if( VectorIsNull( origin ) && ent->v.modelindex )
{
handle = cl.models[ent->pvClientData->current.modelindex];
Mod_GetBounds( handle, mins, maxs );
Mod_GetBounds( ent->v.modelindex, mins, maxs );
VectorAverage( mins, maxs, midPoint );
VectorAdd( origin, midPoint, origin );
}

View File

@ -1113,7 +1113,7 @@ static void *pfnGetModelPtr( edict_t *pEdict )
if( !pEdict || pEdict->free )
return NULL;
return Mod_Extradata( cl.models[pEdict->v.modelindex] );
return Mod_Extradata( pEdict->v.modelindex );
}
/*

View File

@ -734,9 +734,8 @@ void CL_PrepVideo( void )
{
com.strncpy( name, cl.configstrings[CS_MODELS+1+i], MAX_STRING );
re->RegisterModel( name, i+1 );
pe->RegisterModel( name, i+1 );
cl.models[i+1] = i+1;
Cvar_SetValue("scr_loading", scr_loading->value + 45.0f / mdlcount );
CM_RegisterModel( name, i+1 );
Cvar_SetValue( "scr_loading", scr_loading->value + 45.0f / mdlcount );
SCR_UpdateScreen();
}
@ -748,6 +747,7 @@ void CL_PrepVideo( void )
// setup sky and free unneeded stuff
re->EndRegistration( cl.configstrings[CS_SKYNAME] );
pe->EndRegistration (); // free unused models
Cvar_SetValue( "scr_loading", 100.0f ); // all done
if( host.developer <= 2 ) Con_ClearNotify(); // clear any lines of console text

View File

@ -408,8 +408,7 @@ void CL_ParseConfigString( sizebuf_t *msg )
else if( i >= CS_MODELS && i < CS_MODELS+MAX_MODELS && cl.video_prepped )
{
re->RegisterModel( cl.configstrings[i], i-CS_MODELS );
pe->RegisterModel( cl.configstrings[i], i-CS_MODELS );
cl.models[i-CS_MODELS] = i-CS_MODELS;
CM_RegisterModel( cl.configstrings[i], i-CS_MODELS );
}
else if( i >= CS_SOUNDS && i < CS_SOUNDS+MAX_SOUNDS && cl.audio_prepped )
{

View File

@ -6,7 +6,13 @@
--------------------Configuration: engine - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP2D05.tmp" with contents
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3998.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "common" /I "server" /I "client" /I "uimenu" /I "../public" /I "../common" /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\server\sv_phys.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3998.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3999.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\cinematic.obj"
@ -21,7 +27,6 @@ user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..
"\Xash3D\src_main\temp\engine\!debug\cl_phys.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_scrn.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_view.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_world.obj"
"\Xash3D\src_main\temp\engine\!debug\com_library.obj"
"\Xash3D\src_main\temp\engine\!debug\con_keys.obj"
"\Xash3D\src_main\temp\engine\!debug\con_main.obj"
@ -66,16 +71,18 @@ user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..
"\Xash3D\src_main\temp\engine\!debug\ui_savegame.obj"
"\Xash3D\src_main\temp\engine\!debug\ui_saveload.obj"
"\Xash3D\src_main\temp\engine\!debug\ui_video.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_world.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP2D05.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP2D06.bat" with contents
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3999.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP399A.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\RSP2D06.bat""
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP399A.bat""
Compiling...
sv_phys.c
Linking...
Creating library ..\temp\engine\!debug/engine.lib and object ..\temp\engine\!debug/engine.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\engine\!debug\engine.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -72,7 +72,6 @@ typedef struct server_s
string name; // map name, or cinematic name
string startspot; // player_start name on nextmap
model_t models[MAX_MODELS];
char configstrings[MAX_CONFIGSTRINGS][CS_SIZE];
@ -289,7 +288,6 @@ extern cvar_t *sv_rollangle;
extern cvar_t *sv_rollspeed;
extern cvar_t *sv_maxspeed;
extern cvar_t *sv_maxclients;
extern cvar_t *sv_physics;
extern sv_client_t *sv_client;
//===========================================================

View File

@ -719,7 +719,11 @@ pfnPrecacheModel
*/
int pfnPrecacheModel( const char *s )
{
return SV_ModelIndex( s );
int modelIndex = SV_ModelIndex( s );
CM_RegisterModel( s, modelIndex );
return modelIndex;
}
/*

View File

@ -48,7 +48,7 @@ int SV_FindIndex( const char *name, int start, int end, bool create )
}
// register new resource
com.strncpy (sv.configstrings[start+i], name, sizeof(sv.configstrings[i]));
com.strncpy( sv.configstrings[start+i], name, sizeof( sv.configstrings[i] ));
if( sv.state != ss_loading )
{
@ -319,8 +319,7 @@ void SV_SpawnServer( const char *server, const char *startspot )
for( i = 1; i < pe->NumBmodels(); i++ )
{
com.sprintf( sv.configstrings[CS_MODELS+1+i], "*%i", i );
pe->RegisterModel( sv.configstrings[CS_MODELS+1+i], i+1 );
sv.models[i+1] = i+1;
CM_RegisterModel( sv.configstrings[CS_MODELS+1+i], i+1 );
}
// precache and static commands can be issued during map initialization

View File

@ -29,7 +29,6 @@ cvar_t *sv_rollspeed;
cvar_t *sv_maxspeed;
cvar_t *sv_accelerate;
cvar_t *sv_friction;
cvar_t *sv_physics;
cvar_t *hostname;
cvar_t *sv_maxclients;
cvar_t *public_server; // should heartbeats be sent
@ -463,7 +462,6 @@ void SV_Init( void )
sv_maxspeed = Cvar_Get("sv_maxspeed", DEFAULT_MAXSPEED, 0, "maximum speed a player can accelerate to when on ground");
sv_accelerate = Cvar_Get( "sv_accelerate", DEFAULT_ACCEL, 0, "rate at which a player accelerates to sv_maxspeed" );
sv_friction = Cvar_Get( "sv_friction", DEFAULT_FRICTION, 0, "how fast you slow down" );
sv_physics = Cvar_Get( "cm_physic", "1", CVAR_ARCHIVE|CVAR_LATCH, "change physic model: 0 - Classic Quake Physic, 1 - Physics Engine" );
sv_maxclients = Cvar_Get( "sv_maxclients", "1", CVAR_SERVERINFO|CVAR_LATCH, "server clients limit" );
public_server = Cvar_Get ("public", "0", 0, "change server type from private to public" );

View File

@ -29,28 +29,6 @@ solid_edge items only clip against bsp models.
/*
===============================================================================
LINE TESTING IN HULLS
===============================================================================
*/
int SV_ContentsMask( const edict_t *passedict )
{
if( passedict )
{
if( passedict->v.flags & FL_MONSTER )
return MASK_MONSTERSOLID;
else if( passedict->v.flags & FL_CLIENT )
return MASK_PLAYERSOLID;
else if( passedict->v.solid == SOLID_TRIGGER )
return CONTENTS_SOLID|CONTENTS_BODY;
return MASK_SOLID;
}
return MASK_SOLID;
}
/*
===============================================================================
Utility functions
===============================================================================
@ -68,7 +46,7 @@ static int SV_TestEntityPosition( edict_t *ent, vec3_t offset )
TraceResult trace;
VectorAdd( ent->v.origin, offset, org );
trace = SV_Trace( org, ent->v.mins, ent->v.maxs, ent->v.origin, MOVE_NOMONSTERS, ent, CONTENTS_SOLID );
trace = SV_Trace( org, ent->v.mins, ent->v.maxs, ent->v.origin, MOVE_NORMAL, ent, SV_ContentsMask( ent ));
if( trace.fStartSolid )
return true;
@ -480,7 +458,7 @@ SV_PushMove
*/
void SV_PushMove( edict_t *pusher, float movetime )
{
int i, e, index;
int i, e;
int checkcontents;
bool rotated;
float savesolid, movetime2, pushltime;
@ -489,8 +467,8 @@ void SV_PushMove( edict_t *pusher, float movetime )
int num_moved, numcheckentities;
static edict_t *checkentities[MAX_EDICTS];
model_t pushermodel = 0;
TraceResult trace;
word moved_edicts[MAX_EDICTS];
TraceResult trace;
if( !pusher->v.velocity[0] && !pusher->v.velocity[1] && !pusher->v.velocity[2] && !pusher->v.avelocity[0] && !pusher->v.avelocity[1] && !pusher->v.avelocity[2])
{
@ -498,7 +476,7 @@ void SV_PushMove( edict_t *pusher, float movetime )
return;
}
switch((int) pusher->v.solid )
switch( pusher->v.solid )
{
case SOLID_BSP:
case SOLID_BBOX:
@ -515,13 +493,13 @@ void SV_PushMove( edict_t *pusher, float movetime )
MsgDev( D_WARN, "SV_PushMove: entity #%i, unrecognized solid type %f\n", NUM_FOR_EDICT( pusher ), pusher->v.solid );
return;
}
index = (int)pusher->v.modelindex;
if( index < 1 || index >= MAX_MODELS )
if( pusher->v.modelindex < 1 || pusher->v.modelindex >= MAX_MODELS )
{
MsgDev( D_WARN, "SV_PushMove: entity #%i has an invalid modelindex %f\n", NUM_FOR_EDICT( pusher ), pusher->v.modelindex );
return;
}
pushermodel = sv.models[index];
pushermodel = pusher->v.modelindex;
rotated = VectorLength2(pusher->v.angles) + VectorLength2(pusher->v.avelocity) > 0;
@ -1481,33 +1459,29 @@ void SV_Physics_ClientMove( sv_client_t *client, usercmd_t *cmd )
svgame.dllFuncs.pfnPlayerPreThink( ent );
svgame.globals->frametime = cmd->msec * 0.001f;
if( !sv_physics->integer )
{
// make sure the velocity is sane (not a NaN)
SV_CheckVelocity( ent );
if( DotProduct(ent->v.velocity, ent->v.velocity) < 0.0001 )
VectorClear( ent->v.velocity );
// make sure the velocity is sane (not a NaN)
SV_CheckVelocity( ent );
if( DotProduct(ent->v.velocity, ent->v.velocity) < 0.0001 )
VectorClear( ent->v.velocity );
switch( ent->v.movetype )
{
case MOVETYPE_WALK:
// perform MOVETYPE_WALK behavior
if(!SV_CheckWater( ent ) && !( ent->v.flags & FL_WATERJUMP ))
SV_AddGravity( ent );
SV_CheckStuck( ent );
SV_WalkMove( ent );
break;
case MOVETYPE_NOCLIP:
SV_CheckWater( ent );
VectorMA( ent->v.origin, svgame.globals->frametime, ent->v.velocity, ent->v.origin );
VectorMA( ent->v.angles, svgame.globals->frametime, ent->v.avelocity, ent->v.angles );
break;
}
SV_CheckVelocity( ent );
SV_LinkEdict( ent );
SV_CheckVelocity( ent );
}
else SV_LinkEdict( ent );
switch( ent->v.movetype )
{
case MOVETYPE_WALK:
// perform MOVETYPE_WALK behavior
if(!SV_CheckWater( ent ) && !( ent->v.flags & FL_WATERJUMP ))
SV_AddGravity( ent );
SV_CheckStuck( ent );
SV_WalkMove( ent );
break;
case MOVETYPE_NOCLIP:
SV_CheckWater( ent );
VectorMA( ent->v.origin, svgame.globals->frametime, ent->v.velocity, ent->v.origin );
VectorMA( ent->v.angles, svgame.globals->frametime, ent->v.avelocity, ent->v.angles );
break;
}
SV_CheckVelocity( ent );
SV_LinkEdict( ent );
SV_CheckVelocity( ent );
if( ent->v.movetype != MOVETYPE_NOCLIP )
SV_TouchTriggers( ent );

View File

@ -161,9 +161,10 @@ SV_ClearWorld
void SV_ClearWorld( void )
{
vec3_t mins, maxs;
int worldIndex = 1;
sv_numareanodes = 0;
Mod_GetBounds( sv.models[1], mins, maxs );
Mod_GetBounds( worldIndex, mins, maxs );
Mem_Set( sv_areanodes, 0, sizeof( sv_areanodes ));
SV_CreateAreaNode( 0, mins, maxs );
}
@ -184,7 +185,7 @@ model_t SV_HullForEntity( const edict_t *ent )
// explicit hulls in the BSP model
return ent->v.modelindex;
}
if( ent->v.solid == SOLID_CAPSULE )
if( ent->v.flags & FL_MONSTER || ent->v.solid == SOLID_CAPSULE )
{
// create a temp capsule from bounding box sizes
return pe->TempModel( ent->v.mins, ent->v.maxs, true );
@ -193,6 +194,49 @@ model_t SV_HullForEntity( const edict_t *ent )
return pe->TempModel( ent->v.mins, ent->v.maxs, false );
}
int SV_ContentsMask( const edict_t *passedict )
{
if( passedict )
{
if( passedict->v.flags & FL_MONSTER )
return MASK_MONSTERSOLID;
else if( passedict->v.flags & FL_CLIENT )
return MASK_PLAYERSOLID;
else if( passedict->v.solid == SOLID_TRIGGER )
return CONTENTS_SOLID|CONTENTS_BODY;
return MASK_SOLID;
}
return MASK_SOLID;
}
int SV_ContentsForEntity( const edict_t *ent )
{
if( !ent || ent->free )
return CONTENTS_NONE;
if( ent->v.flags & ( FL_MONSTER|FL_CLIENT ))
{
if( ent->v.health > 0 )
return CONTENTS_BODY;
return CONTENTS_CORPSE;
}
switch( ent->v.solid )
{
case SOLID_NOT:
return CONTENTS_NONE;
case SOLID_BSP:
case SOLID_BBOX:
case SOLID_MESH:
case SOLID_SPHERE:
case SOLID_CAPSULE:
case SOLID_SLIDEBOX:
return CONTENTS_SOLID;
case SOLID_TRIGGER:
return CONTENTS_TRIGGER;
}
return CONTENTS_NONE;
}
/*
=================
@ -453,7 +497,7 @@ void SV_ClipToEntity( TraceResult *trace, const vec3_t start, const vec3_t mins,
// if it doesn't have any brushes of a type we
// are looking for, ignore it
if(!( mask & e->v.contents ))
if(!( mask & SV_ContentsForEntity( e )))
{
trace->flFraction = 1.0f;
return;
@ -513,15 +557,17 @@ void SV_ClipMoveToEntities( host_clip_t *clip )
{
continue; // don't clip against own missiles
}
/*
if( touch->v.owner == passOwner )
{
continue; // don't clip against other missiles from our owner
}
*/
}
// if it doesn't have any brushes of a type we
// are looking for, ignore it
if(!( clip->mask & touch->v.contents ))
if(!( clip->mask & SV_ContentsForEntity( touch )))
{
continue;
}
@ -532,7 +578,6 @@ void SV_ClipMoveToEntities( host_clip_t *clip )
origin = touch->v.origin;
angles = touch->v.angles;
if( touch->v.solid != SOLID_BSP )
angles = vec3_origin; // boxes don't rotate

View File

@ -1360,7 +1360,7 @@ void FS_CreateGameInfo( const char *filename )
com.strncat( buffer, "\nsp_spawn\t\t\"info_player_start\"", MAX_SYSPATH );
com.strncat( buffer, "\ndm_spawn\t\t\"info_player_deathmatch\"", MAX_SYSPATH );
com.strncat( buffer, "\nctf_spawn\t\t\"info_player_ctf\"", MAX_SYSPATH );
com.strncat( buffer, "\ncoop_spawn\t\t\"info_player_coop\"", MAX_SYSPATH );
com.strncat( buffer, "\ncoop_spawn\t\"info_player_coop\"", MAX_SYSPATH );
com.strncat( buffer, "\nteam_spawn\t\"info_player_team\"", MAX_SYSPATH );
com.strncat( buffer, "\nplayermins\t\"-32 -32 -32\"", MAX_SYSPATH );
com.strncat( buffer, "\nplayermaxs\t\"32 32 32\"", MAX_SYSPATH );

View File

@ -6,6 +6,53 @@
--------------------Configuration: launch - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP394E.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\filesystem.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP394E.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP394F.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\RSP394F.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3950.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\RSP3950.bat""
Compiling...
filesystem.c
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\launch\!debug\launch.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -8,11 +8,10 @@
//#define DEBUG_SIZE
#define DEBUG_BLOCK
//#define DEBUG_PATCH
//#define DEBUG_BBOX
void CM_DrawCollision( cmdraw_t drawPoly )
{
static cvar_t *cv, *cv2;
const cSurfaceCollide_t *pc;
cfacet_t *facet;
cwinding_t *w;
@ -27,8 +26,6 @@ void CM_DrawCollision( cmdraw_t drawPoly )
#endif
if( !drawPoly ) return;
if( !cv2 ) cv2 = Cvar_Get( "r_debugsurface", "0", 0, "render debugsurface" );
if( !cv ) cv = Cvar_Get( "cm_debugSize", "2", 0, "debug polygon line size" );
if( !debugSurfaceCollide ) return;
pc = debugSurfaceCollide;
@ -55,7 +52,7 @@ void CM_DrawCollision( cmdraw_t drawPoly )
plane[3] = -plane[3];
}
#ifdef DEBUG_SIZE
plane[3] += cv->value;
plane[3] += cm_debugsize->value;
for( n = 0; n < 3; n++ )
{
@ -93,7 +90,7 @@ void CM_DrawCollision( cmdraw_t drawPoly )
}
#if DEBUG_SIZE
// if( !facet->borderNoAdjust[j] )
plane[3] -= cv->value;
plane[3] -= cm_debugsize->value;
for( n = 0; n < 3; n++ )
{
@ -134,7 +131,7 @@ void CM_DrawCollision( cmdraw_t drawPoly )
}
#endif
#ifdef DEBUG_PATCH
#ifdef DEBUG_BBOX
{
vec3_t v[4];

View File

@ -20,12 +20,10 @@ extern stdlib_api_t com;
//
// local cvars
//
extern cvar_t *cm_triangles;
extern cvar_t *cm_noareas;
extern cvar_t *cm_nomeshes;
extern cvar_t *cm_nocurves;
extern cvar_t *cm_showcurves;
extern cvar_t *cm_showtriangles;
extern cvar_t *cm_novis;
extern cvar_t *cm_debugsize;
#define Host_Error com.error
#define CAPSULE_MODEL_HANDLE MAX_MODELS - 2
@ -93,7 +91,7 @@ typedef struct
typedef struct
{
int numpoints;
vec3_t p[4]; // FIXME: variable sized
vec3_t p[4];
} cwinding_t;
typedef struct
@ -214,7 +212,6 @@ typedef struct
TraceResult trace; // returned from trace call
sphere_t sphere; // sphere for oriented capsule collision
biSphere_t biSphere; // bi-sphere params
bool lateralCollision; // whether or not to test for lateral collision
} traceWork_t;
typedef struct leaflist_s
@ -279,6 +276,8 @@ typedef struct clipmap_s
int numsurfaces;
int floodvalid;
int numInvalidBevels; // bevels failed
} clipmap_t;
typedef struct clipmap_static_s
@ -344,6 +343,8 @@ void CM_FloodAreaConnections( void );
//
// cm_model.c
//
extern cmodel_t *sv_models[];
const void *CM_VisData( void );
int CM_NumClusters( void );
int CM_NumShaders( void );
@ -382,8 +383,6 @@ void CM_ChopWindingInPlace( cwinding_t **inout, vec3_t normal, float dist, float
//
void CM_BoxTrace( TraceResult *tr, const vec3_t p1, const vec3_t p2, vec3_t mins, vec3_t maxs, model_t model, int mask, trType_t type );
void CM_TransformedBoxTrace( TraceResult *tr, const vec3_t p1, const vec3_t p2, vec3_t mins, vec3_t maxs, model_t model, int mask, const vec3_t org, const vec3_t ang, trType_t type );
void CM_BiSphereTrace( TraceResult *tr, const vec3_t p1, const vec3_t p2, float startRad, float endRad, model_t model, int mask );
void CM_TransformedBiSphereTrace( TraceResult *tr, const vec3_t p1, const vec3_t p2, float startRad, float endRad, model_t model, int mask, const vec3_t origin );
//
// cm_patches.c
@ -395,7 +394,6 @@ void CM_ClearLevelPatches( void );
// cm_math.c
//
int CM_BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const cplane_t *p );
float DistanceBetweenLineSegmentsSquared( const vec3_t sP0, const vec3_t sP1, const vec3_t tP0, const vec3_t tP1, float *s, float *t );
bool CM_BoundsIntersect( const vec3_t mins, const vec3_t maxs, const vec3_t mins2, const vec3_t maxs2 );
bool CM_BoundsIntersectPoint( const vec3_t mins, const vec3_t maxs, const vec3_t point );
bool CM_PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c );

View File

@ -8,12 +8,10 @@
physic_imp_t pi;
stdlib_api_t com;
cvar_t *cm_triangles;
cvar_t *cm_noareas;
cvar_t *cm_nomeshes;
cvar_t *cm_nocurves;
cvar_t *cm_showcurves;
cvar_t *cm_showtriangles;
cvar_t *cm_novis;
cvar_t *cm_debugsize;
bool CM_InitPhysics( void )
{
@ -21,11 +19,10 @@ bool CM_InitPhysics( void )
Mem_Set( cms.nullrow, 0xFF, MAX_MAP_LEAFS / 8 );
cm_noareas = Cvar_Get( "cm_noareas", "0", 0, "ignore clipmap areas" );
cm_triangles = Cvar_Get( "cm_triangles", "0", CVAR_ARCHIVE, "convert all collide polygons into triangles" );
cm_nocurves = Cvar_Get( "cm_nocurves", "0", CVAR_ARCHIVE|CVAR_LATCH, "make patches uncollidable" );
cm_showcurves = Cvar_Get( "cm_showcurves", "0", 0, "show collision curves" );
cm_showtriangles = Cvar_Get( "cm_showtris", "0", 0, "show collision triangles" );
cm_novis = Cvar_Get( "cm_novis", "0", 0, "ignore vis information (perfomance test)" );
cm_nomeshes = Cvar_Get( "cm_nomeshes", "1", CVAR_ARCHIVE, "make meshes uncollidable" ); // q3a compatible
cm_nocurves = Cvar_Get( "cm_nocurves", "0", CVAR_ARCHIVE, "make curves uncollidable" );
cm_debugsize = Cvar_Get( "cm_debugsize", "2", 0, "adjust the debug lines scale" );
sv_models[0] = NULL; // 0 modelindex isn't used
return true;
}
@ -91,8 +88,6 @@ physic_exp_t DLLEXPORT *CreateAPI ( stdlib_api_t *input, physic_imp_t *engfuncs
Phys.PointContents2 = CM_TransformedPointContents;
Phys.BoxTrace1 = CM_BoxTrace;
Phys.BoxTrace2 = CM_TransformedBoxTrace;
Phys.BiSphereTrace1 = CM_BiSphereTrace;
Phys.BiSphereTrace2 = CM_TransformedBiSphereTrace;
Phys.TempModel = CM_TempBoxModel;

View File

@ -150,102 +150,4 @@ void CM_SnapVector( vec3_t normal )
break;
}
}
}
/*
================
DistanceBetweenLineSegmentsSquared
Return the smallest distance between two line segments, squared
================
*/
float DistanceBetweenLineSegmentsSquared( const vec3_t sP0, const vec3_t sP1, const vec3_t tP0, const vec3_t tP1, float *s, float *t )
{
vec3_t sMag, tMag, diff;
float a, b, c, d, e;
float D;
float sN, sD;
float tN, tD;
vec3_t separation;
VectorSubtract( sP1, sP0, sMag );
VectorSubtract( tP1, tP0, tMag );
VectorSubtract( sP0, tP0, diff );
a = DotProduct( sMag, sMag );
b = DotProduct( sMag, tMag );
c = DotProduct( tMag, tMag );
d = DotProduct( sMag, diff );
e = DotProduct( tMag, diff );
sD = tD = D = a * c - b * b;
if( D < LINE_DISTANCE_EPSILON )
{
// the lines are almost parallel
sN = 0.0f; // force using point P0 on segment S1
sD = 1.0f; // to prevent possible division by 0.0 later
tN = e;
tD = c;
}
else
{
// get the closest points on the infinite lines
sN = (b * e - c * d);
tN = (a * e - b * d);
if( sN < 0.0f )
{
// sN < 0 => the s=0 edge is visible
sN = 0.0f;
tN = e;
tD = c;
}
else if( sN > sD )
{
// sN > sD => the s=1 edge is visible
sN = sD;
tN = e + b;
tD = c;
}
}
if( tN < 0.0f )
{
// tN < 0 => the t=0 edge is visible
tN = 0.0f;
// recompute sN for this edge
if( -d < 0.0f ) sN = 0.0f;
else if( -d > a ) sN = sD;
else
{
sN = -d;
sD = a;
}
}
else if( tN > tD )
{
// tN > tD => the t=1 edge is visible
tN = tD;
// recompute sN for this edge
if((-d + b) < 0.0f ) sN = 0;
else if((-d + b) > a ) sN = sD;
else
{
sN = (-d + b);
sD = a;
}
}
// finally do the division to get *s and *t
*s = (fabs( sN ) < LINE_DISTANCE_EPSILON ? 0.0f : sN / sD );
*t = (fabs( tN ) < LINE_DISTANCE_EPSILON ? 0.0f : tN / tD );
// get the difference of the two closest points
VectorScale( sMag, *s, sMag );
VectorScale( tMag, *t, tMag );
VectorAdd( diff, sMag, separation );
VectorSubtract( separation, tMag, separation );
return VectorLength2( separation );
}

View File

@ -228,6 +228,8 @@ void BSP_LoadModels( lump_t *l )
for( j = 0; j < out->leaf.numleafsurfaces; j++ )
indexes[j] = LittleLong( in->firstsurface ) + j;
}
sv_models[1] = cm.models; // make link to world
}
/*
@ -767,7 +769,7 @@ void IBSP_LoadSurfaces( lump_t *surfs, lump_t *verts, lump_t *elems, bool xreal_
// create the internal facet structure
surface->sc = CM_GeneratePatchCollide( width, height, vertexes );
}
else if( LittleLong( in->facetype ) == MST_TRISURF && cm_triangles->integer )
else if( LittleLong( in->facetype ) == MST_TRISURF )
{
cm.surfaces[i] = surface = Mem_Alloc( cms.mempool, sizeof( *surface ));
surface->type = MST_TRISURF;
@ -887,7 +889,7 @@ void RBSP_LoadSurfaces( lump_t *surfs, lump_t *verts, lump_t *elems )
// create the internal facet structure
surface->sc = CM_GeneratePatchCollide( width, height, vertexes );
}
else if( LittleLong( in->facetype ) == MST_TRISURF && cm_triangles->integer )
else if( LittleLong( in->facetype ) == MST_TRISURF )
{
cm.surfaces[i] = surface = Mem_Alloc( cms.mempool, sizeof( *surface ));
surface->type = MST_TRISURF;
@ -972,6 +974,7 @@ void CM_BeginRegistration( const char *name, bool clientload, uint *checksum )
CM_FreeWorld(); // release old map
// cinematic servers won't have anything at all
cm.numleafs = cm.numclusters = cm.numareas = 1;
sv_models[1] = NULL; // no worldmodel
*checksum = 0;
return;
}
@ -988,6 +991,8 @@ void CM_BeginRegistration( const char *name, bool clientload, uint *checksum )
// ... and reset entity script
Com_ResetScript( cm.entityscript );
}
sv_models[1] = cm.models; // make link to world
// still have the right version
return;
}
@ -1035,7 +1040,7 @@ void CM_BeginRegistration( const char *name, bool clientload, uint *checksum )
}
com.strncpy( cm.name, name, MAX_STRING );
// load into heap
BSP_LoadEntityString( &hdr->lumps[LUMP_ENTITIES] );
BSP_LoadShaders( &hdr->lumps[LUMP_SHADERS] );
@ -1054,12 +1059,14 @@ void CM_BeginRegistration( const char *name, bool clientload, uint *checksum )
if( raven_bsp ) RBSP_LoadSurfaces( &hdr->lumps[LUMP_SURFACES], &hdr->lumps[LUMP_VERTEXES], &hdr->lumps[LUMP_ELEMENTS] );
else IBSP_LoadSurfaces( &hdr->lumps[LUMP_SURFACES], &hdr->lumps[LUMP_VERTEXES], &hdr->lumps[LUMP_ELEMENTS], xreal_bsp );
MsgDev( D_INFO, "CM_CreateCollisionTree: %i total invalid bevels\n", cm.numInvalidBevels );
BSP_CreateBrushSideWindings ();
CM_InitBoxHull ();
CM_FloodAreaConnections ();
CM_CalcPHS ();
Mem_Free( buf );
cms.loaded = true; // all done
}
@ -1153,7 +1160,7 @@ void CM_ModelBounds( model_t handle, vec3_t mins, vec3_t maxs )
}
else
{
MsgDev( D_ERROR, "Mod_GetBounds: NULL model\n" );
MsgDev( D_ERROR, "Mod_GetBounds: NULL model %i\n", handle );
if( mins ) VectorSet( mins, -32, -32, -32 );
if( maxs ) VectorSet( maxs, 32, 32, 32 );
}
@ -1245,6 +1252,9 @@ bool CM_RegisterModel( const char *name, int index )
{
cmodel_t *mod;
if( index < 0 || index > MAX_MODELS )
return false;
// this array used for acess to servermodels
mod = CM_ModForName( name );
sv_models[index] = mod;

View File

@ -683,7 +683,7 @@ static void CM_AddFacetBevels( cfacet_t *facet )
if( i == facet->numBorders )
{
if( facet->numBorders > MAX_FACET_BEVELS)
if( facet->numBorders > MAX_FACET_BEVELS )
MsgDev( D_ERROR, "CM_AddFacetBevels: too many bevels\n" );
facet->borderPlanes[facet->numBorders] = CM_FindPlane2( plane, &flipped );
facet->borderNoAdjust[facet->numBorders] = 0;
@ -772,7 +772,7 @@ static void CM_AddFacetBevels( cfacet_t *facet )
if( !w2 )
{
MsgDev( D_WARN, "CM_AddFacetBevels: invalid bevel\n" );
cm.numInvalidBevels++;
continue;
}
else CM_FreeWinding( w2 );

View File

@ -17,19 +17,36 @@ cwinding_t *CM_AllocWinding( int points )
int s;
s = sizeof( vec3_t ) * points + sizeof( int );
w = malloc( s ); // FIXME: use Mem_Alloc instead
w = malloc( s );
memset( w, 0, s );
return w;
}
/*
==================
CM_CopyWinding
==================
*/
cwinding_t *CM_CopyWinding( cwinding_t *w )
{
size_t size;
cwinding_t *c;
c = CM_AllocWinding( w->numpoints );
size = (long)((cwinding_t *) 0)->p[w->numpoints];
Mem_Copy( c, w, size );
return c;
}
void CM_FreeWinding( cwinding_t *w )
{
if(*(uint *)w == 0xDEADDEAD )
Host_Error( "CM_FreeWinding: already freed\n" );
*(uint *)w = 0xDEADDEAD;
free( w ); // FIXME: use Mem_Free instead
free( w );
}
/*
@ -125,23 +142,6 @@ cwinding_t *CM_BaseWindingForPlane( vec3_t normal, float dist )
return w;
}
/*
==================
CM_CopyWinding
==================
*/
cwinding_t *CM_CopyWinding( cwinding_t *w )
{
size_t size;
cwinding_t *c;
c = CM_AllocWinding( w->numpoints );
size = (long)((cwinding_t *) 0)->p[w->numpoints];
Mem_Copy( c, w, size );
return c;
}
/*
=============
CM_ChopWindingInPlace

File diff suppressed because it is too large Load Diff

View File

@ -456,7 +456,7 @@ static void CM_AddFacetBevels( cfacet_t *facet )
if( !w2 )
{
MsgDev( D_WARN, "CM_AddFacetBevels: invalid bevel\n" );
cm.numInvalidBevels++;
continue;
}
else CM_FreeWinding( w2 );
@ -700,7 +700,5 @@ cSurfaceCollide_t *CM_GenerateTriangleSoupCollide( int numVertexes, vec3_t *vert
sc->bounds[1][1] += 1;
sc->bounds[1][2] += 1;
MsgDev( D_INFO, "CM_GenerateTriangleSoupCollide: %i planes %i facets\n", sc->numPlanes, sc->numFacets );
return sc;
}
}

View File

@ -6,14 +6,13 @@
--------------------Configuration: physic - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3321.tmp" with contents
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP392C.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\physic\!debug/" /Fo"..\temp\physic\!debug/" /Fd"..\temp\physic\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\physic\cm_model.c"
"D:\Xash3D\src_main\physic\cm_trace.c"
"D:\Xash3D\src_main\physic\cm_trisoup.c"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3321.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3322.tmp" with contents
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP392C.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP392D.tmp" with contents
[
user32.lib msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\physic\!debug/physic.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\physic\!debug/physic.dll" /implib:"..\temp\physic\!debug/physic.lib" /pdbtype:sept
"\Xash3D\src_main\temp\physic\!debug\cm_debug.obj"
@ -28,17 +27,15 @@ user32.lib msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\physic\!debug
"\Xash3D\src_main\temp\physic\!debug\cm_trisoup.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_main.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3322.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3323.bat" with contents
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP392D.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP392E.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\physic\!debug\physic.dll "D:\Xash3D\bin\physic.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3323.bat""
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP392E.bat""
Compiling...
cm_model.c
cm_trace.c
Generating Code...
cm_trisoup.c
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\physic\!debug\physic.dll

View File

@ -69,8 +69,6 @@ typedef struct physic_exp_s
int (*PointContents2)( const vec3_t p, model_t model, const vec3_t org, const vec3_t ang );
void (*BoxTrace1)( TraceResult *results, const vec3_t p1, const vec3_t p2, vec3_t mins, vec3_t maxs, model_t model, int mask, trType_t type );
void (*BoxTrace2)( TraceResult *results, const vec3_t p1, const vec3_t p2, vec3_t mins, vec3_t maxs, model_t model, int mask, const vec3_t org, const vec3_t ang, trType_t type );
void (*BiSphereTrace1)( TraceResult *results, const vec3_t p1, const vec3_t p2, float startRad, float endRad, model_t model, int mask );
void (*BiSphereTrace2)( TraceResult *results, const vec3_t p1, const vec3_t p2, float startRad, float endRad, model_t model, int mask, const vec3_t origin );
model_t (*TempModel)( const vec3_t mins, const vec3_t maxs, bool capsule );
// needs to be removed

View File

@ -442,6 +442,19 @@ void ClientCommand( edict_t *pEntity )
ClientPrint( &pEntity->v, HUD_PRINTCONSOLE, "godmode OFF\n" );
else ClientPrint( &pEntity->v, HUD_PRINTCONSOLE, "godmode ON\n" );
}
else if( FStrEq( pcmd, "fly" ))
{
if ( pEntity->v.movetype == MOVETYPE_FLY )
{
pEntity->v.movetype = MOVETYPE_WALK;
ClientPrint( &pEntity->v, HUD_PRINTCONSOLE, "flymode OFF\n" );
}
else
{
pEntity->v.movetype = MOVETYPE_FLY;
ClientPrint( &pEntity->v, HUD_PRINTCONSOLE, "flymode ON\n" );
}
}
else if( FStrEq( pcmd, "notarget" ))
{
pEntity->v.flags = pEntity->v.flags ^ FL_NOTARGET;

View File

@ -6,6 +6,91 @@
--------------------Configuration: server - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397F.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "ents" /I "game" /I "global" /I "monsters" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\server\!debug/" /Fo"..\temp\server\!debug/" /Fd"..\temp\server\!debug/" /FD /c
"D:\Xash3D\src_main\server\global\client.cpp"
]
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP397F.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3980.tmp" with contents
[
msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\server\!debug/server.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /def:".\server.def" /out:"..\temp\server\!debug/server.dll" /implib:"..\temp\server\!debug/server.lib" /pdbtype:sept
"\Xash3D\src_main\temp\server\!debug\ai_sound.obj"
"\Xash3D\src_main\temp\server\!debug\animating.obj"
"\Xash3D\src_main\temp\server\!debug\animation.obj"
"\Xash3D\src_main\temp\server\!debug\apache.obj"
"\Xash3D\src_main\temp\server\!debug\barnacle.obj"
"\Xash3D\src_main\temp\server\!debug\barney.obj"
"\Xash3D\src_main\temp\server\!debug\basebrush.obj"
"\Xash3D\src_main\temp\server\!debug\baseentity.obj"
"\Xash3D\src_main\temp\server\!debug\basefunc.obj"
"\Xash3D\src_main\temp\server\!debug\basefx.obj"
"\Xash3D\src_main\temp\server\!debug\baseinfo.obj"
"\Xash3D\src_main\temp\server\!debug\baseitem.obj"
"\Xash3D\src_main\temp\server\!debug\baselogic.obj"
"\Xash3D\src_main\temp\server\!debug\basemonster.obj"
"\Xash3D\src_main\temp\server\!debug\basemover.obj"
"\Xash3D\src_main\temp\server\!debug\baseother.obj"
"\Xash3D\src_main\temp\server\!debug\basepath.obj"
"\Xash3D\src_main\temp\server\!debug\basephys.obj"
"\Xash3D\src_main\temp\server\!debug\baserockets.obj"
"\Xash3D\src_main\temp\server\!debug\basetank.obj"
"\Xash3D\src_main\temp\server\!debug\basetrigger.obj"
"\Xash3D\src_main\temp\server\!debug\baseutil.obj"
"\Xash3D\src_main\temp\server\!debug\baseweapon.obj"
"\Xash3D\src_main\temp\server\!debug\baseworld.obj"
"\Xash3D\src_main\temp\server\!debug\client.obj"
"\Xash3D\src_main\temp\server\!debug\combat.obj"
"\Xash3D\src_main\temp\server\!debug\decals.obj"
"\Xash3D\src_main\temp\server\!debug\defaultai.obj"
"\Xash3D\src_main\temp\server\!debug\dll_int.obj"
"\Xash3D\src_main\temp\server\!debug\flyingmonster.obj"
"\Xash3D\src_main\temp\server\!debug\game.obj"
"\Xash3D\src_main\temp\server\!debug\gamerules.obj"
"\Xash3D\src_main\temp\server\!debug\generic.obj"
"\Xash3D\src_main\temp\server\!debug\globals.obj"
"\Xash3D\src_main\temp\server\!debug\gman.obj"
"\Xash3D\src_main\temp\server\!debug\hassassin.obj"
"\Xash3D\src_main\temp\server\!debug\headcrab.obj"
"\Xash3D\src_main\temp\server\!debug\hgrunt.obj"
"\Xash3D\src_main\temp\server\!debug\leech.obj"
"\Xash3D\src_main\temp\server\!debug\legacy.obj"
"\Xash3D\src_main\temp\server\!debug\lights.obj"
"\Xash3D\src_main\temp\server\!debug\multiplay_gamerules.obj"
"\Xash3D\src_main\temp\server\!debug\nodes.obj"
"\Xash3D\src_main\temp\server\!debug\osprey.obj"
"\Xash3D\src_main\temp\server\!debug\parent.obj"
"\Xash3D\src_main\temp\server\!debug\player.obj"
"\Xash3D\src_main\temp\server\!debug\rat.obj"
"\Xash3D\src_main\temp\server\!debug\roach.obj"
"\Xash3D\src_main\temp\server\!debug\saverestore.obj"
"\Xash3D\src_main\temp\server\!debug\scientist.obj"
"\Xash3D\src_main\temp\server\!debug\scripted.obj"
"\Xash3D\src_main\temp\server\!debug\sfx.obj"
"\Xash3D\src_main\temp\server\!debug\singleplay_gamerules.obj"
"\Xash3D\src_main\temp\server\!debug\sound.obj"
"\Xash3D\src_main\temp\server\!debug\spectator.obj"
"\Xash3D\src_main\temp\server\!debug\squadmonster.obj"
"\Xash3D\src_main\temp\server\!debug\talkmonster.obj"
"\Xash3D\src_main\temp\server\!debug\teamplay_gamerules.obj"
"\Xash3D\src_main\temp\server\!debug\turret.obj"
"\Xash3D\src_main\temp\server\!debug\utils.obj"
"\Xash3D\src_main\temp\server\!debug\weapon_generic.obj"
"\Xash3D\src_main\temp\server\!debug\zombie.obj"
]
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3980.tmp""
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3981.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\server\!debug\server.dll "D:\Xash3D\bin\server.dll"
]
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP3981.bat""
Compiling...
client.cpp
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\server\!debug\server.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

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

View File

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

View File

@ -842,7 +842,7 @@ msurface_t *R_TransformedTraceLine( TraceResult *tr, const vec3_t start, const v
tr->pHit = (edict_t *)test;
}
tr->flFraction = tr->flRealFrac = trace_fraction;
tr->flFraction = trace_fraction;
VectorCopy( trace_impact, tr->vecEndPos );
return trace_surface;

View File

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

View File

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

View File

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