Commit graph

158 commits

Author SHA1 Message Date
Filippos Karapetis
ff284c9f5b Remove unused includes when INCLUDE_OLDGFX is not set. Implemented the full screen updates that the current menu code is doing using new graphics functions (still unfinished). Some cleanup.
svn-id: r45536
2009-10-30 12:33:05 +00:00
Martin Kiewitz
8178d548eb SCI/newgui: Defining color white and others in SciGuiScreen and using that. Also clears screen with 0 on sci1.1 games (needs further investigation), fixes pictures
svn-id: r45500
2009-10-29 14:16:20 +00:00
Filippos Karapetis
04ab6bc9fc Enclose all of the old graphics code within the INCLUDE_OLDGFX safeguard (defined in sci.h)
svn-id: r45459
2009-10-28 13:20:30 +00:00
Filippos Karapetis
1a4b617398 - Removed graphics options code from the old GUI. Almost all of them are not supposed to be modified by the user (e.g. the way lines and brushes are drawn), and we can implement any of them again if needed in the new GUI (but they shouldn't really be needed).
- Added a config option to disable dithering in the new GUI if requested, called "undither", which is set to true by default and can be changed to false if needed per game
- The per-resource palette code has been removed for now, to be replaced by regular hashmaps (once the FreeSCI scifx reading code has been converted)

svn-id: r45378
2009-10-25 20:53:07 +00:00
Filippos Karapetis
410c298757 Cleanup
svn-id: r45368
2009-10-25 08:10:57 +00:00
Filippos Karapetis
452ae8a576 Cleanup
svn-id: r45366
2009-10-25 02:36:51 +00:00
Filippos Karapetis
f5b7f85593 Removed unused references to operations.h
svn-id: r45217
2009-10-18 10:50:07 +00:00
Filippos Karapetis
a6445d602d Reverted an accidental change in the last commit
svn-id: r45177
2009-10-16 23:31:31 +00:00
Filippos Karapetis
e4c23834dd Moved sci_ffs() inside iterator.cpp, the only place where it's actually used, and removed tools.*. Also, removed all the unused includes to tools.h from several places
svn-id: r45176
2009-10-16 23:29:00 +00:00
Filippos Karapetis
da7652deb3 Changed the KQ6 floppy SEQ decoder to use the common VideoPlayer interface. Some cleanup
svn-id: r45124
2009-10-15 15:17:54 +00:00
Filippos Karapetis
5aa1415397 Merged the cursor manipulation code - cursor views are still not done
svn-id: r45028
2009-10-13 16:22:07 +00:00
Filippos Karapetis
9b97f21486 Reset the EngineState pointer in the SciGuiGfx class when loading. Fixes loading with the new GUI
svn-id: r44934
2009-10-11 16:47:01 +00:00
Filippos Karapetis
8ae4206373 Introduced a new debug level, kDebugLevelResMan, and reduced some of the messages printed to the console
svn-id: r44858
2009-10-10 00:07:19 +00:00
Filippos Karapetis
9bb73a8457 Removed the unused _flags variable from EngineState
svn-id: r44857
2009-10-09 23:53:37 +00:00
Filippos Karapetis
b91ae69ad2 Removed the now unused GF_SCI0_OLDGETTIME flag and simplified all of the game entries in the detector
svn-id: r44856
2009-10-09 23:19:53 +00:00
Filippos Karapetis
bcade54247 Started rewriting the check for the graphics functions type (still not finished)
svn-id: r44787
2009-10-08 14:37:55 +00:00
Filippos Karapetis
498d80a510 Don't store the engine state in the SciGuiPalette class. The palette timestamps are now calculated from Epoch time, instead of game start time (the functionality is exactly the same, though)
svn-id: r44773
2009-10-08 08:00:30 +00:00
Max Horn
8498d769be SCI: Reduce header interdepencies once again. Rule of thumb: Never include a 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 23:04:13 +00:00
Filippos Karapetis
1562add631 - Cleaned up the cursor code
- 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-07 21:29:47 +00:00
Martin Kiewitz
337dbf2289 SCI: removed OSystem from SciGuiScreen
svn-id: r44731
2009-10-07 12:52:21 +00:00
Martin Kiewitz
77b549a0ad SCI: SciGuiCursor class added, cleanup, OSystem removed from SciGui constructor
svn-id: r44730
2009-10-07 12:47:53 +00:00
Filippos Karapetis
6d135e904f WIP code for replacing the FreeSCI view decoding code with the new one (no changes to the logic, yet)
svn-id: r44717
2009-10-06 19:57:55 +00:00
Filippos Karapetis
df29b0067e - Unified the screen buffers that are used by the current and the new GUI
- 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-06 12:26:13 +00:00
Filippos Karapetis
8568892bf5 - Renamed GUI -> Gui and capitalized as appropriate (e.g. SciGUIwindowMgr -> SciGuiWindowMgr)
- Renamed "cell" -> "cel"

svn-id: r44649
2009-10-05 07:10:01 +00:00
Martin Kiewitz
4957ec3505 SCI: kAddToPic, kAnimate and kSetNowSeen transferred to SciGUI32, not yet implemented in newgui
svn-id: r44606
2009-10-04 14:59:51 +00:00
Willem Jan Palenstijn
b9cdb1abb7 SCI: Merge new GUI code written by m_kiewitz.
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-10-03 20:49:18 +00:00
Filippos Karapetis
bbb2274a7d - Removed some leftover 16/32bpp color code, as we're always using palette mode now
- Simplified the mouse cursor manipulation code

svn-id: r44502
2009-09-30 22:43:29 +00:00
Filippos Karapetis
fd21bb2611 - Moved the list of synonyms and parser nodes inside the vocabulary class
- Added a convenience member inside the EngineState struct to access the instance of the Vocabulary class

svn-id: r44481
2009-09-30 12:17:38 +00:00
Filippos Karapetis
d72ad75c52 Reverted commit #44316, as colors show up correctly now without dithering. Dithering is now off again for SCI0 by default, an can optionally be turned on
svn-id: r44339
2009-09-25 10:11:31 +00:00
Filippos Karapetis
842602ee8c Set dithering to the FreeSCI "enhanced" style by default for SCI0 games, as 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-24 19:38:02 +00:00
Max Horn
ba0bd938e4 SCI: Rename _sciVersion to s_sciVersion and made it local to resource.cpp (i.e. follow CFG and achieve code/data isolation)
svn-id: r44271
2009-09-23 12:12:37 +00:00
Filippos Karapetis
13ad217cdd - Moved the SCI version in a global variable
- 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-23 10:55:35 +00:00
Max Horn
c5cc785802 SCI: Change SystemStrings to use RAW storage consistenly
svn-id: r44246
2009-09-22 01:08:42 +00:00
Max Horn
5f440854b7 SCI: Add EngineState::_kernel member for convenience
svn-id: r44173
2009-09-17 17:00:36 +00:00
Max Horn
b2c386ed00 SCI: Move parts of struct ScriptState into a new struct DebugState
svn-id: r44151
2009-09-17 13:21:19 +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
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
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
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
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
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
cc17addebf Removed many bogus return values in the SCI graphics functions - some 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-31 14:24:35 +00:00
Walter van Niftrik
3e543d2518 SCI: Add lofs detection.
svn-id: r43824
2009-08-30 14:53:58 +00:00
Walter van Niftrik
fff023794f SCI: Cleanup
svn-id: r43811
2009-08-30 01:37:27 +00:00
Matthew Hoops
b5da8a5cdc - Split SCI_VERSION_32 into SCI_VERSION_2, SCI_VERSION_2_1, and 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 23:02:57 +00:00
Filippos Karapetis
ed66cad677 - Simplified the parameters of some functions
- 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-25 08:38:14 +00:00
Andre Heider
007f68366f Renamed ENABLE_RGB_COLOR to USE_RGB_COLOR, and added it to config.h to guarantee a consistent build.
svn-id: r43604
2009-08-21 18:16:37 +00:00