aboutsummaryrefslogtreecommitdiff
path: root/engines/draci
AgeCommit message (Collapse)Author
2009-09-26draci: Fixed bug in Surface::centerOn{X,Y}() which made it return a negative ↵Denis Kasak
coordinate for strings that are too long. Resolves the crash caused by the English data files containing strings which are improperly line-breaked. Ideally, the engine should do the line-breaking itself when the string does not fit. svn-id: r44376
2009-09-25Added some more const's to the interface of Dragon HistoryRobert Špalek
svn-id: r44362
2009-09-25Created a macro for lround(), for non-C99 compilers, and used that in places ↵Filippos Karapetis
where lround() is used svn-id: r44337
2009-09-25Add const's to many interfaces of engines/draci/Robert Špalek
svn-id: r44331
2009-09-25Silenced some warningsFilippos Karapetis
svn-id: r44329
2009-09-25Replaced the C99 lround() with floor(), to get draci to compile under ↵Filippos Karapetis
non-C99 compilers (e.g. VS) svn-id: r44328
2009-09-25Make engines/draci/ compilable after merging from a branchRobert Špalek
svn-id: r44327
2009-08-17Removed public data variables of Game concerning dialogues and added ↵Denis Kasak
getters/setters. svn-id: r43492
2009-08-17Enabled hotkey 'i' for accessing or exiting the inventory.Denis Kasak
svn-id: r43488
2009-08-17Added inventory and item handling support (monster patch, sorry). Items were ↵Denis Kasak
previously called "icons" as in the original player. This commit also renamed every such instance to the proper "item". svn-id: r43487
2009-08-17* Added pause support for animations.Denis Kasak
* Added AnimationManager::addItem() for adding inventory items animations. svn-id: r43486
2009-08-17* Set the _x and _y position for the mouse only when an EVENT_MOUSEMOVE happens.Denis Kasak
* Stop calling Mouse::setPosition() on EVENT_MOUSEMOVE since it's not needed (the engine warps the mouse automatically; I still left the method for situations when we want to warp the mouse explicitly). svn-id: r43484
2009-08-16Added struct GameItem.Denis Kasak
svn-id: r43424
2009-08-15Removed _roomChange hack since it's no longer needed.Denis Kasak
svn-id: r43392
2009-08-15* Implemented LoadPalette, SetPalette and BlackPalette GPL commands.Denis Kasak
* Used a more natural condition (whether the scheduled room number is different from the current room number) instead of the _roomChange hack. svn-id: r43391
2009-08-14Sped up the game during dialogues by not updating every drawn char ↵Denis Kasak
separately but the whole string at once. Also removed the markDirty parameter from Font::drawChar() since it's not needed anymore. svn-id: r43368
2009-08-14Fixed bug which made the dragon's spoken line in a dialogue end too quickly.Denis Kasak
svn-id: r43365
2009-08-12Stopped returning from Animation::nextFrame() early even if the animation ↵Denis Kasak
has only one frame because such animations may need to have callbacks called too. Fixes intro freeze during mother's lecture. svn-id: r43313
2009-08-12Fixed dialogues logic (some indexes were calculated erroneously +/- 1).Denis Kasak
svn-id: r43312
2009-08-12Moved setting inactive dialogue option colour to an else branch.Denis Kasak
svn-id: r43311
2009-08-12Removed unnecessary else branch in the part of the loop handling substatus Talk.Denis Kasak
svn-id: r43310
2009-08-12Fixed erroneous comment mentioning gates in Game::runDialogueProg().Denis Kasak
svn-id: r43309
2009-08-12* When setting the first two game variables (room and gate), first convert ↵Denis Kasak
them back to 1-based indexing so they play well with the rest of the scripts. This fixes a number of bugs, e.g. the dragon now appears automatically when the game starts and the question mark animation in the intro is played / stopped at an appropriate time. * Removed hack from Script::start() which loaded animation 657 before playing it to stop a crash. The fix above seems to fix this bug as well. svn-id: r43308
2009-08-12Whenever we enter the top-level loop, disable exiting by default (fixes the ↵Denis Kasak
high-five scene between Bert and Eveline which ended too fast). svn-id: r43306
2009-08-12* Split loop status and substatus into two different enums since they are ↵Denis Kasak
two separate concepts * Fixed slight glitch where object titles (which normally disappear when objects are used/looked at) reappeared for a moment after the script has finished svn-id: r43305
2009-08-12Fixed Script::walkOnPlay() (was setting loop status whereas it was substatus ↵Denis Kasak
that needed to be set). svn-id: r43297
2009-08-12Added some debug info for loop statuses and dialogues.Denis Kasak
svn-id: r43295
2009-08-11Added dialogue selection colouring.Denis Kasak
svn-id: r43256
2009-08-11Implemented GPL command WalkOnPlay.Denis Kasak
svn-id: r43255
2009-08-11Fix intro crash because of bug in the data files.Denis Kasak
svn-id: r43254
2009-08-11Added dialogue support.Denis Kasak
svn-id: r43253
2009-08-09Multiply itemID by two before using it as an index into the item image ↵Denis Kasak
archive because every item has a highlighted and a non-highlighted version. svn-id: r43185
2009-08-09Implemented GPL function Script::funcObjStat().Denis Kasak
svn-id: r43176
2009-08-09Moved cursor state setting (when entering a new room) from Game::loadRoom() ↵Denis Kasak
to Game::start() (just after running the gate program). This fixes a black cursor bug when the game starts (the cursor should not be even displayed then). svn-id: r43162
2009-08-09* Implemented GPL functions Script::funcActIco() and Script::funcIsIcoAct().Denis Kasak
* Implemented GPL commands Script::loadMap() and Script::roomMap(). * Added temporary HACK to change some speech texts to use the small font because some strings overflow the screen (as stored in the data files). svn-id: r43161
2009-08-09* Implemented Game::loadWalkingMap().Denis Kasak
* Extracted title updating from the main loop to a new method, Game::updateTitle(). * Added Game::updateCursor(). * Restructured the main loop to fix many subtle bugs and enable some new functionality concerning object scripts (like support for room-global use scripts). * Added support for tracking currently selected icons (items, probably should be renamed). * Changed walkDir, lookDir and useDir members of GameObject to int and adjusted them for zero-based indexing. * Added Game::getCurrentIcon(). * Return from WalkingMap::findNearestWalkable immediately if the starting point is walkable. svn-id: r43160
2009-08-09Added Text::setFont().Denis Kasak
svn-id: r43159
2009-08-09Added Mouse::loadItemCursor(). Removed hotspot FIXME as all cursors seem to ↵Denis Kasak
use the same hotspot (the center of the sprite). svn-id: r43158
2009-08-08* Test whether an object can be used by evaluating its canUse script ↵Denis Kasak
(warning: this will break many things currently working until I implement IsIcoAct in my next few commits). * Removed old HACK note because look / use scripts are now more properly implemented. svn-id: r43130
2009-08-08Implemented Script::testExpression().Denis Kasak
svn-id: r43129
2009-08-08Removed TODO concerning the nearest walkable point feature and reworded some ↵Denis Kasak
obsolete documentation. svn-id: r43128
2009-08-08* Implemented WalkingMap::findNearestWalkable() which mimics a heuristic ↵Denis Kasak
from the original game that attempts to find walkable spots near the given point * Implemented moving to the right place when looking / using objects. svn-id: r43125
2009-08-08Implemented Surface::getRect().Denis Kasak
svn-id: r43109
2009-08-06Fixed the 'ESC room' feature to work as intended.Denis Kasak
svn-id: r43087
2009-08-06Added ability to end the currently executing GPL program before it finishes ↵Denis Kasak
via Script::endCurrentProgram(). svn-id: r43086
2009-08-06Enabled skipping the current line of text if a mouse click occurs.Denis Kasak
svn-id: r43085
2009-08-06Moved walkHero() (in the main loop) to the appropriate place (in ↵Denis Kasak
anticipation of a smart finding a walkable point) and disabled walking during script execution / inventory. svn-id: r43084
2009-08-06Turn off mouse cursor and disable titles when running look / use scripts.Denis Kasak
svn-id: r43083
2009-08-06Added method Mouse::isCursorOn().Denis Kasak
svn-id: r43082
2009-08-06Made the game behave properly and safe when clicking on objects multiple ↵Denis Kasak
times during talking or executing look/use scripts. Previously, the loop could be called nested arbitrarily many times. svn-id: r43081