- Simplified some functions to accept only the parts of the EngineState they need as parameters, instead of the whole EngineState

- Moved the class table in the Segment manager - it's the only class using it directly
- Removed the sci11 flag from save games (we already know this, we don't need to store it)
- Moved script_get_segment() and get_class_address() inside the segment manager class
- Removed the script_locate_by_segment wrapper
- Simplified script_lookup_export() a lot by removing some paranoia checks
- Added some WIP code for automatically determining the game id in the fallback detector (still not working)
- General cleanup

svn-id: r43458
This commit is contained in:
Filippos Karapetis 2009-08-17 05:55:21 +00:00
parent 0d4fc81698
commit c38f58598b
14 changed files with 293 additions and 298 deletions

View file

@ -706,6 +706,8 @@ int determine_reg_type(EngineState *s, reg_t reg, bool allow_invalid) {
mobj = s->seg_manager->_heap[reg.segment];
SciVersion version = s->_version; // for the offset defines
switch (mobj->getType()) {
case MEM_OBJ_SCRIPT:
if (reg.offset <= (*(Script *)mobj).buf_size && reg.offset >= -SCRIPT_OBJECT_MAGIC_OFFSET