scummvm/saga/interface.h
Paweł Kołodziejski 6b39b875fc indent
svn-id: r13701
2004-05-01 09:37:24 +00:00

168 lines
3.7 KiB
C++

/* ScummVM - Scumm Interpreter
* Copyright (C) 2004 The ScummVM project
*
* The ReInherit Engine is (C)2000-2003 by Daniel Balsom.
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header$
*
*/
// Game interface module private header file
#ifndef SAGA_INTERFACE_H__
#define SAGA_INTERFACE_H__
namespace Saga {
#define R_VERB_STRLIMIT 32
#define R_STATUS_TEXT_LEN 128
#define COMMAND_DEFAULT_BUTTON 1
// Inherit the Earth interface values
#define ITE_STATUS_Y 137
#define ITE_STATUS_W 320
#define ITE_STATUS_H 12
#define ITE_STATUS_TEXT_Y 2
#define ITE_STATUS_TXTCOL 186
#define ITE_STATUS_BGCOL 15
#define ITE_CMD_TEXT_COL 147
#define ITE_CMD_TEXT_SHADOWCOL 15
#define ITE_CMD_TEXT_HILITECOL 96
#define ITE_LPORTRAIT_X 5
#define ITE_LPORTRAIT_Y 4
// IHNMAIMS interface values
#define IHNM_STATUS_Y 304
#define IHNM_STATUS_W 640
#define IHNM_STATUS_H 24
#define IHNM_STATUS_TEXT_Y 8
#define IHNM_STATUS_TXTCOL 186
#define IHNM_STATUS_BGCOL 0
#define IHNM_CMD_TEXT_COL 147
#define IHNM_CMD_TEXT_SHADOWCOL 15
#define IHNM_CMD_TEXT_HILITECOL 96
#define IHNM_LPORTRAIT_X 5
#define IHNM_LPORTRAIT_Y 4
typedef enum R_PANEL_MODES_tag {
PANEL_COMMAND,
PANEL_DIALOGUE
} R_PANEL_MODES;
typedef enum R_BUTTON_FLAGS_tag {
BUTTON_NONE = 0x0,
BUTTON_LABEL = 0x01,
BUTTON_BITMAP = 0x02,
BUTTON_SET = 0x04
} R_BUTTON_FLAGS;
#define BUTTON_VERB ( BUTTON_LABEL | BUTTON_BITMAP | BUTTON_SET )
struct R_INTERFACE_BUTTON {
int x1;
int y1;
int x2;
int y2;
const char *label;
int inactive_sprite;
int active_sprite;
int flags;
int data;
};
struct R_INTERFACE_PANEL {
byte *res;
size_t res_len;
int x;
int y;
byte *img;
size_t img_len;
int img_w;
int img_h;
int set_button;
int nbuttons;
R_INTERFACE_BUTTON *buttons;
R_SPRITELIST *sprites;
};
struct R_INTERFACE_DESC {
int status_y;
int status_w;
int status_h;
int status_txt_y;
int status_txt_col;
int status_bgcol;
int cmd_txt_col;
int cmd_txt_shadowcol;
int cmd_txt_hilitecol;
int cmd_defaultbutton;
int lportrait_x;
int lportrait_y;
};
struct R_INTERFACE_MODULE {
int init;
int active;
R_RSCFILE_CONTEXT *i_file_ctxt;
R_INTERFACE_DESC i_desc;
R_PANEL_MODES panel_mode;
R_INTERFACE_PANEL c_panel;
R_INTERFACE_PANEL d_panel;
char status_txt[R_STATUS_TEXT_LEN];
int active_portrait;
R_SPRITELIST *def_portraits;
int active_verb;
R_SCRIPT_THREAD *i_thread;
};
enum INTERFACE_VERBS {
I_VERB_WALKTO,
I_VERB_LOOKAT,
I_VERB_PICKUP,
I_VERB_TALKTO,
I_VERB_OPEN,
I_VERB_CLOSE,
I_VERB_USE,
I_VERB_GIVE
};
struct R_VERB_DATA {
int i_verb;
const char *verb_cvar;
char verb_str[R_VERB_STRLIMIT];
int s_verb;
};
int INTERFACE_HitTest(R_POINT *imouse_pt, int *ibutton);
int DrawStatusBar(R_SURFACE *ds);
int HandleCommandUpdate(R_SURFACE *ds, R_POINT *imouse_pt);
int HandleCommandClick(R_SURFACE *ds, R_POINT *imouse_pt);
int HandlePlayfieldUpdate(R_SURFACE *ds, R_POINT *imouse_pt);
int HandlePlayfieldClick(R_SURFACE *ds, R_POINT *imouse_pt);
} // End of namespace Saga
#endif /* R_INTERFACE_H__ */
/* end "r_interface.h" */