From e6e7222d5a730368ed4e84c2e0f55427460e5230 Mon Sep 17 00:00:00 2001 From: Bradley Smith Date: Mon, 21 Jan 2008 00:16:45 +0000 Subject: Imported GNU robots from CVS. Signed-off-by: Bradley Smith --- include/userinterface.h | 211 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 include/userinterface.h (limited to 'include/userinterface.h') 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 +#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__*/ -- cgit v1.1