moved clearing of self.fixangle to SV_Physics_ClientEntity so that it is only cleared...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 24 Mar 2007 17:46:19 +0000 (17:46 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 24 Mar 2007 17:46:19 +0000 (17:46 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7001 d7cf8633-e32d-0410-b094-e92efae38249

sv_main.c
sv_phys.c
todo

index 814e0e1..ced0a71 100644 (file)
--- a/sv_main.c
+++ b/sv_main.c
@@ -1095,7 +1095,10 @@ void SV_WriteClientdataToMessage (client_t *client, prvm_edict_t *ent, sizebuf_t
                MSG_WriteByte (msg, svc_setangle);
                for (i=0 ; i < 3 ; i++)
                        MSG_WriteAngle (msg, ent->fields.server->angles[i], sv.protocol);
-               ent->fields.server->fixangle = 0;
+               // LordHavoc: moved fixangle = 0 to the physics code so it is
+               // repeatedly sent to predicted clients even though they don't always
+               // move each frame
+               //ent->fields.server->fixangle = 0;
        }
 
        // stuff the sigil bits into the high bits of items for sbar, or else
index 0999bcb..4dbf089 100644 (file)
--- a/sv_phys.c
+++ b/sv_phys.c
@@ -2001,6 +2001,9 @@ static void SV_Physics_Entity (prvm_edict_t *ent)
 
 void SV_Physics_ClientEntity (prvm_edict_t *ent)
 {
+       // LordHavoc: clear fixangle here rather than on send, because input is
+       // not always received every frame from predicted clients
+       ent->fields.server->fixangle = 0;
        SV_ApplyClientMove();
        // make sure the velocity is sane (not a NaN)
        SV_CheckVelocity(ent);
diff --git a/todo b/todo
index 0415f3c..4c25fe7 100644 (file)
--- a/todo
+++ b/todo
@@ -1,7 +1,7 @@
 - todo: difficulty ratings are: 0 = trivial, 1 = easy, 2 = easy-moderate, 3 = moderate, 4 = moderate-hard, 5 = hard, 6 = hard++, 7 = nightmare, d = done, -d = done but have not notified the people who asked for it, f = failed, -f = failed but have not notified the people who asked for it
-0 bug darkplaces client: if you press 1 during the demo loop when quake starts, escape doesn't do anything until you hit some other key (daemon)
 0 bug darkplaces client: can't move mouse around in nexuiz menu if vid_mouse is 0
 0 bug darkplaces client: decals are not sticking to submodels
+0 bug darkplaces client: if you press 1 during the demo loop when quake starts, escape doesn't do anything until you hit some other key (daemon)
 0 bug darkplaces loader: make rtlight entity loader support q3map/q3map2 lights properly, they use a spawnflag for LINEAR mode, by default they use 1/(x*x) falloff (Carni, motorsep)
 0 bug darkplaces readme: it would be a very good idea to add documentation of sv_gameplayfix_* cvars in the readme as a means to run broken mods (xaGe)
 0 bug darkplaces renderer: GL13 path has broken handling of unlit surfaces in Nexuiz toxic.bsp - the small red light surfaces are black in GL13 path (m0rfar)
@@ -77,6 +77,7 @@
 0 feature darkplaces client: add an alias to control whether the nexuiz logo.dpv splash video plays at startup and whether the menu opens, this way the config can change it before it happens, for instance to disable it, or to set up a similar thing in other games (green)
 0 feature darkplaces client: add ezQuake-style hud layout as an option - http://quake.tek.pl/_sshots/candy/redfog.png
 0 feature darkplaces client: add test and test2 commands, test queries a server and prints player list,  (Yellow No. 5)
+0 feature darkplaces client: somehow handle alt-enter on windows, and any other equivilant toggle-maximize shortcut on other platforms (Spirit)
 0 feature darkplaces console: centerprint and notify text printing should not count color codes in their length estimation (Dresk)
 0 feature darkplaces dpv playback: when video ends, execute a console command, perhaps "endvideo", this could be an alias set by a mod before it began playing the video (SavageX, motorsep)
 0 feature darkplaces editlights: add r_editlights_edit commands for turn/turnx/turny/turnz to allow angle adjustments using binds (Kedhrin)
@@ -623,6 +624,7 @@ d bug darkplaces server: losing clientcolors somehow during connect in dpmod
 d bug darkplaces server: ping should work from server console
 d bug darkplaces server: projectiles spawned during client physics called by SV_ReadClientMove are moved on the same server frame, causing them to appear in midair, unlike the normal physics which refuses to move projectiles on their first frame (m0rfar)
 d bug darkplaces server: running only one server frame per host frame is really bad in listen servers where the client may be too slow to keep up the server framerate
+d bug darkplaces server: self.fixangle is being cleared each frame even if no client move has been performed this frame, which means that predicted clients often see fixangle = 0 due to irregular moves causing PlayerPreThink/PlayerPostThink to not be called every frame
 d bug darkplaces server: sending unused lightstyles in serverinfo packet is silly (Spike)
 d bug darkplaces server: stats[TOTAL_MONSTERS] should be networked as a stat
 d bug darkplaces server: stepping while jumping is setting FL_GROUND (allowing the quake2 doublejump bug)