kaos/KaosSrc/objects2.hpp

244 lines
5.8 KiB
C++
Raw Permalink Normal View History

2024-10-12 20:32:30 -05:00
/************************************************************************
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
************************************************************************/
// Boom types
#define BOOM_PALLOT 0 // pallottola
#define BOOM_MISSIL 1 // missile expl.
#define BOOM_BLOOD 2 // sangue
#define BOOM_SLIMER 3 // slimer slime
#define BOOM_SPIDER 4 // spider venom
#define BOOM_ASCIA 5 // ascia
#define BOOM_SMOG 6 // fumo
class Ossa : public Actor
{
int animtrig;
void launch(int angle, int strong);
protected:
virtual void setid(int the_id)
{Object::setid(the_id);};
public:
Ossa(fixed px, fixed py, int type);
Ossa(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class FlOssa : public Actor
{
int speed, bang;
public:
FlOssa(fixed px, fixed py, int angle, int _speed);
FlOssa(int handle);
virtual void save(int handle);
virtual void animate();
};
class ObjMover : public Actor
{
int speed, bounceang;
int objlinkID;
public:
ObjMover(int _objlinkID, int angle, int _speed);
ObjMover(int handle);
//~ObjMover();
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class Bonus : public LightActor
{
int animtrig, animang;
public:
Bonus(fixed px, fixed py);
Bonus(int handle);
virtual void animate();
virtual int getlightfig();
//virtual void handle_event(TEvent &event);
};
class AntiKaos : public LightActor
{
int animtrig, animang;
public:
AntiKaos(fixed px, fixed py);
AntiKaos(int handle);
virtual void animate();
virtual int getlightfig();
virtual void handle_event(TEvent &event);
};
class Enemy : public Actor
{
protected:
int posneg;
int animtrig, animstate;
int firstfig, walkspeed, speed, hitangle;
public:
Enemy(fixed px, fixed py, byte type);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class Slimer : public Actor
{
protected:
int animtrig, animstate;
int speed, hitangle;
int objlink;
int cannoncharge, scanangle, mysound, floatangle;
char objseen, posneg, sndcount;
char turnnum, turning, turnable;
public:
Slimer(fixed px, fixed py);
Slimer(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class Spider : public Actor
{
protected:
int animtrig, animstate;
int speed, hitangle;
int scanangle, objlink;
int mysound, cannoncharge;
public:
Spider(fixed px, fixed py);
Spider(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class Soldier : public Actor
{
protected:
int animstate, animtrig;
int speed, hitangle;
int scanangle, zigzagang, objlink;
char objseen, recover;
int turncount,havetoturn;
fixed oldobjx,oldobjy;
public:
Soldier(fixed px, fixed py);
Soldier(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class Mouse : public Actor
{
protected:
int animstate, animtrig;
public:
Mouse(fixed px, fixed py);
Mouse(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class FireBoom : public LightActor
{
int animtrig;
byte type;
fixed decay, decayspd;
public:
FireBoom(fixed px, fixed py, fixed h, int angle, byte boomtype);
FireBoom(int handle);
virtual void save(int handle);
virtual void animate();
virtual int getlightfig();
};
class Fireball : public LightActor
{
int ownerid;
fixed deh;
char sendsound, animtrig;
int /*vangle,*/ shspeed, boomcount;
public:
Fireball(fixed px, fixed py, int fireangle, /*int _vangle,*/ int type,
fixed h1, fixed h2, fixed dist, int _ownerid);
Fireball(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &evnt);
virtual int getlightfig();
};
class Bomb : public Actor
{
int ownerid, timer, animtrig, strenght;
fixed decay;
public:
Bomb(fixed px, fixed py, fixed h, int angle, int strng,
int _ownerid);
Bomb(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &evnt);
int getownerid() { return ownerid; }
};
class Torcia : public LightActor
{
char animtrig;
int fireid;
public:
Torcia(fixed px, fixed py, int fig);
Torcia(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
virtual int getlightfig();
};
class Lampadario : public LightActor
{
char animtrig;
fixed decay;
public:
Lampadario(fixed px, fixed py, int fig);
Lampadario(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
virtual int getlightfig();
};
class Barile : public LightActor
{
int animtrig, speed;
int ownerid;
protected:
virtual void setid(int the_id)
{Object::setid(the_id);};
public:
Barile(fixed px, fixed py);
Barile(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};
class Vaso : public Actor
{
int animtrig, speed;
byte whatin;
protected:
virtual void setid(int the_id)
{Object::setid(the_id);};
public:
Vaso(fixed px, fixed py, int fig, byte objin);
Vaso(int handle);
virtual void save(int handle);
virtual void animate();
virtual void handle_event(TEvent &event);
};