Commit Graph
7940 Commits
Author SHA1 Message Date
Filippos Karapetis 876a7b657f Removed the hi-color code (16bpp & 24bpp). All SCI games use up to 256 colors, so hi-color isn't really used anywhere, and it only makes the overall code more complex for no reason
svn-id: r43994
2009-09-06 22:27:29 +00:00
Filippos Karapetis f98dc19f71 Removed some leftover debug code, and turned p0printf messages into debug messages, introducing a new debug level
svn-id: r43993
2009-09-06 21:56:49 +00:00
Max Horn eb8cf07db2 SCI: Rename SegManager::exports_wide to _exportsAreWide and changed it to a bool, and rename setExportWidth() to setExportAreWide()
svn-id: r43988
2009-09-06 13:01:26 +00:00
Max Horn fdaa3d423c SCI: Script::obj_indices is now protected
Add new methods init, allocateObject and getObject to class Script, and use them instead of directly accessing Script::obj_indices. Replace RAW_GET_CLASS_INDEX with Script::getObject()

svn-id: r43987
2009-09-06 13:01:00 +00:00
Max Horn a550e2ea10 SCI: Replace "IntMapper *id_seg_map" in SegManager with a Common::HashMap<int,int>
This simplifies the code considerably. Also changed the savegame format
accordingly, which required me to bump the format version to 10. Old
saves should still load fine.

svn-id: r43986
2009-09-06 13:00:30 +00:00
Max Horn 1d075291da SCI: Convert saveload code to use the versioning feature of Common::Serializer
svn-id: r43985
2009-09-06 12:59:56 +00:00
Max Horn 029e3a5703 SCI: cleanup
svn-id: r43984
2009-09-06 12:59:34 +00:00
Max Horn b51e9988e6 SCI: cleanup
svn-id: r43982
2009-09-06 12:58:43 +00:00
Max Horn fdbb167ea3 SCI: Cleanup for some SegManager internals
- rename segGet and getSegment to getScriptSegment; the two can be
  distinguished by the parameter count.
- rename type SCRIPT_GET to ScriptLoadType to conform with our code
  formatting conventions
- rename get_class_address to getClassAddress
- some cleanup

svn-id: r43981
2009-09-06 12:58:16 +00:00
Max Horn d04b5d2c9b SCI: Rename resManager -> resMan; segManager -> segMan
svn-id: r43980
2009-09-06 12:57:42 +00:00
Max Horn c0ff500b0a SCI: Rename player -> s_player and made it static; allocate MemoryReadStream in two cases on the stack, for simplicity
svn-id: r43979
2009-09-06 12:56:50 +00:00
Max Horn cd7a32eed0 SCI: Change script_lookup_export to use SegManager::validateExportFunc
svn-id: r43978
2009-09-06 12:56:28 +00:00
Filippos Karapetis bd5ba266b4 Oops
svn-id: r43943
2009-09-04 15:47:09 +00:00
Filippos Karapetis d398c17f79 - Allow SCI games to set the cursor position when it's hidden once again
- Changed the message shown when the game tries to move the cursor off the screen bounds from a warning to a debug message, to avoid spam in games that do this behavior, e.g. the Camelot demo

svn-id: r43942
2009-09-04 15:40:15 +00:00
Filippos Karapetis 32af5eb3be - Removed the gfx error defines. When resources are not found, or are corrupted, we should error out instead of piggy-banking an error flag to another function
- Do not try and set the position of the mouse cursor when it's hidden

svn-id: r43941
2009-09-04 15:04:13 +00:00
Walter van Niftrik dd0ebb7116 SCI: Reset signal before playing song.
svn-id: r43940
2009-09-04 14:57:27 +00:00
Filippos Karapetis c3a13a6ae6 Removed the "reverse alpha" flag from the graphics driver code. Alpha values are now always 0 for transparent, up to 255 for opaque
svn-id: r43939
2009-09-04 10:15:12 +00:00
Filippos Karapetis 9381362277 Removed the bilinear and trilinear FreeSCI scalers, and only left the unfiltered scaler in (to be replaced by ScummVM's scaler code). We really don't need bilinear and trilinear filtered scaling in the engine, as ScummVM's filters already perform bilinear and trilinear filtered scaling, if requested
svn-id: r43938
2009-09-04 09:44:06 +00:00
Sven Hesse 4b4b36cfb1 Fixing signed/unsigned comparison warning
svn-id: r43937
2009-09-04 08:37:53 +00:00
Filippos Karapetis f5d846d482 Removed the animation_granularity variable from the engine state (it never changes, and it's used in one place only)
svn-id: r43936
2009-09-04 07:21:51 +00:00
Filippos Karapetis 142922387c Moved some functions inside the SegManager class, and renamed alloc_clone() to allocateClone()
svn-id: r43935
2009-09-04 07:17:34 +00:00
Walter van Niftrik ac078040e1 SCI: Relocate export table when restoring SCI1.1 savegames
svn-id: r43916
2009-09-03 11:51:18 +00:00
Filippos Karapetis 557aaab0e6 - Re-added the SCI0 dithering code. Dithering is disabled by default. Added the 3 dithering modes as an enum (and reorganized them a bit)
- Added 3 config options for dithering in the ini file - mainly for purists (config option "dither_mode"): 0 - disabled, 1 - 16 color dithering (Sierra style) and 2 - 256 color dithering
- Dithering is now always applied depending on the screen scale (removed the relevant parameter)
- Removed the background picture buffering option, used to speed-up room changes. Room changing is quite fast (instantaneous), and the extra memory allocated is not worth the possible speed increase in small devices. Plus.... there is no reliable value to set this option to, so there is no point in letting the user decide what value to put there using guesswork

svn-id: r43915
2009-09-03 07:01:48 +00:00
Filippos Karapetis 9829378a98 Fixed loading again (broken accidentally in rev. 43504
svn-id: r43913
2009-09-02 23:11:50 +00:00
Filippos Karapetis 2f99fea9a3 Removed the dirty rectangle option of updating one huge rectangle, and only left the algorithm of updating the screen with multiple small rectangles, like we do in all the other engines that support dirty rectangle screen updates
svn-id: r43909
2009-09-02 13:21:38 +00:00
Filippos Karapetis 1bbab8f191 Some renaming:
getresourceManager -> getResourceManger
resourceManager -> resMan
segmentManager ->segMan

svn-id: r43908
2009-09-02 12:02:37 +00:00
Max Horn b391f08b46 SCI: Renamed kernel_dereference_* to kernelDeref*, and added kernelDerefString
svn-id: r43907
2009-09-02 11:38:16 +00:00
Max Horn 0c7093e05c SCI:
* removed kNOP
* renamed k_Unknown to kUnknown
* added FIXME to kfunct_mappers table
* more cleanup

svn-id: r43906
2009-09-02 11:35:00 +00:00
Max Horn 6c44eafa97 SCI: funct_nr is not used in 99% of all opcodes -- hide it in those (to be removed eventually)
svn-id: r43905
2009-09-02 11:33:25 +00:00
Filippos Karapetis b2415c11c7 Added checksums for KQ5 EGA (bug report #2829470)
svn-id: r43903
2009-09-01 23:07:51 +00:00
Filippos Karapetis aace86a6eb Disabled the FreeSCI PIC0 palette dithering code, for now. It doesn't really make sense to dither, as Sierra games use up to 256 colors (even the later SVGA ones), and it messes up the result of the FreeSCI graphics filters. Plus, the resulting image looks worse than the original one
svn-id: r43901
2009-09-01 21:24:09 +00:00
Filippos Karapetis da34dfcd65 Disabled dithering by default, in order to get the graphics filters working (is dithering even used anywhere?)
svn-id: r43897
2009-09-01 20:47:49 +00:00
Filippos Karapetis 28e2f0457e Re-enabled custom graphics options, and read the cursor, view, pic and text filtering algorithm options from the ScummVM ini file (options "cursor_filter", "view_filter", "pic_filter" and "text_filter", 0 - unfiltered, 1 - bilinear filtering, 2 - trilinear filtering)
svn-id: r43894
2009-09-01 20:28:44 +00:00
Filippos Karapetis fd92b49486 - Reverted the *vga targets back to *sci, and used the extras field again for VGA remakes
- The extras field is now filled by the fallback detector for VGA games

svn-id: r43893
2009-09-01 19:40:29 +00:00
Filippos Karapetis a191728945 - Added MD5's for the 5 different Crazy Nick's collections
- Added the MD5's of the French versions of GK2 and SQ6 (bug reports #2846842 and #2846515)
- Added a different game id for QFG1 VGA (SCI1.1), to distinguish it from the older EGA version (SCI0) and added detection for the VGA version in the fallback detector
- Changed some VGA SCI game IDs: lsl1sci -> lsl1vga, pq1sci -> pq1vga, sq1sci -> sq1vga, to distinguish SCI VGA remakes from SCI EGA remakes (like with QFG1VGA)

svn-id: r43891
2009-09-01 19:05:21 +00:00
Walter van Niftrik b0ab5d48f8 SCI: Fix message property of mouse event. This fixes mouse handling in the
room with the pier in KQ6.

svn-id: r43888
2009-09-01 17:40:13 +00:00
Filippos Karapetis 2e04dcb133 - Moved the Sierra game ID conversion code inside game.cpp, so that any game-specific workarounds are tested against ScummVM IDs
- Added detection for the EcoQuest 1 demo in the fallback detector
- Partially reverted my previous "fix" for EcoQuest 1 CD, and turned it into a script-specific hack for that game, for now
- Added handling of kDisposeScript calls made with 2 parameters, e.g. in KQ5CD and others (still untested, haven't found a test case)

svn-id: r43887
2009-09-01 17:09:59 +00:00
Filippos Karapetis 3d0e8a568c Fixed incorrect usage of ARRAYSIZE (thanks fingolfin)
svn-id: r43886
2009-09-01 14:55:28 +00:00
Max Horn fbfe40d7e2 SCI: Turned convertSierraGameId partially into a table
svn-id: r43883
2009-09-01 13:03:32 +00:00
Max Horn 11a16fa30e Coding best practice: Whenever possible, pass objects by reference instead of by value. Also make variables or data table which are only used locally "static".
svn-id: r43882
2009-09-01 13:03:12 +00:00
Max Horn 8e28469f1f Coding best practice: Always use enums instead of #defines to define integer constants (for many good reasons)
svn-id: r43881
2009-09-01 13:02:47 +00:00
Filippos Karapetis 28d7d59de3 Changed an error to a warning, as it occurs at the beginning of EcoQuest 1 CD and doesn't seem to have any side effects
svn-id: r43876
2009-09-01 06:51:40 +00:00
Filippos Karapetis 267bbb2bb4 Fixed the crash at the beginning of EcoQuest 1 CD
svn-id: r43875
2009-09-01 06:45:30 +00:00
Filippos Karapetis 814a37846e Fixed regression with some weird mouse cursors (e.g. in EcoQuest)
svn-id: r43874
2009-09-01 06:21:23 +00:00
Walter van Niftrik 53380a2cbf SCI: Fix bug in SCI1.1 varselector search.
svn-id: r43872
2009-09-01 02:50:40 +00:00
Walter van Niftrik 2777e9f349 SCI: Fix relative cues in SCI1.
svn-id: r43871
2009-09-01 02:11:55 +00:00
Filippos Karapetis fed9e3e2df Cleanup
svn-id: r43869
2009-08-31 21:50:14 +00:00
Filippos Karapetis fa9ce61a5d Cleanup
svn-id: r43866
2009-08-31 21:41:25 +00:00
Filippos Karapetis a6f457b45d Rewrote the static selector mapper to use SCI versions instead of game IDs, and split the selectors in SCI generations
svn-id: r43863
2009-08-31 20:45:46 +00:00
Filippos Karapetis 2c9c1119af - Removed the now-unused "setTarget" selector
- Added the "setCursor" selector
- Replaced the selector table of the LSL5 demo with the one from the LSL1 demo (we no longer get a warning about an invalid selector)
- Changed the selector table of the xmas1992 demo to use the table from KQ6 floppy
- Set Laura Bow 2 floppy to use the KQ6 floppy table

svn-id: r43859
2009-08-31 20:21:52 +00:00