ScummVM API documentation
noctropolis_game.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef ACCESS_NOCTROPOLIS_NOCTROPOLIS_GAME_H
23#define ACCESS_NOCTROPOLIS_NOCTROPOLIS_GAME_H
24
25#include "access/access.h"
26
27namespace Access {
28
29namespace Noctropolis {
30
31/* _selectCommand enum values are different in Noctropolis */
32enum NoctropolisCommands {
33 kNoctCmdLook = 0, // same as MM/Amazon
34 kNoctCmdOpen = 1, // same as MM/Amazon
35 kNoctCmdMove = 2, // same as MM/Amazon
36 kNoctCmdGetTake = 3, // same as MM/Amazon
37 kNoctCmdTalk = 4, // *not* the same
38 kNoctCmdUse = 5, // *not* the same
39 kNoctCmdGoto = 6, // *not* the same
40 kNoctCmdInventory = 7,
41 kNoctCmdTravel = 8,
42 kNoctCmdOptions = 9,
43 kNoctCmdSaveLoad = 10,
44};
45
47public:
48 NoctropolisEngine(OSystem *syst, const AccessGameDescription *gameDesc);
49
51
52 void playGame() override;
53 void dead(int deathId) override;
54 void establish(int esatabIndex, int sub) override {};
55 Common::Error loadGameState(int slot) override;
56
57 int16 getScreenWidth() const override { return 640; }
58 int16 getScreenHeight() const override { return 400; }
59
60 void drawOverlays() override;
61
62 Player *_stil;
63 int _travScrollRow;
64 int _travScrollCol;
65 int _travScrollX;
66 int _travScrollY;
67 bool _loadFlag;
68 byte _minigameCurrentConfig[9];
69
70 int &_stilFlag1;
71 int &_stilFlag2;
72
73 Scripts *_invScript;
74
75 void doTravel();
76 void setStilettoPos();
77 void stilWalk();
78
79 void initMinigame();
80 void displayPegsTick();
81 void movePeg(int16 slot);
82 bool minigameIsSolved(uint rowIndex, const byte *finalRow);
83
84 // Various functions for cmdSpecial
85 void playStilMorph();
86 void flashPaletteEffect();
87 void shotoMeanwhile();
88 void showComicCover();
89 void playSuccubusSplit();
90 void playSuccubusAttack();
91 void doLastComic();
92 void doSpecialComic();
93 void doUpsell();
94 void showNightdiveCredits();
95
98
99
100protected:
101 void setupGame() override;
102 void initObjects() override;
103
108
112 Common::Path getIconPath() const override;
113
114private:
115 void doIntro();
116 void doFlashLogo();
117 void doPublisherLogo();
118 void initVariables();
119
120 void drawDeathTimer();
121};
122
123} // end namespace Noctropolis
124
125} // end namespace Access
126
127#endif // ACCESS_NOCTROPOLIS_NOCTROPOLIS_GAME_H
Definition: access.h:141
Definition: noctropolis_game.h:46
Common::Error loadGameState(int slot) override
Common::Error synchronize(Common::Serializer &s) override
Common::Path getIconPath() const override
Definition: player.h:48
Definition: scripts.h:40
Definition: error.h:81
Definition: path.h:52
Definition: serializer.h:80
Definition: system.h:166
Definition: access.h:62
Definition: detection.h:37