aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTravis Howell2006-04-06 14:01:52 +0000
committerTravis Howell2006-04-06 14:01:52 +0000
commitdc73f361e1a8d60de95093154300d77e6a177a3e (patch)
tree4fb3aac2a232637010d3d3dfe4059bcecba5c1d4 /engines
parent87de34a8d512e9821293296b09b0d715294168f6 (diff)
downloadscummvm-rg350-dc73f361e1a8d60de95093154300d77e6a177a3e.tar.gz
scummvm-rg350-dc73f361e1a8d60de95093154300d77e6a177a3e.tar.bz2
scummvm-rg350-dc73f361e1a8d60de95093154300d77e6a177a3e.zip
Rename structures and correct array sizes
svn-id: r21641
Diffstat (limited to 'engines')
-rw-r--r--engines/simon/icons.cpp18
-rw-r--r--engines/simon/intern.h47
-rw-r--r--engines/simon/items.cpp92
-rw-r--r--engines/simon/res.cpp32
-rw-r--r--engines/simon/saveload.cpp48
-rw-r--r--engines/simon/simon.cpp66
-rw-r--r--engines/simon/simon.h14
-rw-r--r--engines/simon/verb.cpp46
8 files changed, 194 insertions, 169 deletions
diff --git a/engines/simon/icons.cpp b/engines/simon/icons.cpp
index 59dfc955bb..32224f8904 100644
--- a/engines/simon/icons.cpp
+++ b/engines/simon/icons.cpp
@@ -434,7 +434,7 @@ void SimonEngine::setArrowHitAreas(WindowBlock *window, uint num) {
ha->y = 279;
ha->width = 30;
ha->height = 45;
- ha->flags = 0x24;
+ ha->flags = kBFBoxInUse | kBFNoTouchName;
ha->id = 0x7FFB;
ha->priority = 100;
ha->window = window;
@@ -444,7 +444,7 @@ void SimonEngine::setArrowHitAreas(WindowBlock *window, uint num) {
ha->y = 158;
ha->width = 12;
ha->height = 26;
- ha->flags = 36;
+ ha->flags = kBFBoxInUse | kBFNoTouchName;
ha->id = 0x7FFB;
ha->priority = 100;
ha->window = window;
@@ -454,7 +454,7 @@ void SimonEngine::setArrowHitAreas(WindowBlock *window, uint num) {
ha->y = 149;
ha->width = 12;
ha->height = 17;
- ha->flags = 0x24;
+ ha->flags = kBFBoxInUse | kBFNoTouchName;
ha->id = 0x7FFB;
ha->priority = 100;
ha->window = window;
@@ -469,7 +469,7 @@ void SimonEngine::setArrowHitAreas(WindowBlock *window, uint num) {
ha->y = 324;
ha->width = 30;
ha->height = 44;
- ha->flags = 0x24;
+ ha->flags = kBFBoxInUse | kBFNoTouchName;
ha->id = 0x7FFC;
ha->priority = 100;
ha->window = window;
@@ -479,7 +479,7 @@ void SimonEngine::setArrowHitAreas(WindowBlock *window, uint num) {
ha->y = 162;
ha->width = 12;
ha->height = 26;
- ha->flags = 36;
+ ha->flags = kBFBoxInUse | kBFNoTouchName;
ha->id = 0x7FFC;
ha->priority = 100;
ha->window = window;
@@ -489,7 +489,7 @@ void SimonEngine::setArrowHitAreas(WindowBlock *window, uint num) {
ha->y = 176;
ha->width = 12;
ha->height = 17;
- ha->flags = 0x24;
+ ha->flags = kBFBoxInUse | kBFNoTouchName;
ha->id = 0x7FFC;
ha->priority = 100;
ha->window = window;
@@ -511,7 +511,7 @@ uint SimonEngine::setupIconHitArea(WindowBlock *window, uint num, uint x, uint y
ha->item_ptr = item_ptr;
ha->width = 45;
ha->height = 44;
- ha->flags = 0xA0;
+ ha->flags = kBFBoxInUse | kBFBoxItem;
ha->id = num;
ha->priority = 100;
ha->verb = 208;
@@ -521,7 +521,7 @@ uint SimonEngine::setupIconHitArea(WindowBlock *window, uint num, uint x, uint y
ha->item_ptr = item_ptr;
ha->width = 20;
ha->height = 20;
- ha->flags = 0xB0;
+ ha->flags = kBFDragBox | kBFBoxInUse | kBFBoxItem;
ha->id = 0x7FFD;
ha->priority = 100;
ha->verb = 208;
@@ -531,7 +531,7 @@ uint SimonEngine::setupIconHitArea(WindowBlock *window, uint num, uint x, uint y
ha->item_ptr = item_ptr;
ha->width = 24;
ha->height = 24;
- ha->flags = 0xB0;
+ ha->flags = kBFDragBox | kBFBoxInUse | kBFBoxItem;
ha->id = 0x7FFD;
ha->priority = 100;
ha->verb = 208;
diff --git a/engines/simon/intern.h b/engines/simon/intern.h
index 3f319a32ca..d5dcc288bf 100644
--- a/engines/simon/intern.h
+++ b/engines/simon/intern.h
@@ -30,25 +30,25 @@ struct Child {
uint16 type;
};
-struct Child1 : Child {
+struct SubRoom : Child {
uint16 subroutine_id;
- uint16 fr2;
- uint16 array[1];
+ uint16 roomExitStates;
+ uint16 roomExit[6];
};
-struct Child2 : Child {
- uint16 string_id;
- uint32 avail_props;
- int16 array[1];
+struct SubObject : Child {
+ uint16 objectName;
+ uint32 objectFlags;
+ int16 objectFlagValue[16];
};
-struct Child9 : Child {
- uint16 array[4];
+struct SubUserFlag : Child {
+ uint16 userFlags[4];
};
enum {
- CHILD1_SIZE = sizeof(Child1) - sizeof(uint16),
- CHILD2_SIZE = sizeof(Child2) - sizeof(int16)
+ SubRoom_SIZE = sizeof(SubRoom) - sizeof(uint16),
+ SubObject_SIZE = sizeof(SubObject) - sizeof(int16)
};
struct Item {
@@ -100,6 +100,31 @@ struct WindowBlock {
// the actual y-coordinate is: textRow * 8
+enum BoxFlags {
+ kBFTextBox = 0x1,
+ kBFBoxSelected = 0x2,
+ kBFNoTouchName = 0x4,
+ kBFInvertTouch = 0x8,
+ kBFDragBox = 0x10, // Simon 1/2
+ kBFHyperBox = 0x10, // Feeble Files
+ kBFBoxInUse = 0x20,
+ kBFBoxDead = 0x40,
+ kBFBoxItem = 0x80
+};
+
+enum SubObjectFlags {
+ kOFText = 0x1,
+ kOFSize = 0x2,
+ kOFWeight = 0x4,
+ kOFVolume = 0x8,
+ kOFIcon = 0x10,
+ kOFKeyColor1 = 0x20,
+ kOFKeyColor2 = 0x40,
+ kOFMenu = 0x80,
+ kOFNumber = 0x100,
+ kOFVoice = 0x200
+};
+
enum {
SUBROUTINE_LINE_SMALL_SIZE = 2,
SUBROUTINE_LINE_BIG_SIZE = 8
diff --git a/engines/simon/items.cpp b/engines/simon/items.cpp
index bcae8d00cd..8a8ecaeda2 100644
--- a/engines/simon/items.cpp
+++ b/engines/simon/items.cpp
@@ -167,9 +167,9 @@ int SimonEngine::runScript() {
break;
case 28:{ /* item has prop */
- Child2 *child = (Child2 *)findChildOfType(getNextItemPtr(), 2);
+ SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
byte num = getVarOrByte();
- condition = child != NULL && (child->avail_props & (1 << num)) != 0;
+ condition = subObject != NULL && (subObject->objectFlags & (1 << num)) != 0;
} break;
case 31:{ /* set no parent */
@@ -300,18 +300,18 @@ int SimonEngine::runScript() {
break;
case 56:{ /* set child2 fr bit */
- Child2 *child = (Child2 *)findChildOfType(getNextItemPtr(), 2);
+ SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
int value = getVarOrByte();
- if (child != NULL && value >= 0x10)
- child->avail_props |= 1 << value;
+ if (subObject != NULL && value >= 0x10)
+ subObject->objectFlags |= 1 << value;
}
break;
case 57:{ /* clear child2 fr bit */
- Child2 *child = (Child2 *)findChildOfType(getNextItemPtr(), 2);
+ SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
int value = getVarOrByte();
- if (child != NULL && value >= 0x10)
- child->avail_props &= ~(1 << value);
+ if (subObject != NULL && value >= 0x10)
+ subObject->objectFlags &= ~(1 << value);
}
break;
@@ -375,24 +375,24 @@ int SimonEngine::runScript() {
case 66:{ /* set item name */
uint var = getVarOrByte();
- uint string_id = getNextStringID();
+ uint stringId = getNextStringID();
if (var < 20)
- _stringIdArray2[var] = string_id;
+ _stringIdArray2[var] = stringId;
}
break;
case 67:{ /* set item description */
uint var = getVarOrByte();
- uint string_id = getNextStringID();
+ uint stringId = getNextStringID();
if (getFeatures() & GF_TALKIE) {
uint speechId = getNextWord();
if (var < 20) {
- _stringIdArray3[var] = string_id;
+ _stringIdArray3[var] = stringId;
_speechIdArray4[var] = speechId;
}
} else {
if (var < 20) {
- _stringIdArray3[var] = string_id;
+ _stringIdArray3[var] = stringId;
}
}
}
@@ -442,9 +442,9 @@ int SimonEngine::runScript() {
break;
case 79:{ /* childstruct fr2 is */
- Child2 *child = (Child2 *)findChildOfType(getNextItemPtr(), 2);
- uint string_id = getNextStringID();
- condition = (child != NULL) && child->string_id == string_id;
+ SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
+ uint stringId = getNextStringID();
+ condition = (subObject != NULL) && subObject->objectName == stringId;
}
break;
@@ -862,9 +862,9 @@ int SimonEngine::runScript() {
break;
case 143:{ /* start item sub */
- Child1 *child = (Child1 *)findChildOfType(getNextItemPtr(), 1);
- if (child != NULL) {
- Subroutine *sub = getSubroutineByID(child->subroutine_id);
+ SubRoom *subRoom = (SubRoom *)findChildOfType(getNextItemPtr(), 1);
+ if (subRoom != NULL) {
+ Subroutine *sub = getSubroutineByID(subRoom->subroutine_id);
if (sub)
startSubroutine(sub);
}
@@ -915,12 +915,12 @@ int SimonEngine::runScript() {
case 157:{ /* get item int prop */
Item *item = getNextItemPtr();
- Child2 *child = (Child2 *)findChildOfType(item, 2);
+ SubObject *subObject = (SubObject *)findChildOfType(item, 2);
uint prop = getVarOrByte();
- if (child != NULL && child->avail_props & (1 << prop) && prop < 16) {
- uint offs = getOffsetOfChild2Param(child, 1 << prop);
- writeNextVarContents(child->array[offs]);
+ if (subObject != NULL && subObject->objectFlags & (1 << prop) && prop < 16) {
+ uint offs = getOffsetOfChild2Param(subObject, 1 << prop);
+ writeNextVarContents(subObject->objectFlagValue[offs]);
} else {
writeNextVarContents(0);
}
@@ -929,13 +929,13 @@ int SimonEngine::runScript() {
case 158:{ /* set item prop */
Item *item = getNextItemPtr();
- Child2 *child = (Child2 *)findChildOfType(item, 2);
+ SubObject *subObject = (SubObject *)findChildOfType(item, 2);
uint prop = getVarOrByte();
int value = getVarOrWord();
- if (child != NULL && child->avail_props & (1 << prop) && prop < 16) {
- uint offs = getOffsetOfChild2Param(child, 1 << prop);
- child->array[offs] = value;
+ if (subObject != NULL && subObject->objectFlags & (1 << prop) && prop < 16) {
+ uint offs = getOffsetOfChild2Param(subObject, 1 << prop);
+ subObject->objectFlagValue[offs] = value;
}
}
break;
@@ -1048,13 +1048,13 @@ int SimonEngine::runScript() {
case 179:{ /* conversation responses */
uint vgaSpriteId = getVarOrByte(); /* and room descriptions */
uint color = getVarOrByte();
- uint string_id = getVarOrByte();
+ uint stringId = getVarOrByte();
uint speechId = 0;
- const char *string_ptr = (const char *)getStringPtrByID(_stringIdArray3[string_id]);
+ const char *string_ptr = (const char *)getStringPtrByID(_stringIdArray3[stringId]);
TextLocation *tl = getTextLocation(vgaSpriteId);
if (getFeatures() & GF_TALKIE)
- speechId = _speechIdArray4[string_id];
+ speechId = _speechIdArray4[stringId];
if (_speech && speechId != 0)
playSpeech(speechId, vgaSpriteId);
@@ -1377,18 +1377,18 @@ void SimonEngine::o_inventory_descriptions() {
TextLocation *tl = NULL;
char buf[256];
- Child2 *child = (Child2 *)findChildOfType(getNextItemPtr(), 2);
- if (child != NULL && child->avail_props & 1) {
- string_ptr = (const char *)getStringPtrByID(child->array[0]);
+ SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
+ if (subObject != NULL && subObject->objectFlags & kOFText) {
+ string_ptr = (const char *)getStringPtrByID(subObject->objectFlagValue[0]);
tl = getTextLocation(vgaSpriteId);
}
if ((getGameType() == GType_SIMON2) && (getFeatures() & GF_TALKIE)) {
- if (child != NULL && child->avail_props & 0x200) {
- uint speechId = child->array[getOffsetOfChild2Param(child, 0x200)];
+ if (subObject != NULL && subObject->objectFlags & kOFVoice) {
+ uint speechId = subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFVoice)];
- if (child->avail_props & 0x100) {
- uint speechIdOffs = child->array[getOffsetOfChild2Param(child, 0x100)];
+ if (subObject->objectFlags & kOFNumber) {
+ uint speechIdOffs = subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)];
if (speechId == 116)
speechId = speechIdOffs + 115;
@@ -1436,18 +1436,18 @@ void SimonEngine::o_inventory_descriptions() {
}
} else if (getFeatures() & GF_TALKIE) {
- if (child != NULL && child->avail_props & 0x200) {
- uint offs = getOffsetOfChild2Param(child, 0x200);
- playSpeech(child->array[offs], vgaSpriteId);
- } else if (child != NULL && child->avail_props & 0x100) {
- uint offs = getOffsetOfChild2Param(child, 0x100);
- playSpeech(child->array[offs] + 3550, vgaSpriteId);
+ if (subObject != NULL && subObject->objectFlags & kOFVoice) {
+ uint offs = getOffsetOfChild2Param(subObject, kOFVoice);
+ playSpeech(subObject->objectFlagValue[offs], vgaSpriteId);
+ } else if (subObject != NULL && subObject->objectFlags & kOFNumber) {
+ uint offs = getOffsetOfChild2Param(subObject, kOFNumber);
+ playSpeech(subObject->objectFlagValue[offs] + 3550, vgaSpriteId);
}
}
- if (child != NULL && (child->avail_props & 1) && _subtitles) {
- if (child->avail_props & 0x100) {
- sprintf(buf, "%d%s", child->array[getOffsetOfChild2Param(child, 0x100)], string_ptr);
+ if (subObject != NULL && (subObject->objectFlags & kOFText) && _subtitles) {
+ if (subObject->objectFlags & kOFNumber) {
+ sprintf(buf, "%d%s", subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)], string_ptr);
string_ptr = buf;
}
if (string_ptr != NULL)
diff --git a/engines/simon/res.cpp b/engines/simon/res.cpp
index e19a510138..5387fa078e 100644
--- a/engines/simon/res.cpp
+++ b/engines/simon/res.cpp
@@ -167,7 +167,7 @@ void SimonEngine::loadGamePcFile(const char *filename) {
num_inited_objects = allocGamePcVars(&in);
- loginPlayer();
+ createPlayer();
readGamePcText(&in);
for (i = 2; i < num_inited_objects; i++) {
@@ -259,42 +259,42 @@ void SimonEngine::readItemChildren(Common::File *in, Item *item, uint type) {
uint fr2 = in->readUint16BE();
uint i, size;
uint j, k;
- Child1 *child;
+ SubRoom *subRoom;
- size = CHILD1_SIZE;
+ size = SubRoom_SIZE;
for (i = 0, j = fr2; i != 6; i++, j >>= 2)
if (j & 3)
- size += sizeof(child->array[0]);
+ size += sizeof(subRoom->roomExit[0]);
- child = (Child1 *)allocateChildBlock(item, 1, size);
- child->subroutine_id = fr1;
- child->fr2 = fr2;
+ subRoom = (SubRoom *)allocateChildBlock(item, 1, size);
+ subRoom->subroutine_id = fr1;
+ subRoom->roomExitStates = fr2;
for (i = k = 0, j = fr2; i != 6; i++, j >>= 2)
if (j & 3)
- child->array[k++] = (uint16)fileReadItemID(in);
+ subRoom->roomExit[k++] = (uint16)fileReadItemID(in);
} else if (type == 2) {
uint32 fr = in->readUint32BE();
uint i, k, size;
- Child2 *child;
+ SubObject *subObject;
- size = CHILD2_SIZE;
+ size = SubObject_SIZE;
for (i = 0; i != 16; i++)
if (fr & (1 << i))
- size += sizeof(child->array[0]);
+ size += sizeof(subObject->objectFlagValue[0]);
- child = (Child2 *)allocateChildBlock(item, 2, size);
- child->avail_props = fr;
+ subObject = (SubObject *)allocateChildBlock(item, 2, size);
+ subObject->objectFlags = fr;
k = 0;
if (fr & 1) {
- child->array[k++] = (uint16)in->readUint32BE();
+ subObject->objectFlagValue[k++] = (uint16)in->readUint32BE();
}
for (i = 1; i != 16; i++)
if (fr & (1 << i))
- child->array[k++] = in->readUint16BE();
+ subObject->objectFlagValue[k++] = in->readUint16BE();
- child->string_id = (uint16)in->readUint32BE();
+ subObject->objectName = (uint16)in->readUint32BE();
} else {
error("readItemChildren: invalid type %d", type);
}
diff --git a/engines/simon/saveload.cpp b/engines/simon/saveload.cpp
index 9362d290fd..342263a392 100644
--- a/engines/simon/saveload.cpp
+++ b/engines/simon/saveload.cpp
@@ -530,27 +530,27 @@ bool SimonEngine::saveGame(uint slot, char *caption) {
f->writeUint16BE(item->state);
f->writeUint16BE(item->classFlags);
- Child1 *child1 = (Child1 *)findChildOfType(item, 1);
- if (child1) {
- f->writeUint16BE(child1->fr2);
+ SubRoom *subRoom = (SubRoom *)findChildOfType(item, 1);
+ if (subRoom) {
+ f->writeUint16BE(subRoom->roomExitStates);
}
- Child2 *child2 = (Child2 *)findChildOfType(item, 2);
- if (child2) {
- f->writeUint32BE(child2->avail_props);
- i = child2->avail_props & 1;
+ SubObject *subObject = (SubObject *)findChildOfType(item, 2);
+ if (subObject) {
+ f->writeUint32BE(subObject->objectFlags);
+ i = subObject->objectFlags & 1;
for (j = 1; j < 16; j++) {
- if ((1 << j) & child2->avail_props) {
- f->writeUint16BE(child2->array[i++]);
+ if ((1 << j) & subObject->objectFlags) {
+ f->writeUint16BE(subObject->objectFlagValue[i++]);
}
}
}
- Child9 *child9 = (Child9 *)findChildOfType(item, 9);
- if (child9) {
+ SubUserFlag *subUserFlag = (SubUserFlag *)findChildOfType(item, 9);
+ if (subUserFlag) {
for (i = 0; i != 4; i++) {
- f->writeUint16BE(child9->array[i]);
+ f->writeUint16BE(subUserFlag->userFlags[i]);
}
}
}
@@ -659,27 +659,27 @@ bool SimonEngine::loadGame(uint slot) {
item->state = f->readUint16BE();
item->classFlags = f->readUint16BE();
- Child1 *child1 = (Child1 *)findChildOfType(item, 1);
- if (child1 != NULL) {
- child1->fr2 = f->readUint16BE();
+ SubRoom *subRoom = (SubRoom *)findChildOfType(item, 1);
+ if (subRoom != NULL) {
+ subRoom->roomExitStates = f->readUint16BE();
}
- Child2 *child2 = (Child2 *)findChildOfType(item, 2);
- if (child2 != NULL) {
- child2->avail_props = f->readUint32BE();
- i = child2->avail_props & 1;
+ SubObject *subObject = (SubObject *)findChildOfType(item, 2);
+ if (subObject != NULL) {
+ subObject->objectFlags = f->readUint32BE();
+ i = subObject->objectFlags & 1;
for (j = 1; j < 16; j++) {
- if ((1 << j) & child2->avail_props) {
- child2->array[i++] = f->readUint16BE();
+ if ((1 << j) & subObject->objectFlags) {
+ subObject->objectFlagValue[i++] = f->readUint16BE();
}
}
}
- Child9 *child9 = (Child9 *) findChildOfType(item, 9);
- if (child9) {
+ SubUserFlag *subUserFlag = (SubUserFlag *) findChildOfType(item, 9);
+ if (subUserFlag) {
for (i = 0; i != 4; i++) {
- child9->array[i] = f->readUint16BE();
+ subUserFlag->userFlags[i] = f->readUint16BE();
}
}
}
diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp
index 09beee9418..7c522c4ab1 100644
--- a/engines/simon/simon.cpp
+++ b/engines/simon/simon.cpp
@@ -770,19 +770,19 @@ int SimonEngine::allocGamePcVars(File *in) {
return item_array_inited;
}
-void SimonEngine::loginPlayerHelper(Item *item, int a, int b) {
- Child9 *child;
+void SimonEngine::setUserFlag(Item *item, int a, int b) {
+ SubUserFlag *subUserFlag;
- child = (Child9 *) findChildOfType(item, 9);
- if (child == NULL) {
- child = (Child9 *) allocateChildBlock(item, 9, sizeof(Child9));
+ subUserFlag = (SubUserFlag *) findChildOfType(item, 9);
+ if (subUserFlag == NULL) {
+ subUserFlag = (SubUserFlag *) allocateChildBlock(item, 9, sizeof(SubUserFlag));
}
if (a >= 0 && a <= 3)
- child->array[a] = b;
+ subUserFlag->userFlags[a] = b;
}
-void SimonEngine::loginPlayer() {
+void SimonEngine::createPlayer() {
Child *child;
_item1 = _itemArrayPtr[1];
@@ -793,7 +793,7 @@ void SimonEngine::loginPlayer() {
if (child == NULL)
error("player create failure");
- loginPlayerHelper(_item1, 0, 0);
+ setUserFlag(_item1, 0, 0);
}
void SimonEngine::allocateStringTable(int num) {
@@ -923,11 +923,11 @@ bool SimonEngine::isObject(Item *item) {
return findChildOfType(item, 2) != NULL;
}
-uint SimonEngine::getOffsetOfChild2Param(Child2 *child, uint prop) {
+uint SimonEngine::getOffsetOfChild2Param(SubObject *child, uint prop) {
uint m = 1;
uint offset = 0;
while (m != prop) {
- if (child->avail_props & m)
+ if (child->objectFlags & m)
offset++;
m *= 2;
}
@@ -1167,16 +1167,16 @@ void SimonEngine::linkItem(Item *item, Item *parent) {
}
}
-const byte *SimonEngine::getStringPtrByID(uint string_id) {
+const byte *SimonEngine::getStringPtrByID(uint stringId) {
const byte *string_ptr;
byte *dst;
_freeStringSlot ^= 1;
- if (string_id < 0x8000) {
- string_ptr = _stringTabPtr[string_id];
+ if (stringId < 0x8000) {
+ string_ptr = _stringTabPtr[stringId];
} else {
- string_ptr = getLocalStringByID(string_id);
+ string_ptr = getLocalStringByID(stringId);
}
dst = _stringReturnBuffer[_freeStringSlot];
@@ -1184,14 +1184,14 @@ const byte *SimonEngine::getStringPtrByID(uint string_id) {
return dst;
}
-const byte *SimonEngine::getLocalStringByID(uint string_id) {
- if (string_id < _stringIdLocalMin || string_id >= _stringIdLocalMax) {
- loadTextIntoMem(string_id);
+const byte *SimonEngine::getLocalStringByID(uint stringId) {
+ if (stringId < _stringIdLocalMin || stringId >= _stringIdLocalMax) {
+ loadTextIntoMem(stringId);
}
- return _localStringtable[string_id - _stringIdLocalMin];
+ return _localStringtable[stringId - _stringIdLocalMin];
}
-void SimonEngine::loadTextIntoMem(uint string_id) {
+void SimonEngine::loadTextIntoMem(uint stringId) {
byte *p;
char filename[30];
int i;
@@ -1212,7 +1212,7 @@ void SimonEngine::loadTextIntoMem(uint string_id) {
base_max = (p[0] * 256) | p[1];
p += 2;
- if (string_id < base_max) {
+ if (stringId < base_max) {
_stringIdLocalMin = base_min;
_stringIdLocalMax = base_max;
@@ -1238,7 +1238,7 @@ void SimonEngine::loadTextIntoMem(uint string_id) {
base_min = base_max;
}
- error("loadTextIntoMem: didn't find %d", string_id);
+ error("loadTextIntoMem: didn't find %d", stringId);
}
void SimonEngine::loadTablesIntoMem(uint subr_id) {
@@ -1785,19 +1785,19 @@ get_out:
}
bool SimonEngine::has_item_childflag_0x10(Item *item) {
- Child2 *child = (Child2 *)findChildOfType(item, 2);
- return child && (child->avail_props & 0x10) != 0;
+ SubObject *child = (SubObject *)findChildOfType(item, 2);
+ return child && (child->objectFlags & 0x10) != 0;
}
uint SimonEngine::itemGetIconNumber(Item *item) {
- Child2 *child = (Child2 *)findChildOfType(item, 2);
+ SubObject *child = (SubObject *)findChildOfType(item, 2);
uint offs;
- if (child == NULL || !(child->avail_props & 0x10))
+ if (child == NULL || !(child->objectFlags & 0x10))
return 0;
offs = getOffsetOfChild2Param(child, 0x10);
- return child->array[offs];
+ return child->objectFlagValue[offs];
}
void SimonEngine::displayBoxStars() {
@@ -1823,10 +1823,10 @@ void SimonEngine::displayBoxStars() {
timer_vga_sprites();
do {
- if (ha->id != 0 && ha->flags & 0x20 && !(ha->flags & 0x40)) {
+ if (ha->id != 0 && ha->flags & kBFBoxInUse && !(ha->flags & kBFBoxDead)) {
dha = _hitAreas;
- if (ha->flags & 1) {
+ if (ha->flags & kBFTextBox) {
while (dha != ha && dha->flags != ha->flags)
++dha;
if (dha != ha && dha->flags == ha->flags)
@@ -1939,12 +1939,12 @@ startOver:
setVerb(ha);
_defaultVerb = 0;
} else {
- if ((_verbHitArea != 0 || _hitAreaSubjectItem != ha->item_ptr && ha->flags & 0x80) &&
+ if ((_verbHitArea != 0 || _hitAreaSubjectItem != ha->item_ptr && ha->flags & kBFBoxItem) &&
ha->item_ptr) {
if_1:;
_hitAreaSubjectItem = ha->item_ptr;
id = 0xFFFF;
- if (ha->flags & 1)
+ if (ha->flags & kBFTextBox)
id = ha->flags / 256;
_variableArray[60] = id;
displayName(ha);
@@ -2127,13 +2127,13 @@ TextLocation *SimonEngine::getTextLocation(uint a) {
void SimonEngine::o_printStr() {
uint vgaSpriteId = getVarOrByte();
uint color = getVarOrByte();
- uint string_id = getNextStringID();
+ uint stringId = getNextStringID();
const byte *string_ptr = NULL;
uint speech_id = 0;
TextLocation *tl;
- if (string_id != 0xFFFF)
- string_ptr = getStringPtrByID(string_id);
+ if (stringId != 0xFFFF)
+ string_ptr = getStringPtrByID(stringId);
if (getFeatures() & GF_TALKIE)
speech_id = (uint16)getNextWord();
diff --git a/engines/simon/simon.h b/engines/simon/simon.h
index 3061693f1a..34949a4aa9 100644
--- a/engines/simon/simon.h
+++ b/engines/simon/simon.h
@@ -49,7 +49,7 @@ uint fileReadItemID(Common::File *in);
#define NUM_PALETTE_FADEOUT 32
struct Child;
-struct Child2;
+struct SubObject;
struct Item;
struct WindowBlock;
@@ -457,8 +457,8 @@ protected:
uint16 readUint16Wrapper(const void *src);
int allocGamePcVars(Common::File *in);
- void loginPlayerHelper(Item *item, int a, int b);
- void loginPlayer();
+ void setUserFlag(Item *item, int a, int b);
+ void createPlayer();
void allocateStringTable(int num);
void setupStringTable(byte *mem, int num);
void setupLocalStringTable(byte *mem, int num);
@@ -526,8 +526,8 @@ protected:
void setItemState(Item *item, int value);
void showMessageFormat(const char *s, ...);
- const byte *getStringPtrByID(uint string_id);
- const byte *getLocalStringByID(uint string_id);
+ const byte *getStringPtrByID(uint stringId);
+ const byte *getLocalStringByID(uint stringId);
uint getNextStringID();
void addTimeEvent(uint timeout, uint subroutine_id);
@@ -572,7 +572,7 @@ protected:
void o_freezeBottom();
void killAllTimers();
- uint getOffsetOfChild2Param(Child2 *child, uint prop);
+ uint getOffsetOfChild2Param(SubObject *child, uint prop);
void o_setTextColor(uint color);
void o_playSFX(uint a);
void o_lockZone();
@@ -616,7 +616,7 @@ protected:
void drawIconArray_FF(uint i, Item *item_ptr, int line, int classMask);
void drawIconArray_Simon(uint i, Item *item_ptr, int line, int classMask);
- void loadTextIntoMem(uint string_id);
+ void loadTextIntoMem(uint stringId);
void loadTablesIntoMem(uint subr_id);
uint loadTextFile(const char *filename, byte *dst);
diff --git a/engines/simon/verb.cpp b/engines/simon/verb.cpp
index d9d149a30d..f0aa72e012 100644
--- a/engines/simon/verb.cpp
+++ b/engines/simon/verb.cpp
@@ -216,7 +216,7 @@ void SimonEngine::clearName() {
resetNameWindow();
_lastVerbOn = last;
- if (last != NULL && (ha = findHitAreaByID(200)) && (ha->flags & 0x40) && !(last->flags & 0x40))
+ if (last != NULL && (ha = findHitAreaByID(200)) && (ha->flags & kBFBoxDead) && !(last->flags & kBFBoxDead))
printVerbOf(last->id);
}
@@ -343,14 +343,14 @@ HitArea *SimonEngine::findEmptyHitArea() {
void SimonEngine::clear_hitarea_bit_0x40(uint hitarea) {
HitArea *ha = findHitAreaByID(hitarea);
if (ha != NULL)
- ha->flags &= ~0x40;
+ ha->flags &= ~kBFBoxDead;
}
void SimonEngine::set_hitarea_bit_0x40(uint hitarea) {
HitArea *ha = findHitAreaByID(hitarea);
if (ha != NULL) {
- ha->flags |= 0x40;
- ha->flags &= ~2;
+ ha->flags |= kBFBoxDead;
+ ha->flags &= ~kBFBoxSelected;
if (hitarea == 102)
resetVerbs();
}
@@ -378,7 +378,7 @@ bool SimonEngine::is_hitarea_0x40_clear(uint hitarea) {
HitArea *ha = findHitAreaByID(hitarea);
if (ha == NULL)
return false;
- return (ha->flags & 0x40) == 0;
+ return (ha->flags & kBFBoxDead) == 0;
}
void SimonEngine::addNewHitArea(int id, int x, int y, int width, int height, int flags, int verb, Item *item_ptr) {
@@ -390,7 +390,7 @@ void SimonEngine::addNewHitArea(int id, int x, int y, int width, int height, int
ha->y = y;
ha->width = width;
ha->height = height;
- ha->flags = flags | 0x20;
+ ha->flags = flags | kBFBoxInUse;
ha->id = ha->priority = id;
ha->verb = verb;
ha->item_ptr = item_ptr;
@@ -441,7 +441,7 @@ void SimonEngine::resetVerbs() {
if (ha == NULL)
return;
- if (ha->flags & 0x40) {
+ if (ha->flags & kBFBoxDead) {
_defaultVerb = 999;
_currentVerbBox = NULL;
} else {
@@ -485,16 +485,16 @@ void SimonEngine::setVerb(HitArea *ha) {
if (getGameType() == GType_SIMON1) {
if (tmp != NULL) {
- tmp->flags |= 8;
+ tmp->flags |= kBFInvertTouch;
video_toggle_colors(tmp, 0xd5, 0xd0, 0xd5, 0xA);
}
- if (ha->flags & 2)
+ if (ha->flags & kBFBoxSelected)
video_toggle_colors(ha, 0xda, 0xd5, 0xd5, 5);
else
video_toggle_colors(ha, 0xdf, 0xda, 0xda, 0xA);
- ha->flags &= ~(2 + 8);
+ ha->flags &= ~(kBFBoxSelected + kBFInvertTouch);
} else {
if (ha->id < 101)
return;
@@ -643,20 +643,20 @@ void SimonEngine::setup_hitarea_from_pos(uint x, uint y, uint mode) {
best_ha = NULL;
do {
- if (ha->flags & 0x20) {
- if (!(ha->flags & 0x40)) {
+ if (ha->flags & kBFBoxInUse) {
+ if (!(ha->flags & kBFBoxDead)) {
if (x_ >= ha->x && y_ >= ha->y &&
x_ - ha->x < ha->width && y_ - ha->y < ha->height && priority <= ha->priority) {
priority = ha->priority;
best_ha = ha;
} else {
- if (ha->flags & 2) {
+ if (ha->flags & kBFBoxSelected) {
hitarea_leave(ha);
- ha->flags &= ~2;
+ ha->flags &= ~kBFBoxSelected;
}
}
} else {
- ha->flags &= ~2;
+ ha->flags &= ~kBFBoxSelected;
}
}
} while (ha++, --count);
@@ -676,15 +676,15 @@ void SimonEngine::setup_hitarea_from_pos(uint x, uint y, uint mode) {
_variableArray[2] = y;
}
- if (best_ha->flags & 4) {
+ if (best_ha->flags & kBFNoTouchName) {
clearName();
} else if (best_ha != _lastNameOn) {
displayName(best_ha);
}
- if (best_ha->flags & 8 && !(best_ha->flags & 2)) {
+ if (best_ha->flags & kBFInvertTouch && !(best_ha->flags & kBFBoxSelected)) {
hitarea_leave(best_ha);
- best_ha->flags |= 2;
+ best_ha->flags |= kBFBoxSelected;
}
return;
@@ -694,8 +694,8 @@ void SimonEngine::displayName(HitArea *ha) {
bool result;
resetNameWindow();
- if (ha->flags & 1) {
- result = printTextOf(ha->flags >> 8);
+ if (ha->flags & kBFTextBox) {
+ result = printTextOf(ha->flags / 256);
} else {
result = printNameOf(ha->item_ptr);
}
@@ -725,16 +725,16 @@ bool SimonEngine::printTextOf(uint a) {
}
bool SimonEngine::printNameOf(Item *item) {
- Child2 *child2;
+ SubObject *child2;
if (item == 0 || item == _dummyItem2 || item == _dummyItem3)
return false;
- child2 = (Child2 *)findChildOfType(item, 2);
+ child2 = (SubObject *)findChildOfType(item, 2);
if (child2 == NULL)
return false;
- showActionString(getStringPtrByID(child2->string_id));
+ showActionString(getStringPtrByID(child2->objectName));
return true;
}