aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-01-18KYRA: Slight formatting fix.Johannes Schickel
2014-01-18SCUMM: Fix some GCC warnings.Johannes Schickel
2014-01-18KYRA: Make pointers to VQAHeader constTorbjörn Andersson
This is just to enforce the idea that VQADecoder owns the VQAHeader and that the audio/video tracks are only allowed to look at it, not change it.
2014-01-18KYRA: Restructure the VQA decoder, as suggested by clone2727Torbjörn Andersson
Untangled the audio and video track from each other, and the parsing of the stream from the decoding of its data. Also fixed a memory leak as it turns out deleting a Surface doesn't free its data. You have to call free() in it. I have only checked the intro, not every cutscene, but that seems to work fine at least.
2014-01-18KYRA: Let the VQA decoder draw directly to the backendTorbjörn Andersson
As an alternative to using the Screen class's functions, we can let the VQA decoder draw directly to the backend. This won't work if the game uses "hi-res mode", but I don't think that's ever the case for Malcolm's Revenge. I believe the KyraEngine_MR::playVQA() function ensures that the screen is properly updated after the movie has finished. This almost limits the VQA rewrite to vqa.cpp and vqa.h. Whether it's better this way than changing the Screen functions to take a 'pitch' parameter...? I don't know. But it's an alternative.
2014-01-18KYRA: Rewrite the VQA decoder, using the VideoDecoder classesTorbjörn Andersson
There isn't really a lot of benefit to this, but I think it's nicer if all our video decoders at least try to use the same infrastructure.
2014-01-17VIDEO: Fix a typo in the include guardMatthew Hoops
2014-01-17VIDEO: Add MJPEG supportMatthew Hoops
2014-01-17Merge pull request #417 from digitall/STACK_fixesJohannes Schickel
ALL: Fix optimization unstable code on checking for null after new.
2014-01-17VIDEO: Rename the Motion JPEG decoder to JPEG to better reflect its purposeMatthew Hoops
This JPEG is separate from the modified JPEG format used in MJPEG
2014-01-17NEWS: Fix order of games/enginesMatthew Hoops
2014-01-17NEWS: Mention HE save changesMatthew Hoops
2014-01-17Merge pull request #366 from clone2727/he-saves-target-nameclone2727
RFC: Make HE games use the target name in all save files
2014-01-17MORTEVIELLE: Some refactoring in ActionStrangerke
2014-01-17MORTEVIELLE: rename a variableStrangerke
2014-01-17FULLPIPE: Enable scene35Eugene Sandulenko
2014-01-17FULLPIPE: Renames in scene35. This completes the sceneEugene Sandulenko
2014-01-17FULLPIPE: Implement sceneHandler35_genFlies()Eugene Sandulenko
2014-01-17MORTEVIELLE: Remove unused structure and an obsolete commentStrangerke
2014-01-17CGE: Further alignment fixes to Bitmap class.D G Turner
This fixes bug #6476 - "DC: Soltys (CGE) crashes at start up".
2014-01-16TONY: Cleanup (don't compare pointer with false).Johannes Schickel
2014-01-16KYRA: Slight cleanup.Johannes Schickel
2014-01-16AUDIO: Cleanup MT-32 code a bit.Johannes Schickel
This removes overwrites in ReportHandlerScummVM which are simply the default implementation anyway. A side effect is that this silences/fixes a warning about the former onProgramChanged to hide an virtual method due to parameter differences.
2014-01-16FULLPIPE: Implement sceneHandler35_startFlow()Eugene Sandulenko
2014-01-16FULLPIPE: Implement sceneHandler35_stopFlow() and _shrink()Eugene Sandulenko
2014-01-16FULLPIPE: Implement sceneHandler35()Eugene Sandulenko
2014-01-16AUDIO: Register EAS sound driver as plain sound type.Johannes Schickel
MIDI code will control volume via MIDI events thus the generated audio should not be affected by mixer sound volumes. The initial commit 0e6cdfd67580f75e912c5e92abb26821d032f74b added it as music sound type. Might be copied from the (also) incorrect FluidSynth code.
2014-01-16AUDIO: Register FluidSynth driver as plain sound type.Johannes Schickel
MIDI code will control volume via MIDI events thus the generated audio should not be affected by mixer sound volumes. The initial commit(s) in d4d045b1174b4a48659f39f026ade42684b679bf / 13dc149ded691e718905049990dd0220230c500e added it as music sound type. So, this seems to be a long standing issue.
2014-01-16AUDIO: Register MT-32 emulator as plain sound type.Johannes Schickel
Formerly the audio stream was registered as sfx. This is incorrect behavior since the client code will control music volume with MIDI events on its own. It seems 67b311713d8f4cfcd460a9649e0075f24278a048 introduced this very long ago. This should fix unintended coupling of sfx volume and music volume in BASS.
2014-01-16FULLPIPE: Plug scene35 inEugene Sandulenko
2014-01-16FULLPIPE: Initial code for scene35Eugene Sandulenko
2014-01-15AVALANCHE: Move Clock to dedicated files.uruk
2014-01-15AVALANCHE: Fix another bug regarding speaking.uruk
This prevents the player from giving commands to Avalot when the character is tied up to a tree, so it's impossible to break the game's consistency that way.
2014-01-15AVALANCHE: Repair bug regarding speaking in bed.uruk
2014-01-15AVALANCHE: Implement wobble, move it to Animation.uruk
2014-01-15AVALANCHE: Implement, rename, move zonk() and connected functions.uruk
Implementations: zonk(), zl(). Renames: zonk() -> thunder(), zl() -> drawLightning(). Moved: the 2 above from Pingo to Animation. Addition: GraphicManager::drawLine().
2014-01-15AVALANCHE: Implement setBackgroundColor().uruk
2014-01-15MORTEVIELLE: Split resetVariables in two, reuse it in engine constructorStrangerke
2014-01-15Merge branch 'master' of https://github.com/scummvm/scummvmuruk
2014-01-15AVALANCHE: Repair rest of the credits.uruk
2014-01-15FULLPIPE: Implement ModalMap::getScenePicture()Eugene Sandulenko
2014-01-15FULLPIPE: Implement ModalMap::initMap()Eugene Sandulenko
2014-01-15FULLPIPE: Implement ModalMap::init()Eugene Sandulenko
2014-01-15FULLPIPE: Implement ModalMap::handleMessage()Eugene Sandulenko
2014-01-15FULLPIPE: More code to ModalMapEugene Sandulenko
2014-01-15FULLPIPE: Implement FullpipeEngine::openMap() and stub ModalMap classEugene Sandulenko
2014-01-15WINTERMUTE: Stop any playing FMV when loading a savegame.Einar Johan Trøan Sømåen
2014-01-15AVALANCHE: Repair credits.pluruk
2014-01-15MORTEVIELLE: Add some missing variable initializationsStrangerke
2014-01-15ALL: Remove optimization unstable code on checking for null after new.D G Turner
These issues were identified by the STACK tool. By default, the C++ new operator will throw an exception on allocation failure, rather than returning a null pointer. The result is that testing the returned pointer for null is redundant and _may_ be removed by the compiler. This is thus optimization unstable and may result in incorrect behaviour at runtime. However, we do not use exceptions as they are not supported by all compilers and may be disabled. To make this stable without removing the null check, you could qualify the new operator call with std::nothrow to indicate that this should return a null, rather than throwing an exception. However, using (std::nothrow) was not desirable due to the Symbian toolchain lacking a <new> header. A global solution to this was also not easy by redefining "new" as "new (std::nothrow)" due to custom constructors in NDS toolchain and various common classes. Also, this would then need explicit checks for OOM adding to all new usages as per C malloc which is untidy. For now to remove this optimisation unstable code is best as it is likely to not be present anyway, and OOM will cause a system library exception instead, even without exceptions enabled in the application code.