bzr branch
http://gegoxaren.bato24.eu/bzr/%2Bjunk/c_sdl_joypad
4
by Gustav Hartvigsson
What I have done: |
1 |
#include "GameObject.h" |
2 |
||
3 |
void game_object_free (GameObject * self) { |
|
4 |
GameObjectFreeFunc free_func = self->klass->free_func; |
|
5 |
free_func (self); |
|
6 |
}
|
|
7 |
||
8 |
GameObjectClass * game_object_get_class (GameObject * self) { |
|
9 |
return self->klass; |
|
10 |
}
|
|
11 |
||
12 |
void game_object_set_class (GameObject * self, GameObjectClass * klass) { |
|
13 |
self->klass = klass; |
|
14 |
}
|
|
15 |
||
16 |
void game_object_draw (GameObject * self, SDL_Renderer * renderer) { |
|
17 |
GameObjectDrawFunc draw_func = self->klass->draw_func; |
|
18 |
draw_func (self, renderer); |
|
19 |
}
|
|
20 |
||
21 |
void game_object_set_movment_delta (GameObject * self, int delta_x, |
|
22 |
int delta_y, uint32_t delta_time) { |
|
23 |
GameObjectSetMovementDeltaFunc set_movement_delta_func |
|
24 |
= self->klass->set_movement_delta_func; |
|
25 |
set_movement_delta_func (self, delta_x, delta_y, delta_time); |
|
26 |
}
|
|
27 |
||
28 |
bool game_object_get_is_alive (GameObject * self) { |
|
29 |
GameObjectGetIsAliveFunc is_alive = self->klass->get_is_alive_func; |
|
30 |
bool ret = is_alive (self); |
|
31 |
return ret; |
|
32 |
}
|
|
33 |
||
34 |
void game_object_set_callback (GameObject * self, char * name, |
|
35 |
void * data) { |
|
36 |
GameObjectSetCallbackFunc set_callback_func = self->klass->set_callback_func; |
|
37 |
set_callback_func (self, name, data); |
|
38 |
}
|
|
39 |
||
40 |
void game_object_do_callback (GameObject * self, char * name) { |
|
41 |
GameObjectDoCallbackFunc do_callback_func = self->klass->callback_handler_func; |
|
42 |
do_callback_func (self, name); |
|
43 |
}
|
|
44 |
||
45 |
bool game_object_get_is_collide (GameObject * self, GameObject * other) { |
|
46 |
GameObjectGetIsCollideFunc s_is_collide = self->klass->get_is_collide_func; |
|
47 |
bool ret = s_is_collide (self, other); |
|
48 |
return ret; |
|
49 |
}
|
|
50 |
||
51 |
||
52 |
/******************************************************************************/
|
|
53 |
||
54 |
void game_object_set_free_func (GameObject * self, |
|
55 |
GameObjectFreeFunc free_func) { |
|
56 |
self->klass->free_func = free_func; |
|
57 |
}
|
|
58 |
||
59 |
||
60 |
void game_object_set_draw_func (GameObject * self, |
|
61 |
GameObjectDrawFunc draw_func) { |
|
62 |
self->klass->draw_func = draw_func; |
|
63 |
}
|
|
64 |
||
65 |
void game_object_set_callback_handler_func (GameObject * self, |
|
66 |
GameObjectCallbackHandlerFunc callback_handler_func); |
|
67 |
||
68 |
void game_object_set_set_callback_func (GameObject * self, |
|
69 |
GameObjectSetCallbackFunc set_callback_func) { |
|
70 |
self->klass->set_callback_func = set_callback_func; |
|
71 |
}
|
|
72 |
||
73 |
void game_object_set_move_func (GameObject * self, |
|
74 |
GameObjectMoveFunc move_func) { |
|
75 |
self->klass->move_func = move_func; |
|
76 |
}
|
|
77 |
||
78 |
void game_object_set_set_move_delta_func (GameObject * self, |
|
79 |
GameObjectSetMovementDeltaFunc set_movement_delta_func) { |
|
80 |
self->klass->set_movement_delta_func = set_movement_delta_func; |
|
81 |
}
|
|
82 |
||
83 |
void game_object_set_get_bounding_box_func (GameObject * self, |
|
84 |
GameObjectGetBoundingBoxFunc get_bounding_box_func) { |
|
85 |
self->klass->get_bounding_box_func = get_bounding_box_func; |
|
86 |
}
|
|
87 |
||
88 |
void game_object_set_get_is_alive_func (GameObject * self, |
|
89 |
GameObjectGetIsAliveFunc get_is_alive_func) { |
|
90 |
self->klass->get_is_alive_func = get_is_alive_func; |
|
91 |
}
|
|
92 |
||
93 |
void game_object_set_is_collide_func (GameObject * self, |
|
94 |
GameObjectGetIsCollideFunc get_is_collide_func) { |
|
95 |
self->klass->get_is_collide_func = get_is_collide_func; |
|
96 |
}
|
|
97 |
||
98 |
/** MOOOOO! **/
|