// Enemy.hpp : Enemy class // // 24.11.1998 / DH - Genesis // // Copyright (c) 1998 Daniel Hartmeier. All rights reserved. #ifndef __Enemy__ #define __Enemy__ class Enemy; #include "Sprite.hpp" #include "Level.hpp" // ------------------------------------------------------------------- class Enemy : public PersonSprite { public: Enemy(Level *level, Image *image, int w = 16, int h = 16, int u = 0, int v = 0) : PersonSprite(image, w, h, u, v), level(level), direction(1), time(0), step(0) {} virtual ~Enemy() {} protected: Level *level; int direction, time, step; private: }; // ------------------------------------------------------------------- class Spider : public Enemy { public: Spider(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Scorpion : public Enemy { public: Scorpion(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class BeetleA : public Enemy { public: BeetleA(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Duck : public Enemy { public: Duck(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Bird : public Enemy { public: Bird(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Snail : public Enemy { public: Snail(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Mosquito : public Enemy { public: Mosquito(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Libelle : public Enemy { public: Libelle(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class BeetleB : public Enemy { public: BeetleB(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class BeetleC : public Enemy { public: BeetleC(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class AntA : public Enemy { public: AntA(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class AntB : public Enemy { public: AntB(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Raupe : public Enemy { public: Raupe(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Mushroom : public Enemy { public: Mushroom(Level *level, Image *image) : Enemy(level, image) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Fly : public Enemy { public: Fly(Level *level, Image *image) : Enemy(level, image, 32, 16) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Frog : public Enemy { public: Frog(Level *level, Image *image) : Enemy(level, image, 32, 32) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Crab : public Enemy { public: Crab(Level *level, Image *image) : Enemy(level, image, 32, 16) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- class Dragon : public Enemy { public: Dragon(Level *level, Image *image) : Enemy(level, image, 64, 32) {} virtual void act(unsigned long pad); virtual void draw(GsOT *ot); }; // ------------------------------------------------------------------- #endif