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 
27 namespace Access {
28 
29 namespace Noctropolis {
30 
31 /* _selectCommand enum values are different in Noctropolis */
32 enum 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 
47 public:
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 
97  void playInventoryStinger();
98 
99 
100 protected:
101  void setupGame() override;
102  void initObjects() override;
103 
108 
109 private:
110  void doIntro();
111  void doFlashLogo();
112  void doPublisherLogo();
113  void initVariables();
114 
115  void drawDeathTimer();
116 };
117 
118 } // end namespace Noctropolis
119 
120 } // end namespace Access
121 
122 #endif // ACCESS_NOCTROPOLIS_NOCTROPOLIS_GAME_H
Definition: detection.h:35
Definition: error.h:81
Definition: access.h:141
Definition: scripts.h:40
Definition: player.h:48
Definition: serializer.h:80
Common::Error loadGameState(int slot) override
Definition: noctropolis_game.h:46
Common::Error synchronize(Common::Serializer &s) override
Definition: system.h:165
Definition: access.h:62