#include <iostream>
#include <string>
+#include <vector>
#include <boost/shared_ptr.hpp>
#include <Moof/Camera.hh>
-#include <Moof/Dispatcher.hh>
#include <Moof/Interpolator.hh>
#include <Moof/Layer.hh>
#include <Moof/Math.hh>
-#include <Moof/Scene.hh>
+#include <Moof/Script.hh>
#include <Moof/Sound.hh>
+#include <Moof/Line.hh>
+#include <Moof/Plane.hh>
+#include <Moof/Ray.hh>
+#include <Moof/Sphere.hh>
+#include <Moof/Timer.hh>
+
#include "Character.hh"
-#include "Hud.hh"
+#include "Heroine.hh"
+#include "Scene.hh"
class GameLayer;
class GameLayer : public Mf::Layer
{
public:
+
GameLayer();
static GameLayerP alloc()
}
void pushed(Mf::Engine& engine);
- void update(Mf::Scalar t, Mf::Scalar dt);
- void draw(Mf::Scalar alpha) const;
- bool handleEvent(const Mf::Event& event);
+
+ void update(Mf::Engine& engine, Mf::Scalar t, Mf::Scalar dt);
+ void draw(Mf::Engine& engine, Mf::Scalar alpha) const;
+ bool handleEvent(Mf::Engine& engine, const Mf::Event& event);
+
+ struct State
+ {
+ Mf::Script script;
+ std::vector<std::string> sceneList;
+
+ HeroineP heroine;
+ SceneP scene;
+
+ Mf::PolynomialInterpolator<5> interp;
+
+ Mf::Camera camera;
+ };
private:
- Mf::Sound music;
+ void loadSceneLoader();
+ void advanceScene();
+
+ void thinkTimer();
+
+ void setProjection();
+ void setProjection(Mf::Scalar width, Mf::Scalar height);
- CharacterP heroine;
- Mf::Sound punchSound;
+ State mState;
+ Mf::Timer mThinkTimer;
- Mf::PolynomialInterpolator<5> interp;
- Mf::Lerp fadeIn;
+ Mf::SoundStream mMusic;
+ Mf::Sound mPunchSound;
- Mf::Camera camera;
- Mf::OctreeP octree;
+ Mf::Ray<2> mRay;
+ Mf::Line<2> mLine;
+ Mf::Sphere<2> mSphere;
- HudP hud;
+ Mf::Timer mRayTimer;
+ void rayTimer();
};