summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBradley Smith2008-03-09 18:37:58 +0000
committerBradley Smith2008-03-09 18:37:58 +0000
commit1eac647d46231ec03bc9647b72d32dc093bf366d (patch)
treefbf409498759d5fcb08c44b986080a1cc6b32485 /src
parentModified Changelog. (diff)
downloadgnurobots-1eac647d46231ec03bc9647b72d32dc093bf366d.tar.gz
Misc cleanups and GType style conversion.
Signed-off-by: Bradley Smith <brad@brad-smith.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/grobot.c222
-rw-r--r--src/map.c42
-rw-r--r--src/userinterface.c69
3 files changed, 139 insertions, 194 deletions
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);
}