From 1c63cbf204b1d2c667ce9f821ccb197d0ffb0ac3 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Wed, 11 May 2011 14:48:17 +0000 Subject: Review of the main loop timer, converted timers from float to unsigned long, corrected a number of timing bugs, improved client framerate stability. --- src/core/physics.cc | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'src/core/physics.cc') diff --git a/src/core/physics.cc b/src/core/physics.cc index 90fb184..9ffe13c 100644 --- a/src/core/physics.cc +++ b/src/core/physics.cc @@ -15,7 +15,6 @@ namespace core { btDefaultCollisionConfiguration *Physics::physics_configuration = 0; btCollisionDispatcher *Physics::physics_dispatcher = 0; btSequentialImpulseConstraintSolver *Physics::physics_solver = 0; -unsigned long Physics::physics_timestamp = 0; void Physics::init() { @@ -27,8 +26,6 @@ void Physics::init() physics_dispatcher = new btCollisionDispatcher(physics_configuration); btGImpactCollisionAlgorithm::registerAlgorithm(physics_dispatcher); physics_solver = new btSequentialImpulseConstraintSolver; - - physics_timestamp = 0; } void Physics::done() @@ -46,18 +43,13 @@ void Physics::done() physics_solver = 0; } -void Physics::frame(const unsigned long timestamp) +void Physics::frame(const unsigned long elapsed) { - if (!timestamp) - return; - - const float seconds = (float) (timestamp - physics_timestamp) / 1000.0f; + const float seconds = (float) elapsed / 1000.0f; for (core::Zone::Registry::iterator it = core::Zone::registry().begin(); it != core::Zone::registry().end(); it++) { - (*it).second->physics()->stepSimulation(seconds); + (*it).second->physics()->stepSimulation(seconds, 8); } - - physics_timestamp = timestamp; } } // namespace core -- cgit v1.2.3