aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula/graphics.cpp
AgeCommit message (Collapse)Author
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-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-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-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.
2014-02-18DRASCULA: Make GPL headers consistent in themselves.Johannes Schickel
2013-10-17DRASCULA: Fix buildWillem Jan Palenstijn
2013-10-17DRASCULA: Fix potential buffer overrun. CID 1003310Eugene Sandulenko
2013-08-19DRASCULA: Some renaming. Also, get rid of some extraneous globalsFilippos Karapetis
This removes the superfluous talkHeight, talkWidth and timeDiff variables. It also changes _loadedDifferentChapter to be a boolean
2013-08-03DRASCULA: Take advantage of Surface::getPixels.Johannes Schickel
2013-08-03DRASCULA: Prefer getBasePtr over direct Surface::pixels access.Johannes Schickel
2013-01-04DRASCULA: More animation cleanup. Separate subfunction of animation_12_5()Filippos Karapetis
2011-11-25DRASCULA: Add fix for crash/OOB memory accesses in bug #3440895D G Turner
This bug is "DRASCULA-IT: Crash/graphic glitch at castle towers". The crash was due to width and height values being passed to copyBackground() being invalid due to out of bounds read from the factor_red array. This adds debugging statements and fixes the crash by clipping accesses to the maximum index of factor_red. This doesn't however fix the observed GFX glitch, but stops it being a segfault.
2011-11-02DRASCULA: Fix warningsEugene Sandulenko
2011-06-20ALL: Remove trailing whitespacesMax Horn
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-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-05-05DRASCULA: Handle pitch in code using lockScreen()Marcus Comstedt
The surface returned by OSystem::lockScreen() can have a pitch which differs from w * bytesPerPixel, so modify the code to take this into account. Fixes FMV problems on Dreamcast.
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2011-01-28DRASCULA: Fixed Code to allow Quit/RTL Function and avoid Memory Leakage.David Turner
A memory leakage was traced down to a failure to call the engine destructor. This was due to the engine directly calling OSystem quit() i.e. _system->quit(), rather than just allowing engine::run() to return. Have removed this code and implemented the changes required to allow graceful Quit/RTL to occur. svn-id: r55583
2010-06-15Drascula: Move more cursor-related blits to cursorSurface.Eugene Sandulenko
svn-id: r49715
2010-06-15Drascula: Fixed bug #2826608.Eugene Sandulenko
Bug #2826608: "DRASCULA: Cursor GFX error" fixed by introducing separate buffer for cursors. This also fixes the root cause of the problem. svn-id: r49713
2010-06-15Drascula: ease load on backend.Eugene Sandulenko
svn-id: r49709
2010-06-15Drascula: add more pic-related debug output.Eugene Sandulenko
svn-id: r49708
2010-06-15Drascula: Optimized blitting code.Eugene Sandulenko
svn-id: r49700
2010-04-29Fixed a glitch when a one-word text (e.g. "TOTENKOPF" in the first room, whenTorbjörn Andersson
playing the German translation) doesn't fit on the screen at the desired position. svn-id: r48850
2010-03-09DRASCULA: Simplify playFLI and its subroutinesMax Horn
svn-id: r48217
2010-02-08Renamed ArjFile to ArchiveMan, and _arj to _archives.Nicola Mettifogo
svn-id: r48000
2010-02-08Let ArjFile return a SeekableReadStream instead of implementingNicola Mettifogo
the same interface itself. The caller is now responsible for deleting the returned streams. svn-id: r47994
2010-02-08Reduced references to _arj to the minimum. It is passed as aNicola Mettifogo
SeekableReadStream everywhere. svn-id: r47993
2010-02-08Close the FLI file only from the routine that opened it.Nicola Mettifogo
svn-id: r47990
2010-01-25Strip trailing spaces/tabs.Johannes Schickel
svn-id: r47541
2009-08-04CleanupFilippos Karapetis
svn-id: r43056
2009-08-04Removed the superfluous VGA buffer, replacing it with direct writes to the ↵Filippos Karapetis
video buffer svn-id: r43048
2009-07-25Added word-wrapping to Drascula's conversation options. Fixes bug #2826607.Torbjörn Andersson
svn-id: r42755
2009-05-13Normalized types for several variables. FormattingEugene Sandulenko
svn-id: r40521
2009-01-01Whoa! Removing trailing spaces.Eugene Sandulenko
svn-id: r35648
2008-09-16- Fixed centerText() to print text at the correct heightFilippos Karapetis
- Removed some duplicate code svn-id: r34569
2008-09-15Fixed compiler warningsMax Horn
svn-id: r34567
2008-09-15Remove a workaround in textFitsCentered(). The blind man's dialog is a bit ↵Filippos Karapetis
better placed now svn-id: r34560
2008-09-15Rewrote the very confusing centerText() function into something that makes ↵Filippos Karapetis
more sense, and matches the way that the original printed text on screen (in most cases) Fixes bugs #2102657 - "DRASCULA: Crash when talking to the piano player" and #2111820 - "DRASCULA: Dialog texts too long" svn-id: r34558
2008-09-14Slight cleanup of centerText()Filippos Karapetis
svn-id: r34531
2008-09-14Fix for bug #2110375 - "DRASCULA: Mouse visible in screen saver", a ↵Filippos Karapetis
regression from moving mouse handling to OSystem svn-id: r34526
2008-09-13Indentation.Torbjörn Andersson
svn-id: r34513
2008-09-12- Moved more animation data inside drascula.datFilippos Karapetis
- Merged copyRect and copyRectClip - Added enums for all the possible character directions and removed duplicate directions - Extended the talk sequence commands a bit - Removed unnecessary buffer faceBuffer and the unneeded casts between byte * and char * that were used svn-id: r34503
2008-09-11- Merged openDoor() and closeDoor()Filippos Karapetis
- Cleaned up updateDoor() - Bugfixes to exitRoom() and gotoObject() - Moved cursor-related functions to interface.cpp - alapuertakeva -> roomExits svn-id: r34493
2008-09-11Code optimizations from FingolfinFilippos Karapetis
svn-id: r34491
2008-09-11CleanupFilippos Karapetis
svn-id: r34490
2008-09-11Fixed the hotspot for the crosshair cursorFilippos Karapetis
svn-id: r34489
2008-09-11- The game's cursor is now handled via ScummVM's cursor manager, instead of ↵Filippos Karapetis
the game itself (this means that there might be regressions where the cursor is visible when it shouldn't be) - Removed the textSurface pointer, which was used in the Spanish version. Non-Spanish versions of the game hold the font data in the tableSurface buffer (which contains picture 96). The font data for Spanish versions is in picture 974. Now both versions load their font data from the tableSurface buffer - hay_que_load -> loadedDifferentChapter - Merged withoutVerb() and selectVerb() This is a big change, it might lead to regressions! svn-id: r34488