aboutsummaryrefslogtreecommitdiff
path: root/actor.h
blob: 3110b8d887d97f6e1590e7094374f956b4fcda49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
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&);
	
};