ScummVM API documentation
releases.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 SCUMM_INSANE_REBEL1_RELEASES_H
23 #define SCUMM_INSANE_REBEL1_RELEASES_H
24 
25 #include "common/scummsys.h"
26 
27 namespace Common {
28 class SeekableReadStream;
29 }
30 
31 namespace Scumm {
32 
33 typedef int16 Rebel1TuningTable[21][3][13];
34 
36  uint32 offset; // File offset in the executable; zero uses the retail defaults.
37  uint16 levelStride;
38  uint16 difficultyStride;
39 };
40 
42  // Window ends indexed by [window][route], in ANM-local frames. Negative entries are disabled.
43  int16 attackWindows[3][3];
44  // Destination frame after the extra source frame at the splice.
45  int16 routeStartFrame;
46  bool earlyShot;
47 };
48 
49 struct Rebel1Release {
50  enum { kNumLevels = 15 };
51 
52  const char *variant;
53  // DOS executable supplying UI strings/tuning; null uses built-in defaults.
54  const char *executable;
55  const char *logo;
56  const char *introNotice;
57  const char *intro;
58  const char *ending;
59  bool chapterTransitions;
60  bool passcodes;
61  // Chapter numbers in playback order. Unused entries are zero.
62  // An empty list denotes a non-interactive demo that loops the intro.
63  byte levels[kNumLevels];
64  // Optional replacement chapter order when restored content is enabled.
65  const byte *restoredLevels;
66  // Bit N enables the target/path bonus for chapter N + 1.
67  uint16 chapterBonusMask;
68  // Early chapter 6 awards one or three tuning bonuses at 20/30 kills.
69  bool tieredAsteroidChaseBonus;
70  Rebel1TuningLayout tuning;
71  const Rebel1WalkerData *walker;
72 
73  int getLevelCount() const;
74  int findLevel(int level) const;
75  int resolvePasscodeLevel(int level) const;
76  bool readTuningData(Common::SeekableReadStream &in, Rebel1TuningTable &table) const;
77 };
78 
79 Rebel1Release getRebel1Release(const char *variant, bool restoredContent = false);
80 
81 } // End of namespace Scumm
82 
83 #endif
Definition: releases.h:35
Definition: stream.h:745
Definition: releases.h:49
Definition: releases.h:41
Definition: algorithm.h:29
Definition: actor.h:30