Commit Graph
410 Commits
Author SHA1 Message Date
Filippos Karapetis 60af2db2fd - Added more mappings from Sierra's internal IDs to our own ones. Hopefully, all SCI0-SCI11 games can now be detected correctly from the fallback detector
- Simplified some checks for old script types

svn-id: r43678
2009-08-23 21:57:30 +00:00
Filippos Karapetis ca9bbce9b3 - Added game ID detection to the fallback detector. We still need to map some of Sierra's internal IDs to our own ones
- The class table is now created in the segment manager constructor

svn-id: r43504
2009-08-18 10:01:18 +00:00
Walter van Niftrik 260a2019b6 SCI: Add autodetection for DoSound. Cleanup.
svn-id: r43482
2009-08-17 15:49:22 +00:00
Filippos Karapetis c38f58598b - 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
2009-08-17 05:55:21 +00:00
Walter van Niftrik 00f4794c0a SCI: Stage 1 of the game detection overhaul. The end goal is to autodetect
as much as possible. All SCI_VERSION_* information was removed from
detection.cpp (much of it was incorrect anyway).

svn-id: r43449
2009-08-16 19:18:19 +00:00
Walter van Niftrik f99932b72a SCI: Added enum for map and volume versions. Removed res_version setting from
detection.cpp (should be detectable). Cleanup.

svn-id: r43390
2009-08-15 00:28:59 +00:00
Filippos Karapetis 31a0c80905 Moved the kernel and the vocabulary outside of the engine state (they're static data, which never changes during a game)
svn-id: r42398
2009-07-11 23:45:54 +00:00
Filippos Karapetis d351c7b9cb Only the kernel needs to be initialized before anything else, when saving/loading
svn-id: r42262
2009-07-08 10:44:25 +00:00
Filippos Karapetis a764f274f8 Fixed saving/loading again (broken with the latest changes for game feature auto-detection)
svn-id: r42261
2009-07-08 10:35:51 +00:00
Filippos Karapetis d55f7e72d0 Added auto-detection for games with older headers for script blocks, and removed game flag GF_SCI0_OLD
svn-id: r42211
2009-07-07 10:28:05 +00:00
Filippos Karapetis c716e43a2b - Added auto-detection for EGA graphics. As a result of this, GF_SCI1_EGA has been removed and versions SCI_VERSION_01_EGA and SCI_VERSION_01_VGA have been merged into SCI_VERSION_01
- Simplified the checks for EGA and VGA graphics
- Fixed a bug in script_adjust_opcode_formats()
- Simplified the code in GfxResManager::getView() a bit

svn-id: r42206
2009-07-07 07:44:25 +00:00
Filippos Karapetis 219b0de0d2 Renamed SCI_VERSION_01 -> SCI_VERSION_01_EGA
svn-id: r42181
2009-07-06 16:22:14 +00:00
Filippos Karapetis 522b161bec Replaced sciprintf() calls with printf, DebugPrintf, warning and error calls
svn-id: r42167
2009-07-06 10:39:22 +00:00
Filippos Karapetis ed46e223eb Hopefully fixed memory corruption when loading games
svn-id: r41361
2009-06-07 23:29:11 +00:00
Walter van Niftrik a6ed05740f SCI: Moved resource36 handling into resource manager.
svn-id: r41349
2009-06-07 19:15:55 +00:00
Max Horn 21d948ec05 SCI: Simplified SongLibrary code a bit
svn-id: r41345
2009-06-07 17:07:25 +00:00
Max Horn d07e9dfb13 SCI: Objectified SongLibrary
svn-id: r41343
2009-06-07 17:06:51 +00:00
Max Horn f2ca788004 SCI: Renamed various song/songlib related structs and members
svn-id: r41342
2009-06-07 17:06:32 +00:00
Max Horn 10c54394bd SCI: Renamed EngineState::flags and version to _flags and _version (following our conventions); also slightly changed the EngineState constructor to init _version & _flags, and used this to make them constant
svn-id: r41177
2009-06-04 21:44:39 +00:00
Filippos Karapetis 98f64cfa2f Removed the gfxw_new_visual and gfxw_new_port wrappers, moved _kfuncTable inside the Kernel class and moved gfxw_find_port inside the GfxVisual struct
svn-id: r41125
2009-06-02 14:16:59 +00:00
Filippos Karapetis d405b2880b Removed some unused variables from the engine state
svn-id: r41123
2009-06-02 07:59:04 +00:00
Filippos Karapetis c85134bd5e Some fixes for saving/loading (still broken)
svn-id: r41102
2009-06-01 15:34:33 +00:00
Filippos Karapetis 99c6874630 Split the kernel functions away from the vocabulary functions (WIP, saving/loading is broken)
svn-id: r41101
2009-06-01 14:12:43 +00:00
Max Horn 4fba6e5d4c SCI: Fixed loading; added 'const' keywords to several Vocabulary methods
svn-id: r41071
2009-05-31 15:08:16 +00:00
Filippos Karapetis 4441ca4b3e - Further objectification of the SCI vocabulary functions
- Rewrote the sci_opcodes enum so that it's easier to read
- Made the engine error out if data is sent to an invalid selector (which is a fatal condition)

svn-id: r41069
2009-05-31 14:55:32 +00:00
Filippos Karapetis e317012cce Further objectification of the SCI vocabulary functions. Removed the "kernel_words" console command, as it's exactly the same as "parser_words"
svn-id: r41065
2009-05-31 12:05:49 +00:00
Filippos Karapetis a4d13cef8c More objectification of the Vocabulary functions
svn-id: r41057
2009-05-31 02:37:24 +00:00
Filippos Karapetis 76406c35ec Started objectifying the vocabulary functions (WIP)
svn-id: r41051
2009-05-30 22:15:00 +00:00
Filippos Karapetis 15d5b8436e Removed the "sfx_debuglog" command. Sound debug messages are now shown if kDebugLevelSound is specified
svn-id: r41039
2009-05-30 17:53:12 +00:00
Filippos Karapetis 3490819a66 - Removed debug_mode from the engine state
- Turned all SCIkwarn and SCIkdebug functions to ScummVM's debugC function
- Placed some debug code in appropriate defines: DEBUG_PARSER, DEBUG_AVOIDPATH and DEBUG_SOUND
- Removed the "debuglog" command and the "script_checkloads_flag" and "sci_debug_flags" variables

svn-id: r41033
2009-05-30 15:40:49 +00:00
Max Horn d3bd7b622c SCI: Turned SfxState into a proper class (i.e., convert the sfx_ funcs to member methods)
svn-id: r40973
2009-05-28 22:48:15 +00:00
Max Horn d70504c910 SCI: Renamed sfx_state_t -> SfxState, preparing it to become a class eventually
svn-id: r40958
2009-05-28 10:54:30 +00:00
Max Horn 7fbbaff990 SCI: Turned the global 'static MessageState state' variable into a member of EngineState
svn-id: r40910
2009-05-26 11:33:18 +00:00
Max Horn b431254070 SCI: Removed the 'save_dir' gui hack
svn-id: r40772
2009-05-21 21:50:11 +00:00
Filippos Karapetis 4799cbf1c3 Removed the PREG, PSTK, IS_NULL_REG and REG_EQ defines
svn-id: r40767
2009-05-21 17:18:46 +00:00
Max Horn bba91075bf removed trailing whitespaces
svn-id: r40742
2009-05-20 17:53:31 +00:00
Max Horn 4c786a44c9 SCI: Changed EngineState::opcodes to a Common::Array (maybe we shold just remove the relevant code completely, though, it seems useless, esp. as long as we hardcode the way we interpret every opcode
svn-id: r40740
2009-05-20 17:52:33 +00:00
Max Horn 136fcb3810 SCI: Introduce a new subclass StringFrag of MemObject (does nothing right now); switched MemObject to subclass Common::Serializable
svn-id: r40714
2009-05-19 00:34:10 +00:00
Max Horn 4755fcb130 SCI: got rid of EngineState::savegame_version; some cleanup
svn-id: r40713
2009-05-19 00:33:48 +00:00
Max Horn 091b347a7e SCI: Init the diff .#&$ EngineState::flags field in the constructor and when loading -- fixes many weird crashes upon loading (lesson to be learned: if you add fields to a class, then (a) init it in the construtor and (b) if the class support serializing, make sure the new field is handled when saving/loading :-)
svn-id: r40712
2009-05-19 00:02:44 +00:00
Max Horn b0c1cf52e0 SCI: Got rid of EngineState::execution_stack_pos; overally, the resulting code should be even stricter in detecting invalid VM stack access (and some bugs when loading saves might be fixed now...)
svn-id: r40694
2009-05-18 18:15:45 +00:00
Max Horn 99713ca7fa SCI: Tweaks, cleanup
svn-id: r40688
2009-05-18 12:36:04 +00:00
Max Horn 5170acd00c SCI: Removed the unused member SegManager::gc_mark_bits; changed some int params to SegmentId
svn-id: r40685
2009-05-18 12:34:56 +00:00
Max Horn 9c44705f05 SCI: Got rid of SEG_ID/SCRIPT_ID
svn-id: r40599
2009-05-15 09:28:31 +00:00
Max Horn 75c0d719c9 SCI: Turned several script related SegManager methods into Script methods
svn-id: r40597
2009-05-15 09:27:07 +00:00
Filippos Karapetis 565cfa074d Simplified SCI versions to be SCI version generations, and fixed some game entries in the process. Also, added a sanity check for invalid game entries
svn-id: r40596
2009-05-15 09:04:21 +00:00
Max Horn bd2e21c97a SCI: Fixed restoring scripts when loading a SCI 1.1 savestate
svn-id: r40582
2009-05-14 23:39:36 +00:00
Max Horn d2dfa0ac11 SCI: cleanup
svn-id: r40581
2009-05-14 23:39:16 +00:00
Max Horn 7f2a146597 SCI: Added a paranoia check to find_unique_script_block which causes us to bail out if we are about to get stuck in an endless loop
svn-id: r40580
2009-05-14 23:10:22 +00:00
Max Horn cd063606a0 SCI: Changed sci_obj_* enum value names to uppercase, in accordance with our code formatting conventions
svn-id: r40578
2009-05-14 23:09:30 +00:00