summaryrefslogtreecommitdiff
path: root/src/userinterface.c
diff options
context:
space:
mode:
authorBradley Smith2008-01-21 00:16:45 +0000
committerBradley Smith2008-01-21 00:16:45 +0000
commite6e7222d5a730368ed4e84c2e0f55427460e5230 (patch)
treee608410401099ccebe7ffa21de9336d78c78efc9 /src/userinterface.c
downloadgnurobots-e6e7222d5a730368ed4e84c2e0f55427460e5230.tar.gz
Imported GNU robots from CVS.
Signed-off-by: Bradley Smith <brad@brad-smith.co.uk>
Diffstat (limited to 'src/userinterface.c')
-rw-r--r--src/userinterface.c192
1 files changed, 192 insertions, 0 deletions
diff --git a/src/userinterface.c b/src/userinterface.c
new file mode 100644
index 0000000..c55f64f
--- /dev/null
+++ b/src/userinterface.c
@@ -0,0 +1,192 @@
+/* $Id: userinterface.c,v 1.7 2004/10/21 19:24:30 zeenix Exp $ */
+
+/* GNU Robots game engine. This is the User Interface module */
+
+/* Copyright (C) 1998 Jim Hall, jhall1@isd.net */
+
+/*
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glib.h>
+
+#include "configs.h"
+#include "userinterface.h"
+
+/*enum
+{
+ ARG_0,
+ ARG_MAP
+};*/
+
+GType _user_interface_type = 0;
+
+static void user_interface_base_init (UserInterfaceClass * klass);
+
+GType
+user_interface_get_type (void)
+{
+ if (!_user_interface_type) {
+ static const GTypeInfo interface_info = {
+ sizeof (UserInterfaceClass),
+ (GBaseInitFunc) user_interface_base_init,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ NULL,
+ NULL
+ };
+
+ _user_interface_type = g_type_register_static (G_TYPE_INTERFACE,
+ "UserInterface",
+ &interface_info,
+ 0);
+ }
+
+ return _user_interface_type;
+}
+
+static void
+user_interface_base_init (UserInterfaceClass * klass)
+{
+ static gboolean initialized = FALSE;
+
+ if (!initialized) {
+ /*GObjectClass *gobject_class =
+ g_type_class_peek (((GTypeInterface *) klass)->g_instance_type);
+
+ g_object_class_install_property (gobject_class, ARG_MAP,*/
+ g_object_interface_install_property (
+ klass,
+ g_param_spec_object ("map",
+ "Map",
+ "Reference to the Game Map object",
+ G_TYPE_MAP,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ initialized = TRUE;
+ }
+}
+
+void user_interface_add_thing (UserInterface *ui,
+ gint x,
+ gint y,
+ gint thing)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_add_thing (ui, x, y, thing);
+}
+
+void user_interface_draw (UserInterface *ui)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_draw (ui);
+}
+
+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)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_move_robot (ui, from_x, from_y, to_x, to_y, cdir, energy, score, shields);
+}
+
+/* user_interfaces to animate the robot */
+ void user_interface_robot_smell (UserInterface *ui,
+ gint x,
+ gint y,
+ gint cdir,
+ glong energy,
+ glong score,
+ glong shields)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_smell (ui, x, y, cdir, energy, score, 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)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_zap (ui, x, y, cdir, x_to, y_to, energy, score, 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)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_feel (ui, x, y, cdir, x_to, y_to, energy, score, 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)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_grab (ui, x, y, cdir, x_to, y_to, energy, score, 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)
+{
+ USER_INTERFACE_GET_CLASS (ui)->user_interface_robot_look (ui, x, y, cdir, x_to, y_to, energy, score, 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_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_GET_CLASS (ui)->user_interface_update_status (ui, s, energy, score, shields);
+}
+