aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sci.cpp
AgeCommit message (Collapse)Author
2009-10-25CleanupFilippos Karapetis
svn-id: r45368
2009-10-25CleanupFilippos Karapetis
svn-id: r45366
2009-10-18Removed unused references to operations.hFilippos Karapetis
svn-id: r45217
2009-10-16Reverted an accidental change in the last commitFilippos Karapetis
svn-id: r45177
2009-10-16Moved sci_ffs() inside iterator.cpp, the only place where it's actually ↵Filippos Karapetis
used, and removed tools.*. Also, removed all the unused includes to tools.h from several places svn-id: r45176
2009-10-15Changed the KQ6 floppy SEQ decoder to use the common VideoPlayer interface. ↵Filippos Karapetis
Some cleanup svn-id: r45124
2009-10-13Merged the cursor manipulation code - cursor views are still not doneFilippos Karapetis
svn-id: r45028
2009-10-11Reset the EngineState pointer in the SciGuiGfx class when loading. Fixes ↵Filippos Karapetis
loading with the new GUI svn-id: r44934
2009-10-10Introduced a new debug level, kDebugLevelResMan, and reduced some of the ↵Filippos Karapetis
messages printed to the console svn-id: r44858
2009-10-09Removed the unused _flags variable from EngineStateFilippos Karapetis
svn-id: r44857
2009-10-09Removed the now unused GF_SCI0_OLDGETTIME flag and simplified all of the ↵Filippos Karapetis
game entries in the detector svn-id: r44856
2009-10-08Started rewriting the check for the graphics functions type (still not ↵Filippos Karapetis
finished) svn-id: r44787
2009-10-08Don't store the engine state in the SciGuiPalette class. The palette ↵Filippos Karapetis
timestamps are now calculated from Epoch time, instead of game start time (the functionality is exactly the same, though) svn-id: r44773
2009-10-07SCI: Reduce header interdepencies once again. Rule of thumb: Never include a ↵Max Horn
header file from another header file unless you absolutely *must* do it; if possible, try to use class forwards instead, and include the headers from source files only svn-id: r44767
2009-10-07- Cleaned up the cursor codeFilippos Karapetis
- Renamed gui -> _gui in EngineState, for consistency - Added a reference to SciGuiCursor in EngineState, to be used by current code - Renamed setCursorHide -> hideCursor, setCursorShow -> showCursor - Moved the cursor zone limiting code inside SciGuiCursor. This code is currently not functioning, as we need to call refreshPosition() before each updateScreen() call to limit the cursor position. svn-id: r44760
2009-10-07SCI: removed OSystem from SciGuiScreenMartin Kiewitz
svn-id: r44731
2009-10-07SCI: SciGuiCursor class added, cleanup, OSystem removed from SciGui constructorMartin Kiewitz
svn-id: r44730
2009-10-06WIP code for replacing the FreeSCI view decoding code with the new one (no ↵Filippos Karapetis
changes to the logic, yet) svn-id: r44717
2009-10-06- Unified the screen buffers that are used by the current and the new GUIFilippos Karapetis
- Replaced the FreeSCI line drawing code (which is actually Bresenham) with Graphics::drawLine(), after discussing with waltervn. This shouldn't bring any regressions, as we're no longer offering the option to scale the background at a vector level. After playing through some of the games, I haven't noticed any regressions - Some cleanup svn-id: r44692
2009-10-05- Renamed GUI -> Gui and capitalized as appropriate (e.g. SciGUIwindowMgr -> ↵Filippos Karapetis
SciGuiWindowMgr) - Renamed "cell" -> "cel" svn-id: r44649
2009-10-04SCI: kAddToPic, kAnimate and kSetNowSeen transferred to SciGUI32, not yet ↵Martin Kiewitz
implemented in newgui svn-id: r44606
2009-10-03SCI: Merge new GUI code written by m_kiewitz.Willem Jan Palenstijn
This is a major rewrite of the graphics code. A slightly adapted version of the old code is still available and currently the default. The new code is selectable in sci.cpp, but is not yet finished. svn-id: r44565
2009-09-30- Removed some leftover 16/32bpp color code, as we're always using palette ↵Filippos Karapetis
mode now - Simplified the mouse cursor manipulation code svn-id: r44502
2009-09-30- Moved the list of synonyms and parser nodes inside the vocabulary classFilippos Karapetis
- Added a convenience member inside the EngineState struct to access the instance of the Vocabulary class svn-id: r44481
2009-09-25Reverted commit #44316, as colors show up correctly now without dithering. ↵Filippos Karapetis
Dithering is now off again for SCI0 by default, an can optionally be turned on svn-id: r44339
2009-09-24Set dithering to the FreeSCI "enhanced" style by default for SCI0 games, as ↵Filippos Karapetis
disabling dithering makes some colors not show up correctly (e.g. the trees in Iceman and LSL3). Dithering can still be disabled on a per-game basis by using the "dither_mode" option svn-id: r44316
2009-09-23SCI: Rename _sciVersion to s_sciVersion and made it local to resource.cpp ↵Max Horn
(i.e. follow CFG and achieve code/data isolation) svn-id: r44271
2009-09-23- Moved the SCI version in a global variableFilippos Karapetis
- Changed all the SCI version checks to use getSciVersion() - Also made getSciVersionDesc a global function (removes some ugly accessing of the SCI engine) The fallback detector should work correctly now svn-id: r44269
2009-09-22SCI: Change SystemStrings to use RAW storage consistenlyMax Horn
svn-id: r44246
2009-09-17SCI: Add EngineState::_kernel member for convenienceMax Horn
svn-id: r44173
2009-09-17SCI: Move parts of struct ScriptState into a new struct DebugStateMax Horn
svn-id: r44151
2009-09-06Removed some leftover debug code, and turned p0printf messages into debug ↵Filippos Karapetis
messages, introducing a new debug level svn-id: r43993
2009-09-04Removed the bilinear and trilinear FreeSCI scalers, and only left the ↵Filippos Karapetis
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-04Removed the animation_granularity variable from the engine state (it never ↵Filippos Karapetis
changes, and it's used in one place only) svn-id: r43936
2009-09-03- Re-added the SCI0 dithering code. Dithering is disabled by default. Added ↵Filippos Karapetis
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-02Removed the dirty rectangle option of updating one huge rectangle, and only ↵Filippos Karapetis
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-02Some renaming:Filippos Karapetis
getresourceManager -> getResourceManger resourceManager -> resMan segmentManager ->segMan svn-id: r43908
2009-09-01Disabled the FreeSCI PIC0 palette dithering code, for now. It doesn't really ↵Filippos Karapetis
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-01Disabled dithering by default, in order to get the graphics filters working ↵Filippos Karapetis
(is dithering even used anywhere?) svn-id: r43897
2009-09-01Re-enabled custom graphics options, and read the cursor, view, pic and text ↵Filippos Karapetis
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-08-31Removed many bogus return values in the SCI graphics functions - some ↵Filippos Karapetis
functions always returned "true", whereas in others they errored out in fatal conditions before any value was returned. FreeSCI was returning values from the graphics drivers it used. In ScummVM, we have one graphics driver, and we error out in fatal conditions anyway, so these error checks are no longer necessary, and the resulting code looks much neater svn-id: r43851
2009-08-30SCI: Add lofs detection.Walter van Niftrik
svn-id: r43824
2009-08-30SCI: CleanupWalter van Niftrik
svn-id: r43811
2009-08-25- Split SCI_VERSION_32 into SCI_VERSION_2, SCI_VERSION_2_1, and ↵Matthew Hoops
SCI_VERSION_3 (each version has a different kernel table). - Improve map detection. - Fix SCI32 object and script initialization (Torin's Passage and GK1 scripts now start up, and probably most SCI2/2.1 games). - Add SCI2 and SCI2.1 kernel tables. svn-id: r43742
2009-08-25- Simplified the parameters of some functionsFilippos Karapetis
- Replaced some EngineState parameters - The SCI version is now obtained from the resource manager or the segment manager, thereby simplifying several functions - Plugged 2 leaks in the fallback detector - Renamed the segment manager and resource manager to "segmentManager" and "resourceManager" in all places, for consistency svn-id: r43722
2009-08-21Renamed ENABLE_RGB_COLOR to USE_RGB_COLOR, and added it to config.h to ↵Andre Heider
guarantee a consistent build. svn-id: r43604
2009-08-21SCI: disable RGB mode, as it's not ready to be used yetWillem Jan Palenstijn
svn-id: r43600
2009-08-19Merged revisions ↵Travis Howell
43458-43468,43470-43471,43473-43475,43477,43479-43483,43485,43497-43498,43500,43503-43504,43507,43509-43510,43512-43515,43517,43519,43521,43523 via svnmerge from https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk ........ r43458 | thebluegr | 2009-08-17 15:55:21 +1000 (Mon, 17 Aug 2009) | 8 lines - 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 ........ r43459 | lordhoto | 2009-08-17 17:36:08 +1000 (Mon, 17 Aug 2009) | 1 line Fix compilation of the SCI engine. It seems that all of the SCI header files I touched (and probably others I luckily didn't touch) seem to assume that files including them will supply needed types. That looks like a major issue in SCI. Someone with knowledge of the SCI code should look into this and cleanup the includes of *all* SCI headers. ........ r43460 | thebluegr | 2009-08-17 19:19:53 +1000 (Mon, 17 Aug 2009) | 1 line Cleanup ........ r43461 | strangerke | 2009-08-17 19:50:35 +1000 (Mon, 17 Aug 2009) | 1 line Added OPCODEDRAW 0x85, with a specific workaround for Bambou hardcoded paths in scripts ........ r43462 | strangerke | 2009-08-17 19:54:49 +1000 (Mon, 17 Aug 2009) | 1 line Suppress useless parentheses ........ r43463 | lordhoto | 2009-08-17 19:57:09 +1000 (Mon, 17 Aug 2009) | 1 line Formatting. ........ r43464 | strangerke | 2009-08-17 20:05:02 +1000 (Mon, 17 Aug 2009) | 1 line Add back parenthesis (I wasn't aware of this convention, sorry) in saveload, and mimic this code in oPlaytoons_openItk ........ r43465 | lordhoto | 2009-08-17 20:48:03 +1000 (Mon, 17 Aug 2009) | 2 lines - Add note about that modifing the parent stream will mess up SeekableSubReadStream and SeekableSubReadStreamEndian. - Link to SubReadStream documentation from SeekableSubReadStream and SeekableSubReadStreamEndian. ........ r43466 | thebluegr | 2009-08-17 21:06:27 +1000 (Mon, 17 Aug 2009) | 1 line Made sound effect playing code consistent for compressed and uncompressed sounds. MemoryReadStream is used again instead of SeekableSubReadStream, as there will be issues when multiple sound effects or voices are played simultaneously ........ r43467 | thebluegr | 2009-08-17 21:11:38 +1000 (Mon, 17 Aug 2009) | 1 line Ignore speech and sound effect samples with unknown compression, instead of trying to play them as raw sound. Some cleanup ........ r43468 | dreammaster | 2009-08-17 21:36:09 +1000 (Mon, 17 Aug 2009) | 1 line Fix for some more !!HIGH STRINGS!! when talking to the palace guards ........ r43470 | thebluegr | 2009-08-17 21:49:07 +1000 (Mon, 17 Aug 2009) | 1 line Simplified the sound playing code by removing the boolean variables for signed, stereo, endian and sample bit information - now sound flags are used instead. Some cleanup. ........ r43471 | dreammaster | 2009-08-17 21:51:42 +1000 (Mon, 17 Aug 2009) | 1 line Switched event loop while/do to do/while, to ensure event handling occurs even when the game is under heavy load ........ r43473 | lordhoto | 2009-08-17 22:22:15 +1000 (Mon, 17 Aug 2009) | 1 line Cleanup: don't copy the Kyrandia 1 Amiga credits data in a temporary buffer, and thus keeping it twice in memory. ........ r43474 | lordhoto | 2009-08-17 22:22:30 +1000 (Mon, 17 Aug 2009) | 1 line Clear input queue before displaying the credits in Kyrandia 1. ........ r43475 | lordhoto | 2009-08-17 22:47:57 +1000 (Mon, 17 Aug 2009) | 1 line Fix possible out of bounds access in Screen::drawShape. ........ r43477 | joostp | 2009-08-17 22:57:37 +1000 (Mon, 17 Aug 2009) | 2 lines Commit (slightly) modified version of patch #2831248: Allow suspend/resume for PSP ........ r43479 | thebluegr | 2009-08-17 23:16:40 +1000 (Mon, 17 Aug 2009) | 1 line Added looping support to LinearDiskStream, needed by SAGA and perhaps other engines. Note that the loop end parameter is still not implemented ........ r43480 | thebluegr | 2009-08-17 23:25:44 +1000 (Mon, 17 Aug 2009) | 2 lines - Removed the custom DigitalMusicInputStream used in SAGA for the digital music in ITE CD and replaced it with the common LinearDiskStream class - Removed leftover code which plays standalone tracks (it's not used anywhere) ........ r43481 | lordhoto | 2009-08-17 23:49:56 +1000 (Mon, 17 Aug 2009) | 1 line Slight cleanup to makeLinearDiskStream interface. ........ r43482 | waltervn | 2009-08-18 01:49:22 +1000 (Tue, 18 Aug 2009) | 1 line SCI: Add autodetection for DoSound. Cleanup. ........ r43483 | waltervn | 2009-08-18 02:07:47 +1000 (Tue, 18 Aug 2009) | 1 line SCI: Build fix. ........ r43485 | thebluegr | 2009-08-18 04:25:51 +1000 (Tue, 18 Aug 2009) | 1 line Put back the code for playing external digital music, used by the MIDI enhancement project, which was removed in rev. #43480 ........ r43497 | waltervn | 2009-08-18 09:11:25 +1000 (Tue, 18 Aug 2009) | 1 line SCI: Fix kernel table for multilingual SCI01 games. Cleanup. ........ r43498 | joostp | 2009-08-18 09:54:40 +1000 (Tue, 18 Aug 2009) | 2 lines PSP: increase optimization level and change clock rate to 333mhz ........ r43500 | thebluegr | 2009-08-18 16:43:06 +1000 (Tue, 18 Aug 2009) | 1 line Applied agent-q's patch to the SAGA pathfinding code for all platforms - x and y should not ever be greater than 640 and 480 respectively, so it looks safe enough to be applied ........ r43503 | thebluegr | 2009-08-18 19:12:41 +1000 (Tue, 18 Aug 2009) | 1 line Removed the maxMemory parameter of the resource manager and replaced it with a define ........ r43504 | thebluegr | 2009-08-18 20:01:18 +1000 (Tue, 18 Aug 2009) | 2 lines - 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 ........ r43507 | dreammaster | 2009-08-18 22:25:04 +1000 (Tue, 18 Aug 2009) | 1 line Bugfix for Castle Skorl problem reported on the list ........ r43509 | thebluegr | 2009-08-18 22:49:34 +1000 (Tue, 18 Aug 2009) | 1 line Mapped some Sierra internal IDs to our own ones, and added a note about a hack currently used in the fallback detector ........ r43510 | thebluegr | 2009-08-19 00:10:31 +1000 (Wed, 19 Aug 2009) | 1 line Started rewriting the SCI engine to use FSNode instead of file names. This is the proper solution for removing the hack in the fallback detector, but it still needs work. Also, reduced the things needed to be initialized a bit, so that the detection is a bit faster ........ r43512 | lordhoto | 2009-08-19 01:31:26 +1000 (Wed, 19 Aug 2009) | 1 line Made AGOS, DRASCULA, GOB, GROOVIE, MADE, SCUMM and TINSEL properly stop CD audio playback on engine quit. (This only problem affected playback from CD, not from ripped audio files) ........ r43513 | lordhoto | 2009-08-19 01:32:26 +1000 (Wed, 19 Aug 2009) | 2 lines - Destory AudioCDManager singleton after user quits a game, this saves a few bytes memory - Added FIXME to audiocd.h, concering why destroying the AudioCDManager can not quit CD playback right now ........ r43514 | joostp | 2009-08-19 01:39:47 +1000 (Wed, 19 Aug 2009) | 2 lines PSP: disable dosbox OPL ........ r43515 | lordhoto | 2009-08-19 01:41:00 +1000 (Wed, 19 Aug 2009) | 1 line Typos. ........ r43517 | joostp | 2009-08-19 03:12:01 +1000 (Wed, 19 Aug 2009) | 2 lines PSP: Make R-trigger act as a context sensitive modifier key, remap ENTER to triangle ........ r43519 | joostp | 2009-08-19 04:06:50 +1000 (Wed, 19 Aug 2009) | 2 lines Implement setCursorPalette(), correct hasFeature() <-> getFeatureState() mixup. ........ r43521 | john_doe | 2009-08-19 05:42:13 +1000 (Wed, 19 Aug 2009) | 2 lines - PMV player: Use frame count from PVM file and fix incorrect "invalid chunk type" warning - Fix sprite drawing glitch with vertically flipped sprites (bug #2825925) ........ r43523 | buddha_ | 2009-08-19 07:37:31 +1000 (Wed, 19 Aug 2009) | 1 line Possible fix for #2828330 (AGI: KQ1: Fast text box). If doesn't break anything else then should go to the branch-1-0-0 too, but haven't had the time to do much testing yet - thus committing to the trunk first. ........ svn-id: r43524
2009-08-18Removed the maxMemory parameter of the resource manager and replaced it with ↵Filippos Karapetis
a define svn-id: r43503
2009-08-17SCI: Add autodetection for DoSound. Cleanup.Walter van Niftrik
svn-id: r43482