X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FCharacter.hh;h=5dfde01922860cbbbe6759f00eacc5a13b1f2bee;hb=a31d65a998121df0651c57bfb68782e2a07d2e2f;hp=e39e7ff93bb9ad3de3e66ef6e1ed163e6a97df11;hpb=29e3d45f7bbbf31eadf793c41ff2b3d9c47b7539;p=chaz%2Fyoink diff --git a/src/Character.hh b/src/Character.hh index e39e7ff..5dfde01 100644 --- a/src/Character.hh +++ b/src/Character.hh @@ -29,30 +29,47 @@ #ifndef _CHARACTER_HH_ #define _CHARACTER_HH_ -#include -#include -#include -#include +#include + +#include +#include +#include +#include +#include +#include + +#include "Animation.hh" +#include "Tilemap.hh" + + + +struct Character; +typedef boost::shared_ptr CharacterP; /** - * Parent class of animate objects with "personalities." + * Parent class of animate objects with "personalities." This basically + * includes the heroine herself and the bad guys. */ -class Character : public Mf::Drawable +class Character : public Mf::RigidBody2, public Mf::OctreeInsertable { public: + Character(const std::string& name); - ~Character(); + virtual ~Character() {} - void draw(Mf::Scalar alpha) const; + virtual void update(Mf::Scalar t, Mf::Scalar dt); + virtual void draw(Mf::Scalar alpha) const; - Mf::Tilemap& getTilemap(); - Mf::Animation& getAnimation(); + virtual int getOctant(const Mf::Aabb& aabb) const; + + Tilemap tilemap; + Animation animation; private: - Mf::Tilemap tilemap; - Mf::Animation animation; + + static const Mf::Scalar z = 96.0; };