diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/grobot.h | 97 | ||||
-rw-r--r-- | include/map.h | 24 | ||||
-rw-r--r-- | include/userinterface.h | 333 |
3 files changed, 226 insertions, 228 deletions
diff --git a/include/grobot.h b/include/grobot.h index 5495e0c..6ebcca3 100644 --- a/include/grobot.h +++ b/include/grobot.h @@ -17,9 +17,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef _G_ROBOT_H -#define _G_ROBOT_H -/* MACROS */ +#ifndef __G_ROBOT_H__ +#define __G_ROBOT_H__ #include <glib-object.h> #include <glib.h> @@ -28,72 +27,66 @@ G_BEGIN_DECLS -extern GType _g_robot_type; +#define G_TYPE_ROBOT g_robot_get_type() +#define G_IS_ROBOT(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj),\ + G_TYPE_ROBOT) +#define G_IS_ROBOT_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE ((klass),\ + G_TYPE_ROBOT) +#define G_ROBOT_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS ((obj),\ + G_TYPE_ROBOT, GRobotClass) +#define G_ROBOT(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj),\ + G_TYPE_ROBOT, GRobot) +#define G_ROBOT_CLASS(klass) G_TYPE_CHECK_CLASS_CAST ((klass),\ + G_TYPE_ROBOT, GRobotClass) typedef struct _GRobot GRobot; +typedef struct _GRobotClass GRobotClass; struct _GRobot { - GObject object; - - gint x; - gint y; - gint dir; - glong score; - glong energy; - glong shields; - glong shots; - glong units; + GObject object; + + gint x; + gint y; + gint dir; + glong score; + glong energy; + glong shields; + glong shots; + glong units; UserInterface *ui; Map *map; -}; - -typedef struct _GRobotClass GRobotClass; +}; struct _GRobotClass { - GObjectClass parent_class; + GObjectClass parent_class; - void (*death) (GRobot *robot); + void (*death) (GRobot *robot); }; -#define G_TYPE_ROBOT (_g_robot_type) -#define G_IS_ROBOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_ROBOT)) -#define G_IS_ROBOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_ROBOT)) -#define G_ROBOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_ROBOT, GRobotClass)) -#define G_ROBOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_ROBOT, GRobot)) -#define G_ROBOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_ROBOT, GRobotClass)) - /* some convenient macros */ -#define G_ROBOT_POSITION_X(robot) ((robot)->x) -#define G_ROBOT_POSITION_Y(robot) ((robot)->y) +#define G_ROBOT_POSITION_X(robot) ((robot)->x) +#define G_ROBOT_POSITION_Y(robot) ((robot)->y) /* normal GObject stuff */ -GType g_robot_get_type (void); +GType g_robot_get_type(void) G_GNUC_CONST; /* Our object functions */ -GRobot* g_robot_new (int x, - int y, - int dir, - long score, - long energy, - long shield, - long units, - long shots, - UserInterface *ui, - Map *map); - -void g_robot_turn (GRobot *robot, gint num_turns); -gboolean g_robot_move (GRobot *robot, gint steps); -gboolean g_robot_smell (GRobot *robot, gchar *str); -gboolean g_robot_feel (GRobot *robot, gchar *str); -gboolean g_robot_look (GRobot *robot, gchar *str); -gboolean g_robot_grab (GRobot *robot); -gboolean g_robot_zap (GRobot *robot); -gboolean g_robot_stop (GRobot *robot); -glong g_robot_get_shields (GRobot *robot); -glong g_robot_get_energy (GRobot *robot); -glong g_robot_get_score (GRobot *robot); +GRobot* g_robot_new(int x, int y, int dir, long score, long energy, + long shield, long units, long shots, UserInterface *ui, Map *map); + +void g_robot_turn (GRobot *robot, gint num_turns); +gboolean g_robot_move (GRobot *robot, gint steps); +gboolean g_robot_smell (GRobot *robot, gchar *str); +gboolean g_robot_feel (GRobot *robot, gchar *str); +gboolean g_robot_look (GRobot *robot, gchar *str); +gboolean g_robot_grab (GRobot *robot); +gboolean g_robot_zap (GRobot *robot); +gboolean g_robot_stop (GRobot *robot); +glong g_robot_get_shields (GRobot *robot); +glong g_robot_get_energy (GRobot *robot); +glong g_robot_get_score (GRobot *robot); G_END_DECLS -#endif +#endif /* __G_ROBOT_H__ */ diff --git a/include/map.h b/include/map.h index f8f8263..d807f7d 100644 --- a/include/map.h +++ b/include/map.h @@ -25,16 +25,16 @@ G_BEGIN_DECLS -#define G_TYPE_MAP (map_get_type()) -#define G_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - G_TYPE_MAP)) -#define G_IS_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_MAP)) -#define MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \ - G_TYPE_MAP, MapClass)) -#define MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - G_TYPE_MAP, Map)) -#define MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \ - G_TYPE_MAP, MapClass)) +#define G_TYPE_MAP map_get_type() +#define G_IS_MAP(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + G_TYPE_MAP) +#define G_IS_MAP_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_MAP) +#define MAP_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), \ + G_TYPE_MAP, MapClass) +#define MAP(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), \ + G_TYPE_MAP, Map) +#define MAP_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), \ + G_TYPE_MAP, MapClass) typedef struct { @@ -64,10 +64,10 @@ struct _MapClass { #define MAP_SET_OBJECT(map, x, y, thing) ((map)->_map[(y)][(x)] = thing) /* normal GObject stuff */ -GType map_get_type (void); +GType map_get_type(void); /* Our object functions */ -Map* map_new_from_file (const gchar *map, gint num_rows, gint num_cols); +Map* map_new_from_file(const gchar *map, gint num_rows, gint num_cols); G_END_DECLS diff --git a/include/userinterface.h b/include/userinterface.h index 691e847..ef86f74 100644 --- a/include/userinterface.h +++ b/include/userinterface.h @@ -26,7 +26,21 @@ G_BEGIN_DECLS -extern GType _user_interface_type; +#define G_TYPE_USER_INTERFACE \ + user_interface_get_type() +#define G_IS_USER_INTERFACE(obj) \ + G_TYPE_CHECK_INSTANCE_TYPE(obj, G_TYPE_USER_INTERFACE) +#define G_IS_USER_INTERFACE_CLASS(klass)\ + G_TYPE_CHECK_CLASS_TYPE(klass, G_TYPE_USER_INTERFACE) +#define USER_INTERFACE_GET_CLASS(obj) \ + G_TYPE_INSTANCE_GET_INTERFACE(obj, G_TYPE_USER_INTERFACE,\ + UserInterfaceClass) +#define USER_INTERFACE(obj) \ + G_TYPE_CHECK_INSTANCE_CAST(obj, G_TYPE_USER_INTERFACE, \ + UserInterface) +#define USER_INTERFACE_CLASS(klass) \ + G_TYPE_CHECK_CLASS_CAST(klass, G_TYPE_USER_INTERFACE,\ + UserInterfaceClass) typedef struct _UserInterface UserInterface; typedef struct _UserInterfaceClass UserInterfaceClass; @@ -34,174 +48,165 @@ typedef struct _UserInterfaceClass UserInterfaceClass; struct _UserInterfaceClass { GTypeInterface parent; - void (* user_interface_add_thing) (UserInterface *ui, - gint x, - gint y, - gint thing); - - void (* user_interface_draw) (UserInterface *ui); - - void (* user_interface_update_status) (UserInterface *ui, - const gchar *s, - glong energy, - glong score, - glong shields); - - void (* user_interface_move_robot) (UserInterface *ui, - gint from_x, - gint from_y, - gint to_x, - gint to_y, - gint cdir, - glong energy, - glong score, - glong shields); - - void (* user_interface_robot_smell) (UserInterface *ui, - gint x, - gint y, - gint cdir, - glong energy, - glong score, - glong shields); - - void (* user_interface_robot_zap) (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - - void (* user_interface_robot_feel) (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - - void (* user_interface_robot_grab) (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - - void (* user_interface_robot_look) (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - -/* routines to get/display data from/to user */ - void (* user_interface_get_string) (UserInterface *ui, - gchar *prompt, - gchar *buff, - gint len); + void (* user_interface_add_thing) (UserInterface *ui, + gint x, + gint y, + gint thing); + + void (* user_interface_draw) (UserInterface *ui); + + void (* user_interface_update_status) (UserInterface *ui, + const gchar *s, + glong energy, + glong score, + glong shields); + + void (* user_interface_move_robot) (UserInterface *ui, + gint from_x, + gint from_y, + gint to_x, + gint to_y, + gint cdir, + glong energy, + glong score, + glong shields); + + void (* user_interface_robot_smell) (UserInterface *ui, + gint x, + gint y, + gint cdir, + glong energy, + glong score, + glong shields); + + void (* user_interface_robot_zap) (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + + void (* user_interface_robot_feel) (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + + void (* user_interface_robot_grab) (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + + void (* user_interface_robot_look) (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + + void (* user_interface_get_string) (UserInterface *ui, + gchar *prompt, + gchar *buff, + gint len); }; -#define G_TYPE_USER_INTERFACE (_user_interface_type) -#define G_IS_USER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_USER_INTERFACE)) -#define G_IS_USER_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_USER_INTERFACE)) -#define USER_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_USER_INTERFACE, UserInterfaceClass)) -#define USER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_USER_INTERFACE, UserInterface)) -#define USER_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_USER_INTERFACE, UserInterfaceClass)) - /* normal GObject stuff */ -GType user_interface_get_type (void); +GType user_interface_get_type (void); /* functions we want implemented by the implementers of our interface */ -void user_interface_add_thing (UserInterface *ui, - gint x, - gint y, - gint thing); - -void user_interface_draw (UserInterface *ui); - -void user_interface_update_status (UserInterface *ui, - const gchar *s, - glong energy, - glong score, - glong shields); - -void user_interface_move_robot (UserInterface *ui, - gint from_x, - gint from_y, - gint to_x, - gint to_y, - gint cdir, - glong energy, - glong score, - glong shields); - -void user_interface_robot_smell (UserInterface *ui, - gint x, - gint y, - gint cdir, - glong energy, - glong score, - glong shields); - -void user_interface_robot_zap (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - -void user_interface_robot_feel (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - -void user_interface_robot_grab (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - -void user_interface_robot_look (UserInterface *ui, - gint x, - gint y, - gint cdir, - gint x_to, - gint y_to, - glong energy, - glong score, - glong shields); - -/* routines to get/display data from/to user */ -void user_interface_get_string (UserInterface *ui, - gchar *prompt, - gchar *buff, - gint len); - -typedef UserInterface * (* UserInterfaceInitFunc) (Map *map, - GType parent_type); +void user_interface_add_thing (UserInterface *ui, + gint x, + gint y, + gint thing); + +void user_interface_draw (UserInterface *ui); + +void user_interface_update_status (UserInterface *ui, + const gchar *s, + glong energy, + glong score, + glong shields); + +void user_interface_move_robot (UserInterface *ui, + gint from_x, + gint from_y, + gint to_x, + gint to_y, + gint cdir, + glong energy, + glong score, + glong shields); + +void user_interface_robot_smell (UserInterface *ui, + gint x, + gint y, + gint cdir, + glong energy, + glong score, + glong shields); + +void user_interface_robot_zap (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + +void user_interface_robot_feel (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + +void user_interface_robot_grab (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + +void user_interface_robot_look (UserInterface *ui, + gint x, + gint y, + gint cdir, + gint x_to, + gint y_to, + glong energy, + glong score, + glong shields); + +void user_interface_get_string (UserInterface *ui, + gchar *prompt, + gchar *buff, + gint len); + +typedef UserInterface * (* UserInterfaceInitFunc) (Map *map, + GType parent_type); #define USER_INTERFACE_INIT_FUNCTION "user_interface_new" G_END_DECLS |