[Scummvm-cvs-logs] SF.net SVN: scummvm:[49129] scummvm/trunk/engines/sci/engine/script.cpp
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Fri May 21 15:31:45 CEST 2010
Revision: 49129
http://scummvm.svn.sourceforge.net/scummvm/?rev=49129&view=rev
Author: thebluegr
Date: 2010-05-21 13:31:45 +0000 (Fri, 21 May 2010)
Log Message:
-----------
Slight cleanup
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/script.cpp
Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp 2010-05-21 12:39:54 UTC (rev 49128)
+++ scummvm/trunk/engines/sci/engine/script.cpp 2010-05-21 13:31:45 UTC (rev 49129)
@@ -240,13 +240,9 @@
seeker = scr->_heapStart + 4 + READ_SCI11ENDIAN_UINT16(scr->_heapStart + 2) * 2;
while (READ_SCI11ENDIAN_UINT16(seeker) == SCRIPT_OBJECT_MAGIC_NUMBER) {
- reg_t reg;
- Object *obj;
+ reg_t reg = make_reg(seg, seeker - scr->_buf);
+ Object *obj = scr->scriptObjInit(reg);
- reg.segment = seg;
- reg.offset = seeker - scr->_buf;
- obj = scr->scriptObjInit(reg);
-
#if 0
if (obj->_variables[5].offset != 0xffff) {
obj->_variables[5] = INST_LOOKUP_CLASS(obj->_variables[5].offset);
@@ -311,10 +307,6 @@
scr->init(script_nr, resMan);
- reg_t reg;
- reg.segment = seg_id;
- reg.offset = 0;
-
// Set heap position (beyond the size word)
scr->setLockers(1);
scr->setExportTableOffset(0);
@@ -475,18 +467,15 @@
int script_instantiate_sci11(ResourceManager *resMan, SegManager *segMan, int script_nr) {
Resource *script, *heap;
- int _heapStart;
- reg_t reg;
int was_new;
-
const int seg_id = script_instantiate_common(resMan, segMan, script_nr, &script, &heap, &was_new);
if (was_new)
return seg_id;
Script *scr = segMan->getScript(seg_id);
+ int _heapStart = script->size;
- _heapStart = script->size;
if (script->size & 2)
_heapStart++;
@@ -496,15 +485,12 @@
if (READ_SCI11ENDIAN_UINT16(script->data + 6) > 0)
scr->setExportTableOffset(6);
- reg.segment = seg_id;
- reg.offset = _heapStart + 4;
- segMan->scriptInitialiseLocals(reg);
+ segMan->scriptInitialiseLocals(make_reg(seg_id, _heapStart + 4));
segMan->scriptRelocateExportsSci11(seg_id);
segMan->scriptInitialiseObjectsSci11(seg_id);
- reg.offset = READ_SCI11ENDIAN_UINT16(heap->data);
- scr->heapRelocate(reg);
+ scr->heapRelocate(make_reg(seg_id, READ_SCI11ENDIAN_UINT16(heap->data)));
return seg_id;
}
@@ -519,11 +505,10 @@
void script_uninstantiate_sci0(SegManager *segMan, int script_nr, SegmentId seg) {
bool oldScriptHeader = (getSciVersion() == SCI_VERSION_0_EARLY);
reg_t reg = make_reg(seg, oldScriptHeader ? 2 : 0);
- int objType, objLength;
+ int objType, objLength = 0;
Script *scr = segMan->getScript(seg);
// Make a pass over the object in order uninstantiate all superclasses
- objLength = 0;
do {
reg.offset += objLength; // Step over the last checked object
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