/* * 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&); };