aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/segment.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/segment.h')
-rw-r--r--engines/sci/engine/segment.h64
1 files changed, 31 insertions, 33 deletions
diff --git a/engines/sci/engine/segment.h b/engines/sci/engine/segment.h
index ef8bc28bfb..0c59ad59c5 100644
--- a/engines/sci/engine/segment.h
+++ b/engines/sci/engine/segment.h
@@ -107,7 +107,7 @@ public:
* @param note Invoked for each outgoing reference within the object
* Note: This function may also choose to report numbers (segment 0) as adresses
*/
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version) {}
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note) {}
};
@@ -190,7 +190,7 @@ public:
virtual bool isValidOffset(uint16 offset) const;
virtual byte *dereference(reg_t pointer, int *size);
virtual reg_t findCanonicAddress(SegManager *segMan, reg_t sub_addr);
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
virtual void saveLoadWithSerializer(Common::Serializer &ser);
};
@@ -210,43 +210,43 @@ struct Object {
uint16 *base_vars; /**< Pointer to the varselector area for this object */
Common::Array<reg_t> _variables;
- uint16 getVarSelector(uint16 i, SciVersion version) {
- if (version < SCI_VERSION_1_1)
+ uint16 getVarSelector(uint16 i) {
+ if (getSciVersion() < SCI_VERSION_1_1)
return READ_LE_UINT16(base_obj + _variables.size() * 2 + i * 2);
else
return *(base_vars + i);
}
- reg_t getSpeciesSelector(SciVersion version) {
- return _variables[version < SCI_VERSION_1_1 ? 0 : 5];
+ reg_t getSpeciesSelector() {
+ return _variables[getSciVersion() < SCI_VERSION_1_1 ? 0 : 5];
}
- void setSpeciesSelector(reg_t value, SciVersion version) {
- _variables[version < SCI_VERSION_1_1 ? 0 : 5] = value;
+ void setSpeciesSelector(reg_t value) {
+ _variables[getSciVersion() < SCI_VERSION_1_1 ? 0 : 5] = value;
}
- reg_t getSuperClassSelector(SciVersion version) {
- return _variables[version < SCI_VERSION_1_1 ? 1 : 6];
+ reg_t getSuperClassSelector() {
+ return _variables[getSciVersion() < SCI_VERSION_1_1 ? 1 : 6];
}
- void setSuperClassSelector(reg_t value, SciVersion version) {
- _variables[version < SCI_VERSION_1_1 ? 1 : 6] = value;
+ void setSuperClassSelector(reg_t value) {
+ _variables[getSciVersion() < SCI_VERSION_1_1 ? 1 : 6] = value;
}
- reg_t getInfoSelector(SciVersion version) {
- return _variables[version < SCI_VERSION_1_1 ? 2 : 7];
+ reg_t getInfoSelector() {
+ return _variables[getSciVersion() < SCI_VERSION_1_1 ? 2 : 7];
}
- void setInfoSelector(reg_t value, SciVersion version) {
- _variables[version < SCI_VERSION_1_1 ? 2 : 7] = value;
+ void setInfoSelector(reg_t value) {
+ _variables[getSciVersion() < SCI_VERSION_1_1 ? 2 : 7] = value;
}
- reg_t getNameSelector(SciVersion version) {
- return _variables[version < SCI_VERSION_1_1 ? 3 : 8];
+ reg_t getNameSelector() {
+ return _variables[getSciVersion() < SCI_VERSION_1_1 ? 3 : 8];
}
- void setNameSelector(reg_t value, SciVersion version) {
- _variables[version < SCI_VERSION_1_1 ? 3 : 8] = value;
+ void setNameSelector(reg_t value) {
+ _variables[getSciVersion() < SCI_VERSION_1_1 ? 3 : 8] = value;
}
reg_t getClassScriptSelector() {
@@ -257,18 +257,18 @@ struct Object {
_variables[4] = value;
}
- uint16 getFuncSelector(uint16 i, SciVersion version) {
- uint16 offset = (version < SCI_VERSION_1_1) ? i : i * 2 + 1;
+ uint16 getFuncSelector(uint16 i) {
+ uint16 offset = (getSciVersion() < SCI_VERSION_1_1) ? i : i * 2 + 1;
return READ_LE_UINT16((byte *) (base_method + offset));
}
- reg_t getFunction(uint16 i, SciVersion version) {
- uint16 offset = (version < SCI_VERSION_1_1) ? methods_nr + 1 + i : i * 2 + 2;
+ reg_t getFunction(uint16 i) {
+ uint16 offset = (getSciVersion() < SCI_VERSION_1_1) ? methods_nr + 1 + i : i * 2 + 2;
return make_reg(pos.segment, READ_LE_UINT16((byte *) (base_method + offset)));
}
- bool isClass(SciVersion version) {
- return (getInfoSelector(version).offset & SCRIPT_INFO_CLASS);
+ bool isClass() {
+ return (getInfoSelector().offset & SCRIPT_INFO_CLASS);
}
};
@@ -298,8 +298,6 @@ protected:
IntMapper *_objIndices;
- SciVersion _sciVersion;
-
public:
/**
* Table for objects, contains property variables.
@@ -328,7 +326,7 @@ public:
virtual reg_t findCanonicAddress(SegManager *segMan, reg_t sub_addr);
virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr);
virtual void listAllDeallocatable(SegmentId segId, void *param, NoteCallback note);
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
virtual void saveLoadWithSerializer(Common::Serializer &ser);
@@ -484,7 +482,7 @@ public:
virtual bool isValidOffset(uint16 offset) const;
virtual byte *dereference(reg_t pointer, int *size);
virtual reg_t findCanonicAddress(SegManager *segMan, reg_t sub_addr);
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
virtual void saveLoadWithSerializer(Common::Serializer &ser);
};
@@ -581,7 +579,7 @@ public:
/* CloneTable */
struct CloneTable : public Table<Clone> {
virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr);
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
virtual void saveLoadWithSerializer(Common::Serializer &ser);
};
@@ -590,7 +588,7 @@ struct CloneTable : public Table<Clone> {
/* NodeTable */
struct NodeTable : public Table<Node> {
virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr);
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
virtual void saveLoadWithSerializer(Common::Serializer &ser);
};
@@ -599,7 +597,7 @@ struct NodeTable : public Table<Node> {
/* ListTable */
struct ListTable : public Table<List> {
virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr);
- virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note, SciVersion version);
+ virtual void listAllOutgoingReferences(reg_t object, void *param, NoteCallback note);
virtual void saveLoadWithSerializer(Common::Serializer &ser);
};