2004-04-12 21:40:49 +00:00
|
|
|
/* 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$
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2004-05-01 06:16:57 +00:00
|
|
|
// Actor management module header file
|
2004-04-12 21:40:49 +00:00
|
|
|
|
|
|
|
#ifndef SAGA_ACTOR_H__
|
|
|
|
#define SAGA_ACTOR_H__
|
|
|
|
|
2004-08-03 01:07:34 +00:00
|
|
|
#include "saga/sprite.h"
|
2004-12-15 00:24:12 +00:00
|
|
|
#include "saga/actordata.h"
|
|
|
|
#include "saga/list.h"
|
2004-08-02 15:47:42 +00:00
|
|
|
|
2004-04-12 21:40:49 +00:00
|
|
|
namespace Saga {
|
|
|
|
|
|
|
|
#define ACTOR_BASE_SPEED 0.25
|
|
|
|
#define ACTOR_BASE_ZMOD 0.5
|
|
|
|
|
|
|
|
#define ACTOR_DEFAULT_ORIENT 2
|
|
|
|
|
|
|
|
#define ACTOR_ACTIONTIME 80
|
|
|
|
|
|
|
|
#define ACTOR_DIALOGUE_HEIGHT 100
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
#define ACTOR_LMULT 4
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
#define ACTOR_DIRECTIONS_COUNT 4 // for ActorFrameSequence
|
|
|
|
#define ACTOR_DIRECTION_RIGHT 0
|
|
|
|
#define ACTOR_DIRECTION_LEFT 1
|
|
|
|
#define ACTOR_DIRECTION_BACK 2
|
|
|
|
#define ACTOR_DIRECTION_FORWARD 3
|
2004-12-17 20:38:17 +00:00
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
#define ACTOR_SPEECH_STRING_MAX 16 // speech const
|
2004-12-21 06:49:07 +00:00
|
|
|
#define ACTOR_SPEECH_ACTORS_MAX 8
|
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
#define ID_NOTHING 0
|
|
|
|
#define ID_PROTAG 1
|
|
|
|
|
2004-12-17 11:18:56 +00:00
|
|
|
#define IS_VALID_ACTOR_INDEX(index) ((index >= 0) && (index < ACTORCOUNT))
|
2004-12-17 20:38:17 +00:00
|
|
|
#define IS_VALID_ACTOR_ID(id) ((id == 1) || (id >= 0x2000) && (id < (0x2000 | ACTORCOUNT)))
|
2004-12-17 11:18:56 +00:00
|
|
|
#define ACTOR_ID_TO_INDEX(id) ((((uint16)id) == 1 ) ? 0 : (int)(((uint16)id) & ~0x2000))
|
2004-12-17 20:38:17 +00:00
|
|
|
#define ACTOR_INDEX_TO_ID(index) ((((int)index) == 0 ) ? 1 : (uint16)(((int)index) | 0x2000))
|
2004-12-17 11:18:56 +00:00
|
|
|
|
2004-12-21 06:49:07 +00:00
|
|
|
|
|
|
|
enum ActorActions {
|
|
|
|
kActionWait = 0,
|
|
|
|
kActionWalkToPoint = 1,
|
|
|
|
kActionWalkToLink = 2,
|
|
|
|
kActionWalkDir = 3,
|
|
|
|
kActionSpeak = 4,
|
|
|
|
kActionAccept = 5,
|
|
|
|
kActionStoop = 6,
|
|
|
|
kActionLook = 7,
|
|
|
|
kActionCycleFrames = 8,
|
|
|
|
kActionPongFrames = 9,
|
|
|
|
kActionFreeze = 10,
|
|
|
|
kActionFall = 11,
|
|
|
|
kActionClimb = 12
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SpeechFlags {
|
|
|
|
kSpeakNoAnimate = 1,
|
|
|
|
kSpeakAsync = 2,
|
|
|
|
kSpeakSlow = 4
|
|
|
|
};
|
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
enum ActorDirections {
|
|
|
|
kDirUp = 0,
|
|
|
|
kDirUpRight = 1,
|
|
|
|
kDirRight = 2,
|
|
|
|
kDirDownRight = 3,
|
|
|
|
kDirDown = 4,
|
|
|
|
kDirDownLeft = 5,
|
|
|
|
kDirLeft = 6,
|
|
|
|
kDirUpLeft = 7
|
|
|
|
};
|
|
|
|
|
|
|
|
enum ActorFrameTypes {
|
|
|
|
kFrameStand = 0,
|
|
|
|
kFrameWalk = 1,
|
|
|
|
kFrameSpeak = 2,
|
|
|
|
kFrameGive = 3,
|
|
|
|
kFrameGesture = 4,
|
|
|
|
kFrameWait = 5,
|
|
|
|
kFramePickUp = 6,
|
|
|
|
kFrameLook = 7
|
|
|
|
//...some special
|
|
|
|
};
|
|
|
|
|
|
|
|
enum ActorFlagsEx {
|
|
|
|
kActorNoCollide = (1 << 0),
|
|
|
|
kActorNoFollow = (1 << 1),
|
|
|
|
kActorCollided = (1 << 2),
|
|
|
|
kActorBackwards = (1 << 3),
|
|
|
|
kActorContinuous = (1 << 4),
|
|
|
|
kActorFinalFace = (1 << 5),
|
|
|
|
kActorFinishLeft = ((1 << 5) | (kDirLeft << 6)),
|
|
|
|
kActorFinishRight = ((1 << 5) | (kDirRight << 6)),
|
|
|
|
kActorFinishUp = ((1 << 5) | (kDirUp << 6)),
|
|
|
|
kActorFinishDown = ((1 << 5) | (kDirDown << 6)),
|
|
|
|
kActorFacing = (0xf << 5),
|
|
|
|
kActorRandom = (1 << 10)
|
|
|
|
};
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
enum ACTOR_INTENTS {
|
2004-04-12 21:40:49 +00:00
|
|
|
INTENT_NONE = 0,
|
2004-12-21 06:49:07 +00:00
|
|
|
INTENT_PATH = 1
|
2004-04-12 21:40:49 +00:00
|
|
|
};
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
enum ACTOR_WALKFLAGS {
|
2004-08-02 15:47:42 +00:00
|
|
|
WALK_NONE = 0x00,
|
|
|
|
WALK_NOREORIENT = 0x01
|
|
|
|
};
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
enum ACTOR_ORIENTATIONS {
|
2004-08-02 15:47:42 +00:00
|
|
|
ORIENT_N = 0,
|
|
|
|
ORIENT_NE = 1,
|
|
|
|
ORIENT_E = 2,
|
|
|
|
ORIENT_SE = 3,
|
|
|
|
ORIENT_S = 4,
|
|
|
|
ORIENT_SW = 5,
|
|
|
|
ORIENT_W = 6,
|
|
|
|
ORIENT_NW = 7
|
|
|
|
};
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
enum ACTOR_ACTIONS {
|
2004-08-02 15:47:42 +00:00
|
|
|
ACTION_IDLE = 0,
|
|
|
|
ACTION_WALK = 1,
|
|
|
|
ACTION_SPEAK = 2,
|
|
|
|
ACTION_COUNT
|
|
|
|
};
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
enum ACTOR_ACTIONFLAGS {
|
2004-08-02 15:47:42 +00:00
|
|
|
ACTION_NONE = 0x00,
|
|
|
|
ACTION_LOOP = 0x01
|
|
|
|
};
|
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
struct ActorFrameRange {
|
2004-12-17 20:38:17 +00:00
|
|
|
int frameIndex;
|
|
|
|
int frameCount;
|
2004-04-25 14:42:14 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
struct ActorFrameSequence {
|
|
|
|
ActorFrameRange directions[ACTOR_DIRECTIONS_COUNT];
|
2004-04-25 14:42:14 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-15 00:24:12 +00:00
|
|
|
struct WALKNODE {
|
|
|
|
int calc_flag;
|
|
|
|
Point node_pt;
|
|
|
|
WALKNODE() {
|
|
|
|
calc_flag = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef Common::List<WALKNODE> WalkNodeList;
|
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
struct WALKINTENT {
|
2004-04-12 21:40:49 +00:00
|
|
|
int wi_active;
|
2004-04-30 23:02:23 +00:00
|
|
|
uint16 wi_flags;
|
2004-04-12 21:40:49 +00:00
|
|
|
int wi_init;
|
|
|
|
|
|
|
|
int time;
|
|
|
|
float slope;
|
|
|
|
int x_dir;
|
2004-10-04 23:09:38 +00:00
|
|
|
Point org;
|
|
|
|
Point cur;
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-10-04 23:09:38 +00:00
|
|
|
Point dst_pt;
|
2004-12-15 00:24:12 +00:00
|
|
|
WalkNodeList nodelist;
|
2004-04-12 21:40:49 +00:00
|
|
|
|
|
|
|
int sem_held;
|
2004-10-27 21:32:28 +00:00
|
|
|
SEMAPHORE *sem;
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-15 00:24:12 +00:00
|
|
|
WALKINTENT() {
|
|
|
|
wi_active = 0;
|
|
|
|
wi_flags = 0;
|
|
|
|
wi_init = 0;
|
|
|
|
|
|
|
|
time = 0;
|
|
|
|
slope = 0;
|
|
|
|
x_dir = 0;
|
|
|
|
|
|
|
|
sem_held = 0;
|
|
|
|
sem = NULL;
|
|
|
|
}
|
2004-04-25 14:42:14 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
struct ACTORINTENT {
|
2004-04-12 21:40:49 +00:00
|
|
|
int a_itype;
|
2004-04-30 23:02:23 +00:00
|
|
|
uint16 a_iflags;
|
2004-04-12 21:40:49 +00:00
|
|
|
int a_idone;
|
2004-12-18 21:38:56 +00:00
|
|
|
|
2004-12-17 11:18:56 +00:00
|
|
|
WALKINTENT walkIntent;
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-17 11:18:56 +00:00
|
|
|
ACTORINTENT() {
|
|
|
|
a_itype = 0;
|
|
|
|
a_iflags = 0;
|
|
|
|
a_idone = 0;
|
2004-12-15 00:24:12 +00:00
|
|
|
}
|
2004-04-25 14:42:14 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-15 00:24:12 +00:00
|
|
|
typedef Common::List<ACTORINTENT> ActorIntentList;
|
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
struct ActorLocation {
|
|
|
|
int x; // Actor's logical coordinates
|
|
|
|
int y; //
|
|
|
|
int z; //
|
|
|
|
};
|
2004-12-17 20:38:17 +00:00
|
|
|
struct ActorData {
|
2004-12-18 20:33:02 +00:00
|
|
|
bool disabled; // Actor disabled in init section
|
|
|
|
int index; // Actor index
|
|
|
|
uint16 actorId; // Actor id
|
|
|
|
int nameIndex; // Actor's index in actor name string list
|
|
|
|
byte speechColor; // Actor dialogue color
|
2004-12-21 06:49:07 +00:00
|
|
|
uint16 flags; // Actor initial flags
|
2004-12-19 13:38:11 +00:00
|
|
|
|
2004-12-21 06:49:07 +00:00
|
|
|
|
2004-12-18 20:33:02 +00:00
|
|
|
int sceneNumber; // scene of actor
|
2004-12-22 21:04:50 +00:00
|
|
|
ActorLocation location; // Actor's logical coordinates
|
2004-12-19 13:38:11 +00:00
|
|
|
|
|
|
|
Point screenPosition; // Actor's screen coordinates
|
|
|
|
int screenDepth; //
|
|
|
|
int screenScale; //
|
2004-12-18 20:33:02 +00:00
|
|
|
|
2004-12-21 06:49:07 +00:00
|
|
|
uint16 actorFlags; // dynamic flags
|
|
|
|
int currentAction; // ActorActions type
|
|
|
|
int facingDirection; // orientation
|
2004-12-18 20:33:02 +00:00
|
|
|
int actionDirection;
|
2004-12-21 06:49:07 +00:00
|
|
|
int actionCycle;
|
|
|
|
int frameNumber; // current actor frame number
|
2004-12-22 21:04:50 +00:00
|
|
|
uint16 targetObject;
|
2004-12-18 20:33:02 +00:00
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
int cycleFrameNumber;
|
|
|
|
uint8 cycleDelay;
|
|
|
|
uint8 cycleTimeCount;
|
|
|
|
uint8 cycleFlags;
|
|
|
|
|
2004-12-18 20:33:02 +00:00
|
|
|
SPRITELIST *spriteList; // Actor's sprite list data
|
|
|
|
int spriteListResourceId; // Actor's sprite list resource id
|
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
ActorFrameSequence *frames; // Actor's frames
|
2004-12-18 20:33:02 +00:00
|
|
|
int framesCount; // Actor's frames count
|
|
|
|
int frameListResourceId; // Actor's frame list resource id
|
2004-12-17 11:18:56 +00:00
|
|
|
|
2004-04-12 21:40:49 +00:00
|
|
|
|
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
///old stuff
|
2004-04-12 21:40:49 +00:00
|
|
|
int idle_time;
|
|
|
|
int orient;
|
|
|
|
int speaking;
|
2004-12-15 00:24:12 +00:00
|
|
|
ActorIntentList a_intentlist;
|
2004-04-12 21:40:49 +00:00
|
|
|
int def_action;
|
2004-04-30 23:02:23 +00:00
|
|
|
uint16 def_action_flags;
|
2004-04-12 21:40:49 +00:00
|
|
|
int action;
|
2004-04-30 23:02:23 +00:00
|
|
|
uint16 action_flags;
|
2004-04-12 21:40:49 +00:00
|
|
|
int action_frame;
|
|
|
|
int action_time;
|
2004-12-22 21:04:50 +00:00
|
|
|
/// end old stuff
|
|
|
|
|
|
|
|
void cycleWrap(int cycleLimit) {
|
|
|
|
if (actionCycle >= cycleLimit)
|
|
|
|
actionCycle = 0;
|
|
|
|
}
|
2004-12-17 20:38:17 +00:00
|
|
|
|
|
|
|
ActorData() {
|
2004-12-18 20:33:02 +00:00
|
|
|
disabled = false;
|
|
|
|
index = 0;
|
|
|
|
actorId = 0;
|
2004-12-22 21:04:50 +00:00
|
|
|
|
2004-12-18 20:33:02 +00:00
|
|
|
nameIndex = 0;
|
|
|
|
speechColor = 0;
|
2004-12-22 21:04:50 +00:00
|
|
|
|
2004-12-17 20:38:17 +00:00
|
|
|
frames = NULL;
|
2004-12-18 20:33:02 +00:00
|
|
|
framesCount = 0;
|
2004-12-17 20:38:17 +00:00
|
|
|
frameListResourceId = 0;
|
2004-12-22 21:04:50 +00:00
|
|
|
|
2004-12-17 20:38:17 +00:00
|
|
|
spriteList = NULL;
|
|
|
|
spriteListResourceId = 0;
|
2004-12-22 21:04:50 +00:00
|
|
|
|
2004-12-18 20:33:02 +00:00
|
|
|
flags = 0;
|
2004-12-19 13:38:11 +00:00
|
|
|
sceneNumber = 0;
|
2004-12-22 21:04:50 +00:00
|
|
|
location.x = 0;
|
|
|
|
location.y = 0;
|
|
|
|
location.z = 0;
|
2004-12-19 13:38:11 +00:00
|
|
|
screenDepth = 0;
|
2004-12-21 06:49:07 +00:00
|
|
|
|
|
|
|
actorFlags = 0;
|
|
|
|
currentAction = 0;
|
|
|
|
facingDirection = 0;
|
|
|
|
actionDirection = 0;
|
2004-12-22 21:04:50 +00:00
|
|
|
actionCycle = 0;
|
|
|
|
targetObject = ID_NOTHING;
|
|
|
|
|
|
|
|
cycleFrameNumber = 0;
|
|
|
|
cycleDelay = 0;
|
|
|
|
cycleTimeCount = 0;
|
|
|
|
cycleFlags = 0;
|
2004-12-18 20:33:02 +00:00
|
|
|
|
2004-12-15 00:24:12 +00:00
|
|
|
idle_time = 0;
|
|
|
|
orient = 0;
|
|
|
|
speaking = 0;
|
|
|
|
def_action = 0;
|
|
|
|
def_action_flags = 0;
|
|
|
|
action = 0;
|
|
|
|
action_flags = 0;
|
|
|
|
action_frame = 0;
|
|
|
|
action_time = 0;
|
|
|
|
}
|
2004-04-25 14:42:14 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-17 20:38:17 +00:00
|
|
|
typedef ActorData* ActorDataPointer;
|
|
|
|
typedef SortedList<ActorDataPointer> ActorOrderList;
|
2004-12-15 00:24:12 +00:00
|
|
|
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-10-27 21:32:28 +00:00
|
|
|
struct ACTIONTIMES {
|
2004-04-12 21:40:49 +00:00
|
|
|
int action;
|
|
|
|
int time;
|
2004-04-25 14:42:14 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
2004-12-21 06:49:07 +00:00
|
|
|
struct SpeechData {
|
|
|
|
int speechColor;
|
|
|
|
int outlineColor;
|
|
|
|
int speechFlags;
|
|
|
|
const char *strings[ACTOR_SPEECH_STRING_MAX];
|
|
|
|
int stringsCount;
|
|
|
|
int slowModeCharIndex;
|
|
|
|
uint16 actorIds[ACTOR_SPEECH_ACTORS_MAX];
|
|
|
|
int actorsCount;
|
|
|
|
int sampleResourceId;
|
|
|
|
bool playing;
|
|
|
|
int playingTime;
|
|
|
|
|
|
|
|
SpeechData() {
|
|
|
|
memset(this, 0, sizeof(*this));
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2004-08-02 15:47:42 +00:00
|
|
|
class Actor {
|
2004-10-31 13:51:01 +00:00
|
|
|
public:
|
2004-12-22 21:04:50 +00:00
|
|
|
ActorData *_centerActor;
|
|
|
|
ActorData *_protagonist;
|
|
|
|
|
2004-08-02 15:47:42 +00:00
|
|
|
Actor(SagaEngine *vm);
|
|
|
|
~Actor();
|
2004-12-22 21:04:50 +00:00
|
|
|
/*
|
2004-12-03 19:15:44 +00:00
|
|
|
void CF_actor_move(int argc, const char **argv);
|
|
|
|
void CF_actor_moverel(int argc, const char **argv);
|
|
|
|
void CF_actor_seto(int argc, const char **argv);
|
|
|
|
void CF_actor_setact(int argc, const char **argv);
|
2004-12-22 21:04:50 +00:00
|
|
|
*/
|
2004-08-02 15:47:42 +00:00
|
|
|
int direct(int msec);
|
2004-12-18 20:33:02 +00:00
|
|
|
int drawActors();
|
|
|
|
void updateActorsScene(); // calls from scene loading to update Actors info
|
2004-08-02 15:47:42 +00:00
|
|
|
|
2004-12-17 20:38:17 +00:00
|
|
|
void StoA(Point &actorPoint, const Point &screenPoint);
|
2004-08-02 15:47:42 +00:00
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
void move(uint16 actorId, const Point &movePoint){}
|
|
|
|
void moveRelative(uint16 actorId, const Point &movePoint){}
|
2004-08-02 15:47:42 +00:00
|
|
|
|
2004-12-22 21:04:50 +00:00
|
|
|
void walkTo(uint16 actorId, const Point *walk_pt, uint16 flags, SEMAPHORE *sem) {}
|
|
|
|
|
|
|
|
ActorData *getActor(uint16 actorId);
|
|
|
|
// action
|
|
|
|
ActorFrameRange *getActorFrameRange(uint16 actorId, int frameType);
|
2004-08-02 15:47:42 +00:00
|
|
|
|
2004-12-21 06:49:07 +00:00
|
|
|
// speech
|
|
|
|
void actorSpeech(uint16 actorId, const char **strings, int stringsCount, uint16 sampleResourceId, int speechFlags);
|
|
|
|
void nonActorSpeech(const char **strings, int stringsCount, int speechFlags);
|
|
|
|
void simulSpeech(const char *string, uint16 *actorIds, int actorIdsCount, int speechFlags);
|
|
|
|
void setSpeechColor(int speechColor, int outlineColor) {
|
|
|
|
_activeSpeech.speechColor = speechColor;
|
|
|
|
_activeSpeech.outlineColor = outlineColor;
|
|
|
|
}
|
|
|
|
void abortAllSpeeches();
|
|
|
|
void abortSpeech();
|
|
|
|
bool isSpeaking() {
|
|
|
|
return _activeSpeech.stringsCount > 0;
|
|
|
|
}
|
2004-12-18 20:33:02 +00:00
|
|
|
|
2004-10-31 13:51:01 +00:00
|
|
|
private:
|
2004-12-17 20:38:17 +00:00
|
|
|
int handleWalkIntent(ActorData *actor, WALKINTENT *a_walk_int, int *complete_p, int msec);
|
2004-12-19 13:38:11 +00:00
|
|
|
int setPathNode(WALKINTENT *walk_int, const Point &src_pt, Point *dst_pt, SEMAPHORE *sem);
|
2004-08-02 15:47:42 +00:00
|
|
|
|
2004-12-18 16:08:59 +00:00
|
|
|
bool loadActorResources(ActorData * actor);
|
2004-12-17 20:38:17 +00:00
|
|
|
|
2004-12-18 20:33:02 +00:00
|
|
|
void createDrawOrderList();
|
2004-12-21 06:49:07 +00:00
|
|
|
void handleSpeech(int msec);
|
2004-12-22 21:04:50 +00:00
|
|
|
void handleActions(int msec, bool setup);
|
2004-12-24 12:47:16 +00:00
|
|
|
|
|
|
|
int _lastTickMsec;
|
2004-08-02 15:47:42 +00:00
|
|
|
SagaEngine *_vm;
|
2004-10-27 21:32:28 +00:00
|
|
|
RSCFILE_CONTEXT *_actorContext;
|
2004-12-18 20:33:02 +00:00
|
|
|
ActorOrderList _drawOrderList;
|
2004-12-17 20:38:17 +00:00
|
|
|
ActorData _actors[ACTORCOUNT];
|
2004-12-21 06:49:07 +00:00
|
|
|
SpeechData _activeSpeech;
|
2004-08-02 15:47:42 +00:00
|
|
|
};
|
2004-04-12 21:40:49 +00:00
|
|
|
|
|
|
|
} // End of namespace Saga
|
|
|
|
|
2004-05-01 06:16:57 +00:00
|
|
|
#endif
|