aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.cpp
AgeCommit message (Collapse)Author
2009-11-08Debugged smooth walking except for 1 bug.Robert Špalek
Adjusting to the edge is done such that it respects slight sideways movements of the dragon. Fixed rounding issues in the whole game. Improved debug messages. Made sure that the dragon does not turn like crazy around when clicking on the same pixel: the final point is always the clicked one although the middle points made by shifted to make the animations smooth, and preserve the dragons direction if he has not walked. There is a bug with running turning animations as they seem to disappear for 1 frame and have incorrect Z coordinate. Will investigate it next. svn-id: r45742
2009-11-07Debugged updating the position of the hero during walking.Robert Špalek
I project the hero immediately to the end of each edge for the time being though. svn-id: r45722
2009-11-07Add helper functions to retrieve dragon position from the animation.Robert Špalek
To implement proper walking, I have to respect the relative shifts defined by the sprites as opposed to apply some constant velocity. svn-id: r45714
2009-11-07The hero turns the right direction after walkingRobert Špalek
svn-id: r45713
2009-11-07Implemented relative animations.Robert Špalek
In these animations, each sprite can specify a relative shift with respect to the previous sprite. Moving animations (such as walking of the dragon) are easily described in this framework. I have sort of hacked their support and it seems to work. The current walking code does not interact with the new code yet, but it will be easy to do. svn-id: r45712
2009-11-07Done research on ignored animation flags and commented the codeRobert Špalek
svn-id: r45711
2009-11-06Add safe-guard against collision of animation IDs.Robert Špalek
When debugging another issue, I preloaded all animations, and horrible things happened that I debugged for a few hours. svn-id: r45695
2009-11-05Fixed several gross walking bugs.Robert Špalek
- SIGSEGV by not stopping walking when changing rooms - reset of the mouse cursor and object title during gate scripts - updating the previous animation phase, also when starting new animation - swapped up and down animations svn-id: r45690
2009-11-05Implemented proper walking.Robert Špalek
First shot, not debugged yet, but seems to work (even though a bit hairy)! svn-id: r45688
2009-11-04Properly animate the last phase of the walk before running callbacksRobert Špalek
svn-id: r45649
2009-11-04Implemented and debugged the walking framework.Robert Špalek
The hero does not walk yet (it still teleports to the target immediately), but that is just because the actual walking algorithm is left trivial first. However, the main game loop, callbacks, and waiting all already work with the general framework. svn-id: r45648
2009-11-03Created walking-callback infrastructure and converted the code to use itRobert Špalek
svn-id: r45644
2009-11-03Implement properly stayOn instead of using walkOnRobert Špalek
svn-id: r45641
2009-11-03Let setPath() store path with pixel precision, and update the map sprite ↵Robert Špalek
when reloaded svn-id: r45640
2009-11-03Greatly improved the quality of obliqueing the shortest path.Robert Špalek
The current algorithm is much better than the original player'ss one and it find really nice curved paths. Also, started preparing interface for actually walking along this path. svn-id: r45622
2009-11-02Little clean-up after the refactoring.Robert Špalek
svn-id: r45609
2009-11-02Split loop() into several cleaned helper methodsRobert Špalek
svn-id: r45608
2009-11-02Refactored running loop().Robert Špalek
- shouldExitLoop() is a bool again and introduced new flag isReloaded() instead of adding special hacky value 2 - loop() accepts 2 parameters: loop substatus and shouldExit flag, because each caller previously had to set and restore these manually. loop() now also tests whether the substatuses are properly nested. reordered the loop-exitting code. - renamed loop substatuses to logical names - enterNewRoom() returns bool whether loop() should continue so that start() doesn't have to test and clear shouldEndProgram(). it doesn't need force_reload as a parameter anymore. - dialog selections use new inner substatus instead of outer substatus, for consistency svn-id: r45607
2009-11-01Commented the rest of the loop() logicRobert Špalek
svn-id: r45606
2009-11-01Commented on loop() before refactoring.Robert Špalek
svn-id: r45604
2009-11-01Small bugfix in path-findingRobert Špalek
svn-id: r45602
2009-11-01Cleaned up the walking code.Robert Špalek
PathVertex replaced by Common::Point. Do not update the path sprites if not in the debugging mode. svn-id: r45598
2009-11-01Debugged computation and displaying of optimal walking pathsRobert Špalek
svn-id: r45597
2009-11-01Add methods to draw computed walking paths.Robert Špalek
svn-id: r45596
2009-11-01Fix mistakenly ordered flushing revealed by the last commitRobert Špalek
svn-id: r45595
2009-10-30Move drawing of walking map to walking.cppRobert Špalek
svn-id: r45525
2009-10-30Moved all one-line getters/setters to the header filesRobert Špalek
svn-id: r45524
2009-10-30Move WalkingMap instance to Game, and clean up parametersRobert Špalek
svn-id: r45516
2009-10-30Remove the last 2 default parameter values.Robert Špalek
They usually just add unnecessary confusion and this is definitely such an example. Removal will clarify the code. svn-id: r45512
2009-10-30Remove most of default parameter values.Robert Špalek
Also, add comments to the last commit. svn-id: r45511
2009-10-30Move WalkingMap into new module.Robert Špalek
Also, fix a bug when loading the default walking map (wasn't implemented) and setting font size. The reason I move this code into a new module is because I will augment it with other walking-related algorithms soon. svn-id: r45510
2009-10-29Silenced GCC warning.Torbjörn Andersson
svn-id: r45505
2009-10-29Implement flipping the QuickHero and SpeedText flags in GPL2.Robert Špalek
All GPL2 callbacks are now fully implemented. It remains to implement proper walking. svn-id: r45501
2009-10-29Fix several palette fading bugs.Robert Špalek
svn-id: r45497
2009-10-28Implement palette fadingRobert Špalek
svn-id: r45455
2009-10-28Fix initialization of the mouse cursor.Robert Špalek
svn-id: r45453
2009-10-28Fix entering the same room when re-loading the game.Robert Špalek
(Most objects were not loaded due to incorrect cleaning of a flag). Also, clean up accessing some boolean attributes. svn-id: r45452
2009-10-27Don't change mouse cursors so ridiculously often.Robert Špalek
svn-id: r45451
2009-10-26Fix Escape in the intro, and switching map and the inventoryRobert Špalek
svn-id: r45389
2009-10-22Implemented GPL2 commands for music.Robert Špalek
Debugged everything. svn-id: r45330
2009-10-21Enabled music.Robert Špalek
Several TODO's added. svn-id: r45298
2009-10-13Set all sound/subtitle-related parameters from ConfMan.Robert Špalek
Made it intelligent so that when, for example, the dubbing file doesn't exist, we don't fail, but instead always show subtitles even if the GUI settings says dubbing only, etc. svn-id: r45002
2009-10-13Dubbing is played.Robert Špalek
I haven't implemented switching dubbing and subtitles on/off according to the config manager nor the speed of the subtitles, yet. svn-id: r45001
2009-10-12Sound effects are now correctly played.Robert Špalek
Dubbing is not yet played. svn-id: r45000
2009-10-12Dragon looks into the requested direction.Robert Špalek
Parsing _lookDir and _useDir, and passing it all the way around to walkHero(). Also, added playHeroAnimation() to reduce code duplication. svn-id: r44965
2009-10-12Implemented GPL commands JustTalk and JustStay.Robert Špalek
The basic commands are done. It remains to implement handling music (after we play it at all), fading palette, and controlling the quick-hero and speed-text flags (after I find out what they do). Now the dragon switches between talking and staying during dialogs. However, the left/right direction doesn't work yet, because we don't respect _lookDir and _useDir yet. svn-id: r44964
2009-10-12Fix indexing of the dragon's animations.Robert Špalek
After inspection, I assert that it isn't true that the _anim array needs to be sorted. In fact, sorting ruins the ordering of the dragon's animations, which corresponds to enum Movement. After fixing this, let the dragon have a rest instead of constantly walking down. svn-id: r44962
2009-10-12Reduced huge code duplication by introducing Game::stopObjectAnimations()Robert Špalek
svn-id: r44961
2009-10-12Disambiguated _anims.Robert Špalek
It's both a pointer to an AnimationManager and list of animation ID's fo each object. The latter renamed to _anim so that I can easily search for them. Also, fixed the bug promised in the previous commit. svn-id: r44960
2009-10-11Implemented a few more harmless GPL2 commandsRobert Špalek
svn-id: r44958