diff options
Diffstat (limited to 'actor.h')
| -rwxr-xr-x | actor.h | 190 |
1 files changed, 190 insertions, 0 deletions
@@ -0,0 +1,190 @@ +/*
+ * Module Name: Actor
+ * Description: Every action that has to do with actors (playable and NPCs).
+ * It has all the lua stuff, which is messy as fuck.
+ */
+
+class Actor : public CLuaScript
+{
+
+protected:
+
+ int x, y, w, h, clip_x, clip_y, currentframe, oldclip, m_iMethodBase, walk_time;
+ float vertical_speed, falltime, speed, ownspeed, totalspeed, vertical_acc, horizontal_acc;
+
+ Actor *parent;
+
+ //keys
+ int leftkey, rightkey, zkey, xkey, ckey, shotcount;
+
+ SDL_Surface *sprite;
+ Mix_Chunk *walkbg;
+
+ Map *currentmap;
+ Audio *audio;
+ Game_overwatch *overwatch;
+
+ bool colliding[4];
+ bool dying, animating, animup, jumplock, shootlock,
+ switchlock, physics, controllable, noclip;
+
+ Direction currentdirection;
+ Enemy enemy;
+
+
+public:
+
+ //constructors and destructor.
+ Actor(int, int, const char*, const char*, Map *, Audio *, Game_overwatch *, CLuaVirtualMachine&);
+ Actor(int, int, const char*, const char*, Actor *, Direction, bool, Map *, Audio *, Game_overwatch *, CLuaVirtualMachine&);
+ virtual ~Actor(void);
+
+ //initializer (Common for constructors)
+ void init(int, int, const char*, const char*, Actor *, Direction, bool, Map *, Audio *, Game_overwatch *, CLuaVirtualMachine&);
+
+ //lua required methods
+ int ScriptCalling (CLuaVirtualMachine&, int);
+ void HandleReturns (CLuaVirtualMachine&, const char *);
+
+ //normal methods
+ bool can_move(Direction, int, int);
+ bool can_die(void);
+ void animate(void);
+ void move(void);
+ void add_bullet(const char*, const char*);
+ void remove_bullet(void);
+ void accelerate(float, float);
+ void decelerate(float);
+
+ //set and get stuff
+ int get_x(void);
+ void set_x(int);
+ int get_y(void);
+ void set_y(int);
+ int get_w(void);
+ void set_w(int);
+ int get_h(void);
+ void set_h(int);
+ int get_clip_x(void);
+ void set_clip_x(int);
+ int get_clip_y(void);
+ void set_clip_y(int);
+ int get_currentframe(void);
+ void set_currentframe(int);
+ int get_oldclip(void);
+ void set_oldclip(int);
+ float get_vertical_speed(void);
+ void set_vertical_speed(float);
+ float get_vertical_acc(void);
+ void set_vertical_acc(float);
+ float get_falltime(void);
+ void set_falltime(float);
+ SDL_Surface * get_sprite(void);
+ void set_collision(bool, int);
+ bool get_collision(int);
+ float get_speed(void);
+ void set_speed(float);
+ float get_ownspeed(void);
+ void set_ownspeed(float);
+ float get_totalspeed(void);
+ void set_totalspeed(float);
+ float get_horizontal_acc(void);
+ void set_horizontal_acc(float);
+ Enemy get_enemy(void);
+ Direction get_currentdirection(void);
+ int get_leftkey(void);
+ void set_leftkey(int);
+ int get_rightkey(void);
+ void set_rightkey(int);
+ int get_zkey(void);
+ void set_zkey(int);
+ int get_xkey(void);
+ void set_xkey(int);
+ bool get_physics(void);
+ void set_physics(bool);
+ bool get_dying(void);
+ void set_dying(bool);
+ bool get_controllable(void);
+ void set_ckey(int);
+ bool get_noclip(void);
+
+ //lua accessors (get)
+ int lget_x(CLuaVirtualMachine&);
+ int lget_y(CLuaVirtualMachine&);
+ int lget_w(CLuaVirtualMachine&);
+ int lget_h(CLuaVirtualMachine&);
+ int lget_clip_x(CLuaVirtualMachine&);
+ int lget_clip_y(CLuaVirtualMachine&);
+ int lget_currentframe(CLuaVirtualMachine&);
+ int lget_oldclip(CLuaVirtualMachine&);
+ int lget_vertical_speed(CLuaVirtualMachine&);
+ int lget_falltime(CLuaVirtualMachine&);
+ int lget_speed(CLuaVirtualMachine&);
+ int lget_ownspeed(CLuaVirtualMachine&);
+ int lget_totalspeed(CLuaVirtualMachine&);
+ int lget_currentdirection(CLuaVirtualMachine&);
+ int lget_collision(CLuaVirtualMachine&);
+ int lget_map_sx(CLuaVirtualMachine&);
+ int lget_map_sy(CLuaVirtualMachine&);
+ int lget_cfg_max_map_w(CLuaVirtualMachine&);
+ int lget_cfg_max_map_h(CLuaVirtualMachine&);
+ int lget_cfg_screen_width(CLuaVirtualMachine&);
+ int lget_cfg_screen_height(CLuaVirtualMachine&);
+ int lget_leftkey(CLuaVirtualMachine&);
+ int lget_rightkey(CLuaVirtualMachine&);
+ int lget_zkey(CLuaVirtualMachine&);
+ int lget_xkey(CLuaVirtualMachine&);
+ int lget_jumplock(CLuaVirtualMachine&);
+ int lget_shootlock(CLuaVirtualMachine&);
+ int lget_shotcount(CLuaVirtualMachine&);
+ int lget_ckey(CLuaVirtualMachine&);
+ int lget_switchlock(CLuaVirtualMachine&);
+ int lget_cfg_tile_w(CLuaVirtualMachine&);
+ int lget_cfg_tile_h(CLuaVirtualMachine&);
+ int lget_walk_time(CLuaVirtualMachine&);
+
+ //lua accessors (set)
+ int lset_x(CLuaVirtualMachine&);
+ int lset_y(CLuaVirtualMachine&);
+ int lset_w(CLuaVirtualMachine&);
+ int lset_h(CLuaVirtualMachine&);
+ int lset_clip_x(CLuaVirtualMachine&);
+ int lset_clip_y(CLuaVirtualMachine&);
+ int lset_currentframe(CLuaVirtualMachine&);
+ int lset_oldclip(CLuaVirtualMachine&);
+ int lset_vertical_speed(CLuaVirtualMachine&);
+ int lset_falltime(CLuaVirtualMachine&);
+ int lset_speed(CLuaVirtualMachine&);
+ int lset_ownspeed(CLuaVirtualMachine&);
+ int lset_totalspeed(CLuaVirtualMachine&);
+ int lset_currentdirection(CLuaVirtualMachine&);
+ int lset_collision(CLuaVirtualMachine&);
+ int lset_map_sx(CLuaVirtualMachine&);
+ int lset_map_sy(CLuaVirtualMachine&);
+ int lset_leftkey(CLuaVirtualMachine&);
+ int lset_rightkey(CLuaVirtualMachine&);
+ int lset_zkey(CLuaVirtualMachine&);
+ int lset_xkey(CLuaVirtualMachine&);
+ int lset_jumplock(CLuaVirtualMachine&);
+ int lset_shootlock(CLuaVirtualMachine&);
+ int lset_dying(CLuaVirtualMachine&);
+ int lset_shotcount(CLuaVirtualMachine&);
+ int lset_physics(CLuaVirtualMachine&);
+ int lset_enemy(CLuaVirtualMachine&);
+ int lset_controllable(CLuaVirtualMachine&);
+ int lset_switchlock(CLuaVirtualMachine&);
+ int lset_noclip(CLuaVirtualMachine&);
+ int lset_walk_time(CLuaVirtualMachine&);
+
+ //misc lua methods
+ int lcan_move(CLuaVirtualMachine&);
+ int center_map(CLuaVirtualMachine&);
+ int ladd_bullet(CLuaVirtualMachine&);
+ int lload_clip(CLuaVirtualMachine&);
+ int lplay_sfx(CLuaVirtualMachine&);
+ int lplay_bgm(CLuaVirtualMachine&);
+ int lstop_bgm(CLuaVirtualMachine&);
+ int laccelerate(CLuaVirtualMachine&);
+ int ldecelerate(CLuaVirtualMachine&);
+
+};
|