aboutsummaryrefslogtreecommitdiff
path: root/scumm.h
diff options
context:
space:
mode:
authorMax Horn2002-05-14 19:11:20 +0000
committerMax Horn2002-05-14 19:11:20 +0000
commitfe4230bcbf317c2ac039b25c1421b383219e8c9e (patch)
treec114fb43df02484e5f122dcc3ecae28c4c56e8bc /scumm.h
parenta592de43330c4ab1162b83599e12e70696cb661c (diff)
downloadscummvm-rg350-fe4230bcbf317c2ac039b25c1421b383219e8c9e.tar.gz
scummvm-rg350-fe4230bcbf317c2ac039b25c1421b383219e8c9e.tar.bz2
scummvm-rg350-fe4230bcbf317c2ac039b25c1421b383219e8c9e.zip
refactored parts of actor.cpp: many methods are now members of class Actor instead of class Scumm. This is still work in progress!
svn-id: r4319
Diffstat (limited to 'scumm.h')
-rw-r--r--scumm.h111
1 files changed, 30 insertions, 81 deletions
diff --git a/scumm.h b/scumm.h
index acccd65b06..8c24556e67 100644
--- a/scumm.h
+++ b/scumm.h
@@ -1,5 +1,6 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
+ * Copyright (C) 2001/2002 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -19,10 +20,14 @@
*
*/
+#ifndef SCUMM_H
+#define SCUMM_H
+
#include "scummsys.h"
#include "system.h"
#include "sound/mixer.h"
#include "config-file.h"
+#include "actor.h"
#define SCUMMVM_VERSION "0.2.0 Release"
#define SCUMMVM_CVS "051302"
@@ -200,29 +205,6 @@ public:
byte fl_object_index;
};
-struct CostumeData {
- byte active[16];
- uint16 animCounter1;
- byte animCounter2;
- uint16 stopped;
- uint16 curpos[16];
- uint16 start[16];
- uint16 end[16];
- uint16 frame[16];
-};
-
-struct ActorWalkData {
- int16 destx,desty; // Final destination
- byte destbox;
- int16 destdir;
- byte curbox;
- int16 x,y; // Current position
- int16 newx,newy; // Next position on our way to the destination
- int32 XYFactor, YXFactor;
- uint16 xfrac,yfrac;
- int point3x, point3y;
-};
-
struct ScriptSlot {
uint32 offs;
int32 delay;
@@ -431,41 +413,6 @@ struct CostumeRenderer {
};
-struct Actor {
- int x,y,top,bottom;
- int elevation;
- uint width;
- byte number;
- uint16 facing;
- uint16 costume;
- byte room;
- byte talkColor;
- byte scalex,scaley;
- byte charset;
- int16 newDirection;
- byte moving;
- byte ignoreBoxes;
- byte forceClip;
- byte initFrame,walkFrame,standFrame,talkFrame1,talkFrame2;
- bool needRedraw, needBgReset,costumeNeedsInit,visible;
- byte shadow_mode;
- bool flip;
- uint speedx,speedy;
- byte frame;
- byte walkbox;
- byte mask;
- byte animProgress, animSpeed;
- int16 new_1,new_2;
- uint16 talk_script, walk_script;
- byte new_3;
- int8 layer;
- ActorWalkData walkdata;
- int16 animVariable[16];
- uint16 sound[8];
- CostumeData cost;
- byte palette[64];
-};
-
#define ARRAY_HDR_SIZE 6
struct ArrayHeader {
int16 dim1_size;
@@ -1039,21 +986,21 @@ public:
Actor *derefActorSafe(int id, const char *errmsg);
Actor *getFirstActor() {return actor;}
void putActor(Actor *a, int x, int y, byte room);
- void hideActor(Actor *a);
- void showActor(Actor *a);
+// void hideActor(Actor *a);
+// void showActor(Actor *a);
void showActors();
- void initActor(Actor *a, int mode);
- void setActorWalkSpeed(Actor *a, uint speed1, uint speed2);
- int calcMovementFactor(Actor *a, int newx, int newy);
- int actorWalkStep(Actor *a);
- int remapDirection(Actor *a, int dir);
- void setupActorScale(Actor *a);
- void stopActorMoving(Actor *a);
+// void initActor(Actor *a, int mode);
+// void setActorWalkSpeed(Actor *a, uint speed1, uint speed2);
+// int calcMovementFactor(Actor *a, int newx, int newy);
+// int actorWalkStep(Actor *a);
+// int remapDirection(Actor *a, int dir);
+// void setupActorScale(Actor *a);
+// void stopActorMoving(Actor *a);
uint32 *_classData;
- void startWalkAnim(Actor *a, int cmd, int angle);
- void startAnimActor(Actor *a, int frame);
- void setActorBox(Actor *a, int box);
+// void startWalkAnim(Actor *a, int cmd, int angle);
+// void startAnimActor(Actor *a, int frame);
+// void setActorBox(Actor *a, int box);
int newDirToOldDir(int dir);
int oldDirToNewDir(int dir);
@@ -1063,34 +1010,34 @@ public:
static int fromSimpleDir(int dirtype, int dir);
static int toSimpleDir(int dirtype, int dir);
static int numSimpleDirDirections(int dirType);
- int updateActorDirection(Actor *a);
+// int updateActorDirection(Actor *a);
void startAnimActorEx(Actor *a, int frame, int direction);
int getProgrDirChange(Actor *a, int mode);
void initActorCostumeData(Actor *a);
- void setActorDirection(Actor *a, int direction);
+// void setActorDirection(Actor *a, int direction);
int getActorXYPos(Actor *a);
- void adjustActorPos(Actor *a);
- void turnToDirection(Actor *a, int newdir);
+// void adjustActorPos(Actor *a);
+// void turnToDirection(Actor *a, int newdir);
AdjustBoxResult adjustXYToBeInBox(Actor *a, int x, int y, int pathfrom);
void walkActors();
void playActorSounds();
- void walkActor(Actor *a);
+// void walkActor(Actor *a);
void setActorRedrawFlags();
void resetActorBgs();
void processActors();
void drawActorCostume(Actor *a);
void actorAnimate(Actor *a);
int getActorFromPos(int x, int y);
- void setActorCostume(Actor *a, int c);
- byte *getActorName(Actor *a);
+// void setActorCostume(Actor *a, int c);
+// byte *getActorName(Actor *a);
void faceActorToObj(int act, int obj);
void animateActor(int act, int anim);
void actorFollowCamera(int act);
- void startWalkActor(Actor *a, int x, int y, int dir);
+// void startWalkActor(Actor *a, int x, int y, int dir);
- void remapActor(Actor *a, int b, int c, int d, int e);
- void walkActorOld(Actor *a);
+// void remapActor(Actor *a, int b, int c, int d, int e);
+// void walkActorOld(Actor *a);
bool isCostumeInUse(int i);
/* Actor talking stuff */
@@ -1261,7 +1208,8 @@ public:
int _maxBoxVertexHeap, _boxPathVertexHeapIndex, _boxMatrixItem;
byte *_boxMatrixPtr4, *_boxMatrixPtr1, *_boxMatrixPtr3;
- ScummPoint p[5]; /* Gate locations */
+// ScummPoint p[5]; /* Gate locations */
+ ScummPoint gateLoc[5]; /* Gate locations */
int gate1ax, gate1ay, gate1bx, gate1by, gate2ax, gate2ay, gate2bx, gate2by;
uint16 _extraBoxFlags[65];
int16 _foundPathX, _foundPathY;
@@ -1890,3 +1838,4 @@ byte *findResourceSmall(uint32 tag, byte *searchin);
void setWindowName(Scumm *s);
uint16 newTag2Old(uint32 oldTag);
+#endif