Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-08-30 20:48:06 +0000
committerStijn Buys <ingar@osirion.org>2008-08-30 20:48:06 +0000
commit57837b0236bdebd7a1032245c64b1bc459f96d62 (patch)
treed9731122b3d28a3de206aec772af3bcbdeeb66b0 /src/core/gameinterface.cc
parent084dd555366c326b7ee18515bcb282a8f4eb394a (diff)
dedicated server ncurses console updates
Diffstat (limited to 'src/core/gameinterface.cc')
-rw-r--r--src/core/gameinterface.cc68
1 files changed, 36 insertions, 32 deletions
diff --git a/src/core/gameinterface.cc b/src/core/gameinterface.cc
index ecb58fc..70224b0 100644
--- a/src/core/gameinterface.cc
+++ b/src/core/gameinterface.cc
@@ -152,39 +152,43 @@ void GameInterface::update_entity_clientstate(Entity *entity)
if (game_clientframetime <= game_serverframetime) {
- entity->state()->state_axis.assign(entity->state()->previousaxis());
-
- float cosangle; // cosine of an angle
- float angle; // angle in radians
- math::Vector3f n; // normal of a plane
-
- n.assign(math::crossproduct( entity->state()->axis().forward(), entity->axis().forward()));
- if (!(n.length() < MIN_DELTA)) {
- n.normalize();
- cosangle = math::dotproduct( entity->state()->axis().forward(), entity->axis().forward());
- angle = acos(cosangle) * timeoffset(); // * 180.0f / M_PI;
- if (angle > MIN_DELTA)
- entity->state()->state_axis.rotate(n, -angle);
- }
- /*
- n.assign(math::crossproduct( entity->state()->axis().left(), entity->axis().left()));
- if (!(n.length() < MIN_DELTA)) {
- n.normalize();
- cosangle = math::dotproduct( entity->state()->axis().left(), entity->axis().left());
- angle = acos(cosangle) * timeoffset(); // * 180.0f / M_PI;
- if (angle > MIN_DELTA)
- entity->state()->state_axis.rotate(n, -angle);
+ if(Cvar::cl_prediction->value() > 1) {
+ entity->state()->state_axis.assign(entity->state()->previousaxis());
+
+ float cosangle; // cosine of an angle
+ float angle; // angle in radians
+ math::Vector3f n; // normal of a plane
+
+ n.assign(math::crossproduct( entity->state()->axis().forward(), entity->axis().forward()));
+ if (!(n.length() < MIN_DELTA)) {
+ n.normalize();
+ cosangle = math::dotproduct( entity->state()->axis().forward(), entity->axis().forward());
+ angle = acos(cosangle) * timeoffset(); // * 180.0f / M_PI;
+ if (angle > MIN_DELTA)
+ entity->state()->state_axis.rotate(n, -angle);
+ }
+ /*
+ n.assign(math::crossproduct( entity->state()->axis().left(), entity->axis().left()));
+ if (!(n.length() < MIN_DELTA)) {
+ n.normalize();
+ cosangle = math::dotproduct( entity->state()->axis().left(), entity->axis().left());
+ angle = acos(cosangle) * timeoffset(); // * 180.0f / M_PI;
+ if (angle > MIN_DELTA)
+ entity->state()->state_axis.rotate(n, -angle);
+ }
+
+ n.assign(math::crossproduct( entity->state()->axis().up(), entity->axis().up()));
+ if (!(n.length() < MIN_DELTA)) {
+ n.normalize();
+ cosangle = math::dotproduct( entity->state()->axis().up(), entity->axis().up());
+ angle = acos(cosangle) * timeoffset(); // * 180.0f / M_PI;
+ if (angle > MIN_DELTA)
+ entity->state()->state_axis.rotate(n, -angle);
+ }
+ */
+ } else {
+ entity->state()->state_axis.assign(entity->axis());
}
-
- n.assign(math::crossproduct( entity->state()->axis().up(), entity->axis().up()));
- if (!(n.length() < MIN_DELTA)) {
- n.normalize();
- cosangle = math::dotproduct( entity->state()->axis().up(), entity->axis().up());
- angle = acos(cosangle) * timeoffset(); // * 180.0f / M_PI;
- if (angle > MIN_DELTA)
- entity->state()->state_axis.rotate(n, -angle);
- }
- */
} else {
entity->state()->state_axis.assign(entity->axis());
}