diff options
Diffstat (limited to 'engines/scumm/actor.h')
-rw-r--r-- | engines/scumm/actor.h | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/engines/scumm/actor.h b/engines/scumm/actor.h index fe5865d12b..3e8fe6626b 100644 --- a/engines/scumm/actor.h +++ b/engines/scumm/actor.h @@ -61,6 +61,7 @@ struct CostumeData { uint16 end[16]; uint16 frame[16]; + /* HE specific */ uint16 heJumpOffsetTable[16]; uint16 heJumpCountTable[16]; uint32 heCondMaskTable[16]; @@ -133,27 +134,11 @@ public: CostumeData _cost; /* HE specific */ - - /** This rect is used to clip actor drawing. */ - Common::Rect _clipOverride; - int _heOffsX, _heOffsY; - bool _heNoTalkAnimation; bool _heSkipLimbs; - bool _heTalking; uint32 _heCondMask; uint32 _hePaletteNum; uint32 _heXmapNum; - byte _heFlags; - - AuxBlock _auxBlock; - - struct { - int16 posX; - int16 posY; - int16 color; - byte sentence[128]; - } _heTalkQueue[16]; protected: struct ActorWalkData { @@ -188,7 +173,7 @@ public: virtual ~Actor() {} //protected: - void hideActor(); + virtual void hideActor(); void showActor(); virtual void initActor(int mode); @@ -227,7 +212,7 @@ public: void drawActorCostume(bool hitTestMode = false); virtual void prepareDrawActorCostume(BaseCostumeRenderer *bcr); void animateCostume(); - void setActorCostume(int c); + virtual void setActorCostume(int c); void animateLimb(int limb, int f); @@ -318,14 +303,6 @@ public: void classChanged(int cls, bool value); - void setHEFlag(int bit, int set); - - void setUserCondition(int slot, int set); - bool isUserConditionSet(int slot) const; - - void setTalkCondition(int slot); - bool isTalkConditionSet(int slot) const; - // Used by the save/load system: void saveLoadWithSerializer(Serializer *ser); @@ -342,10 +319,39 @@ public: ActorHE(ScummEngine *scumm, int id) : Actor(scumm, id) {} virtual void initActor(int mode); + + virtual void hideActor(); + void drawActorToBackBuf(int x, int y); -protected: + void setHEFlag(int bit, int set); + + void setUserCondition(int slot, int set); + bool isUserConditionSet(int slot) const; + + void setTalkCondition(int slot); + bool isTalkConditionSet(int slot) const; + +public: + /** This rect is used to clip actor drawing. */ + Common::Rect _clipOverride; + + bool _heNoTalkAnimation; + bool _heTalking; + byte _heFlags; + + AuxBlock _auxBlock; + + struct { + int16 posX; + int16 posY; + int16 color; + byte sentence[128]; + } _heTalkQueue[16]; + + virtual void prepareDrawActorCostume(BaseCostumeRenderer *bcr); + virtual void setActorCostume(int c); }; class Actor_v3 : public Actor { |