/+junk/c_sdl_joypad

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/c_sdl_joypad

« back to all changes in this revision

Viewing changes to GameObject.h

  • Committer: Gustav Hartvigsson
  • Date: 2013-09-28 14:08:09 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20130928140809-fht3gh31sb5gxrp5
Added the skeliton for game objects that. They can be used as a basis for a
game where many objects share the same interface.

TODO: Make the .c file.

Show diffs side-by-side

added added

removed removed

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