]> git.localhorst.tv Git - l2e.git/commitdiff
switched geometric scalars from floating to fixed
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 27 Dec 2012 14:52:42 +0000 (15:52 +0100)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 27 Dec 2012 14:52:42 +0000 (15:52 +0100)
59 files changed:
src/app/Application.cpp
src/app/State.h
src/battle/BattleState.cpp
src/battle/BattleState.h
src/battle/states/PerformAttacks.cpp
src/battle/states/PerformAttacks.h
src/battle/states/RunState.cpp
src/battle/states/RunState.h
src/battle/states/SelectAttackType.cpp
src/battle/states/SelectAttackType.h
src/battle/states/SelectIkari.cpp
src/battle/states/SelectIkari.h
src/battle/states/SelectItem.cpp
src/battle/states/SelectItem.h
src/battle/states/SelectMoveAction.cpp
src/battle/states/SelectMoveAction.h
src/battle/states/SelectSpell.cpp
src/battle/states/SelectSpell.h
src/battle/states/SelectTarget.cpp
src/battle/states/SelectTarget.h
src/battle/states/SwapHeroes.cpp
src/battle/states/SwapHeroes.h
src/graphics/Camera.cpp
src/graphics/Camera.h
src/graphics/ColorFade.cpp
src/graphics/ColorFade.h
src/main.cpp
src/map/Entity.cpp
src/map/Entity.h
src/map/MapState.cpp
src/map/MapState.h
src/map/TransitionState.cpp
src/map/TransitionState.h
src/menu/CapsuleChangeMenu.cpp
src/menu/CapsuleChangeMenu.h
src/menu/CapsuleFeedMenu.cpp
src/menu/CapsuleFeedMenu.h
src/menu/CapsuleMenu.cpp
src/menu/CapsuleMenu.h
src/menu/CapsuleNameMenu.cpp
src/menu/CapsuleNameMenu.h
src/menu/ChangeHero.cpp
src/menu/ChangeHero.h
src/menu/ConfigMenu.cpp
src/menu/ConfigMenu.h
src/menu/EquipMenu.cpp
src/menu/EquipMenu.h
src/menu/InventoryMenu.cpp
src/menu/InventoryMenu.h
src/menu/PartyMenu.cpp
src/menu/PartyMenu.h
src/menu/ScenarioMenu.cpp
src/menu/ScenarioMenu.h
src/menu/SelectHero.cpp
src/menu/SelectHero.h
src/menu/SpellMenu.cpp
src/menu/SpellMenu.h
src/menu/StatusMenu.cpp
src/menu/StatusMenu.h

index 0a5f5e73d4d1343c9eb770d16e09951af0c1aea2..76d98efc7fbc2609053391f7b7894693523a6c9f 100644 (file)
@@ -175,8 +175,8 @@ void Application::HandleEvents() {
 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);
        }
 }
 
index 19b6fe0475fbb340a81941d193ca2c01af69ff2b..0b8d51f628a846deacd1f4ce67e6ff6160f93c04 100644 (file)
@@ -31,7 +31,7 @@ public:
        /// 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;
 
@@ -70,12 +70,12 @@ public:
        /// 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;
 
 };
 
index 8218c10504b644016ecbc8eb0c7c3a69f579595d..cfac62d0b1fb0f655ffc33f5db678886990da882 100644 (file)
@@ -389,7 +389,7 @@ void BattleState::HandleEvents(const Input &input) {
 
 }
 
-void BattleState::UpdateWorld(float deltaT) {
+void BattleState::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 525889591d5847e8088e0c5753d28f67e6d7cfc6..d2423719e04c5d035f7e6273c5a68c687315ec94 100644 (file)
@@ -52,7 +52,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index f930de955b39a72da9c3255e17d5ec5c162c3c23..2f750b2b4149c45d7794d40e6307347211755a94 100644 (file)
@@ -217,7 +217,7 @@ void PerformAttacks::ResetAnimation() {
 }
 
 
-void PerformAttacks::UpdateWorld(float deltaT) {
+void PerformAttacks::UpdateWorld(Uint32 deltaT) {
 
 }
 
index de20f76cbeaa267ccd5f6a08eb96f0a3094f4dce..adbf3ba8f7e84b80399dd3b5ad4a7e34bd7c9d04 100644 (file)
@@ -30,7 +30,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index afbbe5321cd015c17f1dabcd56afb3e508786e94..956fa133ec1317329a41bce85e23f1d4d448187e 100644 (file)
@@ -52,7 +52,7 @@ void RunState::HandleEvents(const Input &input) {
 }
 
 
-void RunState::UpdateWorld(float deltaT) {
+void RunState::UpdateWorld(Uint32 deltaT) {
 
 }
 
index cdf7881c9d48d9be2235173625bfde731ae92db6..f21280ee224a21ef1cbe6b7f470fddc4dfdb9453 100644 (file)
@@ -24,7 +24,7 @@ public:
 public:
 
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index 9f6e561be43fadea59adcd44eeec6ea0ea022a65..0dd5bc472a4aff0177dbd15ccb244a0d026d0ceb 100644 (file)
@@ -121,7 +121,7 @@ void SelectAttackType::HandleEvents(const Input &input) {
        }
 }
 
-void SelectAttackType::UpdateWorld(float deltaT) {
+void SelectAttackType::UpdateWorld(Uint32 deltaT) {
 
 }
 
index c096fa02a5b70903ad057c2998f60ee7b407415f..c8f6e99604775092ffe4c0998fd8b2faa6e29fd0 100644 (file)
@@ -23,7 +23,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index 4bfea03d749142430489cdbc456d1279d147d03d..4b8c5b8d0e529ab7f18a371312b13af5913a67ba 100644 (file)
@@ -93,7 +93,7 @@ void SelectIkari::HandleEvents(const Input &input) {
        }
 }
 
-void SelectIkari::UpdateWorld(float deltaT) {
+void SelectIkari::UpdateWorld(Uint32 deltaT) {
 
 }
 
index ca08732e5ffe8a25b98bfe547c7cee6f49f9d666..e665c696c22cb1240630e9b644be0b3c2cf0ce31 100644 (file)
@@ -24,7 +24,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index b64311640020055369f1d692726799c324d3d302..acebefa2796f25e0901c34869780b2772838e34f 100644 (file)
@@ -92,7 +92,7 @@ void SelectItem::HandleEvents(const Input &input) {
        }
 }
 
-void SelectItem::UpdateWorld(float deltaT) {
+void SelectItem::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 97863e21b97c32ea40f78ea44720fa0387a676fa..2bf4d594327af5aa0f574a5d6831ad928dc5825a 100644 (file)
@@ -23,7 +23,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index 74e86281c3761097bc75e149e41ce51fed696c7c..b77f98c1a2459a7da7aa9e80bfb590542f6a89cc 100644 (file)
@@ -68,7 +68,7 @@ void SelectMoveAction::HandleEvents(const Input &input) {
        }
 }
 
-void SelectMoveAction::UpdateWorld(float deltaT) {
+void SelectMoveAction::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 069f98d864aedb97b0cc0d7f4ba9170db3af4e5e..0e973d4751c2e3698c9d1e8fc5a15bab6cdb74ca 100644 (file)
@@ -23,7 +23,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index e15fa2e5490710579ebda387b6bcdf436a392b52..8c0c4da5687110eb1cf3ae574a2e0bf2ccc5ee64 100644 (file)
@@ -93,7 +93,7 @@ void SelectSpell::HandleEvents(const Input &input) {
        }
 }
 
-void SelectSpell::UpdateWorld(float deltaT) {
+void SelectSpell::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 93734a3ded582857e5202a835d3fc40b37dc32f6..8ad19f1410b09e58e03fab4b59a9f35f1bd154e4 100644 (file)
@@ -23,7 +23,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index 1644c2e8d18f9bebee856d9bc6b8754094e5a9f1..a0955b2691d477bb7fbd779a2c4f43b587055cda 100644 (file)
@@ -75,7 +75,7 @@ void SelectTarget::HandleEvents(const Input &input) {
        }
 }
 
-void SelectTarget::UpdateWorld(float deltaT) {
+void SelectTarget::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 542e0e46449c0179bdc224cfb0bb549b6aaeea16..8970260042030ea2fff4520e881e63fda3c9e07d 100644 (file)
@@ -24,7 +24,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index 9bde2b39202a1196c632690ecc5ff216083fbf6a..da2342b14bcffd3e7f60e1842135a6e4effd7623 100644 (file)
@@ -110,7 +110,7 @@ void SwapHeroes::MoveLeft() {
 }
 
 
-void SwapHeroes::UpdateWorld(float deltaT) {
+void SwapHeroes::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 14d0d723c9611dca6a96db884a2ed0b6135329b3..7ebf3f59229d5e14f52c04ed24c3189bd3cd823d 100644 (file)
@@ -23,7 +23,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index ee87e3f6f107e6cc4f314cbf47acf69d74c15280..ad44c0494faf3333ee74b6131277c79b66b21f3d 100644 (file)
@@ -2,17 +2,18 @@
 
 #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;
 }
 
@@ -20,8 +21,8 @@ void Camera::SetTarget(const Vector<float> *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>();
        }
index 6067baba68e4b5c2cdc8f11e103ce7e152f38b72..4b2216b8c8d96773e6ebf2252c97f0fc1f732073 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef GRAPHICS_CAMERA_H_
 #define GRAPHICS_CAMERA_H_
 
+#include "../math/Fixed.h"
 #include "../math/Vector.h"
 
 namespace graphics {
@@ -8,17 +9,17 @@ 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;
 
index 45cd6054ce1a810de47df3672da863e59dafad7f..72bf40978791cfb1d0bad8143eda8d241fc98506 100644 (file)
@@ -94,7 +94,7 @@ void ColorFade::HandleEvents(const Input &input) {
 }
 
 
-void ColorFade::UpdateWorld(float deltaT) {
+void ColorFade::UpdateWorld(Uint32 deltaT) {
        if (interactive) {
                slave->UpdateWorld(deltaT);
        }
index b3e98bd15f7973bff89c89ff0efe822be5f65dc3..3396ba37130fabaead4b69553ed1a1541b14ccd9 100644 (file)
@@ -21,7 +21,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index a890871fb4c162dd12399ff1baa0190f5a6d7dc8..05f3d8ad231057619d140110c6f6b42b0cc95abc 100644 (file)
@@ -17,6 +17,7 @@
 #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"
@@ -63,6 +64,7 @@ using common::GameConfig;
 using common::GameState;
 using common::Hero;
 using common::Spell;
+using math::Fixed;
 using math::Vector;
 using graphics::Texture;
 using loader::Caster;
@@ -87,7 +89,7 @@ int main(int argc, char **argv) {
        const int width = 512;
        const int height = 448;
 
-       const float walkSpeed = 128.0f;
+       const Fixed<8> walkSpeed = Fixed<8>(1, 8);
 
        bool battle(false);
 
@@ -278,17 +280,17 @@ int main(int argc, char **argv) {
                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());
 
index fd2cc686787d3474054462be551812ffe9f07ee8..93530f142735021f063f8dab333f66d694680f51 100644 (file)
@@ -11,6 +11,7 @@ using battle::Monster;
 using battle::PartyLayout;
 using graphics::Animation;
 using graphics::Sprite;
+using math::Fixed;
 using math::Vector;
 using loader::FieldDescription;
 using loader::Interpreter;
@@ -40,7 +41,7 @@ void Entity::SetOrientation(Orientation o) {
        }
 }
 
-void Entity::SetSpeed(float s) {
+void Entity::SetSpeed(Fixed<8> s) {
        speed = s;
        UpdateVelocity();
 }
@@ -98,22 +99,22 @@ void Entity::SetAnimation(const graphics::Animation *a) {
 
 
 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;
        }
 }
@@ -121,12 +122,12 @@ void Entity::UpdateVelocity() {
 
 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;
 }
 
@@ -134,9 +135,9 @@ void Entity::Update(float 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);
        }
 }
 
index be3197d9da4010fa6e9fc2100171c3e3d44a2f62..d68861c7a60c5a7006aefe234abd39d26d3af294 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "../battle/fwd.h"
 #include "../battle/Monster.h"
+#include "../math/Fixed.h"
 #include "../math/Vector.h"
 #include "../graphics/fwd.h"
 #include "../graphics/Animation.h"
@@ -38,12 +39,12 @@ public:
 
 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; }
@@ -79,7 +80,7 @@ public:
        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();
@@ -127,7 +128,7 @@ public:
        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;
 
@@ -148,10 +149,10 @@ private:
        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;
 
 };
index 121dfbcdc0e41d0478d37500f906f4235902d6f2..51e99869f618588b2bb09b3b76dfdde1b9cbc687 100644 (file)
@@ -18,6 +18,7 @@ using app::Application;
 using app::Input;
 using battle::BattleState;
 using common::GameConfig;
+using math::Fixed;
 using math::Vector;
 using graphics::ColorFade;
 using menu::PartyMenu;
@@ -90,7 +91,7 @@ void MapState::HandleEvents(const Input &input) {
        }
 }
 
-void MapState::UpdateWorld(float deltaT) {
+void MapState::UpdateWorld(Uint32 deltaT) {
        if (controlled && controlled->TileLock(map->Tileset()->Size())) {
                OnTileLock();
        }
@@ -102,7 +103,7 @@ void MapState::UpdateWorld(float deltaT) {
 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();
@@ -134,11 +135,11 @@ void MapState::OnTileLock() {
                                        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;
                        }
@@ -147,12 +148,12 @@ void MapState::OnTileLock() {
                        }
                }
        } 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;
                }
        }
@@ -162,10 +163,10 @@ void MapState::OnTileLock() {
 
 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:
@@ -199,11 +200,11 @@ bool MapState::CheckBlocking() {
                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;
@@ -250,7 +251,7 @@ bool MapState::CheckBlocking(const Vector<int> &position, Entity::Orientation di
        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;
                }
        }
@@ -278,7 +279,7 @@ void MapState::LockEntities() {
 }
 
 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
@@ -287,10 +288,10 @@ bool MapState::CheckMonster() {
 
        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]);
@@ -321,7 +322,7 @@ bool MapState::CheckMonster() {
 }
 
 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;
@@ -340,7 +341,7 @@ void MapState::OnMove(bool realMove) {
 }
 
 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;
@@ -357,8 +358,8 @@ void MapState::UpdateFollower(Entity &e) {
        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) {
@@ -378,14 +379,14 @@ void MapState::UpdateFollower(Entity &e) {
                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();
        }
 }
index 5bbd6f856648c25bf062e2e015cf50fe2db71aeb..89d235ddd631e22e0e99e93ac0d9d1b43031f950 100644 (file)
@@ -7,6 +7,7 @@
 #include "../common/fwd.h"
 #include "../common/ScriptHost.h"
 #include "../common/ScriptRunner.h"
+#include "../math/Fixed.h"
 #include "../math/Vector.h"
 #include "../graphics/Camera.h"
 
@@ -25,14 +26,14 @@ public:
 
 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);
 
@@ -80,11 +81,11 @@ private:
        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;
index 7ea358898ab5c57105f054af58ccd1bddc83b85b..cb26df5a3052b2a5d8470d7e941f3c0dae7572b5 100644 (file)
@@ -45,7 +45,7 @@ void TransitionState::HandleEvents(const Input &input) {
 }
 
 
-void TransitionState::UpdateWorld(float deltaT) {
+void TransitionState::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 9f2cd193a1febfbd9eec9a1c610892c2711d57c4..293cdb2cf906bdd57f5e368253113d68bdf74057 100644 (file)
@@ -16,7 +16,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index de9492988875c6181d69a2ae0a6abd5ae62cf702..c19f0f599ce8802329b7d1b661cf666e7eeff5f7 100644 (file)
@@ -105,7 +105,7 @@ void CapsuleChangeMenu::PreviousClass() {
 }
 
 
-void CapsuleChangeMenu::UpdateWorld(float deltaT) {
+void CapsuleChangeMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 354cb61d09e7012df633297612f0a425482cc86b..2667595aeb573813680a58e20f9d4a2ca2b874c6 100644 (file)
@@ -18,7 +18,7 @@ public:
 
 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;
index 43324c71d6a3e9c8eb0d6debb5816b5555d74534..085c73d29d06c7cb883ac009f584d408bc743cb4 100644 (file)
@@ -149,7 +149,7 @@ void CapsuleFeedMenu::FeedSelected() {
 }
 
 
-void CapsuleFeedMenu::UpdateWorld(float deltaT) {
+void CapsuleFeedMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 3ea8c1a097861c5710e65e6b2934970aa0d734a6..5d8fbe6e73b1a6451f8c0a6a6b655105dee5224a 100644 (file)
@@ -19,7 +19,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index 67afd57af42ee4360b44a197af487bd59c6bba67..e50215ce34979cc628853a9225d55d31c160f637 100644 (file)
@@ -83,7 +83,7 @@ void CapsuleMenu::HandleEvents(const Input &input) {
        }
 }
 
-void CapsuleMenu::UpdateWorld(float deltaT) {
+void CapsuleMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 8f8063785a485369c6d9c22896644b1313e8c91e..0ddb2e874a8e4e65ca2758f0137e30e8c0ee1111 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 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;
index 2bdad28bf7c0f7b85a13708b8012da8c4107822d..0dc21cc597a5c38c794ce2ab5f4a4e28f76ac1d9 100644 (file)
@@ -129,7 +129,7 @@ void CapsuleNameMenu::StoreName() {
        }
 }
 
-void CapsuleNameMenu::UpdateWorld(float deltaT) {
+void CapsuleNameMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index f85d11ce554b03a9373eae103c09ca24bf660e75..4630c0acf4f6fde4527fda449a9e53f100c8276e 100644 (file)
@@ -19,7 +19,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index 0c1ed4a10ebc70fbf4adf3b41f3b5502d4a4e52c..69f79c4429647af911ce5f2e1fb4fa071a9a5e0d 100644 (file)
@@ -68,7 +68,7 @@ void ChangeHero::HandleEvents(const Input &input) {
 
 }
 
-void ChangeHero::UpdateWorld(float deltaT) {
+void ChangeHero::UpdateWorld(Uint32 deltaT) {
 
 }
 
index ca5f64bac141189f266c5ae9a9fb75c135002c1e..c046af30fa4bcd0fce1356cd5b460b16941431d0 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index e96c76bad7351226cc75e5bddaa96354f42095e6..8445e82cce78ec811b6d7797b9b9f98affe4ce30 100644 (file)
@@ -98,7 +98,7 @@ void ConfigMenu::HandleEvents(const Input &input) {
        }
 }
 
-void ConfigMenu::UpdateWorld(float deltaT) {
+void ConfigMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index f5e31c12499eb0b29234f32fbf52e02e3c25f821..cdee9fc376ee35ab04f0dafb90902a789882f34e 100644 (file)
@@ -16,7 +16,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index 494c25a5af89afacbd9bc088eee6d17e96a74bb3..8e509660ee302a81b50e457712dfbb3c60581fd0 100644 (file)
@@ -157,7 +157,7 @@ void EquipMenu::HandleEvents(const Input &input) {
        }
 }
 
-void EquipMenu::UpdateWorld(float deltaT) {
+void EquipMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index ffa7a837b476ab9a61a8988ec02337a3da313066..992afd793de4897f27b1eee950b7328fbd07b5a0 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index 95ca7464ca1348615ceebdf00adba0320e89aa52..9a4bf13e7ab0efc9db6afa3f6262da0618960bb8 100644 (file)
@@ -137,7 +137,7 @@ void InventoryMenu::HandleEvents(const Input &input) {
        }
 }
 
-void InventoryMenu::UpdateWorld(float deltaT) {
+void InventoryMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 11acf46ce249d35f2fa3d90747b85fb4c2894ff7..780bacb7725294dc278ae7ab1316bd0dbfdf75bd 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 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;
index 577772ea88eba74054987f269d3d7361500bd855..46e271bd70218fc95f8d889d6b74f703f9021b2d 100644 (file)
@@ -126,7 +126,7 @@ void PartyMenu::HandleEvents(const Input &input) {
        }
 }
 
-void PartyMenu::UpdateWorld(float deltaT) {
+void PartyMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index a009c339c4a0acc25c4f5f491b2320eecc955c4a..934369e121499d6e7ba09025b36bf978844339f5 100644 (file)
@@ -19,7 +19,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index a86f9a93412654bcba39ad8d41ed72f291bf974a..92c510128faf68ed9f0eb4e72a8b20d08e742545 100644 (file)
@@ -75,7 +75,7 @@ void ScenarioMenu::HandleEvents(const Input &input) {
        }
 }
 
-void ScenarioMenu::UpdateWorld(float deltaT) {
+void ScenarioMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 3e99ef000097aa4dd25580fb44908e5d98a3f328..886046c8ed8946b65589f4139a04a6b2b6979d43 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 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;
index e573d323c144562a2f78bd79f5559119cbf7c0e7..ffc21a3bbc1a5875f39ffb87ad915ea33f4eb79a 100644 (file)
@@ -105,7 +105,7 @@ const Resources &SelectHero::Res() const {
 }
 
 
-void SelectHero::UpdateWorld(float deltaT) {
+void SelectHero::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 77891908d70f0f62c4e0a783fb8a54a10608d98a..8f7f9f4a4882f5b505802b2a9b9f5b21ce2762d6 100644 (file)
@@ -21,7 +21,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 private:
index af743ccdc9ffcfabfbc680789ebce3175cdf27fd..09ca56ca53faa8c88fc28b2c0c971d31ea491964 100644 (file)
@@ -145,7 +145,7 @@ void SpellMenu::HandleEvents(const Input &input) {
        }
 }
 
-void SpellMenu::UpdateWorld(float deltaT) {
+void SpellMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index 42dbfbbbabaf04022748d6de00d8cd89e111f136..4bfcb015200ce8d8d33d2ceeb95c78c6b1c7d2e0 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public:
index 09c94050bc321ac4a49393c9fb99bf4751cd7e97..49695dc48f6e2313a9fd90c7a583c9550127fdd0 100644 (file)
@@ -81,7 +81,7 @@ void StatusMenu::HandleEvents(const Input &input) {
        }
 }
 
-void StatusMenu::UpdateWorld(float deltaT) {
+void StatusMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
index eaf10177a7c396317e3b695617ed78aa19f2ae65..6ef81898c1b3da60f37d9f1d72febc70c54fff3c 100644 (file)
@@ -17,7 +17,7 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        virtual void Render(SDL_Surface *);
 
 public: