X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FCharacter.hh;h=6507906d067cf9c3d78162dd6a32916fafa9b76e;hp=2894c5ebcd35f0591840b9cf33a6514a915358f4;hb=b357615aba1dbde81e3c6999366604e6001010a7;hpb=16d1a05b0777e97a45c48e2874aa4e5cc791282e diff --git a/src/Character.hh b/src/Character.hh index 2894c5e..6507906 100644 --- a/src/Character.hh +++ b/src/Character.hh @@ -29,30 +29,46 @@ #ifndef _CHARACTER_HH_ #define _CHARACTER_HH_ -#include -#include -#include -#include +#include + +#include +#include +#include +#include +#include + +#include "Animation.hh" +#include "Tilemap.hh" + + + +class 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: + Character(const std::string& name); - ~Character(); + virtual ~Character() {} + + virtual void update(Mf::Scalar t, Mf::Scalar dt); + virtual void draw(Mf::Scalar alpha) const; - void draw(Mf::Scalar alpha); + void addImpulse(Mf::Vector2 impulse); + void addForce(Mf::Vector2 force); + void setPosition(Mf::Vector2 position); - Mf::Tilemap& getTilemap(); - Mf::Animation& getAnimation(); + //virtual int getOctant(const Mf::Aabb<3>& aabb) const; -private: - Mf::Tilemap tilemap; - Mf::Animation animation; + Tilemap tilemap; + Animation animation; };