Commit Graph

159 Commits

Author SHA1 Message Date
Travis Howell
286de879fd Add cyx's patch for bug #1035739 - SCUMM/SMUSH: Ugly palette change when video finishes
svn-id: r23216
2006-06-21 10:28:09 +00:00
Travis Howell
4b2aa54304 Revert back to original method used for scrollEffect(), fixes regressions.
svn-id: r23214
2006-06-21 06:50:50 +00:00
Eugene Sandulenko
fd7e9847fc Removed commented-out subtitles-related code. Requested by salty-horse.
svn-id: r23030
2006-06-11 20:29:07 +00:00
Travis Howell
61e9bc72e4 Correct setting of VAR_CHARINC in several functions, the value should only be reversed when using keyboard shortcuts (Due to the scrollbar)
svn-id: r22850
2006-06-03 03:04:19 +00:00
Travis Howell
3b1062d2d4 Add patch for bug #1452272 - COMI: Verb strings aren't wrapped
svn-id: r22793
2006-05-31 10:48:40 +00:00
Gregory Montoir
7ff20a70a5 The ScummDebugger object needs to be created after _numVariables has been set. This is apparently only done in in readMAXS() which is called by readIndexFile(). Moved the call to the object constructor in the init() method. This fixes the 'scumm_vars' debugger command.
svn-id: r22755
2006-05-29 18:30:27 +00:00
Travis Howell
a0d14a0832 Fix Commodore 64 versions
svn-id: r22732
2006-05-29 12:45:11 +00:00
Max Horn
dc2da7a804 Moved the hack that distinguishes MM V1 demo from the full version to a more appropriate location (so that the game gets correctly detected)
svn-id: r22718
2006-05-28 12:28:28 +00:00
Travis Howell
21f50b3267 Use different method to detect V1 demo of Maniac Mansion, since md5 matches the full version
svn-id: r22695
2006-05-28 03:47:20 +00:00
Torbjörn Andersson
8062eb6ec3 Set and show/hide mouse cursors through a "cursor manager" (analogous to the
recently added (cursor) palette manager) so that the cursor can be properly
restored after returning from the GUI.

If there's any C++ magic that can keep the backend functions from being called
by anything else than these managing classes, that would probably be a good
idea. Also, since the cursor manager keeps a copy of the cursor image, perhaps
there are at least some backends that will no longer need to?

svn-id: r22639
2006-05-25 22:51:42 +00:00
Eugene Sandulenko
9e3b78e1e9 --force-1x-overlay is no more. Remove leftovers.
svn-id: r22519
2006-05-18 13:59:20 +00:00
Eugene Sandulenko
14ec3f45fa - Heavily modified patch #1214784: "Disable overlay scaling"
- Eriktorbjorn's patch from same tracker item for scaling sword1/2 cutscenes
  is applied as is. It lacks resolution switch on-the-fly.
- GUI widgets are repositioned on the fly and use most space, even aspect
  ratio corrected screen is used without scaling
- Heavy tesing is required, but works for me in all cases except for bug
  #1483272: "GUI: SCUMM pause dialog breaks upon scaler switch" which needs more
  work.
- I probavly broke some backend or two

svn-id: r22505
2006-05-17 23:52:45 +00:00
Torbjörn Andersson
44ac23a81d Setting VAR_CHARINC = _defaultTalkDelay cannot possibly be right. It's not the
same thing as setting VAR(VAR_CHARINC) = _defaultTalkDelay.

svn-id: r22466
2006-05-14 09:22:49 +00:00
Travis Howell
ada0160e88 Check if VAR_CHARINC exists, before setting value in updateSoundSettings()
svn-id: r22462
2006-05-14 06:00:40 +00:00
Max Horn
0d6362ea48 Patch #1091170: ALL, SCUMM: Subtitle speed control
svn-id: r22456
2006-05-13 17:30:04 +00:00
Travis Howell
d6d3a621dc Init. videoParams vars for HE90+
svn-id: r22386
2006-05-08 11:04:51 +00:00
Travis Howell
3830ac06b3 Add initial DXA support for HE games
svn-id: r22384
2006-05-08 10:21:17 +00:00
Max Horn
39e887d6aa Invoke updateSoundSettings a bit later, since it can only correctly set VAR_VOICE_MODE *after* setupScummVars() has been called
svn-id: r22247
2006-04-30 20:35:43 +00:00
Max Horn
eaca27a33b Renamed updateVolumes to updateSoundSettings -- now it also handles subtitles/speech_mute settings. Also changed the ConfigDialog accordingly
svn-id: r22233
2006-04-29 23:09:40 +00:00
Max Horn
aeef84c961 Moved AKOS stuff to class ScummEngine_v6
svn-id: r22229
2006-04-29 16:51:29 +00:00
Max Horn
fcd178fca4 Added comment about a major leak in ScummEngine::restart
svn-id: r22228
2006-04-29 16:30:46 +00:00
Max Horn
c4df5037dc * Renamed several methods in favor of a somewhat more uniform naming scheme: setupFOO for stuff that inits static data (i.e. will be called only once, or after loading savegames), vs. resetFOO / updateFOO methods which are called frequently and (re)set dynamic data.
* Doing this, split scummInit into setupScumm and resetScumm methods
* Moved some init code to new methods (huuuuge init methods are hard to read, and hard to customize using subclassing)
* Renmaed various setup???Palette methods to set???Palette
* Some minor cleanup / tweaks

svn-id: r22227
2006-04-29 16:24:39 +00:00
Max Horn
39e9853d91 * Added ScummEngine_v8::initScummVars()
* Moved VAR_LANGUAGE to class ScummEngine_v8
* Minor cleanup

svn-id: r22223
2006-04-29 13:56:36 +00:00
Max Horn
1735b0421b Make use of the new scummLoop_* functions to move some SCUMM version specific stuff around
svn-id: r22219
2006-04-29 13:01:35 +00:00
Max Horn
cc3fac2ead Split scummLoop into multiple functions, for easier maintanance & customizability
svn-id: r22218
2006-04-29 12:44:06 +00:00
Travis Howell
5c2dd8da24 Fix compile of SCUMM engine
svn-id: r22191
2006-04-27 04:59:13 +00:00
Max Horn
092fd96145 Replaced _hFileTable by _hInFileTable/_hOutFileTable
svn-id: r22182
2006-04-26 14:05:09 +00:00
Max Horn
b2befd7951 Moved _heTimers to ScummEngine_v60he
svn-id: r22116
2006-04-23 19:41:54 +00:00
Max Horn
d68f95b3be Move HE specific stuff from class Sound to its new subclass SoundHE
svn-id: r22115
2006-04-23 18:52:39 +00:00
Max Horn
78dfa1f280 Moved ScummEngine_v5 from cursor.cpp to scumm.cpp (seems to be more natural, even though it inits some cursor related stuff)
svn-id: r22114
2006-04-23 17:58:52 +00:00
Max Horn
0d67640a58 Behold, the new SCUMM detector finally has arrived. Unified detection & engine instantiation, reduced code duplication, more powerful detection in case MD5 is not known / can't be computed, and many other nifty improvements.
svn-id: r22110
2006-04-23 17:33:16 +00:00
Max Horn
660efce9b2 Replaced _demoMode by GF_DEMO
svn-id: r22087
2006-04-23 00:08:18 +00:00
Torbjörn Andersson
d137204772 Call updateScreen() from waitForTimer() (instead of usually right before it)
for smoother mouse cursor movement.

svn-id: r21993
2006-04-17 23:45:48 +00:00
Max Horn
74edd90aba Fix for bug #1471383: Instead of overloading ConfigManager::set, we now have new setInt and setBool methods (matching getInt/getBool), which avoids strange quirks & bugs caused by (char *) being implicitly cast to int (ouch)
svn-id: r21951
2006-04-16 19:23:14 +00:00
Max Horn
ec17b6505e Removed unused #include
svn-id: r21918
2006-04-15 21:20:32 +00:00
Max Horn
68cb7f52c8 - Renamed ConfigManager::getActiveDomain to getActiveDomainName, and added a new getActiveDomain method that returns a pointer to the actual active *domain*
- Added Engine::_targetName whose value is computed from the name of the active domain
- Removed GameDetector::_targetName, instead code now uses either Engine::_targetName or the name of the active domain
- This in turn allowed for removing usage of GameDetector in many places

svn-id: r21916
2006-04-15 20:36:41 +00:00
Max Horn
9c4577b639 - Get rid of GameDetector::_dumpScripts and GameDetector::_force1xOverlay in favor of settings in the transient config domain
- This also means you can now set those options in the config file
- Fixed a bug I recently introduced that made bool command line options (like -u, -f) always return 'false' when used in their single letter form

svn-id: r21909
2006-04-15 13:50:44 +00:00
Max Horn
cf202049ff Fixing mismatch between format strings and data on some systems
svn-id: r21827
2006-04-12 14:54:12 +00:00
Jonathan Gray
eb3ae7d726 sizeof(void *) != sizeof(int) for a large number of systems.
Fix a lot of debug/error statements that were using %d/%x
for the result of pointer arithmetic.

As C++ apparently has no format string for ptrdiff_t use
%lu/%lx as appropriate.

svn-id: r21824
2006-04-12 10:01:41 +00:00
Max Horn
85c9dc7de8 Properly translate Common::Language values for COMI
svn-id: r21704
2006-04-08 23:43:18 +00:00
Max Horn
9c77c2ecd1 Renamed various *GameSettings to GameSettings (our namespaces are enough to distinguish them)
svn-id: r21684
2006-04-08 08:23:33 +00:00
Travis Howell
0e9b4ab17c GF_HE_CURSORLESS feature flag not required, since HE games always set a default cursor too.
svn-id: r21576
2006-04-03 11:35:02 +00:00
Max Horn
ee62cd3c51 Generate an error when kGenAsIs is used with an unsupported platform, instead of silently continuing with a bogus _fileHandle (leading to odd crashes)
svn-id: r21528
2006-04-01 18:13:06 +00:00
Travis Howell
6b56af989f The Hercules specific screen size check is no longer required
svn-id: r21390
2006-03-20 02:04:14 +00:00
Max Horn
03734aa876 Moved filename substitution code from scumm.cpp to plugin.cpp
svn-id: r21386
2006-03-19 17:25:13 +00:00
Travis Howell
79bd731041 Add workaround for script bug in Loom (CD)
svn-id: r21371
2006-03-19 02:50:51 +00:00
Travis Howell
87d74563dd Add another German version of puttzoo demo
svn-id: r21341
2006-03-17 00:30:58 +00:00
Max Horn
0cc41c7cbb Renamed & documented the LIGHTMODE flags
svn-id: r21288
2006-03-14 14:06:44 +00:00
Max Horn
ee087df293 Enhance the new getCurrentLights to work for V6+ games, too, making it possible to remove several special cases throughout the code
svn-id: r21286
2006-03-14 13:36:13 +00:00
Travis Howell
be7a28f65e Avoid all scumm var conflicts in C64 maniac
svn-id: r21277
2006-03-14 12:06:37 +00:00
Jamieson Christian
4d5a3e4c45 IMuse SysEx processing now handled by client-specified callbacks. This removes all game-specific references from the Player class. Bloodshed Dev-C++ project file updated.
svn-id: r21241
2006-03-12 18:06:22 +00:00
Travis Howell
fd389260f8 Adjust basename array setting in HE99+ games, for filename substitution
svn-id: r21229
2006-03-12 10:44:42 +00:00
Eugene Sandulenko
3521d35085 Add Russian puttrace and pajama3
svn-id: r21209
2006-03-10 19:35:35 +00:00
Max Horn
d9a9fac937 Fixed tons of format string warnings for debug/error calls (including several errors where the format string didn't match the number of arguments to the call)
svn-id: r21141
2006-03-08 11:37:25 +00:00
Jamieson Christian
5e25b3b679 Restructured IMuse and IMuseInternal.
* IMuse is no longer a concurrency front-end.
* IMuseInternal now derives from IMuse.
* Common::StackLock used to protect thread-sensitive interface methods (same as IMuseDigital).
* clear_queue() included in stopAllSounds() so it can be removed from the public interface.
* Game ID now specified at init using property().
* Timer callbacks receive a struct containing IMuseInternal and MidiDriver refs, instead of just the latter.
* OSystem pointer from init is now cached and used instead of global.

All references to the g_system and g_scumm globals are now gone. BOOYAH!

Tested with MI2, DOTT and S&M, under Windows, in Native MIDI, Adlib, and Mixed modes. No regressions or concurrency issues observed. Manifestations of the latter are the biggest concern at this point.

svn-id: r21104
2006-03-05 21:30:44 +00:00
Torbjörn Andersson
0651236066 Make sure there actually is a SMUSH mixer before stopping and deleting it.
svn-id: r21099
2006-03-05 13:57:05 +00:00
Paweł Kołodziejski
38b82fb585 that should help for bug #1352486, smush sound tracks are not stopped immediately, but outside smush when sound data are depleted in sound mixer buffer.
svn-id: r21094
2006-03-05 12:15:39 +00:00
Travis Howell
7a9ed5425b Add German verbs and more work on input in C64 maniac
svn-id: r21089
2006-03-05 08:22:39 +00:00
Max Horn
6a4c709af6 No need to use generateSubstResFileName when we already know the result
svn-id: r21072
2006-03-04 12:57:12 +00:00
Max Horn
f66cc08bdb Const as const can (marking things as const/static allows better compiler optimizations and helps to catch certain bugs)
svn-id: r21069
2006-03-04 11:57:14 +00:00
Max Horn
bde6c151ad Cleanup for the container loading code (and always disable file name substitution when a container file is used
svn-id: r21067
2006-03-04 11:53:28 +00:00
Max Horn
cf0716734c When container files are used, we don't need file name substitution anymore
svn-id: r21066
2006-03-04 11:31:09 +00:00
Max Horn
78985cc8a6 Added a comment about the first few entries in substResFileNameTable
svn-id: r21065
2006-03-04 10:50:23 +00:00
Max Horn
a3069bbc1a Since findSubstResFileName / applySubstResFileName only compare up to the first '.', we should be able to safely remove anything after the '.' in all substResFileNameTable entries (I am leaving the 00.LFL names untouched for now, for clarity)
svn-id: r21064
2006-03-04 10:46:11 +00:00
Max Horn
bb38ea2c17 Renamed SubstResFileNames::winName and macName to almostGameID / expandedName (the old names were misleading; the new ones aren't great either :)
svn-id: r21062
2006-03-04 10:38:05 +00:00
Max Horn
bac32d1a5c Moved ScummFile etc. to the new file.cpp / file.h
svn-id: r21038
2006-03-03 15:16:02 +00:00
Max Horn
5d3ef6aec2 String constants are const -> fixing compiler warnings
svn-id: r21036
2006-03-03 14:44:50 +00:00
Eugene Sandulenko
5e1f3fa2fa Fix bug #1439279: "SCUMM: SubstResFileNames partial breakage"
svn-id: r21034
2006-03-03 14:29:28 +00:00
Travis Howell
82a6f289de Fix using items in C64 maniac and cleanup
svn-id: r21011
2006-03-02 12:14:06 +00:00
Max Horn
f4f8a9263a Yet another patch for bug #1407789 (FT: Invalid Actor when "Combining" Two Items)
svn-id: r21006
2006-03-02 09:34:48 +00:00
Travis Howell
2c9f041178 Fix inventory display in C64 maniac
svn-id: r21003
2006-03-02 05:04:40 +00:00
Travis Howell
fd8f11f7a4 Improve input in C64 maniac
svn-id: r21000
2006-03-02 01:17:41 +00:00
Travis Howell
7f8a8b7ffb Initialize new SCUMM vars for V1/2
svn-id: r20998
2006-03-01 22:50:16 +00:00
Travis Howell
0a3b58ff2a Update string array tables and use for all possible games and strings
svn-id: r20980
2006-03-01 04:32:44 +00:00
Travis Howell
be30d257e3 Charset 0 is loaded on start in original versions of OLD_BUNDLE games too
svn-id: r20955
2006-02-27 12:00:10 +00:00
Travis Howell
a5cb120898 COMI uses a separate setting for the verb charset, verbs use correct charset now
svn-id: r20907
2006-02-26 06:55:56 +00:00
Travis Howell
270a16b37b Camera variables are initialised on startup by COMI too
svn-id: r20906
2006-02-26 06:15:13 +00:00
Travis Howell
0f60eaa166 Move debug mode setting to initScummVars(), so it is reset when game is restarted
svn-id: r20905
2006-02-26 05:48:40 +00:00
Max Horn
a76e3bab2f Remove the dummy index 0 entry from substResFileNameTable
svn-id: r20898
2006-02-25 21:36:19 +00:00
Max Horn
331110271b Moved the plugin interface code of the SCUMM engine into a separate source file
svn-id: r20885
2006-02-25 19:20:51 +00:00
Max Horn
bb4d463138 Fix compiler warning (wrong return type)
svn-id: r20883
2006-02-25 18:24:55 +00:00
Max Horn
05559c89f2 Moved check for unknown MD5 checksum from ScummEngine::ScummEngine to Engine_SCUMM_create
svn-id: r20882
2006-02-25 18:24:22 +00:00
Max Horn
779028dcd2 Modified the workaround for bug #1407789 to not depend on MD5 detection
svn-id: r20880
2006-02-25 18:16:24 +00:00
Max Horn
2ae0f79de3 Split SCUMM's generateSubstResFileName into two functions: findSubstResFileName and applySubstResFileName
svn-id: r20879
2006-02-25 17:36:32 +00:00
Max Horn
ee0f0a1f13 Replaced some more MKIDs by MKID_BE; this then enabled me to remove ScummEngine::fileReadDword()
svn-id: r20865
2006-02-25 02:31:49 +00:00
Max Horn
81e8a2860e Moved iMUSE code to the new directory engines/scumm/imuse/
svn-id: r20801
2006-02-20 20:57:26 +00:00
Max Horn
6160a17b30 Updated MD5 tables again, adding details to more HE game variants
svn-id: r20796
2006-02-20 17:01:30 +00:00
Max Horn
e389bcf497 Replaced _gameId, _version, _heversion, _features, _midi, _platform with a simple ScummGameSettings instance: _game
svn-id: r20795
2006-02-20 16:51:30 +00:00
Max Horn
a6e5f6fd2c Added / corrected some comments, and moved ScummGameSettings to scumm.h
svn-id: r20794
2006-02-20 16:35:37 +00:00
Max Horn
1bedb24dac Simplified puttrace entry in the (still unused) extra_versions table
svn-id: r20789
2006-02-20 14:48:32 +00:00
Max Horn
12b0ac3a72 Removing the GF_HE_985 from HE 99 games (I only was able to verify that this is correct for the demos, but am confident enough to risk this change even for the full german version)
svn-id: r20788
2006-02-20 14:44:44 +00:00
Max Horn
78c44df439 More tweaks to the still unused extra_versions table
svn-id: r20783
2006-02-20 13:26:40 +00:00
Max Horn
c175368230 Added more variant IDs for HE games
svn-id: r20778
2006-02-19 19:21:52 +00:00
Max Horn
81ec4980a6 Updated the (still unused) extra_versions table a bit
svn-id: r20776
2006-02-19 19:04:22 +00:00
Max Horn
0c757abb72 - Added new extra_versions table -> work in progress and disabled for now.
- Refined information in scumm-md5.txt a bit
- Updated scumm-md5.h to reflect the changes in scumm-md5.txt
- Removed some unicode garbage from scumm.cpp

svn-id: r20774
2006-02-19 18:32:48 +00:00
Max Horn
01fc7034b5 - Merged GameDetector::detectGame() into GameDetector::detectMain()
- Replaced GameSettings GameDetector::_game by a simple gameid string

svn-id: r20753
2006-02-18 12:50:48 +00:00
Max Horn
8ac17430ac - renamed PLUGIN_getSupportedGames to PLUGIN_gameIDList for consistency
- renamed Engine_XXX_gameList to Engine_XXX_gameList for consistency
- added new Engine_XXX_findGameID / PLUGIN_findGameID function
- updated plugins code to take advantage of the new plugin API, to support
  obsolete gameids w/o showing them to the user

svn-id: r20752
2006-02-18 11:15:37 +00:00
Max Horn
81798556db - Removed the 'features' field from GameSettings
- Removed GF_DEFAULT_TO_1X_SCALER

svn-id: r20747
2006-02-18 00:12:36 +00:00
Max Horn
a96760a2fd Reduced use of GF_DEFAULT_TO_1X_SCALER in favor of a new param to Engine::initCommonGFX; added a TODO stating that it should eventually be removed completly
svn-id: r20738
2006-02-17 00:01:18 +00:00
Max Horn
405733e044 - Fixed a bug that prevented you from overriding the scaler from the command
line for 640x480 games.
- Updated NEWS file a bit

svn-id: r20736
2006-02-16 23:24:23 +00:00