scummvm/engines/draci/draci.h
Robert Špalek 24d649b972 Clean up room changing code and support returning from the map.
Completely changed the interface, removing unused methods and attributes,
renaming other ones to reflect what they do, and moving some methods into the
private section.  Code changing the location, originally scattered over many
pieces of code, has been unified into one place.  Remember the previous room
when entering the map so that one can return there.

Also, the event handler processes one event at a time, preventing lost clicks
on touchpads.

svn-id: r44508
2009-10-01 08:32:35 +00:00

97 lines
2.4 KiB
C++

/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $URL$
* $Id$
*
*/
#ifndef DRACI_H
#define DRACI_H
#include "common/system.h"
#include "engines/engine.h"
#include "engines/advancedDetector.h"
#include "draci/game.h"
#include "draci/mouse.h"
#include "draci/screen.h"
#include "draci/font.h"
#include "draci/script.h"
#include "draci/barchive.h"
#include "draci/animation.h"
namespace Draci {
class DraciEngine : public Engine {
public:
DraciEngine(OSystem *syst, const ADGameDescription *gameDesc);
~DraciEngine();
int init();
Common::Error run();
bool hasFeature(Engine::EngineFeature f) const;
bool handleEvents();
Screen *_screen;
Mouse *_mouse;
Game *_game;
Script *_script;
AnimationManager *_anims;
Font *_smallFont;
Font *_bigFont;
BArchive *_iconsArchive;
BArchive *_objectsArchive;
BArchive *_spritesArchive;
BArchive *_paletteArchive;
BArchive *_roomsArchive;
BArchive *_overlaysArchive;
BArchive *_animationsArchive;
BArchive *_walkingMapsArchive;
BArchive *_itemsArchive;
BArchive *_itemImagesArchive;
BArchive *_initArchive;
BArchive *_stringsArchive;
bool _showWalkingMap;
Common::RandomSource _rnd;
};
enum {
kDraciGeneralDebugLevel = 1 << 0,
kDraciBytecodeDebugLevel = 1 << 1,
kDraciArchiverDebugLevel = 1 << 2,
kDraciLogicDebugLevel = 1 << 3,
kDraciAnimationDebugLevel = 1 << 4
};
// Macro to simulate lround() for non-C99 compilers
static inline long scummvm_lround(double val) { return (long)floor(val + 0.5); }
} // End of namespace Draci
#endif // DRACI_H