22#ifndef TETRAEDGE_GAME_GAME_H
23#define TETRAEDGE_GAME_GAME_H
25#include "common/types.h"
26#include "common/serializer.h"
27#include "common/str.h"
28#include "common/random.h"
30#include "tetraedge/game/documents_browser.h"
31#include "tetraedge/game/inventory.h"
32#include "tetraedge/game/inventory_menu.h"
33#include "tetraedge/game/in_game_scene.h"
34#include "tetraedge/game/notifier.h"
35#include "tetraedge/game/game_sound.h"
36#include "tetraedge/game/question2.h"
37#include "tetraedge/game/dialog2.h"
38#include "tetraedge/te/te_lua_gui.h"
39#include "tetraedge/te/te_music.h"
40#include "tetraedge/te/te_vector2s32.h"
59 void addNoScale2Child(
TeLayout *layout);
66 virtual void draw() = 0;
67 virtual void enter() = 0;
72 virtual void finishGame() = 0;
73 virtual void initLoadedBackupData() = 0;
74 bool isDocumentOpened();
75 bool isMouse() {
return false; }
76 bool isMoviePlaying();
79 virtual void leave(
bool flag) = 0;
82 virtual void loadUnlockedArtwork() {};
87 void playSound(
const Common::String &name,
int param_2,
float volume);
88 void removeNoScale2Child(TeLayout *layout);
90 void resumeSounds() {};
93 void setCurrentObjectSprite(
const Common::Path &spritePath);
94 bool showMarkers(
bool val);
95 bool startAnimation(
const Common::String &animName,
int loopcount,
bool reversed);
99 virtual void update() = 0;
101 InventoryMenu &inventoryMenu() {
return _inventoryMenu; }
102 Inventory &inventory() {
return _inventory; }
103 DocumentsBrowser &documentsBrowser() {
return _documentsBrowser; }
104 bool entered()
const {
return _entered; }
105 bool running()
const {
return _running; }
106 void setRunning(
bool val) { _running = val; }
107 bool luaShowOwnerError()
const {
return _luaShowOwnerError; }
109 bool _returnToMainMenu;
110 bool _firstInventory;
112 const Common::String ¤tZone()
const {
return _currentZone; }
113 const Common::String ¤tScene()
const {
return _currentScene; }
114 TeLuaScript &luaScript() {
return _luaScript; }
115 TeLuaContext &luaContext() {
return _luaContext; }
116 InGameScene &scene() {
return _scene; }
117 Dialog2 &dialog2() {
return _dialog2; }
118 Question2 &question2() {
return _question2; }
119 TeLuaGUI &forGui() {
return _forGui; }
120 TeLuaGUI &inGameGui() {
return _inGameGui; }
121 bool hasLoadName()
const {
return !_loadName.empty(); }
122 void setLoadName(
const Common::String &loadName) { _loadName = loadName; }
126 virtual bool onFinishedLoadingBackup(
const Common::String &val) {
return false; }
127 bool onInventoryButtonValidated();
128 bool onLockVideoButtonValidated();
130 bool onSkipVideoButtonValidated();
131 virtual bool onVideoFinished() = 0;
134 bool _luaShowOwnerError;
139 TeLuaGUI _setAnimGui;
143 Inventory _inventory;
144 InventoryMenu _inventoryMenu;
156 static const int NUM_OBJECTS_TAKEN_IDS = 5;
157 static const char *OBJECTS_TAKEN_IDS[NUM_OBJECTS_TAKEN_IDS];
158 bool _objectsTakenBits[NUM_OBJECTS_TAKEN_IDS];
159 int _objectsTakenVal;
161 TeTimer _playedTimer;
163 TeLuaScript _luaScript;
164 TeLuaContext _luaContext;
165 TeLuaScript _gameEnterScript;
168 DocumentsBrowser _documentsBrowser;
170 Question2 _question2;
175 TeLayout *_noScaleLayout2;
Definition: serializer.h:80
Definition: te_i_3d_object2.h:27
Definition: te_layout.h:35
Definition: te_lua_thread.h:36
Definition: te_sprite_layout.h:30