24 Mar 2018
This commit is contained in:
parent
a102a22a55
commit
338f9da2a2
|
@ -1025,7 +1025,6 @@ int AddToFullPack( struct entity_state_s *state, int e, edict_t *ent, edict_t *h
|
|||
// Don't send entity to local client if the client says it's predicting the entity itself.
|
||||
if ( ent->v.flags & FL_SKIPLOCALHOST )
|
||||
{
|
||||
if ( hostflags & 4 ) return 0; // it's a portal pass
|
||||
if ( ( hostflags & 1 ) && ( ent->v.owner == host ) )
|
||||
return 0;
|
||||
}
|
||||
|
|
325
dlls/hl.plg
325
dlls/hl.plg
|
@ -3,9 +3,332 @@
|
|||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: hl - Win32 Release--------------------
|
||||
--------------------Configuration: hl - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPF.tmp" with contents
|
||||
[
|
||||
/nologo /G5 /MTd /W3 /Gm /ZI /Od /I "..\dlls" /I "..\engine" /I "..\common" /I "..\game_shared" /I "..\pm_shared" /I "..\\" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "QUIVER" /D "VOXEL" /D "QUAKE2" /D "VALVE_DLL" /D "CLIENT_WEAPONS" /FR"..\temp\dlls\!debug/" /Fp"..\temp\dlls\!debug/hl.pch" /YX /Fo"..\temp\dlls\!debug/" /Fd"..\temp\dlls\!debug/" /FD /c
|
||||
"D:\Xash3D\src_main\dlls\aflock.cpp"
|
||||
"D:\Xash3D\src_main\dlls\agrunt.cpp"
|
||||
"D:\Xash3D\src_main\dlls\airtank.cpp"
|
||||
"D:\Xash3D\src_main\dlls\animating.cpp"
|
||||
"D:\Xash3D\src_main\dlls\animation.cpp"
|
||||
"D:\Xash3D\src_main\dlls\apache.cpp"
|
||||
"D:\Xash3D\src_main\dlls\barnacle.cpp"
|
||||
"D:\Xash3D\src_main\dlls\barney.cpp"
|
||||
"D:\Xash3D\src_main\dlls\bigmomma.cpp"
|
||||
"D:\Xash3D\src_main\dlls\bloater.cpp"
|
||||
"D:\Xash3D\src_main\dlls\bmodels.cpp"
|
||||
"D:\Xash3D\src_main\dlls\bullsquid.cpp"
|
||||
"D:\Xash3D\src_main\dlls\buttons.cpp"
|
||||
"D:\Xash3D\src_main\dlls\cbase.cpp"
|
||||
"D:\Xash3D\src_main\dlls\client.cpp"
|
||||
"D:\Xash3D\src_main\dlls\combat.cpp"
|
||||
"D:\Xash3D\src_main\dlls\controller.cpp"
|
||||
"D:\Xash3D\src_main\dlls\crossbow.cpp"
|
||||
"D:\Xash3D\src_main\dlls\crowbar.cpp"
|
||||
"D:\Xash3D\src_main\dlls\defaultai.cpp"
|
||||
"D:\Xash3D\src_main\dlls\doors.cpp"
|
||||
"D:\Xash3D\src_main\dlls\effects.cpp"
|
||||
"D:\Xash3D\src_main\dlls\egon.cpp"
|
||||
"D:\Xash3D\src_main\dlls\explode.cpp"
|
||||
"D:\Xash3D\src_main\dlls\flyingmonster.cpp"
|
||||
"D:\Xash3D\src_main\dlls\func_break.cpp"
|
||||
"D:\Xash3D\src_main\dlls\func_tank.cpp"
|
||||
"D:\Xash3D\src_main\dlls\game.cpp"
|
||||
"D:\Xash3D\src_main\dlls\gamerules.cpp"
|
||||
"D:\Xash3D\src_main\dlls\gargantua.cpp"
|
||||
"D:\Xash3D\src_main\dlls\gauss.cpp"
|
||||
"D:\Xash3D\src_main\dlls\genericmonster.cpp"
|
||||
"D:\Xash3D\src_main\dlls\ggrenade.cpp"
|
||||
"D:\Xash3D\src_main\dlls\globals.cpp"
|
||||
"D:\Xash3D\src_main\dlls\glock.cpp"
|
||||
"D:\Xash3D\src_main\dlls\gman.cpp"
|
||||
"D:\Xash3D\src_main\dlls\h_ai.cpp"
|
||||
"D:\Xash3D\src_main\dlls\h_battery.cpp"
|
||||
"D:\Xash3D\src_main\dlls\h_cine.cpp"
|
||||
"D:\Xash3D\src_main\dlls\h_cycler.cpp"
|
||||
"D:\Xash3D\src_main\dlls\h_export.cpp"
|
||||
"D:\Xash3D\src_main\dlls\handgrenade.cpp"
|
||||
"D:\Xash3D\src_main\dlls\hassassin.cpp"
|
||||
"D:\Xash3D\src_main\dlls\headcrab.cpp"
|
||||
"D:\Xash3D\src_main\dlls\healthkit.cpp"
|
||||
"D:\Xash3D\src_main\dlls\hgrunt.cpp"
|
||||
"D:\Xash3D\src_main\dlls\hornet.cpp"
|
||||
"D:\Xash3D\src_main\dlls\hornetgun.cpp"
|
||||
"D:\Xash3D\src_main\dlls\houndeye.cpp"
|
||||
"D:\Xash3D\src_main\dlls\ichthyosaur.cpp"
|
||||
"D:\Xash3D\src_main\dlls\islave.cpp"
|
||||
"D:\Xash3D\src_main\dlls\items.cpp"
|
||||
"D:\Xash3D\src_main\dlls\leech.cpp"
|
||||
"D:\Xash3D\src_main\dlls\lights.cpp"
|
||||
"D:\Xash3D\src_main\dlls\maprules.cpp"
|
||||
"D:\Xash3D\src_main\dlls\monstermaker.cpp"
|
||||
"D:\Xash3D\src_main\dlls\monsters.cpp"
|
||||
"D:\Xash3D\src_main\dlls\monsterstate.cpp"
|
||||
"D:\Xash3D\src_main\dlls\mortar.cpp"
|
||||
"D:\Xash3D\src_main\dlls\mp5.cpp"
|
||||
"D:\Xash3D\src_main\dlls\multiplay_gamerules.cpp"
|
||||
"D:\Xash3D\src_main\dlls\nihilanth.cpp"
|
||||
"D:\Xash3D\src_main\dlls\nodes.cpp"
|
||||
"D:\Xash3D\src_main\dlls\osprey.cpp"
|
||||
"D:\Xash3D\src_main\dlls\pathcorner.cpp"
|
||||
"D:\Xash3D\src_main\dlls\plane.cpp"
|
||||
"D:\Xash3D\src_main\dlls\plats.cpp"
|
||||
"D:\Xash3D\src_main\dlls\player.cpp"
|
||||
"D:\Xash3D\src_main\pm_shared\pm_debug.c"
|
||||
"D:\Xash3D\src_main\pm_shared\pm_math.c"
|
||||
"D:\Xash3D\src_main\pm_shared\pm_shared.c"
|
||||
"D:\Xash3D\src_main\dlls\python.cpp"
|
||||
"D:\Xash3D\src_main\dlls\rat.cpp"
|
||||
"D:\Xash3D\src_main\dlls\roach.cpp"
|
||||
"D:\Xash3D\src_main\dlls\rpg.cpp"
|
||||
"D:\Xash3D\src_main\dlls\satchel.cpp"
|
||||
"D:\Xash3D\src_main\dlls\schedule.cpp"
|
||||
"D:\Xash3D\src_main\dlls\scientist.cpp"
|
||||
"D:\Xash3D\src_main\dlls\scripted.cpp"
|
||||
"D:\Xash3D\src_main\dlls\shotgun.cpp"
|
||||
"D:\Xash3D\src_main\dlls\singleplay_gamerules.cpp"
|
||||
"D:\Xash3D\src_main\dlls\skill.cpp"
|
||||
"D:\Xash3D\src_main\dlls\sound.cpp"
|
||||
"D:\Xash3D\src_main\dlls\soundent.cpp"
|
||||
"D:\Xash3D\src_main\dlls\spectator.cpp"
|
||||
"D:\Xash3D\src_main\dlls\squadmonster.cpp"
|
||||
"D:\Xash3D\src_main\dlls\squeakgrenade.cpp"
|
||||
"D:\Xash3D\src_main\dlls\subs.cpp"
|
||||
"D:\Xash3D\src_main\dlls\talkmonster.cpp"
|
||||
"D:\Xash3D\src_main\dlls\teamplay_gamerules.cpp"
|
||||
"D:\Xash3D\src_main\dlls\tentacle.cpp"
|
||||
"D:\Xash3D\src_main\dlls\triggers.cpp"
|
||||
"D:\Xash3D\src_main\dlls\tripmine.cpp"
|
||||
"D:\Xash3D\src_main\dlls\turret.cpp"
|
||||
"D:\Xash3D\src_main\dlls\util.cpp"
|
||||
"D:\Xash3D\src_main\game_shared\voice_gamemgr.cpp"
|
||||
"D:\Xash3D\src_main\dlls\weapons.cpp"
|
||||
"D:\Xash3D\src_main\dlls\world.cpp"
|
||||
"D:\Xash3D\src_main\dlls\xen.cpp"
|
||||
"D:\Xash3D\src_main\dlls\zombie.cpp"
|
||||
]
|
||||
Creating command line "cl.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSPF.tmp""
|
||||
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP10.tmp" with contents
|
||||
[
|
||||
user32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\dlls\!debug/hl.pdb" /debug /machine:I386 /def:".\hl.def" /out:"..\temp\dlls\!debug/hl.dll" /implib:"..\temp\dlls\!debug/hl.lib"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\aflock.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\agrunt.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\airtank.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\animating.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\animation.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\apache.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\barnacle.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\barney.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\bigmomma.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\bloater.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\bmodels.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\bullsquid.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\buttons.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\cbase.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\client.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\combat.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\controller.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\crossbow.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\crowbar.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\defaultai.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\doors.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\effects.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\egon.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\explode.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\flyingmonster.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\func_break.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\func_tank.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\game.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\gamerules.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\gargantua.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\gauss.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\genericmonster.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\ggrenade.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\globals.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\glock.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\gman.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\h_ai.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\h_battery.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\h_cine.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\h_cycler.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\h_export.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\handgrenade.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\hassassin.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\headcrab.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\healthkit.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\hgrunt.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\hornet.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\hornetgun.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\houndeye.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\ichthyosaur.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\islave.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\items.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\leech.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\lights.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\maprules.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\monstermaker.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\monsters.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\monsterstate.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\mortar.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\mp5.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\multiplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\nihilanth.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\nodes.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\osprey.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\pathcorner.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\plane.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\plats.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\player.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\pm_debug.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\pm_math.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\pm_shared.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\python.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\rat.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\roach.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\rpg.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\satchel.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\schedule.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\scientist.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\scripted.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\shotgun.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\singleplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\skill.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\sound.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\soundent.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\spectator.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\squadmonster.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\squeakgrenade.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\subs.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\talkmonster.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\teamplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\tempmonster.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\tentacle.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\triggers.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\tripmine.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\turret.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\util.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\voice_gamemgr.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\weapons.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\world.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\xen.obj"
|
||||
"\Xash3D\src_main\temp\dlls\!debug\zombie.obj"
|
||||
]
|
||||
Creating command line "link.exe @"C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP10.tmp""
|
||||
Creating temporary file "C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP11.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\dlls\!debug\hl.dll "D:\Xash3D\valve\dlls\hl.dll"
|
||||
]
|
||||
Creating command line ""C:\DOCUME~1\ÌÈØÀ\LOCALS~1\Temp\RSP11.bat""
|
||||
Compiling...
|
||||
aflock.cpp
|
||||
agrunt.cpp
|
||||
airtank.cpp
|
||||
animating.cpp
|
||||
client.cpp
|
||||
crossbow.cpp
|
||||
game.cpp
|
||||
player.cpp
|
||||
pm_debug.c
|
||||
pm_math.c
|
||||
pm_shared.c
|
||||
rpg.cpp
|
||||
animation.cpp
|
||||
apache.cpp
|
||||
barnacle.cpp
|
||||
barney.cpp
|
||||
bigmomma.cpp
|
||||
bloater.cpp
|
||||
bmodels.cpp
|
||||
bullsquid.cpp
|
||||
buttons.cpp
|
||||
cbase.cpp
|
||||
combat.cpp
|
||||
controller.cpp
|
||||
crowbar.cpp
|
||||
defaultai.cpp
|
||||
doors.cpp
|
||||
effects.cpp
|
||||
egon.cpp
|
||||
explode.cpp
|
||||
flyingmonster.cpp
|
||||
func_break.cpp
|
||||
func_tank.cpp
|
||||
gamerules.cpp
|
||||
gargantua.cpp
|
||||
gauss.cpp
|
||||
genericmonster.cpp
|
||||
ggrenade.cpp
|
||||
globals.cpp
|
||||
glock.cpp
|
||||
gman.cpp
|
||||
h_ai.cpp
|
||||
h_battery.cpp
|
||||
h_cine.cpp
|
||||
h_cycler.cpp
|
||||
h_export.cpp
|
||||
handgrenade.cpp
|
||||
hassassin.cpp
|
||||
headcrab.cpp
|
||||
healthkit.cpp
|
||||
hgrunt.cpp
|
||||
hornet.cpp
|
||||
hornetgun.cpp
|
||||
houndeye.cpp
|
||||
ichthyosaur.cpp
|
||||
islave.cpp
|
||||
items.cpp
|
||||
leech.cpp
|
||||
lights.cpp
|
||||
maprules.cpp
|
||||
monstermaker.cpp
|
||||
monsters.cpp
|
||||
monsterstate.cpp
|
||||
mortar.cpp
|
||||
mp5.cpp
|
||||
multiplay_gamerules.cpp
|
||||
nihilanth.cpp
|
||||
nodes.cpp
|
||||
osprey.cpp
|
||||
pathcorner.cpp
|
||||
plane.cpp
|
||||
plats.cpp
|
||||
python.cpp
|
||||
rat.cpp
|
||||
roach.cpp
|
||||
satchel.cpp
|
||||
schedule.cpp
|
||||
scientist.cpp
|
||||
scripted.cpp
|
||||
shotgun.cpp
|
||||
singleplay_gamerules.cpp
|
||||
skill.cpp
|
||||
sound.cpp
|
||||
soundent.cpp
|
||||
spectator.cpp
|
||||
squadmonster.cpp
|
||||
squeakgrenade.cpp
|
||||
subs.cpp
|
||||
talkmonster.cpp
|
||||
teamplay_gamerules.cpp
|
||||
tentacle.cpp
|
||||
triggers.cpp
|
||||
tripmine.cpp
|
||||
turret.cpp
|
||||
util.cpp
|
||||
voice_gamemgr.cpp
|
||||
weapons.cpp
|
||||
world.cpp
|
||||
xen.cpp
|
||||
zombie.cpp
|
||||
Linking...
|
||||
Creating library ..\temp\dlls\!debug/hl.lib and object ..\temp\dlls\!debug/hl.exp
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\dlls\!debug\hl.dll
|
||||
‘ª®¯¨à®¢ ® ä ©«®¢: 1.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -381,7 +381,7 @@ void CL_SaveShot_f( void )
|
|||
return;
|
||||
}
|
||||
|
||||
Q_sprintf( cls.shotname, "save/%s.bmp", Cmd_Argv( 1 ));
|
||||
Q_sprintf( cls.shotname, "%s%s.bmp", DEFAULT_SAVE_DIRECTORY, Cmd_Argv( 1 ));
|
||||
cls.scrshot_action = scrshot_savegame; // build new frame for saveshot
|
||||
}
|
||||
|
||||
|
|
|
@ -1011,10 +1011,10 @@ void CL_StopPlayback( void )
|
|||
|
||||
/*
|
||||
==================
|
||||
CL_GetComment
|
||||
CL_GetDemoComment
|
||||
==================
|
||||
*/
|
||||
qboolean CL_GetComment( const char *demoname, char *comment )
|
||||
qboolean CL_GetDemoComment( const char *demoname, char *comment )
|
||||
{
|
||||
file_t *demfile;
|
||||
demoheader_t demohdr;
|
||||
|
|
|
@ -1272,7 +1272,11 @@ qboolean CL_GetEntitySpatialization( channel_t *ch )
|
|||
cl_entity_t *ent;
|
||||
qboolean valid_origin;
|
||||
|
||||
if( ch->entnum == 0 ) return true; // static sound
|
||||
if( ch->entnum == 0 )
|
||||
{
|
||||
ch->staticsound = true;
|
||||
return true; // static sound
|
||||
}
|
||||
|
||||
if(( ch->entnum - 1 ) == cl.playernum )
|
||||
{
|
||||
|
@ -1284,15 +1288,9 @@ qboolean CL_GetEntitySpatialization( channel_t *ch )
|
|||
ent = CL_GetEntityByIndex( ch->entnum );
|
||||
|
||||
// entity is not present on the client but has valid origin
|
||||
if( !ent || !ent->index ) return valid_origin;
|
||||
|
||||
if( ent->curstate.messagenum == 0 )
|
||||
{
|
||||
// entity is never has updates on the client
|
||||
// so we should use static origin instead
|
||||
ch->staticsound = true;
|
||||
if( !ent || !ent->index || ent->curstate.messagenum == 0 )
|
||||
return valid_origin;
|
||||
}
|
||||
|
||||
#if 0
|
||||
// uncomment this if you want enable additional check by PVS
|
||||
if( ent->curstate.messagenum != cl.parsecount )
|
||||
|
|
|
@ -969,8 +969,8 @@ static ui_enginefuncs_t gEngfuncs =
|
|||
pfnGetGameInfo,
|
||||
pfnGetGamesList,
|
||||
pfnGetFilesList,
|
||||
SV_GetComment,
|
||||
CL_GetComment,
|
||||
SV_GetSaveComment,
|
||||
CL_GetDemoComment,
|
||||
pfnCheckGameDll,
|
||||
pfnGetClipboardData,
|
||||
Sys_ShellExecute,
|
||||
|
|
|
@ -509,8 +509,8 @@ void CL_ParseStaticEntity( sizebuf_t *msg )
|
|||
memset( &state, 0, sizeof( state ));
|
||||
|
||||
state.modelindex = MSG_ReadShort( msg );
|
||||
state.sequence = MSG_ReadByte( msg );
|
||||
state.frame = MSG_ReadByte( msg );
|
||||
state.sequence = MSG_ReadWord( msg );
|
||||
state.frame = MSG_ReadWord( msg ) * (1.0f / 128.0f);
|
||||
state.colormap = MSG_ReadWord( msg );
|
||||
state.skin = MSG_ReadByte( msg );
|
||||
state.body = MSG_ReadByte( msg );
|
||||
|
|
|
@ -624,7 +624,7 @@ void R_DecalSurface( msurface_t *surf, decalinfo_t *decalinfo )
|
|||
float s, t, w, h;
|
||||
|
||||
// we in restore mode
|
||||
if( cls.state == ca_connected )
|
||||
if( cls.state == ca_connected || cls.state == ca_validate )
|
||||
{
|
||||
// NOTE: we may have the decal on this surface that come from another level.
|
||||
// check duplicate with same position and texture
|
||||
|
@ -790,7 +790,9 @@ void R_DecalShoot( int textureIndex, int entityIndex, int modelIndex, vec3_t pos
|
|||
decalInfo.m_pModel = model;
|
||||
hull = &model->hulls[0]; // always use #0 hull
|
||||
|
||||
if( ent && !( flags & FDECAL_LOCAL_SPACE ))
|
||||
// NOTE: all the decals at 'first shoot' placed into local space of parent entity
|
||||
// and won't transform again on a next restore, levelchange etc
|
||||
if( ent && !FBitSet( flags, FDECAL_LOCAL_SPACE ))
|
||||
{
|
||||
vec3_t pos_l;
|
||||
|
||||
|
@ -808,19 +810,19 @@ void R_DecalShoot( int textureIndex, int entityIndex, int modelIndex, vec3_t pos
|
|||
}
|
||||
|
||||
VectorCopy( pos_l, decalInfo.m_Position );
|
||||
flags |= FDECAL_LOCAL_SPACE; // decal position moved into local space
|
||||
// decal position moved into local space
|
||||
SetBits( flags, FDECAL_LOCAL_SPACE );
|
||||
}
|
||||
else
|
||||
{
|
||||
// pass position in global
|
||||
// already in local space
|
||||
VectorCopy( pos, decalInfo.m_Position );
|
||||
}
|
||||
|
||||
// this decal must use landmark for correct transition
|
||||
if(!( model->flags & MODEL_HAS_ORIGIN ))
|
||||
{
|
||||
flags |= FDECAL_USE_LANDMARK;
|
||||
}
|
||||
// because their model exist only in world-space
|
||||
if( !FBitSet( model->flags, MODEL_HAS_ORIGIN ))
|
||||
SetBits( flags, FDECAL_USE_LANDMARK );
|
||||
|
||||
// more state used by R_DecalNode()
|
||||
decalInfo.m_iTexture = textureIndex;
|
||||
|
@ -1173,7 +1175,7 @@ int R_CreateDecalList( decallist_t *pList )
|
|||
decal_t *pdecals;
|
||||
|
||||
// decal is in use and is not a custom decal
|
||||
if( decal->psurface == NULL || ( decal->flags & FDECAL_DONTSAVE ))
|
||||
if( decal->psurface == NULL || FBitSet( decal->flags, FDECAL_DONTSAVE ))
|
||||
continue;
|
||||
|
||||
// compute depth
|
||||
|
|
|
@ -311,16 +311,6 @@ void R_AddSkyBoxSurface( msurface_t *fa )
|
|||
float *v;
|
||||
int i;
|
||||
|
||||
if( clgame.movevars.skyangle )
|
||||
{
|
||||
// force full sky to draw when it has angle
|
||||
for( i = 0; i < 6; i++ )
|
||||
{
|
||||
RI.skyMins[0][i] = RI.skyMins[1][i] = -1.0f;
|
||||
RI.skyMaxs[0][i] = RI.skyMaxs[1][i] = 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
if( FBitSet( world.flags, FWORLD_SKYSPHERE ) && fa->polys && !FBitSet( world.flags, FWORLD_CUSTOM_SKYBOX ))
|
||||
{
|
||||
glpoly_t *p = fa->polys;
|
||||
|
@ -377,18 +367,6 @@ void R_DrawSkyBox( void )
|
|||
{
|
||||
int i;
|
||||
|
||||
if( clgame.movevars.skyangle )
|
||||
{
|
||||
// check for no sky at all
|
||||
for( i = 0; i < 6; i++ )
|
||||
{
|
||||
if( RI.skyMins[0][i] < RI.skyMaxs[0][i] && RI.skyMins[1][i] < RI.skyMaxs[1][i] )
|
||||
break;
|
||||
}
|
||||
|
||||
if( i == 6 ) return; // nothing visible
|
||||
}
|
||||
|
||||
RI.isSkyVisible = true;
|
||||
|
||||
// don't fogging skybox (this fix old Half-Life bug)
|
||||
|
@ -398,16 +376,6 @@ void R_DrawSkyBox( void )
|
|||
pglDisable( GL_ALPHA_TEST );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
||||
|
||||
if( clgame.movevars.skyangle && !VectorIsNull( (float *)&clgame.movevars.skydir_x ))
|
||||
{
|
||||
matrix4x4 m;
|
||||
Matrix4x4_CreateRotate( m, clgame.movevars.skyangle, clgame.movevars.skydir_x, clgame.movevars.skydir_y, clgame.movevars.skydir_z );
|
||||
Matrix4x4_ConcatTranslate( m, -RI.vieworg[0], -RI.vieworg[1], -RI.vieworg[2] );
|
||||
Matrix4x4_ConcatTransforms( RI.modelviewMatrix, RI.worldviewMatrix, m );
|
||||
GL_LoadMatrix( RI.modelviewMatrix );
|
||||
tr.modelviewIdentity = false;
|
||||
}
|
||||
|
||||
for( i = 0; i < 6; i++ )
|
||||
{
|
||||
if( RI.skyMins[0][i] >= RI.skyMaxs[0][i] || RI.skyMins[1][i] >= RI.skyMaxs[1][i] )
|
||||
|
@ -437,11 +405,11 @@ R_SetupSky
|
|||
*/
|
||||
void R_SetupSky( const char *skyboxname )
|
||||
{
|
||||
string loadname;
|
||||
string sidename;
|
||||
int i = 0, result;
|
||||
char loadname[MAX_QPATH];
|
||||
char sidename[MAX_QPATH];
|
||||
int i, result;
|
||||
|
||||
if( !skyboxname || !*skyboxname )
|
||||
if( !COM_CheckString( skyboxname ))
|
||||
{
|
||||
R_UnloadSkybox();
|
||||
return; // clear old skybox
|
||||
|
@ -456,9 +424,9 @@ void R_SetupSky( const char *skyboxname )
|
|||
result = CheckSkybox( loadname );
|
||||
|
||||
// to prevent infinite recursion if default skybox was missed
|
||||
if( result == SKYBOX_MISSED && Q_stricmp( loadname, "gfx/env/desert" ))
|
||||
if( result == SKYBOX_MISSED && Q_stricmp( loadname, DEFAULT_SKYBOX_PATH ))
|
||||
{
|
||||
MsgDev( D_ERROR, "missed or incomplete skybox '%s'\n", skyboxname );
|
||||
Con_Reportf( S_WARN "missed or incomplete skybox '%s'\n", skyboxname );
|
||||
R_SetupSky( "desert" ); // force to default
|
||||
return;
|
||||
}
|
||||
|
@ -485,7 +453,7 @@ void R_SetupSky( const char *skyboxname )
|
|||
return; // loaded
|
||||
}
|
||||
|
||||
MsgDev( D_ERROR, "couldn't load skybox '%s'\n", skyboxname );
|
||||
Con_DPrintf( "^2failed\n" );
|
||||
R_UnloadSkybox();
|
||||
}
|
||||
|
||||
|
|
|
@ -1026,14 +1026,13 @@ void S_RestoreSound( const vec3_t pos, int ent, int chan, sound_t handle, float
|
|||
}
|
||||
|
||||
// pick a channel to play on
|
||||
if( chan == CHAN_STATIC )
|
||||
target_chan = SND_PickStaticChannel( pos, sfx );
|
||||
if( chan == CHAN_STATIC ) target_chan = SND_PickStaticChannel( pos, sfx );
|
||||
else target_chan = SND_PickDynamicChannel( ent, chan, sfx, &bIgnore );
|
||||
|
||||
if( !target_chan )
|
||||
{
|
||||
if( !bIgnore )
|
||||
Con_DPrintf( S_ERROR "S_RestoreSound: dropped sound \"%s%s\"\n", DEFAULT_SOUNDPATH, sfx->name );
|
||||
Con_DPrintf( S_ERROR "dropped sound \"%s%s\"\n", DEFAULT_SOUNDPATH, sfx->name );
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1070,8 +1069,6 @@ void S_RestoreSound( const vec3_t pos, int ent, int chan, sound_t handle, float
|
|||
// prepended with a '!'. Sentence names stored in the
|
||||
// sentence file do not have a leading '!'.
|
||||
VOX_LoadSound( target_chan, S_SkipSoundChar( sfx->name ));
|
||||
|
||||
// save the sentencename for future save\restores
|
||||
Q_strncpy( target_chan->name, sfx->name, sizeof( target_chan->name ));
|
||||
|
||||
// not a first word in sentence!
|
||||
|
|
|
@ -1107,7 +1107,7 @@ void Cmd_Unlink( int group )
|
|||
count++;
|
||||
}
|
||||
|
||||
Con_DPrintf( "unlink %i commands\n", count );
|
||||
Con_Reportf( "unlink %i commands\n", count );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -44,6 +44,12 @@ GNU General Public License for more details.
|
|||
// path to folders where placed all sounds
|
||||
#define DEFAULT_SOUNDPATH "sound/"
|
||||
|
||||
// path store saved games
|
||||
#define DEFAULT_SAVE_DIRECTORY "save/"
|
||||
|
||||
// fallback to this skybox
|
||||
#define DEFAULT_SKYBOX_PATH "gfx/env/desert"
|
||||
|
||||
// playlist for startup videos
|
||||
#define DEFAULT_VIDEOLIST_PATH "media/StartupVids.txt"
|
||||
|
||||
|
|
|
@ -865,7 +865,7 @@ qboolean CL_DisableVisibility( void );
|
|||
int CL_PointContents( const vec3_t point );
|
||||
char *COM_ParseFile( char *data, char *token );
|
||||
byte *COM_LoadFile( const char *filename, int usehunk, int *pLength );
|
||||
qboolean CL_GetComment( const char *demoname, char *comment );
|
||||
qboolean CL_GetDemoComment( const char *demoname, char *comment );
|
||||
void COM_AddAppDirectoryToSearchPath( const char *pszBaseDir, const char *appName );
|
||||
int COM_ExpandFilename( const char *fileName, char *nameOutBuffer, int nameOutBufferSize );
|
||||
struct pmtrace_s *PM_TraceLine( float *start, float *end, int flags, int usehull, int ignore_pe );
|
||||
|
@ -901,7 +901,7 @@ qboolean CL_IsBackgroundDemo( void );
|
|||
qboolean CL_IsBackgroundMap( void );
|
||||
qboolean SV_Initialized( void );
|
||||
qboolean CL_LoadProgs( const char *name );
|
||||
qboolean SV_GetComment( const char *savename, char *comment );
|
||||
qboolean SV_GetSaveComment( const char *savename, char *comment );
|
||||
qboolean SV_NewGame( const char *mapName, qboolean loadGame );
|
||||
void SV_ClipPMoveToEntity( struct physent_s *pe, const vec3_t start, vec3_t mins, vec3_t maxs, const vec3_t end, struct pmtrace_s *tr );
|
||||
void CL_ClipPMoveToEntity( struct physent_s *pe, const vec3_t start, vec3_t mins, vec3_t maxs, const vec3_t end, struct pmtrace_s *tr );
|
||||
|
@ -911,7 +911,6 @@ void SV_ShutdownGame( void );
|
|||
void SV_ExecLoadLevel( void );
|
||||
void SV_ExecLoadGame( void );
|
||||
void SV_ExecChangeLevel( void );
|
||||
void SV_ClearSaveDir( void );
|
||||
void SV_InitGameProgs( void );
|
||||
void SV_FreeGameProgs( void );
|
||||
void CL_WriteMessageHistory( void );
|
||||
|
|
|
@ -332,7 +332,7 @@ qboolean Cmd_GetSavesList( const char *s, char *completedname, int length )
|
|||
string matchbuf;
|
||||
int i, numsaves;
|
||||
|
||||
t = FS_Search( va( "save/%s*.sav", s ), true, true ); // lookup only in gamedir
|
||||
t = FS_Search( va( "%s%s*.sav", DEFAULT_SAVE_DIRECTORY, s ), true, true ); // lookup only in gamedir
|
||||
if( !t ) return false;
|
||||
|
||||
COM_FileBase( t->filenames[0], matchbuf );
|
||||
|
|
|
@ -866,7 +866,7 @@ void Cvar_Unlink( int group )
|
|||
return;
|
||||
|
||||
count = Cvar_UnlinkVar( NULL, group );
|
||||
Con_DPrintf( "unlink %i cvars\n", count );
|
||||
Con_Reportf( "unlink %i cvars\n", count );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -268,11 +268,11 @@ qboolean Image_LoadLMP( const char *name, const byte *buffer, size_t filesize )
|
|||
return false;
|
||||
}
|
||||
|
||||
// greatest hack from valve software (particle palette)
|
||||
// valve software trick (particle palette)
|
||||
if( Q_stristr( name, "palette.lmp" ))
|
||||
return Image_LoadPAL( name, buffer, filesize );
|
||||
|
||||
// greatest hack from id software (image without header)
|
||||
// id software trick (image without header)
|
||||
if( image.hint != IL_HINT_HL && Q_stristr( name, "conchars" ))
|
||||
{
|
||||
image.width = image.height = 128;
|
||||
|
|
|
@ -136,7 +136,7 @@ typedef struct
|
|||
|
||||
typedef struct dll_user_s
|
||||
{
|
||||
void *hInstance; // to avoid possible hacks
|
||||
void *hInstance; // instance handle
|
||||
qboolean custom_loader; // a bit who indicated loader type
|
||||
qboolean encrypted; // dll is crypted (some client.dll in HL, CS etc)
|
||||
char dllName[32]; // for debug messages
|
||||
|
|
|
@ -81,10 +81,6 @@ static const delta_field_t pm_fields[] =
|
|||
{ PHYS_DEF( skyvec_z ) },
|
||||
{ PHYS_DEF( fog_settings ) },
|
||||
{ PHYS_DEF( wateralpha ) },
|
||||
{ PHYS_DEF( skydir_x ) },
|
||||
{ PHYS_DEF( skydir_y ) },
|
||||
{ PHYS_DEF( skydir_z ) },
|
||||
{ PHYS_DEF( skyangle ) },
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
|
@ -823,10 +819,6 @@ void Delta_Init( void )
|
|||
Delta_AddField( "movevars_t", "skyvec_x", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f ); // 0 - 1
|
||||
Delta_AddField( "movevars_t", "skyvec_y", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f );
|
||||
Delta_AddField( "movevars_t", "skyvec_z", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f );
|
||||
Delta_AddField( "movevars_t", "skydir_x", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f ); // 0 - 1
|
||||
Delta_AddField( "movevars_t", "skydir_y", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f );
|
||||
Delta_AddField( "movevars_t", "skydir_z", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f );
|
||||
Delta_AddField( "movevars_t", "skyangle", DT_ANGLE, 16, 1.0f, 1.0f ); // 0 - 360
|
||||
Delta_AddField( "movevars_t", "wateralpha", DT_FLOAT|DT_SIGNED, 16, 32.0f, 1.0f );
|
||||
Delta_AddField( "movevars_t", "fog_settings", DT_INTEGER, 32, 1.0f, 1.0f );
|
||||
|
||||
|
|
|
@ -150,6 +150,7 @@ GNU General Public License for more details.
|
|||
#define SND_LOCALSOUND (1<<9) // not paused, not looped, for internal use
|
||||
#define SND_STOP_LOOPING (1<<10) // stop all looping sounds on the entity.
|
||||
#define SND_FILTER_CLIENT (1<<11) // don't send sound from local player if prediction was enabled
|
||||
#define SND_RESTORE_POSITION (1<<12) // passed playing position and the forced end
|
||||
|
||||
// decal flags
|
||||
#define FDECAL_PERMANENT 0x01 // This decal should not be removed in favor of any new decals
|
||||
|
|
|
@ -139,10 +139,10 @@ typedef struct physics_interface_s
|
|||
void ( *ClipPMoveToEntity)( struct physent_s *pe, const float *start, float *mins, float *maxs, const float *end, struct pmtrace_s *tr );
|
||||
// called at end the frame of SV_Physics call
|
||||
void ( *SV_EndFrame )( void );
|
||||
// obsolete
|
||||
void (*pfnReserved)( void );
|
||||
// called through save\restore process
|
||||
void (*pfnCreateEntitiesInTransitionList)( SAVERESTOREDATA*, int levelMask );
|
||||
// called through save\restore process
|
||||
void (*pfnCreateEntitiesInRestoreList)( SAVERESTOREDATA* );
|
||||
void (*pfnCreateEntitiesInRestoreList)( SAVERESTOREDATA *pSaveData, int levelMask, qboolean create_world );
|
||||
// allocate custom string (e.g. using user implementation of stringtable, not engine strings)
|
||||
string_t (*pfnAllocString)( const char *szValue );
|
||||
// make custom string (e.g. using user implementation of stringtable, not engine strings)
|
||||
|
|
|
@ -36,8 +36,7 @@ extern int SV_UPDATE_BACKUP;
|
|||
|
||||
// hostflags
|
||||
#define SVF_SKIPLOCALHOST BIT( 0 )
|
||||
#define SVF_PLAYERSONLY BIT( 1 )
|
||||
#define SVF_MERGE_VISIBILITY BIT( 2 ) // we are do portal pass
|
||||
#define SVF_MERGE_VISIBILITY BIT( 1 ) // we are do portal pass
|
||||
|
||||
// mapvalid flags
|
||||
#define MAP_IS_EXIST BIT( 0 )
|
||||
|
@ -120,8 +119,8 @@ typedef struct
|
|||
char model[MAX_QPATH]; // name of static-entity model for right precache
|
||||
vec3_t origin;
|
||||
vec3_t angles;
|
||||
byte sequence;
|
||||
byte frame;
|
||||
short sequence;
|
||||
short frame;
|
||||
short colormap;
|
||||
byte skin; // can't set contents! only real skin!
|
||||
byte body;
|
||||
|
@ -197,6 +196,7 @@ typedef struct server_s
|
|||
model_t *worldmodel; // pointer to world
|
||||
|
||||
qboolean simulating;
|
||||
qboolean playersonly;
|
||||
qboolean paused;
|
||||
|
||||
// statistics
|
||||
|
@ -424,13 +424,19 @@ extern convar_t sv_edgefriction;
|
|||
extern convar_t sv_gravity;
|
||||
extern convar_t sv_stopspeed;
|
||||
extern convar_t sv_maxspeed;
|
||||
extern convar_t sv_wateralpha;
|
||||
extern convar_t sv_wateramp;
|
||||
extern convar_t sv_stepsize;
|
||||
extern convar_t sv_maxvelocity;
|
||||
extern convar_t sv_rollangle;
|
||||
extern convar_t sv_rollspeed;
|
||||
extern convar_t sv_skyname;
|
||||
extern convar_t sv_skyspeed;
|
||||
extern convar_t sv_skyangle;
|
||||
extern convar_t sv_skycolor_r;
|
||||
extern convar_t sv_skycolor_g;
|
||||
extern convar_t sv_skycolor_b;
|
||||
extern convar_t sv_skyvec_x;
|
||||
extern convar_t sv_skyvec_y;
|
||||
extern convar_t sv_skyvec_z;
|
||||
extern convar_t sv_consistency;
|
||||
extern convar_t sv_password;
|
||||
extern convar_t sv_uploadmax;
|
||||
|
@ -494,7 +500,7 @@ void SV_CheckVelocity( edict_t *ent );
|
|||
qboolean SV_CheckWater( edict_t *ent );
|
||||
qboolean SV_RunThink( edict_t *ent );
|
||||
qboolean SV_PlayerRunThink( edict_t *ent, float frametime, double time );
|
||||
qboolean SV_TestEntityPosition( edict_t *ent, edict_t *blocker ); // for EntityInSolid checks
|
||||
qboolean SV_TestEntityPosition( edict_t *ent, edict_t *blocker );
|
||||
void SV_Impact( edict_t *e1, edict_t *e2, trace_t *trace );
|
||||
qboolean SV_CanPushed( edict_t *ent );
|
||||
void SV_FreeOldEntities( void );
|
||||
|
@ -594,6 +600,7 @@ edict_t* SV_FindEntityByString( edict_t *pStartEdict, const char *pszField, cons
|
|||
void SV_PlaybackEventFull( int flags, const edict_t *pInvoker, word eventindex, float delay, float *origin,
|
||||
float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2 );
|
||||
void SV_PlaybackReliableEvent( sizebuf_t *msg, word eventindex, float delay, event_args_t *args );
|
||||
int SV_BuildSoundMsg( sizebuf_t *msg, edict_t *ent, int chan, const char *sample, int vol, float attn, int flags, int pitch, const vec3_t pos );
|
||||
qboolean SV_BoxInPVS( const vec3_t org, const vec3_t absmin, const vec3_t absmax );
|
||||
void SV_WriteEntityPatch( const char *filename );
|
||||
float SV_AngleMod( float ideal, float current, float speed );
|
||||
|
@ -607,6 +614,7 @@ sv_client_t *SV_ClientFromEdict( const edict_t *pEdict, qboolean spawned_only );
|
|||
int SV_MapIsValid( const char *filename, const char *spawn_entity, const char *landmark_name );
|
||||
void SV_StartSound( edict_t *ent, int chan, const char *sample, float vol, float attn, int flags, int pitch );
|
||||
void SV_CreateStaticEntity( struct sizebuf_s *msg, sv_static_entity_t *ent );
|
||||
edict_t *SV_FindGlobalEntity( string_t classname, string_t globalname );
|
||||
void SV_SendUserReg( sizebuf_t *msg, sv_user_message_t *user );
|
||||
edict_t* pfnPEntityOfEntIndex( int iEntIndex );
|
||||
int pfnIndexOfEdict( const edict_t *pEdict );
|
||||
|
@ -634,12 +642,10 @@ qboolean SV_ServerLog_f( sv_client_t *cl );
|
|||
//
|
||||
// sv_save.c
|
||||
//
|
||||
void SV_ClearSaveDir( void );
|
||||
void SV_SaveGame( const char *pName );
|
||||
qboolean SV_LoadGame( const char *pName );
|
||||
int SV_LoadGameState( char const *level, qboolean changelevel );
|
||||
int SV_LoadGameState( char const *level );
|
||||
void SV_ChangeLevel( qboolean loadfromsavedgame, const char *mapname, const char *start, qboolean background );
|
||||
void SV_LoadAdjacentEnts( const char *pOldLevel, const char *pLandmarkName );
|
||||
const char *SV_GetLatestSave( void );
|
||||
void SV_InitSaveRestore( void );
|
||||
void SV_ClearGameState( void );
|
||||
|
|
|
@ -1191,7 +1191,7 @@ void SV_PutClientInServer( sv_client_t *cl )
|
|||
svgame.dllFuncs.pfnParmsChangeLevel();
|
||||
|
||||
MSG_BeginServerCmd( &msg, svc_restore );
|
||||
Q_snprintf( name, sizeof( name ), "save/%s.HL2", sv.name );
|
||||
Q_snprintf( name, sizeof( name ), "%s%s.HL2", DEFAULT_SAVE_DIRECTORY, sv.name );
|
||||
COM_FixSlashes( name );
|
||||
MSG_WriteString( &msg, name );
|
||||
MSG_WriteByte( &msg, levelData.connectionCount );
|
||||
|
|
|
@ -320,7 +320,7 @@ void SV_Load_f( void )
|
|||
return;
|
||||
}
|
||||
|
||||
Q_snprintf( path, sizeof( path ), "save/%s.sav", Cmd_Argv( 1 ));
|
||||
Q_snprintf( path, sizeof( path ), "%s%s.sav", DEFAULT_SAVE_DIRECTORY, Cmd_Argv( 1 ));
|
||||
SV_LoadGame( path );
|
||||
}
|
||||
|
||||
|
@ -343,18 +343,18 @@ SV_Save_f
|
|||
*/
|
||||
void SV_Save_f( void )
|
||||
{
|
||||
const char *name;
|
||||
|
||||
switch( Cmd_Argc() )
|
||||
switch( Cmd_Argc( ))
|
||||
{
|
||||
case 1: name = "new"; break;
|
||||
case 2: name = Cmd_Argv( 1 ); break;
|
||||
case 1:
|
||||
SV_SaveGame( "new" );
|
||||
break;
|
||||
case 2:
|
||||
SV_SaveGame( Cmd_Argv( 1 ));
|
||||
break;
|
||||
default:
|
||||
Con_Printf( S_USAGE "save <savename>\n" );
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
SV_SaveGame( name );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -383,8 +383,8 @@ void SV_DeleteSave_f( void )
|
|||
}
|
||||
|
||||
// delete save and saveshot
|
||||
FS_Delete( va( "save/%s.sav", Cmd_Argv( 1 )));
|
||||
FS_Delete( va( "save/%s.bmp", Cmd_Argv( 1 )));
|
||||
FS_Delete( va( "%s%s.sav", DEFAULT_SAVE_DIRECTORY, Cmd_Argv( 1 )));
|
||||
FS_Delete( va( "%s%s.bmp", DEFAULT_SAVE_DIRECTORY, Cmd_Argv( 1 )));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -732,11 +732,10 @@ disable plhysics but players
|
|||
void SV_PlayersOnly_f( void )
|
||||
{
|
||||
if( !Cvar_VariableInteger( "sv_cheats" )) return;
|
||||
sv.hostflags = sv.hostflags ^ SVF_PLAYERSONLY;
|
||||
|
||||
if( !FBitSet( sv.hostflags, SVF_PLAYERSONLY ))
|
||||
SV_BroadcastPrintf( NULL, "Resume game physic\n" );
|
||||
else SV_BroadcastPrintf( NULL, "Freeze game physic\n" );
|
||||
sv.playersonly ^= 1;
|
||||
|
||||
SV_BroadcastPrintf( NULL, "%s game physic\n", sv.playersonly ? "Freeze" : "Resume" );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -502,7 +502,7 @@ void SV_CreateStaticEntity( sizebuf_t *msg, sv_static_entity_t *ent )
|
|||
int index;
|
||||
|
||||
// this can happens if serialized map contain too many static entities...
|
||||
if( MSG_GetNumBytesLeft( msg ) < 64 )
|
||||
if( MSG_GetNumBytesLeft( msg ) < 35 )
|
||||
{
|
||||
sv.ignored_static_ents++;
|
||||
return;
|
||||
|
@ -512,8 +512,8 @@ void SV_CreateStaticEntity( sizebuf_t *msg, sv_static_entity_t *ent )
|
|||
|
||||
MSG_BeginServerCmd( msg, svc_spawnstatic );
|
||||
MSG_WriteShort( msg, index );
|
||||
MSG_WriteByte( msg, ent->sequence );
|
||||
MSG_WriteByte( msg, ent->frame );
|
||||
MSG_WriteWord( msg, ent->sequence );
|
||||
MSG_WriteWord( msg, ent->frame );
|
||||
MSG_WriteWord( msg, ent->colormap );
|
||||
MSG_WriteByte( msg, ent->skin );
|
||||
MSG_WriteByte( msg, ent->body );
|
||||
|
@ -1520,6 +1520,27 @@ edict_t *SV_FindEntityByString( edict_t *pStartEdict, const char *pszField, cons
|
|||
return svgame.edicts;
|
||||
}
|
||||
|
||||
/*
|
||||
=========
|
||||
SV_FindGlobalEntity
|
||||
|
||||
ripped out from the hl.dll
|
||||
=========
|
||||
*/
|
||||
edict_t *SV_FindGlobalEntity( string_t classname, string_t globalname )
|
||||
{
|
||||
edict_t *pent = SV_FindEntityByString( NULL, "globalname", STRING( globalname ));
|
||||
|
||||
if( SV_IsValidEdict( pent ))
|
||||
{
|
||||
// don't spam about error - game code already tell us
|
||||
if( Q_strcmp( SV_ClassName( pent ), STRING( classname )))
|
||||
pent = NULL;
|
||||
}
|
||||
|
||||
return pent;
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
pfnGetEntityIllum
|
||||
|
@ -1826,7 +1847,7 @@ static void pfnMakeStatic( edict_t *ent )
|
|||
VectorCopy( ent->v.angles, clent->angles );
|
||||
|
||||
clent->sequence = ent->v.sequence;
|
||||
clent->frame = ent->v.frame;
|
||||
clent->frame = ent->v.frame * 128;
|
||||
clent->colormap = ent->v.colormap;
|
||||
clent->skin = ent->v.skin;
|
||||
clent->body = ent->v.body;
|
||||
|
@ -1946,10 +1967,11 @@ SV_BuildSoundMsg
|
|||
|
||||
=================
|
||||
*/
|
||||
static int SV_BuildSoundMsg( sizebuf_t *msg, edict_t *ent, int chan, const char *sample, int vol, float attn, int flags, int pitch, const vec3_t pos )
|
||||
int SV_BuildSoundMsg( sizebuf_t *msg, edict_t *ent, int chan, const char *sample, int vol, float attn, int flags, int pitch, const vec3_t pos )
|
||||
{
|
||||
int entityIndex;
|
||||
int sound_idx;
|
||||
qboolean spawn;
|
||||
|
||||
if( vol < 0 || vol > 255 )
|
||||
{
|
||||
|
@ -2004,21 +2026,25 @@ static int SV_BuildSoundMsg( sizebuf_t *msg, edict_t *ent, int chan, const char
|
|||
return 0;
|
||||
}
|
||||
|
||||
spawn = FBitSet( flags, SND_RESTORE_POSITION ) ? false : true;
|
||||
|
||||
if( SV_IsValidEdict( ent ) && SV_IsValidEdict( ent->v.aiment ))
|
||||
entityIndex = NUM_FOR_EDICT( ent->v.aiment );
|
||||
else if( SV_IsValidEdict( ent ))
|
||||
entityIndex = NUM_FOR_EDICT( ent );
|
||||
else entityIndex = 0; // assime world
|
||||
else entityIndex = 0; // assume world
|
||||
|
||||
if( vol != 255 ) SetBits( flags, SND_VOLUME );
|
||||
if( attn != ATTN_NONE ) SetBits( flags, SND_ATTENUATION );
|
||||
if( pitch != PITCH_NORM ) SetBits( flags, SND_PITCH );
|
||||
|
||||
// not sending (because this is out of range)
|
||||
ClearBits( flags, SND_RESTORE_POSITION );
|
||||
ClearBits( flags, SND_FILTER_CLIENT );
|
||||
ClearBits( flags, SND_SPAWNING );
|
||||
|
||||
MSG_BeginServerCmd( msg, svc_sound );
|
||||
if( spawn ) MSG_BeginServerCmd( msg, svc_sound );
|
||||
else MSG_BeginServerCmd( msg, svc_restoresound );
|
||||
MSG_WriteUBitLong( msg, flags, MAX_SND_FLAGS_BITS );
|
||||
MSG_WriteUBitLong( msg, sound_idx, MAX_SOUND_BITS );
|
||||
MSG_WriteUBitLong( msg, chan, MAX_SND_CHAN_BITS );
|
||||
|
@ -2442,6 +2468,7 @@ void pfnLightStyle( int style, const char* val )
|
|||
if( style < 0 ) style = 0;
|
||||
if( style >= MAX_LIGHTSTYLES )
|
||||
Host_Error( "SV_LightStyle: style: %i >= %d", style, MAX_LIGHTSTYLES );
|
||||
if( sv.loadgame ) return; // don't let the world overwrite our restored styles
|
||||
|
||||
SV_SetLightStyle( style, val, 0.0f ); // set correct style
|
||||
}
|
||||
|
@ -4663,11 +4690,6 @@ void SV_SpawnEntities( const char *mapname )
|
|||
Cvar_Reset( "sv_skyvec_y" );
|
||||
Cvar_Reset( "sv_skyvec_z" );
|
||||
Cvar_Reset( "sv_skyname" );
|
||||
Cvar_Reset( "sv_skydir_x" );
|
||||
Cvar_Reset( "sv_skydir_y" );
|
||||
Cvar_Reset( "sv_skydir_z" );
|
||||
Cvar_Reset( "sv_skyangle" );
|
||||
Cvar_Reset( "sv_skyspeed" );
|
||||
|
||||
ent = EDICT_NUM( 0 );
|
||||
if( ent->free ) SV_InitEdict( ent );
|
||||
|
|
|
@ -928,9 +928,8 @@ void SV_ExecLoadGame( void )
|
|||
{
|
||||
if( SV_SpawnServer( GameState->levelName, NULL, false ))
|
||||
{
|
||||
if( !SV_LoadGameState( GameState->levelName, false ))
|
||||
if( !SV_LoadGameState( GameState->levelName ))
|
||||
SV_SpawnEntities( GameState->levelName );
|
||||
sv.loadgame = sv.paused = true; // pause until all clients connect
|
||||
SV_ActivateServer( false );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,12 +92,6 @@ CVAR_DEFINE_AUTO( sv_skyvec_x, "0", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "skylight dir
|
|||
CVAR_DEFINE_AUTO( sv_skyvec_y, "0", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "skylight direction by y-axis" );
|
||||
CVAR_DEFINE_AUTO( sv_skyvec_z, "0", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "skylight direction by z-axis" );
|
||||
CVAR_DEFINE_AUTO( sv_wateralpha, "1", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "world surfaces water transparency factor. 1.0 - solid, 0.0 - fully transparent" );
|
||||
CVAR_DEFINE_AUTO( sv_skydir_x, "0", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "sky rotation factor around x-axis" );
|
||||
CVAR_DEFINE_AUTO( sv_skydir_y, "0", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "sky rotation factor around y-axis" );
|
||||
CVAR_DEFINE_AUTO( sv_skydir_z, "1", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "sky rotation factor around z-axis" ); // g-cont. add default sky rotate direction
|
||||
CVAR_DEFINE_AUTO( sv_skyangle, "0", FCVAR_MOVEVARS|FCVAR_UNLOGGED, "skybox rotational angle (in degrees)" );
|
||||
CVAR_DEFINE_AUTO( sv_skyspeed, "0", 0, "skybox rotational speed" );
|
||||
|
||||
CVAR_DEFINE_AUTO( showtriggers, "0", FCVAR_LATCH, "debug cvar shows triggers" );
|
||||
CVAR_DEFINE_AUTO( sv_airmove, "1", FCVAR_SERVER, "obsolete, compatibility issues" );
|
||||
CVAR_DEFINE_AUTO( sv_version, "", FCVAR_READ_ONLY, "engine version string" );
|
||||
|
@ -199,10 +193,6 @@ void SV_UpdateMovevars( qboolean initialize )
|
|||
svgame.movevars.skyvec_x = sv_skyvec_x.value;
|
||||
svgame.movevars.skyvec_y = sv_skyvec_y.value;
|
||||
svgame.movevars.skyvec_z = sv_skyvec_z.value;
|
||||
svgame.movevars.skydir_x = sv_skydir_x.value;
|
||||
svgame.movevars.skydir_y = sv_skydir_y.value;
|
||||
svgame.movevars.skydir_z = sv_skydir_z.value;
|
||||
svgame.movevars.skyangle = sv_skyangle.value;
|
||||
svgame.movevars.wateralpha = sv_wateralpha.value;
|
||||
svgame.movevars.features = host.features; // just in case. not really need
|
||||
svgame.movevars.entgravity = 1.0f;
|
||||
|
@ -528,10 +518,14 @@ qboolean SV_IsSimulating( void )
|
|||
return true; // force simulating for background map
|
||||
}
|
||||
|
||||
if( FBitSet( sv.hostflags, SVF_PLAYERSONLY ))
|
||||
if( !SV_HasActivePlayers( ))
|
||||
return false;
|
||||
|
||||
if( !SV_HasActivePlayers())
|
||||
if( host.type == HOST_DEDICATED )
|
||||
return true; // always active for dedicated servers
|
||||
|
||||
// allow to freeze everything in singleplayer
|
||||
if( svs.maxclients <= 1 && sv.playersonly )
|
||||
return false;
|
||||
|
||||
if( !sv.paused && CL_IsInGame( ))
|
||||
|
@ -772,11 +766,6 @@ void SV_Init( void )
|
|||
Cvar_RegisterVariable (&sv_skyvec_y);
|
||||
Cvar_RegisterVariable (&sv_skyvec_z);
|
||||
Cvar_RegisterVariable (&sv_skyname);
|
||||
Cvar_RegisterVariable (&sv_skydir_x);
|
||||
Cvar_RegisterVariable (&sv_skydir_y);
|
||||
Cvar_RegisterVariable (&sv_skydir_z);
|
||||
Cvar_RegisterVariable (&sv_skyangle);
|
||||
Cvar_RegisterVariable (&sv_skyspeed);
|
||||
Cvar_RegisterVariable (&sv_footsteps);
|
||||
Cvar_RegisterVariable (&sv_wateralpha);
|
||||
Cvar_RegisterVariable (&sv_cheats);
|
||||
|
@ -846,11 +835,12 @@ void SV_Init( void )
|
|||
// when we in developer-mode automatically turn cheats on
|
||||
if( host_developer.value ) Cvar_SetValue( "sv_cheats", 1.0f );
|
||||
|
||||
SV_ClearSaveDir (); // delete all temporary *.hl files
|
||||
MSG_Init( &net_message, "NetMessage", net_message_buffer, sizeof( net_message_buffer ));
|
||||
|
||||
Q_snprintf( versionString, sizeof( versionString ), "%s: %.2f,%i,%i", "Xash3D", XASH_VERSION, PROTOCOL_VERSION, Q_buildnum() );
|
||||
Cvar_FullSet( "sv_version", versionString, FCVAR_READ_ONLY );
|
||||
|
||||
SV_ClearGameState (); // delete all temporary *.hl files
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -1806,13 +1806,6 @@ void SV_Physics( void )
|
|||
// increase framecount
|
||||
sv.framecount++;
|
||||
|
||||
if( sv_skyspeed.value )
|
||||
{
|
||||
// evaluate sky rotation.
|
||||
float skyAngle = sv_skyangle.value + sv_skyspeed.value * sv.frametime;
|
||||
Cvar_SetValue( "sv_skyangle", anglemod( skyAngle ));
|
||||
}
|
||||
|
||||
// decrement svgame.numEntities if the highest number entities died
|
||||
for( ; EDICT_NUM( svgame.numEntities - 1 )->free; svgame.numEntities-- );
|
||||
}
|
||||
|
|
|
@ -1083,7 +1083,7 @@ void SV_RunCmd( sv_client_t *cl, usercmd_t *ucmd, int random_seed )
|
|||
// copy results back to client
|
||||
SV_FinishPMove( svgame.pmove, cl );
|
||||
|
||||
if( clent->v.solid != SOLID_NOT && !FBitSet( sv.hostflags, SVF_PLAYERSONLY ))
|
||||
if( clent->v.solid != SOLID_NOT && !sv.playersonly )
|
||||
{
|
||||
if( svgame.physFuncs.PM_PlayerTouch != NULL )
|
||||
{
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -564,7 +564,7 @@ void SV_TouchLinks( edict_t *ent, areanode_t *node )
|
|||
}
|
||||
|
||||
// never touch the triggers when "playersonly" is active
|
||||
if( !FBitSet( sv.hostflags, SVF_PLAYERSONLY ))
|
||||
if( !sv.playersonly )
|
||||
{
|
||||
svgame.globals->time = sv.time;
|
||||
svgame.dllFuncs.pfnTouch( touch, ent );
|
||||
|
|
|
@ -43,10 +43,6 @@ struct movevars_s
|
|||
int features; // engine features that shared across network
|
||||
int fog_settings; // Global fog settings (packed color+density)
|
||||
float wateralpha; // World water alpha 1.0 - solid 0.0 - transparent
|
||||
float skydir_x; // skybox rotate direction
|
||||
float skydir_y; //
|
||||
float skydir_z; //
|
||||
float skyangle; // skybox rotate angle
|
||||
};
|
||||
|
||||
extern movevars_t movevars;
|
||||
|
|
Reference in New Issue