388 Commits

Author SHA1 Message Date
Robert Špalek
0d5627d8f1 Run the path obliqueing process repeatedly until it converges.
svn-id: r45623
2009-11-03 03:38:28 +00:00
Robert Špalek
75bf8237b0 Greatly improved the quality of obliqueing the shortest path.
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-03 03:24:59 +00:00
Max Horn
51933629d1 Changed foo(void) to foo() in almost all non-backend source files
svn-id: r45616
2009-11-02 21:54:57 +00:00
Robert Špalek
ab3eb81dfb Little clean-up after the refactoring.
svn-id: r45609
2009-11-02 05:37:17 +00:00
Robert Špalek
6de74446ab Split loop() into several cleaned helper methods
svn-id: r45608
2009-11-02 05:31:03 +00:00
Robert Špalek
c45f0343f4 Refactored running loop().
- 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-02 02:28:43 +00:00
Robert Špalek
9f711bd0ce Commented the rest of the loop() logic
svn-id: r45606
2009-11-01 23:20:46 +00:00
Robert Špalek
9ad86a800a Fix SIGSEGV when quitting the game during playing sounds
svn-id: r45605
2009-11-01 23:20:19 +00:00
Robert Špalek
f77446a500 Commented on loop() before refactoring.
svn-id: r45604
2009-11-01 23:04:56 +00:00
Robert Špalek
0470c25881 Small bugfix in path-finding
svn-id: r45602
2009-11-01 21:19:39 +00:00
Robert Špalek
504973a073 One more clean-up of the path-finding code
svn-id: r45599
2009-11-01 19:30:51 +00:00
Robert Špalek
170918afab Cleaned up the walking code.
PathVertex replaced by Common::Point.  Do not update the path sprites if
not in the debugging mode.

svn-id: r45598
2009-11-01 19:22:41 +00:00
Robert Špalek
c1cc230e4b Debugged computation and displaying of optimal walking paths
svn-id: r45597
2009-11-01 12:57:06 +00:00
Robert Špalek
5c7a120471 Add methods to draw computed walking paths.
svn-id: r45596
2009-11-01 10:58:34 +00:00
Robert Špalek
7927196b3f Fix mistakenly ordered flushing revealed by the last commit
svn-id: r45595
2009-11-01 10:15:48 +00:00
Robert Špalek
f91c89560f Get rid of doubling memory allocation and a lot of copying.
The Sprite class points to the original buffer (which is cached in the memory
thanks to BArchive machinery) instead of allocating its own buffer and
copying the source there.

svn-id: r45594
2009-11-01 10:03:37 +00:00
Robert Špalek
c8534e1802 Implemented some utility functions for path-finding.
In particular, breadth-first search algorithm for getting the shortest path
in the walkable area and an algorithm making the path oblique when possible.

svn-id: r45591
2009-11-01 09:34:07 +00:00
Robert Špalek
afcd186bef Move drawing of walking map to walking.cpp
svn-id: r45525
2009-10-30 07:26:43 +00:00
Robert Špalek
6411125f39 Moved all one-line getters/setters to the header files
svn-id: r45524
2009-10-30 06:11:04 +00:00
Robert Špalek
839a7d5db6 Fixed svn:keywords
svn-id: r45523
2009-10-30 05:21:44 +00:00
Robert Špalek
f3700a23e9 Move WalkingMap instance to Game, and clean up parameters
svn-id: r45516
2009-10-30 02:15:41 +00:00
Robert Špalek
d662c4aa20 Remove the last 2 default parameter values.
They usually just add unnecessary confusion and this is definitely such
an example.  Removal will clarify the code.

svn-id: r45512
2009-10-30 01:56:52 +00:00
Robert Špalek
c778efaca5 Remove most of default parameter values.
Also, add comments to the last commit.

svn-id: r45511
2009-10-30 01:41:57 +00:00
Robert Špalek
a20e42efb9 Move WalkingMap into new module.
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-30 00:52:05 +00:00
Torbjörn Andersson
cbf2b03c22 Silenced GCC warning.
svn-id: r45505
2009-10-29 18:15:12 +00:00
Robert Špalek
403668898f Implement flipping the QuickHero and SpeedText flags in GPL2.
All GPL2 callbacks are now fully implemented.  It remains to implement
proper walking.

svn-id: r45501
2009-10-29 15:26:48 +00:00
Robert Špalek
25b3e687a7 Fix several palette fading bugs.
svn-id: r45497
2009-10-29 01:55:06 +00:00
Robert Špalek
c781f01321 Implement palette fading
svn-id: r45455
2009-10-28 07:34:17 +00:00
Robert Špalek
e75637ec1f Fix initialization of the mouse cursor.
svn-id: r45453
2009-10-28 00:20:45 +00:00
Robert Špalek
bbb72eee55 Fix entering the same room when re-loading the game.
(Most objects were not loaded due to incorrect cleaning of a flag).  Also,
clean up accessing some boolean attributes.

svn-id: r45452
2009-10-28 00:04:59 +00:00
Robert Špalek
ed87e5cd31 Don't change mouse cursors so ridiculously often.
svn-id: r45451
2009-10-27 23:51:32 +00:00
Robert Špalek
46cb0be173 fix free/delete
svn-id: r45422
2009-10-26 22:04:03 +00:00
Robert Špalek
7bec12bbec Fix 2 MIDI bugs
svn-id: r45392
2009-10-26 09:03:54 +00:00
Robert Špalek
74da9e5e3b Fix Escape in the intro, and switching map and the inventory
svn-id: r45389
2009-10-26 04:59:52 +00:00
Robert Špalek
819449d099 Implemented GPL2 commands for music.
Debugged everything.

svn-id: r45330
2009-10-22 07:34:43 +00:00
Robert Špalek
8f75ee9a37 Fix uninitialized channel volumes.
This fixed stopped music after calling the configuration dialog.

svn-id: r45327
2009-10-22 06:41:11 +00:00
Robert Špalek
3903be61e7 Improved music handling:
- reading the volume from the configuration
- error handling of non-existent MIDI files
- pausing/resuming music

unfortunately, sometimes music stops playing or slows down, and my log
messages have so far not helped me to identify why

svn-id: r45326
2009-10-22 06:21:39 +00:00
Robert Špalek
958bc7ba81 Avoid opening and closing BArchive files all the time
svn-id: r45325
2009-10-22 06:05:34 +00:00
Robert Špalek
8d8b4dc50a Enabled music.
Several TODO's added.

svn-id: r45298
2009-10-21 08:41:57 +00:00
Robert Špalek
b2bf21f0da Fix memory leaks when reading thumbnails
svn-id: r45142
2009-10-16 00:09:20 +00:00
Robert Špalek
dddce5d97b Don't crash without sound support.
svn-id: r45137
2009-10-15 23:57:13 +00:00
Robert Špalek
baec8c2421 Set all sound/subtitle-related parameters from ConfMan.
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-13 05:38:45 +00:00
Robert Špalek
7c311057c1 Dubbing is played.
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-13 04:44:22 +00:00
Robert Špalek
e779284403 Sound effects are now correctly played.
Dubbing is not yet played.

svn-id: r45000
2009-10-12 22:27:23 +00:00
Robert Špalek
43437eecb8 Dragon looks into the requested direction.
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-12 03:08:28 +00:00
Robert Špalek
1a4dcd3c82 Implemented GPL commands JustTalk and JustStay.
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-12 01:16:13 +00:00
Robert Špalek
ca35af2697 Fixed funcActPhase()
svn-id: r44963
2009-10-12 00:39:49 +00:00
Robert Špalek
b99e69f4d9 Fix indexing of the dragon's animations.
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-12 00:32:51 +00:00
Robert Špalek
3ef5145b41 Reduced huge code duplication by introducing Game::stopObjectAnimations()
svn-id: r44961
2009-10-12 00:15:34 +00:00
Robert Špalek
6aaf99ec67 Disambiguated _anims.
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-12 00:01:39 +00:00