aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parallaction.h')
-rw-r--r--engines/parallaction/parallaction.h77
1 files changed, 39 insertions, 38 deletions
diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h
index dfc83f04c1..1376692c82 100644
--- a/engines/parallaction/parallaction.h
+++ b/engines/parallaction/parallaction.h
@@ -33,13 +33,14 @@
#include "engines/engine.h"
-#include "parallaction/defs.h"
#include "parallaction/inventory.h"
#include "parallaction/parser.h"
#include "parallaction/objects.h"
#include "parallaction/disk.h"
#include "parallaction/walk.h"
+#define PATH_LEN 200
+
extern OSystem *g_system;
@@ -200,7 +201,7 @@ struct Character {
Parallaction *_vm;
- Animation _ani;
+ AnimationPtr _ani;
Frames *_head;
Frames *_talk;
Frames *_objs;
@@ -319,15 +320,15 @@ public:
OpcodeSet _commandOpcodes;
struct {
- Command *cmd;
- Zone *z;
+ CommandPtr cmd;
+ ZonePtr z;
} _cmdRunCtxt;
OpcodeSet _instructionOpcodes;
struct {
- Animation *anim;
- Program *program;
+ AnimationPtr anim;
+ ProgramPtr program;
InstructionList::iterator inst;
uint16 modCounter;
bool suspend;
@@ -340,19 +341,19 @@ public:
void resumeJobs();
void finalizeWalk(WalkNodeList *list);
- int16 selectWalkFrame(const Common::Point& pos, const WalkNode* from);
- void clipMove(Common::Point& pos, const WalkNode* from);
+ int16 selectWalkFrame(const Common::Point& pos, const WalkNodePtr& from);
+ void clipMove(Common::Point& pos, const WalkNodePtr& from);
- Zone *findZone(const char *name);
- Zone *hitZone(uint32 type, uint16 x, uint16 y);
- uint16 runZone(Zone*);
+ ZonePtr findZone(const char *name);
+ ZonePtr hitZone(uint32 type, uint16 x, uint16 y);
+ uint16 runZone(ZonePtr& z);
void freeZones();
void runDialogue(SpeakData*);
- void runCommands(CommandList& list, Zone *z = NULL);
+ void runCommands(CommandList& list, ZonePtr z = nullZonePtr);
- Animation *findAnimation(const char *name);
+ AnimationPtr &findAnimation(const char *name);
void freeAnimations();
void setBackground(const char *background, const char *mask, const char *path);
@@ -402,7 +403,7 @@ public:
p = _mousePos;
}
- Zone *_activeZone;
+ ZonePtr _activeZone;
ZoneList _zones;
AnimationList _animations;
@@ -423,7 +424,7 @@ protected: // data
uint16 _event;
Common::Point _mousePos;
int16 _inventoryIndex;
- Zone* _zone;
+ ZonePtr _zone;
Label* _label;
};
@@ -446,7 +447,7 @@ protected: // data
bool _hasLocationSound;
char _locationSound[50];
- Zone *_hoverZone;
+ ZonePtr _hoverZone;
protected: // members
@@ -480,7 +481,7 @@ protected: // members
void freeCharacter();
- int16 pickupItem(Zone *z);
+ int16 pickupItem(ZonePtr &z);
public:
virtual void callFunction(uint index, void* parm) { }
@@ -490,7 +491,7 @@ public:
virtual void parseLocation(const char* name) = 0;
- void updateDoor(Zone *z);
+ void updateDoor(ZonePtr &z);
virtual void runScripts() = 0;
virtual void walk() = 0;
@@ -676,12 +677,12 @@ protected:
const char *filename;
Script *script;
- Zone *z;
- Animation *a;
+ ZonePtr z;
+ AnimationPtr a;
int nextToken;
CommandList *list;
bool endcommands;
- Command *cmd;
+ CommandPtr cmd;
// BRA specific
int numZones;
@@ -733,12 +734,12 @@ protected:
DECLARE_UNQUALIFIED_COMMAND_PARSER(move);
DECLARE_UNQUALIFIED_COMMAND_PARSER(endcommands);
- virtual void parseGetData(Script &script, Zone *z);
- virtual void parseExamineData(Script &script, Zone *z);
- virtual void parseDoorData(Script &script, Zone *z);
- virtual void parseMergeData(Script &script, Zone *z);
- virtual void parseHearData(Script &script, Zone *z);
- virtual void parseSpeakData(Script &script, Zone *z);
+ virtual void parseGetData(Script &script, ZonePtr& z);
+ virtual void parseExamineData(Script &script, ZonePtr& z);
+ virtual void parseDoorData(Script &script, ZonePtr& z);
+ virtual void parseMergeData(Script &script, ZonePtr& z);
+ virtual void parseHearData(Script &script, ZonePtr& z);
+ virtual void parseSpeakData(Script &script, ZonePtr& z);
void parseLocation(const char *filename);
char *parseComment(Script &script);
@@ -749,12 +750,12 @@ protected:
Question *parseQuestion(Script &script);
void parseZone(Script &script, ZoneList &list, char *name);
- void parseZoneTypeBlock(Script &script, Zone *z);
+ void parseZoneTypeBlock(Script &script, ZonePtr z);
void parseWalkNodes(Script& script, WalkNodeList &list);
- Animation *parseAnimation(Script &script, AnimationList &list, char *name);
+ void parseAnimation(Script &script, AnimationList &list, char *name);
void parseCommands(Script &script, CommandList&);
void parseCommandFlags();
- void saveCommandForward(const char *name, Command* cmd);
+ void saveCommandForward(const char *name, CommandPtr &cmd);
void resolveCommandForwards();
void createCommand(uint id);
void addCommand();
@@ -763,7 +764,7 @@ protected:
struct CommandForwardReference {
char name[20];
- Command* cmd;
+ CommandPtr cmd;
} _forwardedCommands[MAX_FORWARDS];
uint _numForwardedCommands;
@@ -773,13 +774,13 @@ protected:
struct {
bool end;
- Animation *a;
- Instruction *inst;
+ AnimationPtr a;
+ InstructionPtr inst;
LocalVariable *locals;
- Program *program;
+ ProgramPtr program;
// BRA specific
- Instruction *openIf;
+ InstructionPtr openIf;
} _instParseCtxt;
DECLARE_UNQUALIFIED_INSTRUCTION_PARSER(defLocal);
@@ -798,8 +799,8 @@ protected:
DECLARE_UNQUALIFIED_INSTRUCTION_PARSER(null);
DECLARE_UNQUALIFIED_INSTRUCTION_PARSER(endscript);
- void parseInstruction(Program *program);
- void loadProgram(Animation *a, const char *filename);
+ void parseInstruction(ProgramPtr &program);
+ void loadProgram(AnimationPtr &a, const char *filename);
void parseLValue(ScriptVar &var, const char *str);
virtual void parseRValue(ScriptVar &var, const char *str);
void wrapLocalVar(LocalVariable *local);
@@ -889,7 +890,7 @@ public:
int _subtitleY;
int _subtitle[2];
- Zone *_activeZone2;
+ ZonePtr _activeZone2;
int32 _counters[32];