23 Aug 2009

This commit is contained in:
g-cont 2009-08-23 00:00:00 +04:00 committed by Alibek Omarov
parent 2e75e81169
commit a75bc7448c
29 changed files with 1352 additions and 255 deletions

16
baserc/baserc.plg Normal file
View File

@ -0,0 +1,16 @@
<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>

16
client/client.plg Normal file
View File

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

View File

@ -5,6 +5,8 @@
#include "extdll.h"
#include "utils.h"
#include "ref_params.h"
#include "studio_ref.h"
#include "hud.h"
cl_enginefuncs_t g_engfuncs;
@ -23,6 +25,7 @@ static HUD_FUNCTIONS gFunctionTable =
HUD_Init,
HUD_Redraw,
HUD_UpdateClientData,
HUD_UpdateEntityVars,
HUD_Reset,
HUD_Frame,
HUD_Shutdown,
@ -89,6 +92,71 @@ int HUD_UpdateClientData( client_data_t *cdata, float flTime )
return gHUD.UpdateClientData( cdata, flTime );
}
void HUD_UpdateEntityVars( edict_t *ent, ref_params_t *view, const entity_state_t *state )
{
int i;
// copy state to progs
ent->v.modelindex = state->modelindex;
ent->v.weaponmodel = state->weaponmodel;
ent->v.frame = state->frame;
ent->v.sequence = state->sequence;
ent->v.gaitsequence = state->gaitsequence;
ent->v.body = state->body;
ent->v.skin = state->skin;
ent->v.effects = state->effects;
ent->v.rendercolor = state->rendercolor;
ent->v.velocity = state->velocity;
ent->v.oldorigin = ent->v.origin;
ent->v.origin = state->origin;
ent->v.angles = state->angles;
ent->v.mins = state->mins;
ent->v.maxs = state->maxs;
ent->v.framerate = state->framerate;
ent->v.colormap = state->colormap;
ent->v.rendermode = state->rendermode;
ent->v.renderamt = state->renderamt;
ent->v.renderfx = state->renderfx;
ent->v.fov = state->fov;
ent->v.scale = state->scale;
ent->v.weapons = state->weapons;
ent->v.gravity = state->gravity;
ent->v.health = state->health;
ent->v.solid = state->solid;
ent->v.movetype = state->movetype;
ent->v.flags = state->flags;
switch( state->ed_type )
{
case ED_PORTAL:
case ED_MOVER:
case ED_BSPBRUSH:
ent->v.movedir.BitsToDir( state->skin );
ent->v.oldorigin = state->oldorigin;
break;
case ED_SKYPORTAL:
// setup sky portal
view->skyportal.vieworg = ent->v.origin;
view->skyportal.viewanglesOffset.x = view->skyportal.viewanglesOffset.z = 0.0f;
view->skyportal.viewanglesOffset.y = gHUD.m_flTime * ent->v.angles[1];
view->skyportal.fov = ent->v.fov;
view->skyportal.scale = (ent->v.scale ? 1.0f / ent->v.scale : 0); // critical stuff
break;
default:
ent->v.movedir = Vector( 0, 0, 0 );
break;
}
for( i = 0; i < MAXSTUDIOBLENDS; i++ )
ent->v.blending[i] = state->blending[i];
for( i = 0; i < MAXSTUDIOCONTROLLERS; i++ )
ent->v.controller[i] = state->controller[i];
// g-cont. moved here because we may needs apply null scale to skyportal
if( ent->v.scale == 0.0f ) ent->v.scale = 1.0f;
ent->v.pContainingEntity = ent;
}
void HUD_Reset( void )
{
gHUD.VidInit();

View File

@ -30,6 +30,7 @@
// Shared header describing protocol between engine and DLLs
#include "entity_def.h"
#include "entity_state.h"
#include "clgame_api.h"
#include "game_shared.h"

View File

@ -14,6 +14,7 @@ extern int HUD_VidInit( void );
extern void HUD_Init( void );
extern int HUD_Redraw( float flTime, int state );
extern int HUD_UpdateClientData( client_data_t *cdata, float flTime );
extern void HUD_UpdateEntityVars( edict_t *out, ref_params_t *view, const entity_state_t *in );
extern void HUD_Reset( void );
extern void HUD_Frame( double time );
extern void HUD_Shutdown( void );

View File

@ -150,6 +150,7 @@ typedef struct
void (*pfnInit)( void );
int (*pfnRedraw)( float flTime, int state );
int (*pfnUpdateClientData)( client_data_t *cdata, float flTime );
void (*pfnUpdateEntityVars)( edict_t *out, ref_params_t *view, const struct entity_state_s *in );
void (*pfnReset)( void );
void (*pfnFrame)( double time );
void (*pfnShutdown)( void );

View File

@ -150,23 +150,60 @@ public:
inline Vector Normalize(void) const
{
float flLen = Length();
if (flLen == 0) return Vector(0,0,1); // ????
flLen = 1 / flLen;
return Vector(x * flLen, y * flLen, z * flLen);
float flLen = Length();
if( flLen == 0 ) return Vector( 0, 0, 1 ); // ????
flLen = 1.0f / flLen;
return Vector( x * flLen, y * flLen, z * flLen );
}
vec_t Dot(Vector const& vOther) const
vec_t Dot(Vector const& vOther) const
{
return(x*vOther.x+y*vOther.y+z*vOther.z);
}
vec_t Distance( Vector const &vOther) const
vec_t Distance( Vector const &vOther) const
{
return sqrt((x - vOther.x) * (x - vOther.x) + (y - vOther.y) * (y - vOther.y) + (z - vOther.z) * (z - vOther.z));
}
Vector Cross(const Vector &vOther) const
Vector Cross(const Vector &vOther) const
{
return Vector(y*vOther.z - z*vOther.y, z*vOther.x - x*vOther.z, x*vOther.y - y*vOther.x);
}
int DirToBits( void )
{
int max, bits, numBits = 15; // pack as unsigned short ( state->skin supports this )
float bias;
numBits /= 3;
max = ( 1 << ( numBits - 1 )) - 1;
bias = 0.5f / max;
bits = ((*(const unsigned long *)&( x )) >> 31) << ( numBits * 3 - 1 );
bits |= ((int)(( fabs( x ) + bias ) * max ) ) << ( numBits * 2 );
bits |= ((*(const unsigned long *)&( y )) >> 31) << ( numBits * 2 - 1 );
bits |= ((int)(( fabs( y ) + bias ) * max ) ) << ( numBits * 1 );
bits |= ((*(const unsigned long *)&( z )) >> 31) << ( numBits * 1 - 1 );
bits |= ((int)(( fabs( z ) + bias ) * max ) ) << ( numBits * 0 );
return bits;
}
Vector BitsToDir( int bits )
{
static float sign[2] = { 1.0f, -1.0f };
int max, numBits = 15; // pack as unsigned short
float invMax;
numBits /= 3;
max = ( 1 << ( numBits - 1 )) - 1;
invMax = 1.0f / max;
x = sign[(bits >> (numBits * 3 - 1 )) & 1] * ((bits >> (numBits * 2 )) & max) * invMax;
y = sign[(bits >> (numBits * 2 - 1 )) & 1] * ((bits >> (numBits * 1 )) & max) * invMax;
z = sign[(bits >> (numBits * 1 - 1 )) & 1] * ((bits >> (numBits * 0 )) & max) * invMax;
Normalize();
return *this;
}
inline Vector2D Make2D ( void ) const
{
Vector2D Vec2;

View File

@ -72,5 +72,5 @@ if exist xtools\xtools.plg del /f /q xtools\xtools.plg
echo Build succeeded!
echo Please wait. Xash is now loading
cd D:\Xash3D\
xash.exe -log -dev 3 +map wamphi1
xash.exe -log -dev 3 +map q3dm0
:done

View File

@ -15,76 +15,18 @@ FRAME PARSING
*/
void CL_UpdateEntityFields( edict_t *ent )
{
int i;
// always keep an actual
ent->serialnumber = ent->pvClientData->current.number;
// copy state to progs
ent->v.classname = cl.edict_classnames[ent->pvClientData->current.classname];
ent->v.modelindex = ent->pvClientData->current.modelindex;
ent->v.weaponmodel = ent->pvClientData->current.weaponmodel;
ent->v.model = MAKE_STRING( cl.configstrings[CS_MODELS+ent->pvClientData->current.modelindex] );
ent->v.frame = ent->pvClientData->current.frame;
ent->v.sequence = ent->pvClientData->current.sequence;
ent->v.gaitsequence = ent->pvClientData->current.gaitsequence;
ent->v.body = ent->pvClientData->current.body;
ent->v.skin = ent->pvClientData->current.skin;
ent->v.effects = ent->pvClientData->current.effects;
VectorCopy( ent->pvClientData->current.rendercolor, ent->v.rendercolor );
VectorCopy( ent->pvClientData->current.velocity, ent->v.velocity );
VectorCopy( ent->pvClientData->current.origin, ent->v.origin );
VectorCopy( ent->pvClientData->current.angles, ent->v.angles );
// these fields user can overwrite if need
ent->v.model = MAKE_STRING( cl.configstrings[CS_MODELS+ent->pvClientData->current.modelindex] );
VectorCopy( ent->pvClientData->prev.angles, ent->v.oldangles );
VectorCopy( ent->pvClientData->current.mins, ent->v.mins );
VectorCopy( ent->pvClientData->current.maxs, ent->v.maxs );
ent->v.framerate = ent->pvClientData->current.framerate;
ent->v.colormap = ent->pvClientData->current.colormap;
ent->v.rendermode = ent->pvClientData->current.rendermode;
ent->v.renderamt = ent->pvClientData->current.renderamt;
ent->v.renderfx = ent->pvClientData->current.renderfx;
ent->v.fov = ent->pvClientData->current.fov;
ent->v.scale = ent->pvClientData->current.scale;
ent->v.weapons = ent->pvClientData->current.weapons;
ent->v.gravity = ent->pvClientData->current.gravity;
ent->v.health = ent->pvClientData->current.health;
ent->v.solid = ent->pvClientData->current.solid;
ent->v.movetype = ent->pvClientData->current.movetype;
ent->v.flags = ent->pvClientData->current.flags;
switch( ent->pvClientData->current.ed_type )
{
case ED_PORTAL:
case ED_MOVER:
case ED_BSPBRUSH:
ByteToDir( ent->pvClientData->current.skin, ent->v.movedir );
VectorCopy( ent->pvClientData->current.oldorigin, ent->v.oldorigin );
break;
case ED_SKYPORTAL:
// setup sky portal
VectorCopy( ent->v.origin, cl.refdef.skyportal.vieworg );
VectorSet( cl.refdef.skyportal.viewanglesOffset, 0, cl.time * ent->v.angles[1], 0 );
cl.refdef.skyportal.fov = ent->v.fov;
cl.refdef.skyportal.scale = (ent->v.scale ? 1.0f / ent->v.scale : 0);
break;
default:
VectorCopy( ent->pvClientData->prev.origin, ent->v.oldorigin );
VectorClear( ent->v.movedir );
break;
}
for( i = 0; i < MAXSTUDIOBLENDS; i++ )
ent->v.blending[i] = ent->pvClientData->current.blending[i];
for( i = 0; i < MAXSTUDIOCONTROLLERS; i++ )
ent->v.controller[i] = ent->pvClientData->current.controller[i];
// g-cont. moveed here because we may needs apply null scale to skyportal
if( ent->v.scale == 0.0f ) ent->v.scale = 1.0f;
if( ent->pvClientData->current.aiment )
ent->v.aiment = EDICT_NUM( ent->pvClientData->current.aiment );
else ent->v.aiment = NULL;
ent->v.pContainingEntity = ent;
clgame.dllFuncs.pfnUpdateEntityVars( ent, &cl.refdef, &ent->pvClientData->current );
// always keep an actual (users can't replace this)
ent->serialnumber = ent->pvClientData->current.number;
ent->v.classname = cl.edict_classnames[ent->pvClientData->current.classname];
}
/*

View File

@ -39,7 +39,7 @@ static net_field_t ent_fields[] =
{ ES_FIELD(framerate), NET_FLOAT, false }, // custom framerate
{ ES_FIELD(sequence), NET_WORD, false }, // 1024 sequences
{ ES_FIELD(gaitsequence), NET_WORD, false }, // 1024 gaitsequences
{ ES_FIELD(skin), NET_BYTE, false }, // 255 skins
{ ES_FIELD(skin), NET_WORD, false }, // 255 skins
{ ES_FIELD(body), NET_BYTE, false }, // 255 bodies
{ ES_FIELD(weaponmodel), NET_WORD, false }, // p_model index, not name
{ ES_FIELD(weaponanim), NET_WORD, false }, // 1024 sequences

View File

@ -6,13 +6,43 @@
--------------------Configuration: engine - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3209.tmp" with contents
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393A.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "common" /I "server" /I "client" /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\common\cinematic.c"
"D:\Xash3D\src_main\engine\client\cl_cmds.c"
"D:\Xash3D\src_main\engine\client\cl_demo.c"
"D:\Xash3D\src_main\engine\client\cl_effects.c"
"D:\Xash3D\src_main\engine\client\cl_frame.c"
"D:\Xash3D\src_main\engine\client\cl_game.c"
"D:\Xash3D\src_main\engine\client\cl_input.c"
"D:\Xash3D\src_main\engine\client\cl_main.c"
"D:\Xash3D\src_main\engine\client\cl_parse.c"
"D:\Xash3D\src_main\engine\client\cl_phys.c"
"D:\Xash3D\src_main\engine\client\cl_scrn.c"
"D:\Xash3D\src_main\engine\client\cl_view.c"
"D:\Xash3D\src_main\engine\common\con_keys.c"
"D:\Xash3D\src_main\engine\common\con_main.c"
"D:\Xash3D\src_main\engine\common\con_utils.c"
"D:\Xash3D\src_main\engine\common\engfuncs.c"
"D:\Xash3D\src_main\engine\host.c"
"D:\Xash3D\src_main\engine\common\input.c"
"D:\Xash3D\src_main\engine\common\menu.c"
"D:\Xash3D\src_main\engine\common\net_chan.c"
"D:\Xash3D\src_main\engine\common\net_msg.c"
"D:\Xash3D\src_main\engine\server\sv_client.c"
"D:\Xash3D\src_main\engine\server\sv_cmds.c"
"D:\Xash3D\src_main\engine\server\sv_frame.c"
"D:\Xash3D\src_main\engine\server\sv_game.c"
"D:\Xash3D\src_main\engine\server\sv_init.c"
"D:\Xash3D\src_main\engine\server\sv_main.c"
"D:\Xash3D\src_main\engine\server\sv_move.c"
"D:\Xash3D\src_main\engine\server\sv_phys.c"
"D:\Xash3D\src_main\engine\server\sv_save.c"
"D:\Xash3D\src_main\engine\server\sv_world.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3209.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP320A.tmp" with contents
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393A.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393B.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"
@ -51,16 +81,50 @@ user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..
"\Xash3D\src_main\temp\engine\!debug\sv_save.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_world.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP320A.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP320B.bat" with contents
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393B.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393C.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\MIKE~1.MIK\LOCALS~1\Temp\RSP320B.bat"
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393C.bat"
Compiling...
cinematic.c
cl_cmds.c
cl_demo.c
cl_effects.c
cl_frame.c
cl_game.c
cl_input.c
cl_main.c
cl_parse.c
cl_phys.c
cl_scrn.c
cl_view.c
con_keys.c
con_main.c
con_utils.c
engfuncs.c
host.c
input.c
menu.c
net_chan.c
Generating Code...
Compiling...
net_msg.c
sv_client.c
sv_cmds.c
sv_frame.c
sv_game.c
sv_init.c
sv_main.c
sv_move.c
sv_phys.c
sv_save.c
sv_world.c
Generating Code...
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

@ -46,22 +46,13 @@ Copy entvars into entity state
*/
void SV_UpdateEntityState( edict_t *ent, bool baseline )
{
// copy progs values to state
ent->pvServerData->s.number = ent->serialnumber;
if( !ent->pvServerData->s.classname )
ent->pvServerData->s.classname = SV_ClassIndex( STRING( ent->v.classname ));
svgame.dllFuncs.pfnUpdateEntityState( &ent->pvServerData->s, ent, baseline );
switch( ent->pvServerData->s.ed_type )
{
case ED_MOVER:
case ED_BSPBRUSH:
case ED_PORTAL:
ent->pvServerData->s.skin = DirToByte( ent->v.movedir );
break;
}
// always keep an actual
ent->pvServerData->s.number = ent->serialnumber;
}
/*

76
launch/launch.plg Normal file
View File

@ -0,0 +1,76 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: launch - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3941.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\imagelib\img_dds.c"
"D:\Xash3D\src_main\launch\imagelib\img_main.c"
"D:\Xash3D\src_main\launch\imagelib\img_utils.c"
"D:\Xash3D\src_main\launch\patch.c"
"D:\Xash3D\src_main\launch\stdlib.c"
"D:\Xash3D\src_main\launch\system.c"
"D:\Xash3D\src_main\launch\utils.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3941.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3942.tmp" with contents
[
zlib.lib png.lib jpg.lib user32.lib gdi32.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\MIKE~1.MIK\LOCALS~1\Temp\RSP3942.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3943.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\MIKE~1.MIK\LOCALS~1\Temp\RSP3943.bat"
Compiling...
img_dds.c
img_main.c
img_utils.c
patch.c
stdlib.c
system.c
utils.c
Generating Code...
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\launch\!debug\launch.dll
‘Ş®Ż¨ŕ®˘ ­® ä ©«®˘: 1.
<h3>Results</h3>
launch.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

76
physic/physic.plg Normal file
View File

@ -0,0 +1,76 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: physic - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3945.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_callback.c"
"D:\Xash3D\src_main\physic\cm_collision.c"
"D:\Xash3D\src_main\physic\cm_debug.c"
"D:\Xash3D\src_main\physic\cm_materials.c"
"D:\Xash3D\src_main\physic\cm_model.c"
"D:\Xash3D\src_main\physic\cm_pmove.c"
"D:\Xash3D\src_main\physic\cm_polygon.c"
"D:\Xash3D\src_main\physic\cm_portals.c"
"D:\Xash3D\src_main\physic\cm_rigidbody.c"
"D:\Xash3D\src_main\physic\cm_test.c"
"D:\Xash3D\src_main\physic\cm_trace.c"
"D:\Xash3D\src_main\physic\physic.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3945.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3946.tmp" with contents
[
user32.lib msvcrtd.lib newton.lib opengl32.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_callback.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_collision.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_debug.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_materials.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_model.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_pmove.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_polygon.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_portals.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_rigidbody.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_test.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_trace.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_utils.obj"
"\Xash3D\src_main\temp\physic\!debug\physic.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3946.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3947.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\MIKE~1.MIK\LOCALS~1\Temp\RSP3947.bat"
Compiling...
cm_callback.c
cm_collision.c
cm_debug.c
cm_materials.c
cm_model.c
cm_pmove.c
cm_polygon.c
cm_portals.c
cm_rigidbody.c
cm_test.c
cm_trace.c
physic.c
Generating Code...
Linking...
Creating library ..\temp\physic\!debug/physic.lib and object ..\temp\physic\!debug/physic.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\physic\!debug\physic.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.
<h3>Results</h3>
physic.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

@ -781,43 +781,5 @@ static vec3_t vec3_origin = { 0, 0, 0 };
static vec3_t vec3_angles = { 0, 0, 0 };
static vec4_t vec4_origin = { 0, 0, 0, 0 };
static vec3_t vec3_up = { 0.0f, 1.0f, 0.0f }; // unconverted up vector
static vec3_t bytedirs[NUMVERTEXNORMALS] =
{
#include "anorms.h"
};
_inline int DirToByte( vec3_t dir )
{
int i, best = 0;
float d, bestd = 0;
bool normalized;
if( !dir || VectorCompare( dir, vec3_origin ))
return NUMVERTEXNORMALS;
if( DotProduct( dir, dir ) == 1 )
normalized = true;
else normalized = false;
for( i = 0; i < NUMVERTEXNORMALS; i++ )
{
d = DotProduct( dir, bytedirs[i] );
if(( d == 1 ) && normalized )
return i;
if( d > bestd )
{
bestd = d;
best = i;
}
}
return best;
}
_inline void ByteToDir( int b, vec3_t dir )
{
if( b < 0 || b >= NUMVERTEXNORMALS )
VectorCopy( vec3_origin, dir );
else VectorCopy( bytedirs[b], dir );
}
#endif//BASEMATH_H

View File

@ -572,6 +572,129 @@ typedef struct
/*
========================================================================
.MDL alias model file format
========================================================================
*/
/*
==============================================================================
ALIAS MODELS
Alias models are position independent, so the cache manager can move them.
==============================================================================
*/
#define QALIAS_VERSION 6
#define IDQALIASHEADER (('O'<<24)+('P'<<16)+('D'<<8)+'I')
#define DT_FACES_FRONT 0x0010
#define ALIAS_ONSEAM 0x0020
// built-in model effects
#define AF_ROCKET BIT(0) // leave a trail
#define AF_GRENADE BIT(1) // leave a trail
#define AF_GIB BIT(2) // leave a trail
#define AF_ROTATE BIT(3) // rotate (bonus items)
#define AF_TRACER BIT(4) // green split trail
#define AF_ZOMGIB BIT(5) // small blood trail
#define AF_TRACER2 BIT(6) // orange split trail + rotate
#define AF_TRACER3 BIT(7) // purple trail
typedef enum
{
ALIAS_SINGLE = 0,
ALIAS_GROUP
} aliasframetype_t;
typedef enum
{
ALIAS_SKIN_SINGLE = 0,
ALIAS_SKIN_GROUP
} aliasskintype_t;
typedef struct
{
int ident;
int version;
vec3_t scale;
vec3_t scale_origin;
float boundingradius;
vec3_t eyeposition;
int numskins;
int skinwidth;
int skinheight;
int numverts;
int numtris;
int numframes;
synctype_t synctype;
int flags;
float size;
} qaliashdr_t;
typedef struct
{
int onseam;
int s, t;
} daliastexcoord_t;
typedef struct
{
int facesfront;
int vertindex[3];
} daliastriangle_t;
// This mirrors trivert_t in trilib.h, is present so Quake knows how to
// load this data
typedef struct
{
byte v[3];
byte lightnormal;
} daliastrivertx_t;
typedef struct
{
daliastrivertx_t bboxmin; // lightnormal isn't used
daliastrivertx_t bboxmax; // lightnormal isn't used
char name[16]; // frame name from grabbing
} daliasframe_t;
typedef struct
{
int numframes;
daliastrivertx_t bboxmin; // lightnormal isn't used
daliastrivertx_t bboxmax; // lightnormal isn't used
} daliasgroup_t;
typedef struct
{
int numskins;
} daliasskingroup_t;
typedef struct
{
float interval;
} daliasinterval_t;
typedef struct
{
float interval;
} daliasskininterval_t;
typedef struct
{
aliasframetype_t type;
} daliasframetype_t;
typedef struct
{
aliasskintype_t type;
} daliasskintype_t;
/*
========================================================================
.MD3 model file format
========================================================================

177
render/anorms.h Normal file
View File

@ -0,0 +1,177 @@
/***
*
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
*
* This product contains software technology licensed from Id
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
* All Rights Reserved.
*
* Use, distribution, and modification of this source code and/or resulting
* object code is restricted to non-commercial enhancements to products from
* Valve LLC. All other use, distribution, or modification is prohibited
* without written permission from Valve LLC.
*
****/
{-0.525731, 0.000000, 0.850651},
{-0.442863, 0.238856, 0.864188},
{-0.295242, 0.000000, 0.955423},
{-0.309017, 0.500000, 0.809017},
{-0.162460, 0.262866, 0.951056},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.850651, 0.525731},
{-0.147621, 0.716567, 0.681718},
{0.147621, 0.716567, 0.681718},
{0.000000, 0.525731, 0.850651},
{0.309017, 0.500000, 0.809017},
{0.525731, 0.000000, 0.850651},
{0.295242, 0.000000, 0.955423},
{0.442863, 0.238856, 0.864188},
{0.162460, 0.262866, 0.951056},
{-0.681718, 0.147621, 0.716567},
{-0.809017, 0.309017, 0.500000},
{-0.587785, 0.425325, 0.688191},
{-0.850651, 0.525731, 0.000000},
{-0.864188, 0.442863, 0.238856},
{-0.716567, 0.681718, 0.147621},
{-0.688191, 0.587785, 0.425325},
{-0.500000, 0.809017, 0.309017},
{-0.238856, 0.864188, 0.442863},
{-0.425325, 0.688191, 0.587785},
{-0.716567, 0.681718, -0.147621},
{-0.500000, 0.809017, -0.309017},
{-0.525731, 0.850651, 0.000000},
{0.000000, 0.850651, -0.525731},
{-0.238856, 0.864188, -0.442863},
{0.000000, 0.955423, -0.295242},
{-0.262866, 0.951056, -0.162460},
{0.000000, 1.000000, 0.000000},
{0.000000, 0.955423, 0.295242},
{-0.262866, 0.951056, 0.162460},
{0.238856, 0.864188, 0.442863},
{0.262866, 0.951056, 0.162460},
{0.500000, 0.809017, 0.309017},
{0.238856, 0.864188, -0.442863},
{0.262866, 0.951056, -0.162460},
{0.500000, 0.809017, -0.309017},
{0.850651, 0.525731, 0.000000},
{0.716567, 0.681718, 0.147621},
{0.716567, 0.681718, -0.147621},
{0.525731, 0.850651, 0.000000},
{0.425325, 0.688191, 0.587785},
{0.864188, 0.442863, 0.238856},
{0.688191, 0.587785, 0.425325},
{0.809017, 0.309017, 0.500000},
{0.681718, 0.147621, 0.716567},
{0.587785, 0.425325, 0.688191},
{0.955423, 0.295242, 0.000000},
{1.000000, 0.000000, 0.000000},
{0.951056, 0.162460, 0.262866},
{0.850651, -0.525731, 0.000000},
{0.955423, -0.295242, 0.000000},
{0.864188, -0.442863, 0.238856},
{0.951056, -0.162460, 0.262866},
{0.809017, -0.309017, 0.500000},
{0.681718, -0.147621, 0.716567},
{0.850651, 0.000000, 0.525731},
{0.864188, 0.442863, -0.238856},
{0.809017, 0.309017, -0.500000},
{0.951056, 0.162460, -0.262866},
{0.525731, 0.000000, -0.850651},
{0.681718, 0.147621, -0.716567},
{0.681718, -0.147621, -0.716567},
{0.850651, 0.000000, -0.525731},
{0.809017, -0.309017, -0.500000},
{0.864188, -0.442863, -0.238856},
{0.951056, -0.162460, -0.262866},
{0.147621, 0.716567, -0.681718},
{0.309017, 0.500000, -0.809017},
{0.425325, 0.688191, -0.587785},
{0.442863, 0.238856, -0.864188},
{0.587785, 0.425325, -0.688191},
{0.688191, 0.587785, -0.425325},
{-0.147621, 0.716567, -0.681718},
{-0.309017, 0.500000, -0.809017},
{0.000000, 0.525731, -0.850651},
{-0.525731, 0.000000, -0.850651},
{-0.442863, 0.238856, -0.864188},
{-0.295242, 0.000000, -0.955423},
{-0.162460, 0.262866, -0.951056},
{0.000000, 0.000000, -1.000000},
{0.295242, 0.000000, -0.955423},
{0.162460, 0.262866, -0.951056},
{-0.442863, -0.238856, -0.864188},
{-0.309017, -0.500000, -0.809017},
{-0.162460, -0.262866, -0.951056},
{0.000000, -0.850651, -0.525731},
{-0.147621, -0.716567, -0.681718},
{0.147621, -0.716567, -0.681718},
{0.000000, -0.525731, -0.850651},
{0.309017, -0.500000, -0.809017},
{0.442863, -0.238856, -0.864188},
{0.162460, -0.262866, -0.951056},
{0.238856, -0.864188, -0.442863},
{0.500000, -0.809017, -0.309017},
{0.425325, -0.688191, -0.587785},
{0.716567, -0.681718, -0.147621},
{0.688191, -0.587785, -0.425325},
{0.587785, -0.425325, -0.688191},
{0.000000, -0.955423, -0.295242},
{0.000000, -1.000000, 0.000000},
{0.262866, -0.951056, -0.162460},
{0.000000, -0.850651, 0.525731},
{0.000000, -0.955423, 0.295242},
{0.238856, -0.864188, 0.442863},
{0.262866, -0.951056, 0.162460},
{0.500000, -0.809017, 0.309017},
{0.716567, -0.681718, 0.147621},
{0.525731, -0.850651, 0.000000},
{-0.238856, -0.864188, -0.442863},
{-0.500000, -0.809017, -0.309017},
{-0.262866, -0.951056, -0.162460},
{-0.850651, -0.525731, 0.000000},
{-0.716567, -0.681718, -0.147621},
{-0.716567, -0.681718, 0.147621},
{-0.525731, -0.850651, 0.000000},
{-0.500000, -0.809017, 0.309017},
{-0.238856, -0.864188, 0.442863},
{-0.262866, -0.951056, 0.162460},
{-0.864188, -0.442863, 0.238856},
{-0.809017, -0.309017, 0.500000},
{-0.688191, -0.587785, 0.425325},
{-0.681718, -0.147621, 0.716567},
{-0.442863, -0.238856, 0.864188},
{-0.587785, -0.425325, 0.688191},
{-0.309017, -0.500000, 0.809017},
{-0.147621, -0.716567, 0.681718},
{-0.425325, -0.688191, 0.587785},
{-0.162460, -0.262866, 0.951056},
{0.442863, -0.238856, 0.864188},
{0.162460, -0.262866, 0.951056},
{0.309017, -0.500000, 0.809017},
{0.147621, -0.716567, 0.681718},
{0.000000, -0.525731, 0.850651},
{0.425325, -0.688191, 0.587785},
{0.587785, -0.425325, 0.688191},
{0.688191, -0.587785, 0.425325},
{-0.955423, 0.295242, 0.000000},
{-0.951056, 0.162460, 0.262866},
{-1.000000, 0.000000, 0.000000},
{-0.850651, 0.000000, 0.525731},
{-0.955423, -0.295242, 0.000000},
{-0.951056, -0.162460, 0.262866},
{-0.864188, 0.442863, -0.238856},
{-0.951056, 0.162460, -0.262866},
{-0.809017, 0.309017, -0.500000},
{-0.864188, -0.442863, -0.238856},
{-0.951056, -0.162460, -0.262866},
{-0.809017, -0.309017, -0.500000},
{-0.681718, 0.147621, -0.716567},
{-0.681718, -0.147621, -0.716567},
{-0.850651, 0.000000, -0.525731},
{-0.688191, 0.587785, -0.425325},
{-0.587785, 0.425325, -0.688191},
{-0.425325, 0.688191, -0.587785},
{-0.425325, -0.688191, -0.587785},
{-0.587785, -0.425325, -0.688191},
{-0.688191, -0.587785, -0.425325},

211
render/r_aliasq.c Normal file
View File

@ -0,0 +1,211 @@
//=======================================================================
// Copyright XashXT Group 2008 ©
// r_alias.c - Quake1 models loading & drawing
//=======================================================================
#include "r_local.h"
#include "mathlib.h"
#include "quatlib.h"
#include "byteorder.h"
static mesh_t alias_mesh;
static vec3_t alias_mins;
static vec3_t alias_maxs;
static float alias_radius;
/*
=================
Mod_QAliasLoadModel
=================
*/
void Mod_QAliasLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer )
{
int i, j, k;
int version, framesize;
float skinwidth, skinheight;
int numverts, numelems;
int indremap[MD2_MAX_TRIANGLES*3];
elem_t ptempelem[MD2_MAX_TRIANGLES*3], ptempstelem[MD2_MAX_TRIANGLES*3];
dmd2_t *pinmodel;
dstvert_t *pinst;
dtriangle_t *pintri;
daliasframe_t *pinframe;
elem_t *poutelem;
maliasmodel_t *poutmodel;
maliasmesh_t *poutmesh;
vec2_t *poutcoord;
maliasframe_t *poutframe;
maliasvertex_t *poutvertex;
maliasskin_t *poutskin;
pinmodel = ( dmd2_t * )buffer;
version = LittleLong( pinmodel->version );
framesize = LittleLong( pinmodel->framesize );
if( version != MD2_ALIAS_VERSION )
Com_Error( ERR_DROP, "%s has wrong version number (%i should be %i)",
mod->name, version, MD2_ALIAS_VERSION );
mod->type = mod_alias;
mod->aliasmodel = poutmodel = Mod_Malloc( mod, sizeof( maliasmodel_t ) );
mod->radius = 0;
ClearBounds( mod->mins, mod->maxs );
// byte swap the header fields and sanity check
skinwidth = LittleLong( pinmodel->skinwidth );
skinheight = LittleLong( pinmodel->skinheight );
if( skinwidth <= 0 )
Com_Error( ERR_DROP, "model %s has invalid skin width", mod->name );
if( skinheight <= 0 )
Com_Error( ERR_DROP, "model %s has invalid skin height", mod->name );
poutmodel->numframes = LittleLong( pinmodel->num_frames );
poutmodel->numskins = LittleLong( pinmodel->num_skins );
if( poutmodel->numframes > MD2_MAX_FRAMES )
Com_Error( ERR_DROP, "model %s has too many frames", mod->name );
else if( poutmodel->numframes <= 0 )
Com_Error( ERR_DROP, "model %s has no frames", mod->name );
if( poutmodel->numskins > MD2_MAX_SKINS )
Com_Error( ERR_DROP, "model %s has too many skins", mod->name );
else if( poutmodel->numskins < 0 )
Com_Error( ERR_DROP, "model %s has invalid number of skins", mod->name );
poutmodel->numtags = 0;
poutmodel->tags = NULL;
poutmodel->nummeshes = 1;
poutmesh = poutmodel->meshes = Mod_Malloc( mod, sizeof( maliasmesh_t ) );
Q_strncpyz( poutmesh->name, "default", MD3_MAX_PATH );
poutmesh->numverts = LittleLong( pinmodel->num_xyz );
poutmesh->numtris = LittleLong( pinmodel->num_tris );
if( poutmesh->numverts <= 0 )
Com_Error( ERR_DROP, "model %s has no vertices", mod->name );
else if( poutmesh->numverts > MD2_MAX_VERTS )
Com_Error( ERR_DROP, "model %s has too many vertices", mod->name );
if( poutmesh->numtris > MD2_MAX_TRIANGLES )
Com_Error( ERR_DROP, "model %s has too many triangles", mod->name );
else if( poutmesh->numtris <= 0 )
Com_Error( ERR_DROP, "model %s has no triangles", mod->name );
numelems = poutmesh->numtris * 3;
poutelem = poutmesh->elems = Mod_Malloc( mod, numelems * sizeof( elem_t ) );
//
// load triangle lists
//
pintri = ( dtriangle_t * )( ( qbyte * )pinmodel + LittleLong( pinmodel->ofs_tris ) );
pinst = ( dstvert_t * ) ( ( qbyte * )pinmodel + LittleLong( pinmodel->ofs_st ) );
for( i = 0, k = 0; i < poutmesh->numtris; i++, k += 3 )
{
for( j = 0; j < 3; j++ )
{
ptempelem[k+j] = ( elem_t )LittleShort( pintri[i].index_xyz[j] );
ptempstelem[k+j] = ( elem_t )LittleShort( pintri[i].index_st[j] );
}
}
//
// build list of unique vertexes
//
numverts = 0;
memset( indremap, -1, MD2_MAX_TRIANGLES * 3 * sizeof( int ) );
for( i = 0; i < numelems; i++ )
{
if( indremap[i] != -1 )
continue;
// remap duplicates
for( j = i + 1; j < numelems; j++ )
{
if( ( ptempelem[j] == ptempelem[i] )
&& ( pinst[ptempstelem[j]].s == pinst[ptempstelem[i]].s )
&& ( pinst[ptempstelem[j]].t == pinst[ptempstelem[i]].t ) )
{
indremap[j] = i;
poutelem[j] = numverts;
}
}
// add unique vertex
indremap[i] = i;
poutelem[i] = numverts++;
}
Com_DPrintf( "%s: remapped %i verts to %i (%i tris)\n", mod->name, poutmesh->numverts, numverts, poutmesh->numtris );
poutmesh->numverts = numverts;
//
// load base s and t vertices
//
poutcoord = poutmesh->stArray = Mod_Malloc( mod, numverts * sizeof( vec2_t ) );
for( i = 0; i < numelems; i++ )
{
if( indremap[i] == i )
{
poutcoord[poutelem[i]][0] = ( (float)LittleShort( pinst[ptempstelem[i]].s ) + 0.5 ) / skinwidth;
poutcoord[poutelem[i]][1] = ( (float)LittleShort( pinst[ptempstelem[i]].t ) + 0.5 ) / skinheight;
}
}
//
// load the frames
//
poutframe = poutmodel->frames = Mod_Malloc( mod, poutmodel->numframes * ( sizeof( maliasframe_t ) + numverts * sizeof( maliasvertex_t ) ) );
poutvertex = poutmesh->vertexes = ( maliasvertex_t *)( ( qbyte * )poutframe + poutmodel->numframes * sizeof( maliasframe_t ) );
for( i = 0; i < poutmodel->numframes; i++, poutframe++, poutvertex += numverts )
{
pinframe = ( daliasframe_t * )( ( qbyte * )pinmodel + LittleLong( pinmodel->ofs_frames ) + i * framesize );
for( j = 0; j < 3; j++ )
{
poutframe->scale[j] = LittleFloat( pinframe->scale[j] );
poutframe->translate[j] = LittleFloat( pinframe->translate[j] );
}
for( j = 0; j < numelems; j++ )
{ // verts are all 8 bit, so no swapping needed
if( indremap[j] == j )
{
poutvertex[poutelem[j]].point[0] = (short)pinframe->verts[ptempelem[j]].v[0];
poutvertex[poutelem[j]].point[1] = (short)pinframe->verts[ptempelem[j]].v[1];
poutvertex[poutelem[j]].point[2] = (short)pinframe->verts[ptempelem[j]].v[2];
}
}
Mod_AliasCalculateVertexNormals( numelems, poutelem, numverts, poutvertex );
VectorCopy( poutframe->translate, poutframe->mins );
VectorMA( poutframe->translate, 255, poutframe->scale, poutframe->maxs );
poutframe->radius = RadiusFromBounds( poutframe->mins, poutframe->maxs );
mod->radius = max( mod->radius, poutframe->radius );
AddPointToBounds( poutframe->mins, mod->mins, mod->maxs );
AddPointToBounds( poutframe->maxs, mod->mins, mod->maxs );
}
//
// build S and T vectors for frame 0
//
Mod_AliasBuildMeshesForFrame0( mod );
// register all skins
poutskin = poutmodel->skins = Mod_Malloc( mod, poutmodel->numskins * sizeof( maliasskin_t ) );
for( i = 0; i < poutmodel->numskins; i++, poutskin++ )
{
if( LittleLong( pinmodel->ofs_skins ) == -1 )
continue;
poutskin->shader = R_RegisterSkin( ( char * )pinmodel + LittleLong( pinmodel->ofs_skins ) + i*MD2_MAX_SKINNAME );
}
}

View File

@ -1238,8 +1238,27 @@ static _inline texture_t *R_ShaderpassTex( const ref_stage_t *pass, int unit )
}
}
}
if( pass->flags & SHADERSTAGE_ANIMFREQUENCY && pass->animFrequency && pass->num_textures )
return pass->textures[(int)( pass->animFrequency * r_currentShaderTime ) % pass->num_textures];
if( pass->flags & SHADERSTAGE_ANIMFREQUENCY && pass->animFrequency[0] && pass->num_textures )
{
int frame, numframes;
if( RI.currententity )
{
if( RI.currententity->frame )
{
numframes = bound( 1, pass->num_textures - pass->anim_offset, MAX_STAGE_TEXTURES - 1 );
frame = (int)( pass->animFrequency[1] * r_currentShaderTime ) % numframes;
frame += pass->anim_offset; // bias
}
else
{
numframes = bound( 1, pass->anim_offset, MAX_STAGE_TEXTURES - 1 );
frame = (int)( pass->animFrequency[0] * r_currentShaderTime ) % numframes;
}
}
else frame = (int)( pass->animFrequency[0] * r_currentShaderTime ) % pass->num_textures;
return pass->textures[frame];
}
if( pass->flags & SHADERSTAGE_LIGHTMAP )
return tr.lightmapTextures[r_superLightStyle->lightmapNum[r_lightmapStyleNum[unit]]];
if( pass->flags & SHADERSTAGE_PORTALMAP )

View File

@ -88,6 +88,7 @@ static mshaderref_t *loadmodel_shaderrefs;
void Mod_SpriteLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer );
void Mod_StudioLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer );
void Mod_QAliasLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer );
void Mod_AliasLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer );
void Mod_BrushLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer );
@ -104,6 +105,7 @@ static modelformatdescriptor_t mod_supportedformats[] =
{
{ IDSPRITEHEADER, 0, Mod_SpriteLoadModel }, // Half-Life sprite models
{ IDSTUDIOHEADER, 0, Mod_StudioLoadModel }, // Half-Life studio models
{ IDQALIASHEADER, 0, Mod_QAliasLoadModel }, // Quake alias models
{ ALIASMODHEADER, MD3_ALIAS_MAX_LODS, Mod_AliasLoadModel }, // Quake III Arena .md3 models
{ IDBSPMODHEADER, 0, Mod_BrushLoadModel }, // Quake III Arena .bsp models
{ RBBSPMODHEADER, 0, Mod_BrushLoadModel }, // SOF2 and JK2 .bsp models

View File

@ -1251,13 +1251,31 @@ static bool Shaderpass_LoadMaterial( texture_t **normalmap, texture_t **glossmap
static bool Shaderpass_AnimFrequency( ref_shader_t *shader, ref_stage_t *pass, script_t *script )
{
if( !Com_ReadFloat( script, false, &pass->animFrequency ))
float anim_fps;
if( !Com_ReadFloat( script, false, &anim_fps ))
{
MsgDev( D_ERROR, "missing parameters for 'animFrequency' in shader '%s\n", shader->name );
return false;
}
pass->flags |= SHADERSTAGE_ANIMFREQUENCY;
if( pass->num_textures )
{
if( pass->anim_offset )
{
// someone tired specify third anim sequence
MsgDev( D_ERROR, "too many 'animFrequency' declared in shader '%s\n", shader->name );
return false;
}
pass->animFrequency[1] = anim_fps;
pass->anim_offset = pass->num_textures;
}
else
{
pass->animFrequency[0] = anim_fps;
pass->anim_offset = 0;
}
return true;
}
@ -1292,7 +1310,8 @@ static bool Shaderpass_MapExt( ref_shader_t *shader, ref_stage_t *pass, int addF
{
pass->tcgen = TCGEN_LIGHTMAP;
pass->flags = ( pass->flags & ~(SHADERSTAGE_PORTALMAP|SHADERSTAGE_DLIGHT)) | SHADERSTAGE_LIGHTMAP;
pass->animFrequency = 0;
pass->animFrequency[0] = pass->animFrequency[1] = 0.0f;
pass->anim_offset = 0;
pass->textures[0] = NULL;
return true;
}
@ -1300,7 +1319,8 @@ static bool Shaderpass_MapExt( ref_shader_t *shader, ref_stage_t *pass, int addF
{
pass->tcgen = TCGEN_BASE;
pass->flags = ( pass->flags & ~(SHADERSTAGE_LIGHTMAP|SHADERSTAGE_PORTALMAP)) | SHADERSTAGE_DLIGHT;
pass->animFrequency = 0;
pass->animFrequency[0] = pass->animFrequency[1] = 0.0f;
pass->anim_offset = 0;
pass->textures[0] = NULL;
r_shaderHasDlightPass = true;
return true;
@ -1309,7 +1329,8 @@ static bool Shaderpass_MapExt( ref_shader_t *shader, ref_stage_t *pass, int addF
{
pass->tcgen = TCGEN_PROJECTION;
pass->flags = ( pass->flags & ~(SHADERSTAGE_LIGHTMAP|SHADERSTAGE_DLIGHT)) | SHADERSTAGE_PORTALMAP;
pass->animFrequency = 0;
pass->animFrequency[0] = pass->animFrequency[1] = 0.0f;
pass->anim_offset = 0;
pass->textures[0] = NULL;
if(( shader->flags & SHADER_PORTAL ) && ( shader->sort == SORT_PORTAL ))
shader->sort = 0; // reset sorting so we can figure it out later. FIXME?
@ -1353,6 +1374,7 @@ static bool Shaderpass_MapExt( ref_shader_t *shader, ref_stage_t *pass, int addF
static bool Shaderpass_AnimMapExt( ref_shader_t *shader, ref_stage_t *pass, int addFlags, script_t *script )
{
int flags;
float anim_fps;
token_t tok;
Shader_FreePassCinematics( pass );
@ -1360,13 +1382,29 @@ static bool Shaderpass_AnimMapExt( ref_shader_t *shader, ref_stage_t *pass, int
pass->tcgen = TCGEN_BASE;
pass->flags &= ~( SHADERSTAGE_LIGHTMAP|SHADERSTAGE_DLIGHT|SHADERSTAGE_PORTALMAP );
pass->num_textures = 0;
if( !Com_ReadFloat( script, false, &pass->animFrequency ))
if( !Com_ReadFloat( script, false, &anim_fps ))
{
MsgDev( D_ERROR, "missing 'AnimFrequency' parameter for 'animMap' in shader '%s\n", shader->name );
return false;
}
if( pass->num_textures )
{
if( pass->anim_offset )
{
// someone tired specify third anim sequence
MsgDev( D_ERROR, "too many 'animFrequency' declared in shader '%s\n", shader->name );
return false;
}
pass->animFrequency[1] = anim_fps;
pass->anim_offset = pass->num_textures;
}
else
{
pass->animFrequency[0] = anim_fps;
pass->anim_offset = 0;
}
pass->flags |= (SHADERSTAGE_ANIMFREQUENCY|SHADERSTAGE_FRAMES);
while( 1 )
@ -1381,7 +1419,8 @@ static bool Shaderpass_AnimMapExt( ref_shader_t *shader, ref_stage_t *pass, int
{
MsgDev( D_WARN, "missing animation frames for 'animMap' in shader '%s'\n", shader->name );
pass->flags &= ~(SHADERSTAGE_ANIMFREQUENCY|SHADERSTAGE_FRAMES);
pass->animFrequency = 0;
pass->animFrequency[0] = pass->animFrequency[1] = 0.0f;
pass->anim_offset = 0;
}
return true;
}
@ -1487,7 +1526,8 @@ static bool Shaderpass_VideoMap( ref_shader_t *shader, ref_stage_t *pass, script
pass->tcgen = TCGEN_BASE;
pass->cinHandle = R_StartCinematics( tok.string );
pass->flags &= ~(SHADERSTAGE_LIGHTMAP|SHADERSTAGE_DLIGHT|SHADERSTAGE_PORTALMAP|SHADERSTAGE_ANIMFREQUENCY|SHADERSTAGE_FRAMES);
pass->animFrequency = 0;
pass->animFrequency[0] = pass->animFrequency[1] = 0.0f;
pass->anim_offset = 0;
return true;
}
@ -3422,7 +3462,7 @@ static ref_shader_t *Shader_CreateDefault( ref_shader_t *shader, int type, int a
{
// store group frames into one stage
pass->flags |= SHADERSTAGE_FRAMES;
pass->animFrequency = r_spriteFrequency;
pass->animFrequency[0] = r_spriteFrequency;
for( i = 0; i < r_numSpriteTextures; i++ )
{

View File

@ -299,7 +299,8 @@ typedef struct ref_stage_s
const char *program;
word program_type;
float animFrequency; // animation frames per sec
float animFrequency[2]; // anim fps / alt anim fps
word anim_offset; // offset for alternative animation
word num_textures;
texture_t *textures[MAX_STAGE_TEXTURES]; // texture refs
} ref_stage_t;

View File

@ -3,62 +3,100 @@
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: render - Win32 Release--------------------
--------------------Configuration: render - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP32DD.tmp" with contents
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394C.tmp" with contents
[
/nologo /MD /W3 /GX /O2 /I "../public" /I "../common" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"..\temp\render\!release/" /Fd"..\temp\render\!release/" /FD /c
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\render\!debug/" /Fo"..\temp\render\!debug/" /Fd"..\temp\render\!debug/" /FD /c
"D:\Xash3D\src_main\render\cin.c"
"D:\Xash3D\src_main\render\r_alias.c"
"D:\Xash3D\src_main\render\r_backend.c"
"D:\Xash3D\src_main\render\r_cull.c"
"D:\Xash3D\src_main\render\r_draw.c"
"D:\Xash3D\src_main\render\r_image.c"
"D:\Xash3D\src_main\render\r_light.c"
"D:\Xash3D\src_main\render\r_main.c"
"D:\Xash3D\src_main\render\r_math.c"
"D:\Xash3D\src_main\render\r_mesh.c"
"D:\Xash3D\src_main\render\r_model.c"
"D:\Xash3D\src_main\render\r_poly.c"
"D:\Xash3D\src_main\render\r_register.c"
"D:\Xash3D\src_main\render\r_shader.c"
"D:\Xash3D\src_main\render\r_shadow.c"
"D:\Xash3D\src_main\render\r_sky.c"
"D:\Xash3D\src_main\render\r_sprite.c"
"D:\Xash3D\src_main\render\r_studio.c"
"D:\Xash3D\src_main\render\r_surf.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP32DD.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP32DE.tmp" with contents
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394C.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394D.tmp" with contents
[
msvcrt.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /pdb:none /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\render\!release/render.dll" /implib:"..\temp\render\!release/render.lib" /libpath:"../public/libs/"
"\Xash3D\src_main\temp\render\!release\cin.obj"
"\Xash3D\src_main\temp\render\!release\r_alias.obj"
"\Xash3D\src_main\temp\render\!release\r_backend.obj"
"\Xash3D\src_main\temp\render\!release\r_bloom.obj"
"\Xash3D\src_main\temp\render\!release\r_cin.obj"
"\Xash3D\src_main\temp\render\!release\r_cull.obj"
"\Xash3D\src_main\temp\render\!release\r_draw.obj"
"\Xash3D\src_main\temp\render\!release\r_image.obj"
"\Xash3D\src_main\temp\render\!release\r_light.obj"
"\Xash3D\src_main\temp\render\!release\r_main.obj"
"\Xash3D\src_main\temp\render\!release\r_math.obj"
"\Xash3D\src_main\temp\render\!release\r_mesh.obj"
"\Xash3D\src_main\temp\render\!release\r_model.obj"
"\Xash3D\src_main\temp\render\!release\r_opengl.obj"
"\Xash3D\src_main\temp\render\!release\r_poly.obj"
"\Xash3D\src_main\temp\render\!release\r_program.obj"
"\Xash3D\src_main\temp\render\!release\r_register.obj"
"\Xash3D\src_main\temp\render\!release\r_shader.obj"
"\Xash3D\src_main\temp\render\!release\r_shadow.obj"
"\Xash3D\src_main\temp\render\!release\r_skin.obj"
"\Xash3D\src_main\temp\render\!release\r_sky.obj"
"\Xash3D\src_main\temp\render\!release\r_sprite.obj"
"\Xash3D\src_main\temp\render\!release\r_studio.obj"
"\Xash3D\src_main\temp\render\!release\r_surf.obj"
msvcrtd.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\render\!debug/render.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\render\!debug/render.dll" /implib:"..\temp\render\!debug/render.lib" /pdbtype:sept
"\Xash3D\src_main\temp\render\!debug\cin.obj"
"\Xash3D\src_main\temp\render\!debug\r_alias.obj"
"\Xash3D\src_main\temp\render\!debug\r_backend.obj"
"\Xash3D\src_main\temp\render\!debug\r_bloom.obj"
"\Xash3D\src_main\temp\render\!debug\r_cin.obj"
"\Xash3D\src_main\temp\render\!debug\r_cull.obj"
"\Xash3D\src_main\temp\render\!debug\r_draw.obj"
"\Xash3D\src_main\temp\render\!debug\r_image.obj"
"\Xash3D\src_main\temp\render\!debug\r_light.obj"
"\Xash3D\src_main\temp\render\!debug\r_main.obj"
"\Xash3D\src_main\temp\render\!debug\r_math.obj"
"\Xash3D\src_main\temp\render\!debug\r_mesh.obj"
"\Xash3D\src_main\temp\render\!debug\r_model.obj"
"\Xash3D\src_main\temp\render\!debug\r_opengl.obj"
"\Xash3D\src_main\temp\render\!debug\r_poly.obj"
"\Xash3D\src_main\temp\render\!debug\r_program.obj"
"\Xash3D\src_main\temp\render\!debug\r_register.obj"
"\Xash3D\src_main\temp\render\!debug\r_shader.obj"
"\Xash3D\src_main\temp\render\!debug\r_shadow.obj"
"\Xash3D\src_main\temp\render\!debug\r_skin.obj"
"\Xash3D\src_main\temp\render\!debug\r_sky.obj"
"\Xash3D\src_main\temp\render\!debug\r_sprite.obj"
"\Xash3D\src_main\temp\render\!debug\r_studio.obj"
"\Xash3D\src_main\temp\render\!debug\r_surf.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP32DE.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP32DF.bat" with contents
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394D.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394E.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\render\!release\render.dll "D:\Xash3D\bin\render.dll"
copy \Xash3D\src_main\temp\render\!debug\render.dll "D:\Xash3D\bin\render.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP32DF.bat"
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394E.bat"
Compiling...
cin.c
r_alias.c
r_backend.c
r_cull.c
r_draw.c
r_image.c
r_light.c
r_main.c
r_math.c
r_mesh.c
r_model.c
r_poly.c
r_register.c
r_shader.c
r_shadow.c
r_sky.c
r_sprite.c
r_studio.c
r_surf.c
Generating Code...
Linking...
Creating library ..\temp\render\!release/render.lib and object ..\temp\render\!release/render.exp
Creating library ..\temp\render\!debug/render.lib and object ..\temp\render\!debug/render.exp
r_model.obj : error LNK2001: unresolved external symbol _Mod_QAliasLoadModel
..\temp\render\!debug/render.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\render\!release\render.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.
<h3>Results</h3>
render.dll - 0 error(s), 0 warning(s)
render.dll - 2 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

@ -1058,8 +1058,10 @@ void UpdateEntityState( entity_state_t *to, edict_t *from, int baseline )
to->origin += midPoint;
}
}
else if( to->ed_type == ED_MOVER )
else if( to->ed_type == ED_MOVER || to->ed_type == ED_BSPBRUSH || to->ed_type == ED_PORTAL )
{
to->skin = pNet->pev->movedir.DirToBits();
// FIXME: send mins\maxs for sound spatialization and entity prediction ?
}
}

16
server/server.plg Normal file
View File

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

View File

@ -130,4 +130,4 @@ Beta 13.12.08
106. implement q3map2 into xtools.dll OK
107. implement shader sorting for rendermodes OK
108. prepare QuArK to Xash-ready OK
109.
109. implement q1 models instead of q3 models

49
vprogs/vprogs.plg Normal file
View File

@ -0,0 +1,49 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: vprogs - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3953.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\vprogs\!debug/" /Fo"..\temp\vprogs\!debug/" /Fd"..\temp\vprogs\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\vprogs\pr_exec.c"
"D:\Xash3D\src_main\vprogs\pr_lex.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3953.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3954.tmp" with contents
[
msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\vprogs\!debug/vprogs.pdb" /debug /machine:I386 /out:"..\temp\vprogs\!debug/vprogs.dll" /implib:"..\temp\vprogs\!debug/vprogs.lib" /pdbtype:sept
"\Xash3D\src_main\temp\vprogs\!debug\pr_comp.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_edict.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_exec.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_lex.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_main.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_utils.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3954.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3955.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\vprogs\!debug\vprogs.dll "D:\Xash3D\bin\vprogs.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3955.bat"
Compiling...
pr_exec.c
pr_lex.c
Generating Code...
Linking...
Creating library ..\temp\vprogs\!debug/vprogs.lib and object ..\temp\vprogs\!debug/vprogs.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\vprogs\!debug\vprogs.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.
<h3>Results</h3>
vprogs.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

53
vsound/vsound.plg Normal file
View File

@ -0,0 +1,53 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: vsound - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395A.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\vsound\!debug/" /Fo"..\temp\vsound\!debug/" /Fd"..\temp\vsound\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\vsound\s_export.c"
"D:\Xash3D\src_main\vsound\s_load.c"
"D:\Xash3D\src_main\vsound\s_main.c"
"D:\Xash3D\src_main\vsound\s_openal.c"
"D:\Xash3D\src_main\vsound\s_stream.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395A.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395B.tmp" with contents
[
libogg.lib vorbis.lib /nologo /dll /incremental:yes /pdb:"..\temp\vsound\!debug/vsound.pdb" /debug /machine:I386 /nodefaultlib:"libcmt.lib" /out:"..\temp\vsound\!debug/vsound.dll" /implib:"..\temp\vsound\!debug/vsound.lib" /pdbtype:sept
"\Xash3D\src_main\temp\vsound\!debug\s_export.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_load.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_main.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_openal.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_stream.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395B.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395C.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\vsound\!debug\vsound.dll "D:\Xash3D\bin\vsound.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395C.bat"
Compiling...
s_export.c
s_load.c
s_main.c
s_openal.c
s_stream.c
Generating Code...
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\vsound\!debug\vsound.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.
<h3>Results</h3>
vsound.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

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