diff options
author | Bradley Smith | 2008-01-21 00:16:45 +0000 |
---|---|---|
committer | Bradley Smith | 2008-01-21 00:16:45 +0000 |
commit | e6e7222d5a730368ed4e84c2e0f55427460e5230 (patch) | |
tree | e608410401099ccebe7ffa21de9336d78c78efc9 /include/userinterface.h | |
download | gnurobots-e6e7222d5a730368ed4e84c2e0f55427460e5230.tar.gz |
Imported GNU robots from CVS.
Signed-off-by: Bradley Smith <brad@brad-smith.co.uk>
Diffstat (limited to 'include/userinterface.h')
-rw-r--r-- | include/userinterface.h | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/include/userinterface.h b/include/userinterface.h new file mode 100644 index 0000000..ba5ade9 --- /dev/null +++ b/include/userinterface.h @@ -0,0 +1,211 @@ +/* $Id: userinterface.h,v 1.7 2005/09/06 19:55:40 zeenix Exp $ */ + +/* GNU Robots game engine. This is the header file for 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. + */ + +#ifndef __USER_INTERFACE_H__ +#define __USER_INTERFACE_H__ + +#include <glib-object.h> +#include "map.h" + +G_BEGIN_DECLS + +extern GType _user_interface_type; + +typedef struct _UserInterface UserInterface; +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); +}; + +#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); + +/* 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); +#define USER_INTERFACE_INIT_FUNCTION "user_interface_new" + +G_END_DECLS + +#endif /* __USER_INTERFACE_H__*/ |