aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTobias Gunkel2012-01-07 18:05:42 +0100
committerTobias Gunkel2012-02-11 08:28:18 +0100
commitb01f601d7e8dc0b7885ff058c8596dc2ad6762f4 (patch)
tree798ae101fdd6c78a3d531cc9ce58396d8e3f5b38 /engines
parent6b5abf69190b47dc7c0da63fa08a717adbfc0cdd (diff)
downloadscummvm-rg350-b01f601d7e8dc0b7885ff058c8596dc2ad6762f4.tar.gz
scummvm-rg350-b01f601d7e8dc0b7885ff058c8596dc2ad6762f4.tar.bz2
scummvm-rg350-b01f601d7e8dc0b7885ff058c8596dc2ad6762f4.zip
SCUMM: use constants for c64 actor miscflags
Diffstat (limited to 'engines')
-rw-r--r--engines/scumm/actor.h13
-rw-r--r--engines/scumm/script_v0.cpp10
-rw-r--r--engines/scumm/verbs.cpp10
3 files changed, 22 insertions, 11 deletions
diff --git a/engines/scumm/actor.h b/engines/scumm/actor.h
index 1584d0a78b..d8e3692619 100644
--- a/engines/scumm/actor.h
+++ b/engines/scumm/actor.h
@@ -335,10 +335,21 @@ protected:
virtual void prepareDrawActorCostume(BaseCostumeRenderer *bcr);
};
+enum ActorC64MiscFlags {
+ kActorMiscFlagStrong = 0x01, // Kid is strong (Hunk-O-Matic used)
+ kActorMiscFlag_02 = 0x02, // ???
+ kActorMiscFlag_04 = 0x04, // ???
+ kActorMiscFlagEdsEnemy = 0x08, // Kid is not Weird Ed's friend
+ kActorMiscFlag_10 = 0x10, // ???
+ kActorMiscFlag_20 = 0x20, // ???
+ kActorMiscFlagFreeze = 0x40, // Stop moving
+ kActorMiscFlagHide = 0x80, // Hide actor (e.g. dead or wearing radiation suit)
+};
+
class ActorC64 : public Actor_v2 {
public:
byte _costCommand, _costFrame;
- byte _miscflags; // 0x1: strong, 0x8: Ed's enemy, 0x40: stop moving, 0x80: hide(dead/radiation suit)
+ byte _miscflags;
byte _speaking, _speakingPrev;
public:
diff --git a/engines/scumm/script_v0.cpp b/engines/scumm/script_v0.cpp
index 14df89b28d..0f9fbc6e6f 100644
--- a/engines/scumm/script_v0.cpp
+++ b/engines/scumm/script_v0.cpp
@@ -542,16 +542,16 @@ void ScummEngine_v0::o_loadRoom() {
}
void ScummEngine_v0::o_loadRoomWithEgo() {
- Actor *a;
+ ActorC64 *a;
int obj, room, x, y, dir;
obj = fetchScriptByte();
room = fetchScriptByte();
- a = derefActor(VAR(VAR_EGO), "o_loadRoomWithEgo");
+ a = (ActorC64 *)derefActor(VAR(VAR_EGO), "o_loadRoomWithEgo");
//0x634F
- if (((ActorC64 *)a)->_miscflags & 0x40) {
+ if (a->_miscflags & kActorMiscFlagFreeze) {
// TODO: Check if this is the correct function
// to be calling here
stopObjectCode();
@@ -734,9 +734,9 @@ void ScummEngine_v0::o_setActorBitVar() {
a->_miscflags &= ~mask;
// This flag causes the actor to stop moving (used by script #158, Green Tentacle 'Oomph!')
- if (a->_miscflags & 0x40)
+ if (a->_miscflags & kActorMiscFlagFreeze)
a->stopActorMoving();
- if (a->_miscflags & 0x80)
+ if (a->_miscflags & kActorMiscFlagHide)
a->setActorCostume(0);
debug(0, "o_setActorBitVar(%d, %d, %d)", act, mask, mod);
diff --git a/engines/scumm/verbs.cpp b/engines/scumm/verbs.cpp
index 291985892a..3d0abae0a3 100644
--- a/engines/scumm/verbs.cpp
+++ b/engines/scumm/verbs.cpp
@@ -847,8 +847,8 @@ bool ScummEngine_v0::verbObtain(int obj) {
}
// Ignore verbs?
- Actor *a = derefActor(VAR(VAR_EGO), "verbObtain");
- if (((ActorC64 *)a)->_miscflags & 0x40) {
+ ActorC64 *a = (ActorC64 *)derefActor(VAR(VAR_EGO), "verbObtain");
+ if (a->_miscflags & kActorMiscFlagFreeze) {
resetSentence(false);
return false;
}
@@ -918,7 +918,7 @@ bool ScummEngine_v0::verbExec() {
if (verbMoveToActor(_activeObject2Nr)) {
// Ignore verbs?
Actor *a = derefActor(VAR(VAR_EGO), "verbExec");
- if (((ActorC64 *)a)->_miscflags & 0x40) {
+ if (((ActorC64 *)a)->_miscflags & kActorMiscFlagFreeze) {
resetSentence(false);
return false;
}
@@ -1052,7 +1052,7 @@ void ScummEngine_v0::checkExecVerbs() {
}
}
- if (a->_miscflags & 0x80) {
+ if (a->_miscflags & kActorMiscFlagHide) {
if (_activeVerb != kVerbNewKid) {
_activeVerb = kVerbNone;
}
@@ -1210,7 +1210,7 @@ void ScummEngine_v0::checkExecVerbs() {
if (zone->number == kMainVirtScreen) {
// Ignore verbs?
- if (a->_miscflags & 0x40) {
+ if (a->_miscflags & kActorMiscFlagFreeze) {
resetSentence(false);
return;
}