aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula
AgeCommit message (Collapse)Author
2018-04-07ALL: Load savegame thumbnail only when necessaryAdrian Frühwirth
This commit introduces the following changes: 1. Graphics::loadThumbnail() Now returns a boolean and takes a new argument skipThumbnail which defaults to false. In case of true, loadThumbnail() reads past the thumbnail data in the input stream instead of actually loading the thumbnail. This simplifies savegame handling where, up until now, many engines always read the whole savegame metadata (including the thumbnail) and then threw away the thumbnail when not needed (which is in almost all cases, the most common exception being MetaEngine::querySaveMetaInfos() which is responsible for loading savegame metadata for displaying it in the GUI launcher. 2. readSavegameHeader() Engines which already implement such a method (name varies) now take a new argument skipThumbnail (default: true) which is passed through to loadThumbnail(). This means that the default case for readSavegameHeader() is now _not_ loading the thumbnail from a savegame and just reading past it. In those cases, e.g. querySaveMetaInfos(), where we actually are interested in loading the thumbnail readSavegameHeader() needs to explicitely be called with skipThumbnail == false. Engines whose readSavegameHeader() (name varies) already takes an argument loadThumbnail have been adapted to have a similar prototype and semantics. I.e. readSaveHeader(in, loadThumbnail, header) now is readSaveHeader(in, header, skipThumbnail). 3. Error handling Engines which previously did not check the return value of readSavegameHeader() (name varies) now do so ensuring that possibly broken savegames (be it a broken thumbnail or something else) don't make it into the GUI launcher list in the first place.
2018-02-21DRASCULA: Added support for Russian fan translationEugene Sandulenko
2017-11-19DRASCULA: Clean up logic in enterRoom()Filippos Karapetis
2017-11-19DRASCULA: Document several updateVisible() callsFilippos Karapetis
2017-11-18DRASCULA: Fix ego manipulation for translated versionsEugene Sandulenko
2017-11-15Revert "DRASCULA: Revert range 4dbed774..1f1d8607"Filippos Karapetis
This reverts commit bf69b25e33189581848412e77624865aa55ba234. The original game had slight differences between the code for each chapter. Part of these changes was to simplify the code and unify some of these differences, particularly in the checks for clickable areas, where the code is using Common::Rects with contains() now. I have play tested the whole game with these changes, there are no visible regressions, and the game is still completable. Thus, I'm restoring the changes to the engine.
2017-11-14DRASCULA: Revert range 4dbed774..1f1d8607Willem Jan Palenstijn
This reverts 1f1d8607 DRASCULA: Merge the floor coordinates into _walkRect 1e1b6f7c DRASCULA: Rename gotoObject() to walkToPoint() and simplify it 2bf05c2a DRASCULA: Clean up room variables, and simplify some related checks Reverting due to unanswered questions about why the changes in behaviour in 2bf05c2a746065f373ac136c994714dae376cdbc are correct.
2017-11-14DRASCULA: Make remaining static texts translatableEugene Sandulenko
drascula.dat file version bumped
2017-11-11DRASCULA: Merge the floor coordinates into _walkRectFilippos Karapetis
2017-11-11DRASCULA: Rename gotoObject() to walkToPoint() and simplify itFilippos Karapetis
2017-11-11DRASCULA: Clean up room variables, and simplify some related checksFilippos Karapetis
2017-11-11DRASCULA: Reduce the scope of framesWithoutActionFilippos Karapetis
2017-11-11DRASCULA: walkToObject is a boolean variableFilippos Karapetis
2017-11-11DRASCULA: Simplify the drawing code in BJ's roomFilippos Karapetis
2017-11-11DRASCULA: Remove superfluous variableFilippos Karapetis
2017-11-11DRASCULA: characterMoved and characterVisible are boolean variablesFilippos Karapetis
2017-10-07ENGINES: Remove default1x scaler flagColin Snover
This flag is removed for a few reasons: * Engines universally set this flag to true for widths > 320, which made it redundant everywhere; * This flag functioned primarily as a "force 1x scaler" flag, since its behaviour was almost completely undocumented and users would need to figure out that they'd need an explicit non-default scaler set to get a scaler to operate at widths > 320; * (Most importantly) engines should not be in the business of deciding how the backend may choose to render its virtual screen. The choice of rendering behaviour belongs to the user, and the backend, in that order. A nearby future commit restores the default1x scaler behaviour in the SDL backend code for the moment, but in the future it is my hope that there will be a better configuration UI to allow users to specify how they want scaling to work for high resolutions.
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