Age | Commit message (Collapse) | Author |
|
program or entering the main loop
* Removed hack which ran programs for all gates when the room was changed
svn-id: r42977
|
|
gate number. Also, if the new room is the map room, set the appropriate coordinates for the dragon in the persons array.
svn-id: r42972
|
|
* Set loop substatus to Ordinary when changing rooms
svn-id: r42971
|
|
svn-id: r42970
|
|
* Added a separate mechanism to Game to keep track both of the current room number and the next room/gate. Periodically, I check whether the new room differs from the old one and, if it does, I do the change. Doing it any other would is nearly impossible because of the way the original scripts were written.
* Added GPL command Script::newRoom(). Rooms can now be traversed by clicking on their exits. Also, the intro animation partly works. Some parts go by far too soon. I assume this is because the engine still lacks a dialogue GPL command.
* Fixed bug where the gates array of a room was not cleared between uses.
* Save old jump value when we enter Script::run() and restore it in the end (mimicking the original engine).
* Fixed small bug where the gate was supposed to be stored as the first in-game variable and not the room number.
svn-id: r42957
|
|
implementation.
* Set the first two game variables to the gate and room number in Game::init()
* Fixed compilation
svn-id: r42916
|
|
* Added getters and setters for current room and gate numbers
svn-id: r42915
|
|
svn-id: r42914
|
|
* Moved rewinding the animation to the beginning from Animation::nextFrame() to AnimationManager::stop() (fixes the owl animation)
svn-id: r42913
|
|
svn-id: r42909
|
|
AnimationManager::play())
* Fixed logic checking for object visibility in various GPL commands (I originally misinterpreted the original engine code).
svn-id: r42908
|
|
svn-id: r42906
|
|
* Changed Script::load() to use the new animation callbacks
svn-id: r42902
|
|
(doNothing, exitGameLoop, stopAnimation).
svn-id: r42901
|
|
Game::_shouldExitLoop variable is set.
* Added mechanisms for signalling whether the main game loop should exit or not (Game::setExitLoop() and Game::shouldExitLoop())
svn-id: r42899
|
|
don't end with '|' like they should.
svn-id: r42897
|
|
* Added Game::start() method which is called from DraciEngine::go()
* Made Game::loop() suitable for calling from other places (like GPL scripts) by handling events, redrawing the screen, etc from inside. This way it doesn't freeze the game if it doesn't return immediately.
* Added Game::shouldQuit() and Game::setQuit() which can be used to signal the engine to quit.
* Fixed race condition related to mouse buttons not getting released.
* Instead of deleting frames for the title animation and adding a new one, reset the text for its frame.
svn-id: r42875
|
|
* Trivial implementation of the Play GPL command
* Fixed Script::load() to load animation IDs to objects in increasing order (needed by funcActPhase())
svn-id: r42874
|
|
* Renamed Animation::getFramesNum() to Animation::getFrameCount() for clarity.
svn-id: r42873
|
|
testing (Warning: unstable in some places).
svn-id: r42841
|
|
svn-id: r42840
|
|
animation with a certain ID
* Made GameObjects track their titles as Strings rather than byte *
* Made the engine display the title of the object under the cursor (added a special animation ID for that, kTitleText)
svn-id: r42839
|
|
svn-id: r42838
|
|
destructor still needs to use the screen).
svn-id: r42837
|
|
* Added AnimationManager::getTopAnimationID(x, y) which returns the ID of the top layer animation located on a point
* Added Animation::getScale{X,Y}()
* Fixed a few bugs related to animations sometimes having no frames
svn-id: r42836
|
|
or scaled)
* Made the Text class internally store a Common::String instead of a byte *
svn-id: r42835
|
|
* Fixed unsigned to signed comparison warning
svn-id: r42834
|
|
* Made Font::getStringWidth() calculate the width of the string properly now that handling of multi-row strings is in
* Fixed bug which caused the last column of pixels in the last letter of a string to linger on the screen
svn-id: r42832
|
|
Drawable's private members protected so they can access them
* Added Text::drawScaled() and altered Text::getRect() so Text instances can be accessed through a Drawable pointer. Scaling text is planned for later because it's not essential.
svn-id: r42789
|
|
newline and end-of-string marker).
svn-id: r42788
|
|
(use methods of Common::Rect instead of doing it manually).
svn-id: r42779
|
|
svn-id: r42778
|
|
* Implemented WalkOn GPL command.
* Temporarily remaped StayOn and WalkOnPlay to WalkOn (for testing).
svn-id: r42735
|
|
svn-id: r42734
|
|
a program. This is done to prevent Release wreaking havoc if it is unpaired (i.e. if the script forgot to call a Mark first).
svn-id: r42733
|
|
svn-id: r42732
|
|
because Game uses pointers from the init archive which should outlive it (but didn't previously).
* Added support for setting loop status to Game.
* Made some GPL commands check whether we are in the correct loop status before executing.
svn-id: r42731
|
|
* Removed temporary hack I accidentally committed
svn-id: r42730
|
|
gates' scripts (for added effects and testing).
svn-id: r42684
|
|
order in which they were loaded). This is needed by some GPL commands.
* Added Game::getNumObjects() which returns the number of objects in the game
* Fixed segfault (accessing a null Animation *)
* Added some docs to various things
svn-id: r42683
|
|
decided to go for a mixed approach (where Animation has a global scaling factor for the whole animation which is separate from Drawable's scaled width and height) so the animation can be scaled more naturally when the scale often changes (like with perspective when the dragon is walking). Previously, one had to alter the sizes of each frame of the dragon's animation whenever the dragon moved which was unclean.
svn-id: r42680
|
|
* Fixed bug in Animation::nextFrame() which caused non-looping animations to linger on forever
* Stopped setting looping to false explicitly in AnimationManager::addAnimation() since the Animation constructor already does that
svn-id: r42657
|
|
svn-id: r42653
|
|
* Instead, Animation::nextFrame() marks both the old and the new frame dirty. This makes it possible to only update the real screen when the animation changes and results in a pretty big speedup.
* Added utility method Animation::markDirtyRect() which takes a (Surface *) and marks a dirty rect on it for the current frame.
* Fixed artifacts when moving the dragon.
svn-id: r42652
|
|
don't start/stop it over and over.
svn-id: r42651
|
|
instead of scaling it to nothing. Fixes the disappearing chair bug.
svn-id: r42650
|
|
animation to be played correctly.
svn-id: r42649
|
|
Sprite and Text.
* Changed some Drawable members from uint16 to uint.
* Added some const qualifiers to methods of Drawable.
svn-id: r42648
|
|
* Now each Sprite (and hence frame in an animation) can have a separate zoom (which is needed for some animations in the game)
* Scale factors are not stored any more; instead, we only store scaled dimensions (since these are stored in the data files) and calculate the factors from those.
svn-id: r42647
|
|
svn-id: r42628
|