[Scummvm-cvs-logs] SF.net SVN: scummvm:[44128] scummvm/trunk/engines/sci/engine
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Thu Sep 17 01:55:12 CEST 2009
Revision: 44128
http://scummvm.svn.sourceforge.net/scummvm/?rev=44128&view=rev
Author: fingolfin
Date: 2009-09-16 23:55:11 +0000 (Wed, 16 Sep 2009)
Log Message:
-----------
SCI: cleanup
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kernel.cpp
scummvm/trunk/engines/sci/engine/kmisc.cpp
scummvm/trunk/engines/sci/engine/seg_manager.h
Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp 2009-09-16 23:32:48 UTC (rev 44127)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp 2009-09-16 23:55:11 UTC (rev 44128)
@@ -632,11 +632,10 @@
return type;
}
- if ((reg.segment >= segMan->_heap.size()) || !segMan->_heap[reg.segment])
+ mobj = segMan->getMemObject(reg.segment);
+ if (!mobj)
return 0; // Invalid
- mobj = segMan->_heap[reg.segment];
-
SciVersion version = segMan->sciVersion(); // for the offset defines
switch (mobj->getType()) {
Modified: scummvm/trunk/engines/sci/engine/kmisc.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmisc.cpp 2009-09-16 23:32:48 UTC (rev 44127)
+++ scummvm/trunk/engines/sci/engine/kmisc.cpp 2009-09-16 23:55:11 UTC (rev 44128)
@@ -204,7 +204,7 @@
warning("Attempt to peek invalid memory at %04x:%04x", PRINT_REG(argv[1]));
return s->r_acc;
}
- if (s->segMan->_heap[argv[1].segment]->getType() == MEM_OBJ_LOCALS)
+ if (s->segMan->getMemObjectType(argv[1].segment) == MEM_OBJ_LOCALS)
return *((reg_t *) ref);
else
return make_reg(0, (int16)READ_LE_UINT16(ref));
@@ -218,7 +218,7 @@
return s->r_acc;
}
- if (s->segMan->_heap[argv[1].segment]->getType() == MEM_OBJ_LOCALS)
+ if (s->segMan->getMemObjectType(argv[1].segment) == MEM_OBJ_LOCALS)
*((reg_t *) ref) = argv[2];
else {
if (argv[2].segment) {
Modified: scummvm/trunk/engines/sci/engine/seg_manager.h
===================================================================
--- scummvm/trunk/engines/sci/engine/seg_manager.h 2009-09-16 23:32:48 UTC (rev 44127)
+++ scummvm/trunk/engines/sci/engine/seg_manager.h 2009-09-16 23:55:11 UTC (rev 44128)
@@ -46,6 +46,7 @@
class SegManager : public Common::Serializable {
+ friend class Console;
public:
/**
* Initialize the segment manager.
@@ -366,16 +367,18 @@
SciVersion sciVersion() { return _resMan->sciVersion(); }
+public: // TODO: make private
+ Common::Array<MemObject *> _heap;
+ Common::Array<Class> _classtable; /**< Table of all classes */
+
private:
/** Map script ids to segment ids. */
Common::HashMap<int, SegmentId> _scriptSegMap;
-public: // TODO: make private
- Common::Array<MemObject *> _heap;
- bool _exportsAreWide;
- Common::Array<Class> _classtable; /**< Table of all classes */
ResourceManager *_resMan;
+ bool _exportsAreWide;
+
SegmentId Clones_seg_id; ///< ID of the (a) clones segment
SegmentId Lists_seg_id; ///< ID of the (a) list segment
SegmentId Nodes_seg_id; ///< ID of the (a) node segment
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list