aboutsummaryrefslogtreecommitdiff
path: root/saga/actor.h
diff options
context:
space:
mode:
authorAndrew Kurushin2005-01-08 20:30:07 +0000
committerAndrew Kurushin2005-01-08 20:30:07 +0000
commitbdb1b1eb1c21faf8dfc00ce4fb57965cdb649d8a (patch)
tree233893d2177e474fb1257b9717be0d83e118cbec /saga/actor.h
parent65a4044203f2d26edb26a7677dd1a6107d24adcb (diff)
downloadscummvm-rg350-bdb1b1eb1c21faf8dfc00ce4fb57965cdb649d8a.tar.gz
scummvm-rg350-bdb1b1eb1c21faf8dfc00ce4fb57965cdb649d8a.tar.bz2
scummvm-rg350-bdb1b1eb1c21faf8dfc00ce4fb57965cdb649d8a.zip
begining of verb implementation
introduced getObjectName svn-id: r16491
Diffstat (limited to 'saga/actor.h')
-rw-r--r--saga/actor.h30
1 files changed, 12 insertions, 18 deletions
diff --git a/saga/actor.h b/saga/actor.h
index 0b7a114411..dfb6421b19 100644
--- a/saga/actor.h
+++ b/saga/actor.h
@@ -29,10 +29,11 @@
#include "saga/sprite.h"
#include "saga/actordata.h"
#include "saga/list.h"
+#include "saga/saga.h"
namespace Saga {
-//#define ACTOR_DEBUG
+#define ACTOR_DEBUG
#define ACTOR_BARRIERS_MAX 16
@@ -56,16 +57,6 @@ namespace Saga {
#define PATH_NODE_EMPTY -1
-
-#define ID_NOTHING 0
-#define ID_PROTAG 1
-
-#define IS_VALID_ACTOR_INDEX(index) ((index >= 0) && (index < ACTORCOUNT))
-#define IS_VALID_ACTOR_ID(id) ((id == 1) || (id >= 0x2000) && (id < (0x2000 | ACTORCOUNT)))
-#define ACTOR_ID_TO_INDEX(id) ((((uint16)id) == 1 ) ? 0 : (int)(((uint16)id) & ~0x2000))
-#define ACTOR_INDEX_TO_ID(index) ((((int)index) == 0 ) ? 1 : (uint16)(((int)index) | 0x2000))
-
-
enum ActorActions {
kActionWait = 0,
kActionWalkToPoint = 1,
@@ -207,7 +198,7 @@ struct ActorData {
uint8 cycleTimeCount;
uint8 cycleFlags;
- SPRITELIST *spriteList; // Actor's sprite list data
+ SpriteList *spriteList; // Actor's sprite list data
int spriteListResourceId; // Actor's sprite list resource id
ActorFrameSequence *frames; // Actor's frames
@@ -275,18 +266,20 @@ public:
Actor(SagaEngine *vm);
~Actor();
-/*
- 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);
-*/
+
+ void cmdActorWalkTo(int argc, const char **argv);
+
+ bool validActorId(uint16 id) { return (id == 1) || ((id >= 0x2000) && (id < (0x2000 | ACTORCOUNT))); }
+ int actorIdToIndex(uint16 id) { return (id == 1 ) ? 0 : (id & ~0x2000); }
+ uint16 actorIndexToId(int index) { return (index == 0 ) ? 1 : (index | 0x2000); }
+
int direct(int msec);
int drawActors();
void updateActorsScene(); // calls from scene loading to update Actors info
void drawPathTest();
+ const char * getActorName(uint16 actorId);
bool actorEndWalk(uint16 actorId, bool recurse);
bool actorWalkTo(uint16 actorId, const ActorLocation &toLocation);
ActorData *getActor(uint16 actorId);
@@ -350,6 +343,7 @@ private:
ActorOrderList _drawOrderList;
ActorData _actors[ACTORCOUNT];
SpeechData _activeSpeech;
+ StringsList _actorsStrings;
//path stuff
Rect _barrierList[ACTOR_BARRIERS_MAX];