From 57837b0236bdebd7a1032245c64b1bc459f96d62 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 30 Aug 2008 20:48:06 +0000 Subject: dedicated server ncurses console updates --- src/core/gameinterface.cc | 68 +++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 32 deletions(-) (limited to 'src/core/gameinterface.cc') 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()); } -- cgit v1.2.3