ScummVM API documentation
init.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 * This file is dual-licensed.
22 * In addition to the GPLv3 license mentioned above, this code is also
23 * licensed under LGPL 2.1. See LICENSES/COPYING.LGPL file for the
24 * full text of the license.
25 *
26 */
27
28#ifndef GOB_INIT_H
29#define GOB_INIT_H
30
31#include "gob/gob.h"
32#include "gob/video.h"
33
34namespace Gob {
35
36class Init {
37public:
38 Init(GobEngine *vm);
39 virtual ~Init();
40
41 virtual void initGame();
42
43 virtual void initVideo() = 0;
44
45 virtual void updateConfig();
46
47protected:
48 Video::PalDesc *_palDesc;
49 static const char *const _fontNames[4];
50 GobEngine *_vm;
51
52 void cleanup();
53 void doDemo();
54};
55
56class Init_v1 : public Init {
57public:
58 Init_v1(GobEngine *vm);
59 ~Init_v1() override;
60
61 void initVideo() override;
62};
63
64class Init_Geisha : public Init_v1 {
65public:
67 ~Init_Geisha() override;
68
69 void initVideo() override;
70};
71
72class Init_v2 : public Init_v1 {
73public:
74 Init_v2(GobEngine *vm);
75 ~Init_v2() override;
76
77 void initVideo() override;
78 void initGame() override;
79};
80
81class Init_v3 : public Init_v2 {
82public:
83 Init_v3(GobEngine *vm);
84 ~Init_v3() override;
85
86 void initVideo() override;
87 void updateConfig() override;
88};
89
90class Init_v4 : public Init_v3 {
91public:
92 Init_v4(GobEngine *vm);
93 ~Init_v4() override;
94
95 void updateConfig() override;
96};
97
98class Init_v6 : public Init_v3 {
99public:
100 Init_v6(GobEngine *vm);
101 ~Init_v6() override;
102
103 void initGame() override;
104};
105
106class Init_Fascination : public Init_v2 {
107public:
109 ~Init_Fascination() override;
110
111 void updateConfig() override;
112 void initGame() override;
113};
114
115class Init_v7 : public Init_v2 {
116public:
117 Init_v7(GobEngine *vm);
118 ~Init_v7() override;
119
120 void initGame() override;
121};
122
123} // End of namespace Gob
124
125#endif // GOB_INIT_H
Definition: gob.h:166
Definition: init.h:106
Definition: init.h:64
Definition: init.h:56
Definition: init.h:72
Definition: init.h:81
Definition: init.h:90
Definition: init.h:98
Definition: init.h:115
Definition: init.h:36
Definition: video.h:96