Commit graph

430 commits

Author SHA1 Message Date
Tobias Gunkel
c138ef6709 SCUMM: merge _activeObjectNr/_activeObjectType and _cmdObjectNr/_cmdObjectType 2012-02-11 08:28:46 +01:00
Tobias Gunkel
b337823bab SCUMM: fix verb and script handling
- getVerbEntrypoint() should not handle walk-to differently (revert 0x0D handling back to original behavior)
- VAR_ACTIVE_ACTOR actually is VAR_ACTIVE_OBJECT2
- runSentenceScript(): "if (_cmdVerb == kVerbWalkTo)" must be "if (_cmdVerb != kVerbWalkTo)"
2012-02-11 08:28:26 +01:00
Tobias Gunkel
de0b5f7674 SCUMM: use command stack and SentenceTab in mm c64
- MM C64 uses command stack (SentenceTab, doSentence()) now
- _cmdObject... added for current SentenceTab. The _active... variables are only used to build a sentence in the inventory but never by a script.
-> many routines are not needed anymore and are removed
2012-02-11 08:28:22 +01:00
Tobias Gunkel
706b8cf1c5 SCUMM: replace verb, prep and currentMode values with symbolic constants 2012-02-11 08:28:19 +01:00
Tobias Gunkel
1c32000a00 SCUMM: start handling object type and id correctly in mm c64
- removed complicated and unnecessary _v0ObjectIndex, _v0ObjectInInventory, _v0ObjectFlag vars
- started to merge object id and type into one object value (type<<8|id)
- verb preposition ids do not dependent on language -> remove from VerbSettings

Note:
- objects with type=0 are foreground objects. They have a state, an owner and a bg overlay image.
- objects with type=1 are bg objects. They do not have a state or owner and are already contained in the bg image. The do not have an entry in objectState/OwnerTable
2012-02-11 08:28:14 +01:00
Tobias Gunkel
a79f224c23 SCUMM: changed handling of _activeInventory/_activeActor to _activeObject(2)/_activeObject(2)Type
Note: the transition is not completed yet. The code compiles but is probably not runnable as not every occurrence of _activeInventory has been properly replaced.
The usage of _v0ObjectIndex and _v0ObjectInInventory should be revised too and both variables should be replaced by another mechanism (maybe by using a single variable "obj = (type << 8) | id").

- moved v0 only vars _activeInventory, _activeObject, _activeVerb from  ScummEngine_v2 to ScummEngine_v0
- removed _activeActor, _activeInvExecute, _activeObject2Inv and _activeInventory. They are handled by _activeObject/_activeObjectType and _activeObject2/_activeObject2Type now.
- removed _activeObject(2)Index as they only bloat the code without any benefit (?)
- merge prep-name tables from ScummEngine_v2::drawPreposition() and ScummEngine_v0::drawSentenceWord() by introducing ScummEngine_v2::drawPreposition()
- rename ObjectData.flags -> obj_type (quick-fix only, needs review! Maybe obj_nr and obj_type can be merged into one var: obj_nr = (obj_type << 8) | obj_nr)
- o_unknown2 is negation of o_ifActiveObject (o_ifNotEqualActiveObject2)
- renamed o_ifActiveObject -> o_ifEqualActiveObject2 as it acts only on _activeObject2
- renamed ScummEngine_v0::drawSentenceWord() -> ScummEngine_v0::getObjectName()
2012-02-11 08:02:32 +01:00
Johannes Schickel
95cabb0ffd SCUMM: Add a difficulty selection dialog for Loom FM-Towns.
It is in spirit of the DOS version's selection dialog, but it has the
description above the buttons instead of below it.
2011-12-26 15:25:41 +01:00
Tobias Gunkel
854928f09a SCUMM: Rename player_appleII.* -> player_apple2.* to have the filenames lower case 2011-12-24 14:29:06 +01:00
Tobias Gunkel
109ba212c6 SCUMM: Add initial support for AppleII sound player 2011-12-22 12:08:23 +01:00
Willem Jan Palenstijn
0af011ba82 SCUMM: Further clean up loop 2011-11-01 23:56:51 +01:00
Willem Jan Palenstijn
f191413b1c SCUMM: Clean up loop 2011-11-01 15:54:15 +01:00
Johannes Schickel
4ea4172cba SCUMM: Implement proper Indy4 Amiga palette handling.
This should fix incorrect text colors in some scenes.
2011-08-26 05:54:47 +02:00
Matthew Hoops
f5255288ea SCUMM: Split HE logic classes to their own files 2011-08-17 09:12:19 +02:00
Eugene Sandulenko
192b245d51 SCUMM: Fix compilation 2011-08-06 11:39:37 +01:00
Eugene Sandulenko
0dafa7f80f ALL: Reduce audio/ header dependency 2011-08-06 11:30:42 +01:00
Johannes Schickel
b86de198a0 SCUMM: Fix up CMS player implementation.
It's much better now and hopefully quite close to the original when it comes
to the music part. The intro music of Loom and Monkey Island 1 EGA sounds fine
to me now at least.
2011-08-05 22:58:50 +02:00
Johannes Schickel
a8846d37d5 Merge pull request #54 "SCUMM v5 PC Speaker driver".
Discussion can be found here: https://github.com/scummvm/scummvm/pull/54
2011-07-11 21:51:40 +02:00
Johannes Schickel
dab9c05783 SCUMM: Do not allow multi midi mode for PC Speaker output.
Thanks to eriktorbjorn for catching this.
2011-07-10 16:21:30 +02:00
Johannes Schickel
abbd29b16a SCUMM: Limit iMuse default instrument load to PC Speaker output.
Albeit the code is marked as a hack inside the source, the original behaved
exaclty the same. If the code is removed the PC Speaker output will miss notes,
since unlike the original we only output to parts, which have an instrument set
up.
2011-07-10 05:21:25 +02:00
athrxx
f24bac2d0f SCUMM: fix DS compilation 2011-07-09 23:57:51 +02:00
athrxx
b1cb88ddc2 SCUMM: cleanup sjis font rendering code 2011-07-09 20:07:55 +02:00
Johannes Schickel
ed993e6350 SCUMM: Initial PC Speaker output implementation for SCUMM v5.
This is *not* complete yet.
2011-07-08 04:45:01 +02:00
Johannes Schickel
3b7c91f2a7 COMMON: Move HerculesDimensions enum to SCUMM.
The enum is only used inside the SCUMM engine so it is rather pointless to
keep it in common/util.h right now. Also if we really want it in some common
place it should probably be better in graphics/ too.
2011-06-21 16:59:50 +02:00
Max Horn
88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
athrxx
03ba1871f7 SCUMM: fixed messed up colors in 16bit HE games
(regression from 068b4a5351)
2011-06-18 19:45:36 +02:00
athrxx
1a58262ca7 SCUMM: fix bug in cb661d63d0cd45d1231435a593b74dfc51872a0f 2011-06-16 21:32:33 +02:00
athrxx
283872018b SCUMM: slightly changed behavior of 16bit mode detection
(another attempt to fix SCUMM FM-TOWNS for ANDROID)
2011-06-16 20:52:07 +02:00
athrxx
89f14d38dd SCUMM: change comment in last commit 2011-06-15 22:56:39 +02:00
athrxx
0a42a7d625 SCUMM: hopefully fix 16bit mode support for SCUMM FM-TOWNS games and LOOM PCE on Android
This mostly reverts 5b7754e3f0. Instead, we try to use other 16bit modes  after 555 fails.
2011-06-15 22:30:04 +02:00
athrxx
5b7754e3f0 SCUMM: fix bug #3316738
This provides fallback to 8bit color mode for SCUMM3 FM-TOWNS games on platforms which set the USE_RGB_COLOR define even though that color mode is not being fully implemented for that platform.
2011-06-15 17:12:17 +02:00
Thierry Crozat
c01141a144 SCUMM: Change MessageDialog button label for consistency
Everywhere else the 'OK' button label is all upper case and here was
the only place where it was not (it was 'Ok').
2011-06-13 22:21:43 +01:00
Thierry Crozat
06bbb57ad7 I18N: Make many more GUI MessageDialog strings translatable 2011-06-13 22:19:18 +01:00
athrxx
afb1b3d8d3 SCUMM: fix engine destructor
(This is relevant for cases where the engine errors out early, before certain arrays get initialized).
2011-06-13 03:02:59 +02:00
athrxx
4a8b501a22 SCUMM: fix typo (reported by Littleboy) 2011-06-03 22:09:25 +02:00
Max Horn
477d6233c3 ENGINES: Change 2nd param of Engine::saveGameState to Common::String 2011-06-02 18:31:59 +02:00
athrxx
baaae9d97a SCUMM: Add missing imuse feature
This adds an extra detune parameter which is assigned via sysex code 0.
Most tracks don't use this (= assign a value of 0), so it isn't really a
very noticeable feature.
2011-05-17 20:36:32 +02:00
athrxx
6845f25f54 SCUMM: Adapt code to latest FM-TOWNS audio driver changes 2011-05-17 20:24:30 +02:00
athrxx
5c34e33c2c FM-TOWNS AUDIO: Some more midi driver code for FM-TOWNS monkey2 and indy4 2011-05-17 20:24:24 +02:00
Max Horn
4cbe4ede66 COMMON: Registers RandomSources in constructor with the event recorder
This also removes the dependency of engines on the event recorder header
and API, and will make it easier to RandomSources that are not properly
registered.
2011-05-17 12:17:26 +02:00
Max Horn
749a1beb35 SCUMM: Remove useless allocateArrays call, and make sure all resources are properly killed upon restart 2011-05-13 14:39:34 +02:00
Max Horn
4108f09543 SCUMM: Make it clearer that SCUMM's 'restart' feature leaks like hell 2011-05-13 14:33:22 +02:00
Max Horn
c02420df43 SCUMM: Add a Resource class, refactor res code around it 2011-05-13 11:47:13 +02:00
Max Horn
82a6f2ee3c SCUMM: Rename ResTypeData::tag to _tag, get rid of ResTypeData::name 2011-05-13 11:47:11 +02:00
Max Horn
75b9deb185 SCUMM: Get rid of the MemBlkHeader hack
This uncovered at least one potentially serious bug in the inventory
code, which still needs to be investigated and fixed.
2011-05-13 11:47:10 +02:00
Max Horn
26efa39d2c SCUMM: Document and cleanup resource type mode 2011-05-13 11:47:09 +02:00
Max Horn
45e65d7ea0 SCUMM: Refactor how resource (types) are srepresented
Previously, we had a couple of arrays of size N (where N = number of
resource types), one for each attribute of a resource type (such as as
the number of resources of that type.

Now, we have one array of size N, whose elements are a record
aggregating all the attributes of each resource type.
2011-05-13 11:47:08 +02:00
Max Horn
b37463fe59 SCUMM: Move class ResourceManager to its own header 2011-05-13 11:47:08 +02:00
Max Horn
068b4a5351 SCUMM: Move tmsk code into its own Gdi subclass 2011-05-13 11:47:07 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Johannes Schickel
71bdb86e02 Merge pull request #16 "Add a PixelFormat to Graphics::Surface.".
For further discussion check here:
https://github.com/scummvm/scummvm/pull/16

Conflicts:
	graphics/png.cpp
2011-05-01 16:54:45 +02:00