scummvm/engines/dreamweb/dreamweb.h
eriktorbjorn de65cf35c1 DREAMWEB: Simplify the tracking of the mouse position and buttons
The event manager keeps track of the mouse position and button
state, so using that should be both simpler and more reliable
than tracking it ourselves.

This loses the support for middle-clicking, but it's not clear
that this is needed anyway. (If necessary, it could be added to
the event manager.)
2011-06-15 17:34:36 +02:00

119 lines
3.1 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: https://svn.scummvm.org:4444/svn/dreamweb/dreamweb.h $
* $Id: dreamweb.h 77 2011-05-18 14:26:43Z digitall $
*
*/
#ifndef DREAMWEB_H
#define DREAMWEB_H
#include "common/error.h"
#include "common/file.h"
#include "common/random.h"
#include "common/rect.h"
#include "common/savefile.h"
#include "common/scummsys.h"
#include "engines/engine.h"
#include "dreamweb/dreamgen.h"
#include "dreamweb/console.h"
namespace DreamWeb {
// Engine Debug Flags
enum {
kDebugAnimation = (1 << 0),
kDebugSaveLoad = (1 << 1)
};
struct DreamWebGameDescription;
class DreamWebEngine : public Engine {
private:
DreamWebConsole *_console;
bool _vSyncInterrupt;
protected:
// Engine APIs
virtual Common::Error run();
virtual bool hasFeature(EngineFeature f) const;
public:
DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc);
virtual ~DreamWebEngine();
void setVSyncInterrupt(bool flag);
void waitForVSync();
Common::Error loadGameState(int slot);
Common::Error saveGameState(int slot, const char *desc);
bool canLoadGameStateCurrently();
bool canSaveGameStateCurrently();
//dreamgen public api:
uint8 randomNumber() { return _rnd.getRandomNumber(255); }
void openFile(const Common::String &name);
uint32 readFromFile(uint8 *data, unsigned size);
uint32 skipBytes(uint32 bytes);
void closeFile();
void mouseCall(); //fill mouse pos and button state
void processEvents();
void setGraphicsMode();
void setPalette();
void fadeDos();
void blit(const uint8 *src, int pitch, int x, int y, int w, int h);
void cls();
void getPalette(uint8 *data, uint start, uint count);
void setPalette(const uint8 *data, uint start, uint count);
void openSaveFileForWriting(const Common::String &name);
uint writeToSaveFile(const uint8 *data, uint size);
bool openSaveFileForReading(const Common::String &name);
uint readFromSaveFile(uint8 *data, uint size);
void setShakePos(int pos) { _system->setShakePos(pos); }
void quit();
private:
void keyPressed(uint16 ascii);
const DreamWebGameDescription *_gameDescription;
Common::RandomSource _rnd;
Common::File _file;
Common::OutSaveFile *_outSaveFile;
Common::InSaveFile *_inSaveFile;
dreamgen::Context _context;
};
} // End of namespace DreamWeb
#endif