2003-12-11 10:03:35 +00:00
|
|
|
/* ScummVM - Scumm Interpreter
|
2005-01-01 16:09:25 +00:00
|
|
|
* Copyright (C) 2003-2005 The ScummVM project
|
2003-12-11 10:03:35 +00:00
|
|
|
*
|
|
|
|
* 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$
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef QUEENSTATE_H
|
|
|
|
#define QUEENSTATE_H
|
|
|
|
|
|
|
|
#include "common/util.h"
|
|
|
|
#include "queen/defs.h"
|
|
|
|
|
|
|
|
namespace Queen {
|
|
|
|
|
|
|
|
|
|
|
|
enum StateTalk {
|
|
|
|
STATE_TALK_TALK,
|
|
|
|
STATE_TALK_MUTE
|
|
|
|
};
|
|
|
|
|
|
|
|
enum StateGrab {
|
|
|
|
STATE_GRAB_NONE,
|
|
|
|
STATE_GRAB_DOWN,
|
|
|
|
STATE_GRAB_UP,
|
|
|
|
STATE_GRAB_MID
|
|
|
|
};
|
|
|
|
|
|
|
|
enum StateOn {
|
|
|
|
STATE_ON_ON,
|
|
|
|
STATE_ON_OFF
|
|
|
|
};
|
|
|
|
|
|
|
|
enum StateUse {
|
|
|
|
STATE_USE,
|
|
|
|
STATE_USE_ON
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
2005-07-30 21:11:48 +00:00
|
|
|
Each object/item in game has a state field.
|
2003-12-11 10:03:35 +00:00
|
|
|
(refer to ObjectData and ItemData).
|
2005-07-30 21:11:48 +00:00
|
|
|
|
2003-12-11 10:03:35 +00:00
|
|
|
<table>
|
|
|
|
<tr>
|
|
|
|
<td>Name</td>
|
|
|
|
<td>Bits</td>
|
|
|
|
<td>Description</td>
|
2005-07-30 21:11:48 +00:00
|
|
|
</tr>
|
2003-12-11 10:03:35 +00:00
|
|
|
<tr>
|
|
|
|
<td>USE</td>
|
|
|
|
<td>10</td>
|
|
|
|
<td>Use</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>TALK</td>
|
|
|
|
<td>9</td>
|
|
|
|
<td>Talk</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>ON</td>
|
|
|
|
<td>8</td>
|
|
|
|
<td>On/Off</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>DEF</td>
|
|
|
|
<td>7,6,5,4</td>
|
|
|
|
<td>Default verb command</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>DIR</td>
|
|
|
|
<td>3,2</td>
|
|
|
|
<td>Direction to face for the object</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>GRAB</td>
|
|
|
|
<td>1,0</td>
|
|
|
|
<td>Grab Direction</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
*/
|
|
|
|
struct State {
|
|
|
|
|
|
|
|
static Direction findDirection(uint16 state);
|
|
|
|
static StateTalk findTalk(uint16 state);
|
|
|
|
static StateGrab findGrab(uint16 state);
|
|
|
|
static StateOn findOn(uint16 state);
|
|
|
|
static Verb findDefaultVerb(uint16 state);
|
|
|
|
static StateUse findUse(uint16 state);
|
|
|
|
|
|
|
|
static void alterOn(uint16 *objState, StateOn state);
|
|
|
|
static void alterDefaultVerb(uint16 *objState, Verb v);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // End of namespace Queen
|
|
|
|
|
|
|
|
#endif
|