summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBradley Smith2008-03-09 18:37:58 +0000
committerBradley Smith2008-03-09 18:37:58 +0000
commit1eac647d46231ec03bc9647b72d32dc093bf366d (patch)
treefbf409498759d5fcb08c44b986080a1cc6b32485
parentModified Changelog. (diff)
downloadgnurobots-1eac647d46231ec03bc9647b72d32dc093bf366d.tar.gz
Misc cleanups and GType style conversion.
Signed-off-by: Bradley Smith <brad@brad-smith.co.uk>
-rw-r--r--ChangeLog4
-rw-r--r--include/grobot.h97
-rw-r--r--include/map.h24
-rw-r--r--include/userinterface.h333
-rw-r--r--src/grobot.c222
-rw-r--r--src/map.c42
-rw-r--r--src/userinterface.c69
7 files changed, 369 insertions, 422 deletions
diff --git a/ChangeLog b/ChangeLog
index bd28fde..3ced7c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,10 @@
Removed getopt.
* various:
Correct copyright headers.
+ * include/grobot.h src/grobot.c src/map.c include/map.h:
+ Tidy up, and convert GObject style.
+ * src/userinterface.c include/userinterface.h:
+ Tidy up.
2008-03-08 Bradley Smith <brad@brad-smith.co.uk>
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
diff --git a/src/grobot.c b/src/grobot.c
index 6f99335..91c8b32 100644
--- a/src/grobot.c
+++ b/src/grobot.c
@@ -27,6 +27,8 @@
#include <stdlib.h>
#include "sign.h"
+G_DEFINE_TYPE(GRobot, g_robot, G_TYPE_OBJECT)
+
enum
{
DEATH,
@@ -44,56 +46,33 @@ enum
ARG_SHIELDS,
ARG_UNITS,
ARG_SHOTS,
-
ARG_USER_INTERFACE,
ARG_MAP
};
-static gchar *things[] =
- { "space", "food", "prize", "wall", "baddie", "robot" };
+static gchar *things[] = { "space", "food", "prize", "wall", "baddie",
+ "robot" };
static gint cthings[] = { SPACE, FOOD, PRIZE, WALL, BADDIE, ROBOT };
-GType _g_robot_type;
-
static guint g_robot_signals[LAST_SIGNAL] = { 0 };
-static void g_robot_class_init (GRobotClass * klass);
static void g_robot_dispose (GObject * object);
static void g_robot_finalize (GObject * object);
static void g_robot_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec);
+ const GValue * value, GParamSpec * pspec);
static void g_robot_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec);
+ GValue * value, GParamSpec * pspec);
static GObjectClass *parent_class = NULL;
static gint what_thing (const gchar *th);
-GType
-g_robot_get_type (void)
+static void
+g_robot_init (GRobot* robot)
{
- if (!_g_robot_type)
- {
- static const GTypeInfo object_info = {
- sizeof (GRobotClass),
- NULL,
- NULL,
- (GClassInitFunc) g_robot_class_init,
- NULL,
- NULL,
- sizeof (GRobot),
- 0,
- (GInstanceInitFunc) NULL,
- NULL
- };
-
- _g_robot_type =
- g_type_register_static (G_TYPE_OBJECT, "GRobot", &object_info, 0);
- }
-
- return _g_robot_type;
+ /* Nothing yet, need to do priv stuff */
}
static void
@@ -111,113 +90,116 @@ g_robot_class_init (GRobotClass *klass)
gobject_class->get_property = g_robot_get_property;
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_POS_X,
- g_param_spec_int ("x",
- "x",
- "X co-ordinate of current Position of the Robot",
- G_MININT,
- G_MAXINT,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_int ("x",
+ "x",
+ "X co-ordinate of current Position of the Robot",
+ G_MININT,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_POS_Y,
- g_param_spec_int ("y",
- "y",
- "y co-ordinate of current Position of the Robot",
- G_MININT,
- G_MAXINT,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_int ("y",
+ "y",
+ "y co-ordinate of current Position of the Robot",
+ G_MININT,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_DIRECTION,
- g_param_spec_int ("direction",
- "direction",
- "current Direction of the Robot",
- G_MININT,
- G_MAXINT,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_int ("direction",
+ "direction",
+ "current Direction of the Robot",
+ G_MININT,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SCORE,
- g_param_spec_long ("score",
- "Score",
- "current Score of the Robot",
- G_MINLONG,
- G_MAXLONG,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_long ("score",
+ "Score",
+ "current Score of the Robot",
+ G_MINLONG,
+ G_MAXLONG,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ENERGY,
- g_param_spec_long ("energy",
- "Energy",
- "current Energy-level of the Robot",
- G_MINLONG,
- G_MAXLONG,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_long ("energy",
+ "Energy",
+ "current Energy-level of the Robot",
+ G_MINLONG,
+ G_MAXLONG,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SHIELDS,
- g_param_spec_long ("shields",
- "Shields",
- "current Shield-level of the Robot",
- G_MINLONG,
- G_MAXLONG,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_long ("shields",
+ "Shields",
+ "current Shield-level of the Robot",
+ G_MINLONG,
+ G_MAXLONG,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_UNITS,
- g_param_spec_long ("units",
- "Units",
- "Units walked by the Robot so far",
- G_MINLONG,
- G_MAXLONG,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_long ("units",
+ "Units",
+ "Units walked by the Robot so far",
+ G_MINLONG,
+ G_MAXLONG,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SHOTS,
- g_param_spec_long ("shots",
- "Shots",
- "Number of Shots fired by the Robot",
- G_MINLONG,
- G_MAXLONG,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_USER_INTERFACE,
- g_param_spec_object ("user-interface",
- "UserInterface",
- "Reference to the UI object",
- G_TYPE_OBJECT,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_long ("shots",
+ "Shots",
+ "Number of Shots fired by the Robot",
+ G_MINLONG,
+ G_MAXLONG,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
+
+ g_object_class_install_property (G_OBJECT_CLASS (klass),
+ ARG_USER_INTERFACE,
+ g_param_spec_object ("user-interface",
+ "UserInterface",
+ "Reference to the UI object",
+ G_TYPE_OBJECT,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MAP,
- g_param_spec_object ("map",
- "Map",
- "Reference to the Game Map object",
- G_TYPE_OBJECT,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ g_param_spec_object ("map",
+ "Map",
+ "Reference to the Game Map object",
+ G_TYPE_OBJECT,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
g_robot_signals[DEATH] =
- g_signal_new ("death",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GRobotClass, death),
- NULL,
- NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, NULL);
+ g_signal_new ("death",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GRobotClass, death),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0,
+ NULL);
}
static void
-g_robot_set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+g_robot_set_property (GObject *object, guint prop_id, const GValue *value,
+ GParamSpec *pspec)
{
GRobot *robot;
GObject *obj;
@@ -294,8 +276,8 @@ g_robot_set_property (GObject *object, guint prop_id,
}
static void
-g_robot_get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+g_robot_get_property (GObject *object, guint prop_id, GValue *value,
+ GParamSpec *pspec)
{
GRobot *robot;
@@ -348,7 +330,7 @@ g_robot_new (gint x, gint y, gint dir, glong score, glong energy,
Map *map)
{
- return g_object_new (g_robot_get_type (),
+ return G_ROBOT(g_object_new (g_robot_get_type(),
"x", x,
"y", y,
"direction", dir,
@@ -357,7 +339,7 @@ g_robot_new (gint x, gint y, gint dir, glong score, glong energy,
"shields", shields,
"units", units,
"shots", shots,
- "user_interface", ui, "map", map, NULL);
+ "user_interface", ui, "map", map, NULL));
}
static void
diff --git a/src/map.c b/src/map.c
index 85019f2..01d6cc9 100644
--- a/src/map.c
+++ b/src/map.c
@@ -27,58 +27,26 @@
#include "configs.h"
#include "map.h"
+G_DEFINE_TYPE(Map, map, G_TYPE_OBJECT)
+
enum
{
ARG_0,
ARG_SIZE
};
-GType _map_type = 0;
-
-static void map_class_init (MapClass *klass);
-static void map_init (GObject *object);
-
static void map_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static void map_get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec);
-static GObjectClass *parent_class = NULL;
-
-GType
-map_get_type (void)
-{
- if (!_map_type)
- {
- static const GTypeInfo object_info = {
- sizeof (MapClass),
- NULL,
- NULL,
- (GClassInitFunc) map_class_init,
- NULL,
- NULL,
- sizeof (Map),
- 0,
- (GInstanceInitFunc) map_init,
- NULL
- };
-
- _map_type =
- g_type_register_static (G_TYPE_OBJECT, "Map", &object_info, 0);
- }
-
- return _map_type;
-}
-
static void
map_class_init (MapClass *klass)
{
GObjectClass *gobject_class;
- gobject_class = (GObjectClass *) klass;
-
- parent_class = g_type_class_ref (G_TYPE_OBJECT);
+ gobject_class = G_OBJECT_CLASS(klass);
gobject_class->set_property = map_set_property;
gobject_class->get_property = map_get_property;
@@ -92,10 +60,8 @@ map_class_init (MapClass *klass)
}
static void
-map_init (GObject *object)
+map_init (Map *map)
{
- Map *map = MAP (object);
-
map->_map = NULL;
map->size.num_rows = -1;
map->size.num_cols = -1;
diff --git a/src/userinterface.c b/src/userinterface.c
index e973460..8cee000 100644
--- a/src/userinterface.c
+++ b/src/userinterface.c
@@ -29,13 +29,13 @@
ARG_MAP
};*/
-GType _user_interface_type = 0;
-
static void user_interface_base_init (UserInterfaceClass * klass);
GType
user_interface_get_type (void)
{
+ static GType _user_interface_type = 0;
+
if (!_user_interface_type)
{
static const GTypeInfo interface_info = {
@@ -125,11 +125,11 @@ user_interface_robot_smell (UserInterface * ui,
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)
+ gint x,
+ gint y,
+ gint cdir,
+ gint x_to,
+ gint y_to, glong energy, glong score, glong shields)
{
USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_zap (ui, x, y, cdir,
x_to, y_to, energy,
@@ -138,12 +138,12 @@ user_interface_robot_zap (UserInterface * ui,
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)
+ gint x,
+ gint y,
+ gint cdir,
+ gint x_to,
+ gint y_to,
+ glong energy, glong score, glong shields)
{
USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_feel (ui, x, y, cdir,
x_to, y_to,
@@ -153,12 +153,12 @@ user_interface_robot_feel (UserInterface * ui,
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)
+ gint x,
+ gint y,
+ gint cdir,
+ gint x_to,
+ gint y_to,
+ glong energy, glong score, glong shields)
{
USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_grab (ui, x, y, cdir,
x_to, y_to,
@@ -168,12 +168,12 @@ user_interface_robot_grab (UserInterface * ui,
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)
+ gint x,
+ gint y,
+ gint cdir,
+ gint x_to,
+ gint y_to,
+ glong energy, glong score, glong shields)
{
USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_look (ui, x, y, cdir,
x_to, y_to,
@@ -181,21 +181,18 @@ user_interface_robot_look (UserInterface * ui,
shields);
}
-/* user_interfaces to get/display data from/to user */
void
-user_interface_get_string (UserInterface * ui,
- gchar * prompt, gchar * buff, gint len)
+user_interface_get_string (UserInterface *ui, gchar *prompt, gchar *buff,
+ gint len)
{
- USER_INTERFACE_GET_CLASS (ui)->user_interface_get_string (ui, prompt, buff,
- len);
+ USER_INTERFACE_GET_CLASS(ui)->user_interface_get_string(ui, prompt, buff,
+ len);
}
void
-user_interface_update_status (UserInterface * ui,
- const gchar * s,
- glong energy, glong score, glong shields)
+user_interface_update_status (UserInterface * ui, const gchar * s,
+ glong energy, glong score, glong shields)
{
- USER_INTERFACE_GET_CLASS (ui)->user_interface_update_status (ui, s, energy,
- score,
- shields);
+ USER_INTERFACE_GET_CLASS(ui)->user_interface_update_status(ui, s, energy,
+ score, shields);
}