2010-10-18 19:17:38 +00:00
|
|
|
/* 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.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef LASTEXPRESS_HELPERS_H
|
|
|
|
#define LASTEXPRESS_HELPERS_H
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// Misc helpers
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2012-07-15 23:26:35 +00:00
|
|
|
#define LOW_BYTE(w) ((unsigned char)(((unsigned long)(w)) & 0xff))
|
|
|
|
|
2010-10-18 19:17:38 +00:00
|
|
|
// Misc
|
|
|
|
#define getArchive(name) _engine->getResourceManager()->getFileStream(name)
|
|
|
|
#define rnd(value) _engine->getRandom().getRandomNumber(value - 1)
|
|
|
|
|
|
|
|
// Engine subclasses
|
|
|
|
#define getLogic() _engine->getGameLogic()
|
|
|
|
#define getMenu() _engine->getGameMenu()
|
|
|
|
|
|
|
|
// Logic
|
|
|
|
#define getAction() getLogic()->getGameAction()
|
|
|
|
#define getBeetle() getLogic()->getGameBeetle()
|
|
|
|
#define getFight() getLogic()->getGameFight()
|
|
|
|
#define getEntities() getLogic()->getGameEntities()
|
|
|
|
#define getSaveLoad() getLogic()->getGameSaveLoad()
|
|
|
|
#define isNight() getLogic()->getGameState()->isNightTime()
|
|
|
|
|
|
|
|
// State
|
|
|
|
#define getState() getLogic()->getGameState()->getGameState()
|
|
|
|
#define getEvent(id) getState()->events[id]
|
|
|
|
#define getFlags() getLogic()->getGameState()->getGameFlags()
|
|
|
|
#define getInventory() getLogic()->getGameState()->getGameInventory()
|
|
|
|
#define getObjects() getLogic()->getGameState()->getGameObjects()
|
|
|
|
#define getProgress() getState()->progress
|
|
|
|
#define getSavePoints() getLogic()->getGameState()->getGameSavePoints()
|
|
|
|
#define getGlobalTimer() getLogic()->getGameState()->getTimer()
|
|
|
|
#define setGlobalTimer(timer) getLogic()->getGameState()->setTimer(timer)
|
|
|
|
#define setCoords(coords) getLogic()->getGameState()->setCoordinates(coords)
|
|
|
|
#define getCoords() getLogic()->getGameState()->getCoordinates()
|
|
|
|
#define setFrameCount(count) _engine->setFrameCounter(count)
|
|
|
|
#define getFrameCount() _engine->getFrameCounter()
|
|
|
|
|
|
|
|
// Scenes
|
|
|
|
#define getScenes() _engine->getSceneManager()
|
|
|
|
|
|
|
|
// Sound
|
|
|
|
#define getSound() _engine->getSoundManager()
|
2011-06-29 02:10:29 +00:00
|
|
|
#define getSoundQueue() _engine->getSoundManager()->getQueue()
|
2010-10-18 19:17:38 +00:00
|
|
|
|
|
|
|
// Others
|
|
|
|
#define getEntityData(entity) getEntities()->getData(entity)
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// Graphics
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// Sequences
|
|
|
|
#define loadSequence(name) Sequence::load(name, getArchive(name))
|
|
|
|
#define loadSequence1(name, field30) Sequence::load(name, getArchive(name), field30)
|
|
|
|
|
|
|
|
#define clearBg(type) _engine->getGraphicsManager()->clear(type)
|
|
|
|
#define showScene(index, type) _engine->getGraphicsManager()->draw(getScenes()->get(index), type);
|
|
|
|
|
2010-11-11 18:22:55 +00:00
|
|
|
#define askForRedraw() _engine->getGraphicsManager()->change()
|
|
|
|
#define redrawScreen() do { _engine->getGraphicsManager()->update(); _engine->_system->updateScreen(); } while (false)
|
2010-10-18 19:17:38 +00:00
|
|
|
|
|
|
|
// Used to delete entity sequences
|
2010-11-11 18:22:55 +00:00
|
|
|
#define SAFE_DELETE(_p) do { delete (_p); (_p) = NULL; } while (false)
|
2010-10-18 19:17:38 +00:00
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// Output
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
extern const char *g_actionNames[];
|
|
|
|
extern const char *g_directionNames[];
|
|
|
|
extern const char *g_entityNames[];
|
|
|
|
|
2010-11-01 16:02:28 +00:00
|
|
|
#define ACTION_NAME(action) (action > 18 ? Common::String::format("%d", action).c_str() : g_actionNames[action])
|
2010-10-18 19:17:38 +00:00
|
|
|
#define DIRECTION_NAME(direction) (direction >= 6 ? "INVALID" : g_directionNames[direction])
|
|
|
|
#define ENTITY_NAME(index) (index >= 40 ? "INVALID" : g_entityNames[index])
|
|
|
|
|
|
|
|
|
|
|
|
#endif // LASTEXPRESS_HELPERS_H
|