aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula
AgeCommit message (Collapse)Author
2017-04-22DRASCULA: Add possibility to load and save games using GMMThierry Crozat
2017-02-11DRASCULA: Add bound check asserts to copyRectWillem Jan Palenstijn
Bug #7110 showed a crash here. Even though that was likely a compiler error, these extra checks shouldn't hurt.
2017-02-11DRASCULA: Link speech and SFX volumesThierry Crozat
2017-02-11DRASCULA: Fix sound volume synchronizationThierry Crozat
When using the original drascula dialog to change volume, this was not saved to the ConfMan, which means the change was lost when quitting the engine or when opening the ScummVM options dialog. Also synchronising the _mixer volumes from ConfMan was resetting the master volume to the maximum. Since ScummVM doesn't have a master volume, there is no correct way to get it. But we now try to guess one from the music and speech volumes.
2017-02-11DRASCULA: Add handling of the master volumeThierry Crozat
2016-12-17Merge pull request #866 from BenCastricum/editingEugene Sandulenko
ALL: Unify messages concerning engine data files
2016-12-08DRASCULA: Fix bug when talking to drunkard in chapter 2Thierry Crozat
The bug made it possible to only talk once to the drunkard. Any further attempt to talk to him did nothing. This led to a dead end if we did not ask about Von Braun the first time around. This was a bug in ScummVM. The original game did not have the bug.
2016-12-08DRASCULA: Increase debug level for copyBackgroundThierry Crozat
This function is called a lot, and having a debug level of 1 made it very difficult to find any other debug prints.
2016-12-08ALL: Leave out instructions for engine data issuesBen Castricum
2016-12-06ALL: Change instructions for engine data file issuesBen Castricum
The engine data files should be included in the package, so downloading may not be the best suggestion. Instead refer to the README.
2016-12-06ALL: Unify 'wrong version of engine data' messageBen Castricum
2016-12-06ALL: Unify 'corrupted engine data' messageBen Castricum
2016-12-05ALL: Unify 'missing engine data' messageBen Castricum
2016-11-29ALL: save file => saved gameBen Castricum
2016-11-29ALL: Remove comma before the word 'instead'Ben Castricum
2016-10-09JANITORIAL: Remove trailing spacesEugene Sandulenko
2016-09-18ALL: Homogeneize use of 'saved game' in messagesThierry Crozat
2016-08-24ALL: Make simpleSaveNames() a MetaEngineFeatureAlexander Tkachev
Added it into hasFeature() of all engines which returned `true` in simpleSaveNames() before. As mentioned in #788, SCI is not always using simple names, so it doesn't have such feature now.
2016-08-24ALL: Add MetaEngine::simpleSaveNames()Alexander Tkachev
Engines with "simple" savenames would support "Run in background" in save/load dialog and gradual save slots unlocking. Other engines save/load feature would be locked until save sync is over.
2016-07-20DRASCULA: Fix slight delay when interrupting intro animationThierry Crozat
The delay occurred when trying to interrupt the animation while at the start of the first scene with Igor. After the interruption (skipping the intro, return to launcher or quitting ScummVM) it would continue to play the animation for a bit longer than necessary.
2016-05-17ALL: Change main engine header guard defines to <directory>_<engine>_HEugene Sandulenko
Recently we started to use this as new semantics, although in the past we used simly <engine>_H. Now these guard defines are consistent with rest of the files which are used in the engines.
2016-04-17DRASCULA: Remove delays when showing and hiding the inventoryThierry Crozat
I don't see any purpose to this delays and they were not present in the original engine. It works fine without those and the interface seems more responsive. This fixes bug #7121 DRASCULA: Delay and freeze when pressing right mouse click on game Also move a delay when left clicking to after performing the action. With the delay between the left click and the action, the mouse position could have moved when performing the action, resulting in the wrong action being performed (e.g. activating the wrong verb or picking the wrong object in the inventory). But removing the delay altogether causes flickering when picking objects from the inventory.
2016-04-17DRASCULA: Remove delay for select verbThierry Crozat
The delay, since it updates the mouse position, resulted in a different verb being selected than the one we clicked on when moving the mouse quickly after the clic. This was quite confusing and frustrating. I can't see any reason for this delay and it seems to work well without it. The initial commit adding it indicates this was "for better mouse response", but it added a lot of other delays at the same time, and removing this one doesn't see to impact the mouse response (on the contrary, we get the new cursor quicker).
2016-04-17DRASCULA: Fix noise when playing sound.Thierry Crozat
The original engine skipped the first 32 and last 32 bytes of the data when playing a sound. We did not do it in ScummVM which resulted in noise at the start and/or end of some speech. This was most noticeable with Spanish speech but also occurred occasionally with English speech. This fixes bug #7120 Drascula: Audio noise before every voice in the game
2016-04-17DRASCULA: Fix axe visibility flag when entering room 31Thierry Crozat
The visible[1] flag in room 31 (i.e. for the axe) is now reset according to flags[13] (which indicate if we picked up the axe already or not). This fixes bug #7118 Drascula: Axe item can be picked up infinite times
2016-04-16DRASCULA: Fix animations speedThierry Crozat
To time animations the original engine uses interrupt to get the Real Time Clock and divides the number of clock ticks by 0.182. Since there is approximately 18.2 ticks per second, this means it uses values in 1/100th of a second. In ScummVM we were using getMillis() / 20, so the animations was two times slower than in the original. This might fix bug #7115 Drascula: FPS are incorrect or some frames are dropped. Note that for the walk animation we are still not exactly using the timing of the original. The original engines keeps each walk frames for 5.7 times 1/100th of a second (i.e. 17.54 FPS). In ScummVM getTime returns an integer value and as a result each walk frame is now kept for 6 times 1/100th of a second (i.e. 16.67 FPS, which i better than the 8.33 FPS we were getting before this commit). as our getTime returns integer values and thus we use frames for 6 of 1/100th of a second while the original is slightly faster as it kept frames for 5.7 times 1/100th of a second.
2016-04-16DRASCULA: Swap extraSurface and tableSurface use in chapter 6 for Spanish ↵Thierry Crozat
version This simplifies the code and bring it closer to the original source code. This should help if we need to debug issues in the future.
2016-04-14JANITORIAL: Reduce audio header dependenciesOri Avtalion
2016-04-13DRASCULA: Improve text centeringThierry Crozat
When splitting strings into several lines to fit on the screen the original engine could result in lines with one character beyond the right edge of the screen, which in practice would be drawn on the next line on its own, aligned to the left (and not centered). This commits adds a check to avoid this situation. So although it now behaves slightly differently than the original engine this is for the better.
2016-04-12DRASCULA: Fix cursor visibility during animation at start of chapter 6Thierry Crozat
Here we transition from an animation at end of chapter 5 to another animation at start of chapter 6. Usually the cursor is hidden when performing the action that triggers the animation. But here there is no action to trigger it and the cursor is made visible when starting a new chapter or entering a room (so between the two animations). So explicitly hide it at the start of this specific animation (and it gets shown again when we enter room 102 at the end of the animation).
2016-04-12DRASCULA: Fix wrong background for inventory in chapter 6Thierry Crozat
This was a regression from commit fa3d3e3 and this fixes part of bug #7113 DRASCULA: Serious sprite glitches. The original uses extraSurface to draw text in draw_abc() in the Spanish version while other languages use tableSurface. But in ScummVM this was changed to use tableSurface for all languages. However this caused an issue in chapter 6 when displaying the inventory has it is also using tableSurface, as it was for all languages in the original. While using the same surface works for other languages, in the Spanish version we get the wrong background in the inventory. Rather than revert to using extraSurface for drawing text which is a big change and impact all the chapters, I have opted to simply swap the usage of the tableSurface and extraSurface in chapter 6 for the Spanish version compared to the original engine. The changes therefore only impact chapter 6 and only the Spanish version. I played the chapter in full to check that it indeed works without causing adverse effects.
2016-04-11DRASCULA: Fix regression in subtitle display in Spanish versionThierry Crozat
This code was committed by mistake in the previous commit.
2016-04-11DRASCULA: Fix typo in variable nameThierry Crozat
2016-04-11DRASCULA: Fix random crash when loading pendulum scene savegameThierry Crozat
When saving from the pendulum scene the curX and curY values are negative while the curWidth and curHeight values are unset. This causes random crashes as we may do an array out of bound access when enterRoom() is called at the end of the load.
2016-04-11DRASCULA: Rename variable to clarify its meaningThierry Crozat
2016-04-11DRASCULA: Fix color for Drascula at the end of chapter 5Thierry Crozat
I checked the original and the code in ScummVM and there is no call to talk_solo in chapter 4, while we indeed need to use the red color for all calls to talk_solo in chapter 5.
2016-04-11DRASCULA: Improve loading savegames in Pendulum sceneThierry Crozat
The previous fix only fixed the incomplete state when loading from the launcher. Now this is fixed when loading from the game as well. It also fixes loading a savegame from the first stage of the pendulum scene (when the protagonist is not visible) to any other scene in chapter 6. The protagonist was not made visible again when loading the savegame.
2016-04-10DRASCULA: Fix loading games in room 102 when still chainedThierry Crozat
Room 102 has two states. The first one has an animation of a pendulum while the protagonist is chained to a table beneath it. The second state is after the protagonist free himself. In the second state the pendulum has stopped. When saving in the first state, loading the save game did not properly setup the pendulum animation causing graphic glitches. This fixes bug #7113 DRASCULA: Serious sprite glitches
2016-04-09DRASCULA: Fix character walking off screenThierry Crozat
There was an unhandled case in chapter 2 when the character is at the exact Y location and close to the X location to where we asked him to walk. The code started the walk but without properly setting the curDirection and trackProtagonist variables. This resulted in the walk never stopping. I checked what the original source code is doing for this case and implemented it in the same way: the character does not start walking. This fixes bug #7112: DRASCULA: protagonist walking off the screen
2016-04-08DRASCULA: Fix text alignment to be faithful to the originalThierry Crozat
The changes in this commit should provide an identical text placement to the original. In addition to using the original source code as reference I have checked that is the case by comparing with DosBox for the intro of the Spanish and English versions as well as for parts of the game with the English version. I added comments for the obscure parts (such as the original adding a space at the end of the last line of text when splitting a string into several lines, thus impacting how that last line is aligned).
2016-04-07DRASCULA: Improve text centering and spacing between linesThierry Crozat
This in particular fixes bug #7111: Incorrect position in texts, not as the original. However this codes centers the text better than what we see in DosBox, so the result is not identical. This change is based on the code before the commit 7cf7f4b "Rewrote the very confusing centerText() function into something that makes more sense". The changes in that commit do not all make sense to me so I reverted the line spacing (to add back 2 pixels between text lines) and part of the logic to center text. The result looks a lot closer to the original engine in DosBox, but not identical.
2016-03-13BACKENDS: Only expose one set of functions for AudioCDManagerMatthew Hoops
Engines should only have to call one set of functions and not decide between the two. In fact, the 'emulation' API was documented to just call the 'real CD' API.
2016-03-13BACKENDS: Move to an openCD() without parameters as the public APIMatthew Hoops
2016-03-08ENGINES: Make variable names of AdvancedMetaEngine conform to our guidelines.Johannes Schickel
_singleid -> _singleId _gameids -> _gameIds _guioptions -> _guiOptions
2016-02-25DRASCULA: Let listSaves return list sorted on slot numbers.Johannes Schickel
2016-01-26DRASCULA: Only request actual save slots in listSaves.Johannes Schickel
2015-03-01DRASCULA: comment "talk.cpp"norbertbajko
Explain #5903 DRASCULA-IT bug fix
2015-03-01DRASCULA: comment "talk.cpp"norbertbajko
Explain #5903 DRASCULA-IT bug fix
2015-03-01DRASCULA: comment "actors.cpp"norbertbajko
Explain #5903 DRASCULA-IT bug fix
2015-03-01DRASCULA: fix crash/graphic glitch at castle towersNorbert Bajkó
Fix bug #5903 DRASCULA-IT: Crash/graphic glitch at castle towers