12
12
#include <SDL2/SDL.h>
13
13
#include <stdbool.h>
15
typedef struct GameObject GameObject;
17
/******************************************************************************
18
* Function pointer declarations.
19
*****************************************************************************/
21
typedef void (* GameObjectCallbackFunc)(GameObject * self, void * data);
23
typedef void (* GameObjectFreeFunc)(GameObject * self);
25
typedef void (* GameObjectDrawFunc)(GameObject * self, SDL_Renderer * renderer);
27
typedef void (* GameObjectCallbackHandlerFunc)(GameObject * self, char * name);
29
typedef void (* GameObjectSetCallbackFunc)(GameObject * self, char * name,\
30
GameObjectCallbackFunc callback_func,
33
typedef void (* GameObjectMoveFunc)(GameObject * self);
35
typedef void (* GameObjectSetMovementDeltaFunc)(GameObject * self, int delta_x,\
36
int delta_y, Uint32 time_delta);
38
typedef SDL_Rect (* GameObjectGetBoundingBoxFunc)(GameObject * self);
40
typedef bool (* GameObjectGetIsAliveFunc)(GameObject * self);
42
typedef bool (* GameObjectGetIsCollideFunc)(GameObject * self,
15
45
/******************************************************************************
16
46
* Object declaration.
17
47
*****************************************************************************/
35
65
void * priv; /**< The private data. */
38
/******************************************************************************
39
* Function pointer declarations.
40
*****************************************************************************/
42
typedef void (* GameObjectCallbackFunc)(GameObject * self, void * data);
44
typedef void (* GameObjectFreeFunc)(GameObject * self);
46
typedef void (* GameObjectDrawFunc)(GameObject * self, SDL_Renderer * renderer);
48
typedef void (* GameObjectCallbackHandlerFunc)(GameObject * self, char * name);
50
typedef void (* GameObjectSetCallbackFunc)(GameObject * self, char * name,\
51
GameObjectCallbackFunc callback_func,
54
typedef void (* GameObjectMoveFunc)(GameObject * self);
56
typedef void (* GameObjectSetMovementDeltaFunc)(GameObject * self, int delta_x,\
57
int delta_y, Uint32 time_delta);
59
typedef SDL_Rect (* GameObjectGetBoundingBoxFunc)(GameObject * self);
61
typedef bool (* GameObjectGetIsAliveFunc)(GameObject * self);
63
typedef bool (* GameObjectGetIsCollideFunc)(GameObject * self,
67
70
/******************************************************************************