void Application::UpdateWorld(Uint32 deltaT) {
if (!CurrentState()) return;
for (Uint32 i(0); i < deltaT && !StateChangePending(); ++i) {
- CurrentState()->PhysicsTimers().Update(0.001f);
- CurrentState()->UpdateWorld(0.001f);
+ CurrentState()->PhysicsTimers().Update(1);
+ CurrentState()->UpdateWorld(1);
}
}
/// Handle interactive events such as input and timers.
virtual void HandleEvents(const Input &) = 0;
/// Update the time-dependant world representation.
- virtual void UpdateWorld(float deltaT) = 0;
+ virtual void UpdateWorld(Uint32 deltaMs) = 0;
/// Draw a picture of the world.
virtual void Render(SDL_Surface *) = 0;
/// Timers handle intended for graphics, sync'ed with world time.
/// These timers are only updated for the stack top and thus appear paused
/// when the state is visible (roughly).
- Timers<float> &PhysicsTimers() { return physicsTimers; }
+ Timers<Uint32> &PhysicsTimers() { return physicsTimers; }
private:
Application *ctrl;
Timers<Uint32> graphicsTimers;
- Timers<float> physicsTimers;
+ Timers<Uint32> physicsTimers;
};
}
-void BattleState::UpdateWorld(float deltaT) {
+void BattleState::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
-void PerformAttacks::UpdateWorld(float deltaT) {
+void PerformAttacks::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
-void RunState::UpdateWorld(float deltaT) {
+void RunState::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SelectAttackType::UpdateWorld(float deltaT) {
+void SelectAttackType::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SelectIkari::UpdateWorld(float deltaT) {
+void SelectIkari::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SelectItem::UpdateWorld(float deltaT) {
+void SelectItem::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SelectMoveAction::UpdateWorld(float deltaT) {
+void SelectMoveAction::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SelectSpell::UpdateWorld(float deltaT) {
+void SelectSpell::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SelectTarget::UpdateWorld(float deltaT) {
+void SelectTarget::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
-void SwapHeroes::UpdateWorld(float deltaT) {
+void SwapHeroes::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
#include <cassert>
+using math::Fixed;
using math::Vector;
namespace graphics {
-Camera::Camera(int width, int height, const Vector<float> *target)
+Camera::Camera(int width, int height, const Vector<Fixed<8> > *target)
: target(target), halfWidth(width / 2), halfHeight(height / 2) {
}
-void Camera::SetTarget(const Vector<float> *t) {
+void Camera::SetTarget(const Vector<Fixed<8> > *t) {
target = t;
}
Vector<int> Camera::CalculateOffset() const {
if (target) {
return Vector<int>(
- (target->X() - halfWidth) * -1,
- (target->Y() - halfHeight) * -1);
+ (target->X().Int() - halfWidth) * -1,
+ (target->Y().Int() - halfHeight) * -1);
} else {
return Vector<int>();
}
#ifndef GRAPHICS_CAMERA_H_
#define GRAPHICS_CAMERA_H_
+#include "../math/Fixed.h"
#include "../math/Vector.h"
namespace graphics {
class Camera {
public:
- Camera(int width, int height, const math::Vector<float> *target);
+ Camera(int width, int height, const math::Vector<math::Fixed<8> > *target);
~Camera() { }
public:
void Resize(int w, int h) { halfWidth = w / 2; halfHeight = h / 2; }
- void SetTarget(const math::Vector<float> *t);
+ void SetTarget(const math::Vector<math::Fixed<8> > *t);
math::Vector<int> CalculateOffset() const;
private:
- const math::Vector<float> *target;
+ const math::Vector<math::Fixed<8> > *target;
int halfWidth;
int halfHeight;
}
-void ColorFade::UpdateWorld(float deltaT) {
+void ColorFade::UpdateWorld(Uint32 deltaT) {
if (interactive) {
slave->UpdateWorld(deltaT);
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
#include "common/Script.h"
#include "common/Spell.h"
#include "common/Stats.h"
+#include "math/Fixed.h"
#include "math/Vector.h"
#include "graphics/CharSelect.h"
#include "graphics/ComplexAnimation.h"
using common::GameState;
using common::Hero;
using common::Spell;
+using math::Fixed;
using math::Vector;
using graphics::Texture;
using loader::Caster;
const int width = 512;
const int height = 448;
- const float walkSpeed = 128.0f;
+ const Fixed<8> walkSpeed = Fixed<8>(1, 8);
bool battle(false);
gameState.heroes[3].SetEquipment(Hero::EQUIP_RING, caster.GetItem("rocketRingItem"));
gameState.heroes[3].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("krakenRockItem"));
- gameState.heroes[0].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[0].MapEntity().Position() = Vector<Fixed<8> >(64, 128);
- gameState.heroes[1].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[1].MapEntity().Position() = Vector<Fixed<8> >(64, 128);
gameState.heroes[1].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING);
gameState.heroes[0].MapEntity().AddFollower(&gameState.heroes[1].MapEntity());
- gameState.heroes[2].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[2].MapEntity().Position() = Vector<Fixed<8> >(64, 128);
gameState.heroes[2].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING);
gameState.heroes[1].MapEntity().AddFollower(&gameState.heroes[2].MapEntity());
- gameState.heroes[3].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[3].MapEntity().Position() = Vector<Fixed<8> >(64, 128);
gameState.heroes[3].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING);
gameState.heroes[2].MapEntity().AddFollower(&gameState.heroes[3].MapEntity());
using battle::PartyLayout;
using graphics::Animation;
using graphics::Sprite;
+using math::Fixed;
using math::Vector;
using loader::FieldDescription;
using loader::Interpreter;
}
}
-void Entity::SetSpeed(float s) {
+void Entity::SetSpeed(Fixed<8> s) {
speed = s;
UpdateVelocity();
}
void Entity::UpdateVelocity() {
- if (speed == 0.0f) {
- velocity = Vector<float>();
+ if (speed == 0) {
+ velocity = Vector<Fixed<8> >();
return;
}
switch (orientation) {
case ORIENTATION_NORTH:
- velocity = Vector<float>(0.0f, -speed);
+ velocity = Vector<Fixed<8> >(0, -speed);
break;
case ORIENTATION_EAST:
- velocity = Vector<float>(speed, 0.0f);
+ velocity = Vector<Fixed<8> >(speed, 0);
break;
case ORIENTATION_SOUTH:
- velocity = Vector<float>(0.0f, speed);
+ velocity = Vector<Fixed<8> >(0, speed);
break;
case ORIENTATION_WEST:
- velocity = Vector<float>(-speed, 0.0f);
+ velocity = Vector<Fixed<8> >(-speed, 0);
break;
}
}
bool Entity::TileLock(const math::Vector<int> &tileSize) const {
// TODO: change position to point to the top-left corner of a tile
- Vector<int> tilePosition(position);
+ Vector<int> tilePosition(ToInt(position));
return (tilePosition.X() % tileSize.X() == 0) && (tilePosition.Y() % tileSize.Y() == 0);
}
-void Entity::Update(float deltaT) {
+void Entity::Update(Uint32 deltaT) {
position += velocity * deltaT;
}
void Entity::Render(SDL_Surface *dest, const Vector<int> &offset) const {
// TODO: configurable sprite offsets
if (runner.Running()) {
- runner.Draw(dest, offset + position + spriteOffset);
+ runner.Draw(dest, offset + ToInt(position) + spriteOffset);
} else {
- sprite->Draw(dest, offset + position + spriteOffset, CanTurn() ? orientation : 0);
+ sprite->Draw(dest, offset + ToInt(position) + spriteOffset, CanTurn() ? orientation : 0);
}
}
#include "../battle/fwd.h"
#include "../battle/Monster.h"
+#include "../math/Fixed.h"
#include "../math/Vector.h"
#include "../graphics/fwd.h"
#include "../graphics/Animation.h"
public:
/// Pixel resolved position of the entity's top left corner on the map.
- math::Vector<float> &Position() { return position; }
- const math::Vector<float> &Position() const { return position; }
+ math::Vector<math::Fixed<8> > &Position() { return position; }
+ const math::Vector<math::Fixed<8> > &Position() const { return position; }
/// Velocity of the entity in pixels per second.
- math::Vector<float> &Velocity() { return velocity; }
- const math::Vector<float> &Velocity() const { return velocity; }
+ math::Vector<math::Fixed<8> > &Velocity() { return velocity; }
+ const math::Vector<math::Fixed<8> > &Velocity() const { return velocity; }
/// Offset of the entity's sprite's to left corner relative to Position().
math::Vector<int> &SpriteOffset() { return spriteOffset; }
Orientation GetOrientation() const { return orientation; }
/// Set the entity's speed in pixels per second.
/// This speed is then combined with the orientation to form a velocity.
- void SetSpeed(float);
+ void SetSpeed(math::Fixed<8>);
/// Change to a natural, relaxed animation state (row offset 0).
void SetHandsFree();
bool TileLock(const math::Vector<int> &tileSize) const;
/// Integrate this entity's physical properties over given time interval.
- void Update(float deltaT);
+ void Update(Uint32 deltaT);
void Render(SDL_Surface *, const math::Vector<int> &offset) const;
graphics::AnimationRunner runner;
math::Vector<int> spriteOffset;
math::Vector<int> tilePosition;
- math::Vector<float> position;
- math::Vector<float> velocity;
+ math::Vector<math::Fixed<8> > position;
+ math::Vector<math::Fixed<8> > velocity;
Orientation orientation;
- float speed;
+ math::Fixed<8> speed;
int flags;
};
using app::Input;
using battle::BattleState;
using common::GameConfig;
+using math::Fixed;
using math::Vector;
using graphics::ColorFade;
using menu::PartyMenu;
}
}
-void MapState::UpdateWorld(float deltaT) {
+void MapState::UpdateWorld(Uint32 deltaT) {
if (controlled && controlled->TileLock(map->Tileset()->Size())) {
OnTileLock();
}
void MapState::OnTileLock() {
if (moveTimer.Running() && !moveTimer.JustHit()) return;
- Vector<int> nowLock(controlled->Position());
+ Vector<int> nowLock(ToInt(controlled->Position()));
bool event(false);
if (nowLock != lastLock) {
event = OnGridLock();
controlled->SetHandsFree();
}
} else {
- controlled->SetSpeed(0.0f);
+ controlled->SetSpeed(0);
StopFollowers(*controlled);
if (!moveTimer.Running()) {
int tileSize((controlled->GetOrientation() % 2) ? map->Tileset()->Width() : map->Tileset()->Height());
- moveTimer = PhysicsTimers().StartInterval(tileSize/walkingSpeed);
+ moveTimer = PhysicsTimers().StartInterval(tileSize/walkingSpeed.Int());
}
pushed = 0;
}
}
}
} else {
- controlled->SetSpeed(0.0f);
+ controlled->SetSpeed(0);
StopFollowers(*controlled);
controlled->StopAnimation();
moveTimer.Clear();
if (pushed) {
- pushed->SetSpeed(0.0f);
+ pushed->SetSpeed(0);
pushed = 0;
}
}
bool MapState::CheckBlocking() {
if (pushed) {
- pushed->SetSpeed(0.0f);
+ pushed->SetSpeed(0);
pushed = 0;
}
- const Tile *tile(map->TileAt(controlled->Position()));
+ const Tile *tile(map->TileAt(ToInt(controlled->Position())));
Vector<int> direction;
switch (nextDirection) {
case Entity::ORIENTATION_NORTH:
default:
return false;
}
- Vector<int> nextTilePosition(direction + controlled->Position());
+ Vector<int> nextTilePosition(direction + ToInt(controlled->Position()));
Vector<int> nextTileCoords(map->TileCoordinates(nextTilePosition));
for (std::vector<Entity *>::const_iterator i(entities.begin()), end(entities.end()); i != end; ++i) {
const Entity &e(**i);
- if (map->TileCoordinates(e.Position()) != nextTileCoords) continue;
+ if (map->TileCoordinates(ToInt(e.Position())) != nextTileCoords) continue;
if (!e.Blocking()) continue;
if (!pushing || !e.Pushable()) return true;
if (CheckBlocking(nextTilePosition, Entity::Orientation(nextDirection))) return true;
Vector<int> nextTileCoords(map->TileCoordinates(directionVector + position));
for (std::vector<Entity *>::const_iterator i(entities.begin()), end(entities.end()); i != end; ++i) {
const Entity &e(**i);
- if (map->TileCoordinates(e.Position()) == nextTileCoords && e.Blocking()) {
+ if (map->TileCoordinates(ToInt(e.Position())) == nextTileCoords && e.Blocking()) {
return true;
}
}
}
bool MapState::CheckMonster() {
- Vector<int> coords(map->TileCoordinates(controlled->Position()));
+ Vector<int> coords(map->TileCoordinates(ToInt(controlled->Position())));
Vector<int> neighbor[4];
neighbor[0] = Vector<int>(coords.X(), coords.Y() - 1); // N
neighbor[1] = Vector<int>(coords.X() + 1, coords.Y()); // E
for (int i(0); i < 4; ++i) {
for (std::vector<Entity *>::iterator e(entities.begin()), end(entities.end()); e != end; ++e) {
- if ((*e)->Hostile() && map->TileCoordinates((*e)->Position()) == neighbor[i]) {
+ if ((*e)->Hostile() && map->TileCoordinates(ToInt((*e)->Position())) == neighbor[i]) {
// TODO: check for turn advantage, see #26
// TODO: other transition
- BattleState *battleState(new BattleState(game, map->BattleBackgroundAt((*e)->Position()), (*e)->PartyLayout()));
+ BattleState *battleState(new BattleState(game, map->BattleBackgroundAt(ToInt((*e)->Position())), (*e)->PartyLayout()));
for (int i(0); i < 4; ++i) {
if (game->state->party[i]) {
battleState->AddHero(*game->state->party[i]);
}
bool MapState::CheckLockTrigger() {
- Trigger *trigger(map->TriggerAt(Vector<int>(controlled->Position())));
+ Trigger *trigger(map->TriggerAt(ToInt(controlled->Position())));
if (!trigger || trigger->GetType() != Trigger::TYPE_CONTACT) return false;
RunTrigger(*trigger);
return true;
}
bool MapState::CheckMoveTrigger() {
- Trigger *trigger(map->TriggerAt(Vector<int>(controlled->Position())));
+ Trigger *trigger(map->TriggerAt(ToInt(controlled->Position())));
if (!trigger || int(trigger->GetType()) != nextDirection) return false;
RunTrigger(*trigger);
return true;
Entity &f(*e.Follower());
UpdateFollower(f);
- Vector<int> coords(map->TileCoordinates(e.Position()));
- Vector<int> fCoords(map->TileCoordinates(f.Position()));
+ Vector<int> coords(map->TileCoordinates(ToInt(e.Position())));
+ Vector<int> fCoords(map->TileCoordinates(ToInt(f.Position())));
Vector<int> direction(coords - fCoords);
if (direction.Y() < 0) {
f.SetSpeed(walkingSpeed);
f.StartAnimation(*this);
} else {
- f.SetSpeed(0.0f);
+ f.SetSpeed(0);
f.StopAnimation();
}
}
void MapState::StopFollowers(Entity &e) {
for (Entity *f(e.Follower()); f; f = f->Follower()) {
- f->SetSpeed(0.0f);
+ f->SetSpeed(0);
f->StopAnimation();
}
}
#include "../common/fwd.h"
#include "../common/ScriptHost.h"
#include "../common/ScriptRunner.h"
+#include "../math/Fixed.h"
#include "../math/Vector.h"
#include "../graphics/Camera.h"
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
void AddEntity(Entity *e) { entities.push_back(e); }
void ControlEntity(Entity *e) { controlled = e; camera.SetTarget(&e->Position()); }
- void SetWalkingSpeed(float s) { walkingSpeed = s; }
+ void SetWalkingSpeed(math::Fixed<8> s) { walkingSpeed = s; }
void Transition(Map *, const math::Vector<int> &coordinates);
Entity *controlled;
Entity *pushed;
common::ScriptRunner runner;
- app::Timer<float> moveTimer;
+ app::Timer<Uint32> moveTimer;
math::Vector<int> lastLock;
graphics::Camera camera;
std::vector<Entity *> entities;
- float walkingSpeed;
+ math::Fixed<8> walkingSpeed;
int nextDirection;
bool afterLock;
bool skipLock;
}
-void TransitionState::UpdateWorld(float deltaT) {
+void TransitionState::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
-void CapsuleChangeMenu::UpdateWorld(float deltaT) {
+void CapsuleChangeMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
void RenderClasses(SDL_Surface *, const math::Vector<int> &) const;
}
-void CapsuleFeedMenu::UpdateWorld(float deltaT) {
+void CapsuleFeedMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
}
-void CapsuleMenu::UpdateWorld(float deltaT) {
+void CapsuleMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
void RenderBackground(SDL_Surface *screen) const;
}
}
-void CapsuleNameMenu::UpdateWorld(float deltaT) {
+void CapsuleNameMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
-void ChangeHero::UpdateWorld(float deltaT) {
+void ChangeHero::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
}
-void ConfigMenu::UpdateWorld(float deltaT) {
+void ConfigMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
}
-void EquipMenu::UpdateWorld(float deltaT) {
+void EquipMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
}
-void InventoryMenu::UpdateWorld(float deltaT) {
+void InventoryMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
int Width() const;
}
}
-void PartyMenu::UpdateWorld(float deltaT) {
+void PartyMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
}
-void ScenarioMenu::UpdateWorld(float deltaT) {
+void ScenarioMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
int Width() const;
}
-void SelectHero::UpdateWorld(float deltaT) {
+void SelectHero::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
private:
}
}
-void SpellMenu::UpdateWorld(float deltaT) {
+void SpellMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public:
}
}
-void StatusMenu::UpdateWorld(float deltaT) {
+void StatusMenu::UpdateWorld(Uint32 deltaT) {
}
public:
virtual void HandleEvents(const app::Input &);
- virtual void UpdateWorld(float deltaT);
+ virtual void UpdateWorld(Uint32 deltaT);
virtual void Render(SDL_Surface *);
public: