/+junk/c_sdl_joypad_ducktape

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/c_sdl_joypad_ducktape
3 by Gustav Hartvigsson
Added the skeliton for game objects that. They can be used as a basis for a
1
#ifndef __H_GAME_OBJECT__
2
#define __H_GAME_OBJECT__
3
4
#include <SDL2/SDL.h>
5
#include <stdbool.h>
6
7
typedef struct _GameObject GameObject;
8
9
typedef struct _GameObjectClass GameObjectClass;
10
11
typedef struct _GameObjectPriv GameObjectPriv;
12
13
14
/******************************************************************************
15
 * Function pointer declarations.
16
 *****************************************************************************/
17
 
18
typedef void (* GameObjectCallbackFunc)(GameObject * self, void * data);
19
20
typedef void (* GameObjectFreeFunc)(GameObject * self);
21
22
typedef void (* GameObjectDrawFunc)(GameObject * self, SDL_Renderer * renderer);
23
24
typedef void (* GameObjectCallbackHandlerFunc)(GameObject * self, char * name);
25
26
typedef void (* GameObjectAddCallbackFunc)(GamoObject * self, char * self,\
27
                                      GameObjectCallbackFunc callback_func);
28
29
typedef void (* GameObjectMoveFunc)(GameObject * self);
30
31
typedef void (* GameObjectSetMovementDeltaFunc)(GameObject * self, int delta_x,\
32
                                      int delta_y, Uint32 time_delta);
33
34
typedef SDL_Rect (* GameObjectGetBoundingBoxFunc)(GameObject * self);
35
36
typedef bool (* GameObjectGetIsAliveFunc)(GameObject * self);
37
38
/******************************************************************************
39
 * Object declaration.
40
 *****************************************************************************/
41
42
struct _GameObjectClass {
43
  GameObjectFreeFunc                     free_func;
44
  GameObjectDrawFunc                     draw_func;
45
  GameObjectCallbackHandlerFunc          callback_handler_func;
46
  GameObjectAddCallbackFunc              add_callback_func;
47
  GameObjectMoveFunc                     move_func;
48
  GameObjectSetMovementDeltaFunc         set_movement_delta_func;
49
  GameObjectGetBoundingBoxFunc           get_bounding_box_func;
50
  GameObjectGetIsAliveFunc               get_is_alive_func;
51
};
52
53
struct _GameObjectPriv {}; /**< prototype for the private data */
54
55
struct _GameObject {
56
  GameObjectClass *      klass; /**< the class that holds all the virtual
57
                                  * functions. */
58
  GameObjectPriv *       priv; /**< The private data. */
59
};
60
61
/******************************************************************************
62
 * Game Object base functions.
63
 *****************************************************************************/
64
void game_object_free (GameObject * self);
65
66
GameObjectClass * game_object_get_class (GameObject * self);
67
68
void game_object_set_class (GameObject * self, GameObjectClass * klass);
69
70
void game_object_draw (GameObject * self, SDL_Renderer * renderer);
71
72
void game_object_move (GameObject * self);
73
74
bool game_object_get_is_alive (GameObject * self);
75
76
void game_object_set_callback (GameObject * self, const char * name,
77
                               void * data);
78
79
void game_object_do_callback (GameObject * self, const char * name);
80
81
82
/******************************************************************************
83
 * Game Object set virtual function functions.
84
 *****************************************************************************/
85
86
void game_object_set_free_func (GameObject * self,
87
                                GameObjectFreeFunc free_func);
88
89
void game_object_set_draw_func (GameObject * self,
90
                                GameObjectDrawFunc draw_func);
91
92
void game_object_set_callback_handler_func (GameObject * self,
93
                           GameObjectCallbackHandlerFunc callback_handler_func);
94
95
void game_object_set_add_callback_func (GameObject * self,
96
                                   GameObjectAddCallbackFunc add_callback_func);
97
98
void game_object_set_move_func (GameObject * self,
99
                                GameObjectMoveFunc move_func);
100
101
void game_object_set_set_move_delta_func (GameObject * self,
102
                          GameObjectSetMovementDeltaFunc set_movent_delta_func);
103
104
void game_object_set_get_bounding_box_func (GameObject * self,
105
                            GameObjectGetBoundingBoxFunc get_bounding_box_func);
106
107
void game_object_set_movment_delta (GameObject * self, int delta_x,
108
                                    int delta_y, uint32 delta_time);
109
110
void game_object_set_get_is_alive_func (GameObject * self,
111
                                    GameObjectGetIsAliveFunc get_is_alive_func);
112
113
#endif /* __H_GAME_OBJECT__ */
114