aboutsummaryrefslogtreecommitdiff
path: root/engines/lastexpress/helpers.h
diff options
context:
space:
mode:
authorEugene Sandulenko2010-10-18 19:17:38 +0000
committerEugene Sandulenko2010-10-18 19:17:38 +0000
commit86d650926f9b991b6398e4ad4b0613ac264dfbaa (patch)
tree5e6791249fa5fce7dd3e1a6406dff4bf720ca085 /engines/lastexpress/helpers.h
parentc92d2bc234f2f73a9629b3622cd5e66c57439cda (diff)
downloadscummvm-rg350-86d650926f9b991b6398e4ad4b0613ac264dfbaa.tar.gz
scummvm-rg350-86d650926f9b991b6398e4ad4b0613ac264dfbaa.tar.bz2
scummvm-rg350-86d650926f9b991b6398e4ad4b0613ac264dfbaa.zip
LASTEXPRESS: Merge in the engine.
svn-id: r53579
Diffstat (limited to 'engines/lastexpress/helpers.h')
-rw-r--r--engines/lastexpress/helpers.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/engines/lastexpress/helpers.h b/engines/lastexpress/helpers.h
new file mode 100644
index 0000000000..eb54a1a3ce
--- /dev/null
+++ b/engines/lastexpress/helpers.h
@@ -0,0 +1,102 @@
+/* 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 LASTEXPRESS_HELPERS_H
+#define LASTEXPRESS_HELPERS_H
+
+//////////////////////////////////////////////////////////////////////////
+// Misc helpers
+//////////////////////////////////////////////////////////////////////////
+
+// 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()
+
+// 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);
+
+#define askForRedraw() _engine->getGraphicsManager()->change();
+#define redrawScreen() _engine->getGraphicsManager()->update(); _engine->_system->updateScreen();
+
+// Used to delete entity sequences
+#define SAFE_DELETE(_p) { if(_p) { delete (_p); (_p) = NULL; } }
+
+//////////////////////////////////////////////////////////////////////////
+// Output
+//////////////////////////////////////////////////////////////////////////
+extern const char *g_actionNames[];
+extern const char *g_directionNames[];
+extern const char *g_entityNames[];
+
+#define ACTION_NAME(action) (action > 18 ? Common::String::printf("%d", action).c_str() : g_actionNames[action])
+#define DIRECTION_NAME(direction) (direction >= 6 ? "INVALID" : g_directionNames[direction])
+#define ENTITY_NAME(index) (index >= 40 ? "INVALID" : g_entityNames[index])
+
+
+#endif // LASTEXPRESS_HELPERS_H