aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.cpp
AgeCommit message (Collapse)Author
2009-07-07* Changed Game::_variables to public since the GPL interpreter needs to use ↵Denis Kasak
it and made it int instead of uint16 * Implemented variable accessing by the math evaluator * Fixed bug from previous commit (should have used && when checking for ending instructions, not ||) svn-id: r42242
2009-07-07Removed testing hack from Game::init() that displayed the dragon in the ↵Denis Kasak
upper left corner. Replaced some more instances of magic numbers with kDragonObject. Made Game::init() a bit more readable. svn-id: r42237
2009-07-07Added enum constant for the dragon object (kDragonObject) and made ↵Denis Kasak
Script::start() a bit more readable. svn-id: r42236
2009-07-07Stopped running the room init scripts twice.Denis Kasak
svn-id: r42225
2009-07-07mplemented changing rooms properly (overlays and objects' animations are ↵Denis Kasak
deleted before a new room is loaded) and set up a quick demonstration (left click advances to the next room, right click goes back). svn-id: r42224
2009-07-06* Fixed extracting visibility and location of object from its status byteDenis Kasak
* Added Game::getRoomNum() which returns the current room number * Made Game::loadRoom() execute the room's startup script, load the room's objects and run their init scripts as well svn-id: r42194
2009-07-05Renaming Animation -> AnimationManager and AnimObj -> Animation in light of ↵Denis Kasak
the new API change. svn-id: r42133
2009-07-05* API change for Animation and AnimObj; AnimObj is now a proper class and ↵Denis Kasak
each instance handles its own animation. Animation handles adding, fetching and deleting of AnimObjs (probably needs a namechange). * Implemented actual animation (previously only the first frame was display) * Implemented animation starting, stoping, looping * Loaded looping dragon animation as a test svn-id: r42114
2009-07-04Rewrote Sprite::draw() to draw overflowing sprites correctly. Stopped ↵Denis Kasak
playing animations as soon as they're loaded from Game::loadAnimation(). svn-id: r42111
2009-07-04* Added Game::init() and moved some functionality from Game::Game to it ↵Denis Kasak
(loading objects, changing rooms) * Made Game::load*(), Game::getObject() and Game::changeRoom() methods public * Stopped specifying Z coordinate when creating some Sprites (which I forgot in my previous commit) svn-id: r42101
2009-07-04* Split code from Game::changeRoom() into Game::loadRoom() and ↵Denis Kasak
game::loadOverlays(). Game::changeRoom() now calls them instead. * Added Game::loadAnimation() * The engine now stores "real" indexes (zero-based) instead of Pascal's because the previous approach was messy. svn-id: r42092
2009-07-03Made Game::changeRoom() clear the overlaysArchive cache when it's done ↵Denis Kasak
loading overlays. svn-id: r42072
2009-07-03Enabled loading room number 1 as a test.Denis Kasak
svn-id: r42071
2009-07-03Added support for loading room overlays to Game::changeRoom().Denis Kasak
svn-id: r42070
2009-07-02Added Game::changeRoom() method and Game::_currentRoom.Denis Kasak
svn-id: r42036
2009-07-02Added rooms and overlays archives.Denis Kasak
svn-id: r42035
2009-07-02DraciEngine now opens and stores pointers to essential archives. Changed ↵Denis Kasak
code that used those archives to use that instead of opening them manually. Replaced BArchive::operator[] functionality with BArchive::getFile() to prevent ugliness when accessing archives via pointers. svn-id: r42031
2009-07-02Merged the info available from _objectStatus with the GameObject struct. ↵Denis Kasak
Made Game keep a list of all the game's objects. Added Game::getObject() method for fetching a pointer to a particular object. Changed Game::loadObject() to not accept a pointer to a GameObject struct anymore. svn-id: r42026
2009-06-29Changed some data members in Draci::GameInfo from uint32 to uint16 ↵Denis Kasak
(previously I thought that the 'word' type in the original engine was 32 bits). Removed a FIXME concerning struct size mismatch (matches when the previous sentence is taken into account). GameInfo::_numDialogBlocks is now calculated, not read in (it wasn't stored in the data files at all). svn-id: r41966
2009-06-29Account for endianess properly when reading in game variables.Denis Kasak
svn-id: r41965
2009-06-28Added an offset parameter to Script::run() so we can specify where to start ↵Denis Kasak
the GPL program execution. Also, the init script for the dragon object is now run inside Game::Game(). svn-id: r41928
2009-06-28Changed Script::run() to accept a GPL2Program struct instead of a byte ↵Denis Kasak
pointer and a length. Also, Script::run() now executes the GPL program until a gplend instruction rather than to the end of the whole program. Modified GameObject according to the new changes. svn-id: r41927
2009-06-28Added struct GameObject (such structs are stored in OBJEKTY.DFW and used for ↵Denis Kasak
in-game objects' info). Added Game::loadObject() for loading such objects into memory. Made Game's constructor load the object for the main hero. svn-id: r41925
2009-06-27Extended Game to load all info from INIT.DFW (general game info, dialog ↵Denis Kasak
offsets, variables, item status, object status). svn-id: r41908
2009-06-27Added Game's constructor. Added the Person struct and made Game constructor ↵Denis Kasak
read in the list of persons from INIT.DFW. Added Game instance to DraciEngine. svn-id: r41907
2009-06-26Added empty Game class.Denis Kasak
svn-id: r41906