ScummVM API documentation
ghostroom.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/*
23* This code is based on the original source code of Lord Avalot d'Argent version 1.3.
24* Copyright (c) 1994-1995 Mike: Mark and Thomas Thurman.
25*/
26
27#ifndef AVALANCHE_GHOSTROOM_H
28#define AVALANCHE_GHOSTROOM_H
29
30#include "common/scummsys.h"
31#include "graphics/surface.h"
32
33namespace Avalanche {
34class AvalancheEngine;
35
36struct ChunkBlock {
37 Flavour _flavour;
38 int16 _x, _y;
39 int16 _width, _height;
40 int32 _size;
41};
42
43class GhostRoom {
44public:
46 ~GhostRoom();
47
48 void run();
49 ChunkBlock readChunkBlock(Common::File &file);
50
51private:
52 AvalancheEngine *_vm;
53
54 static const int8 kAdjustment[5];
55 static const byte kWaveOrder[5];
56 static const byte kGlerkFade[26];
57 static const byte kGreldetFade[18];
58
59 Common::Point dummyCoord;
60 byte ****_ghost;// [5][2][66][26]
61 Graphics::Surface _eyes[2];
62 Graphics::Surface _exclamation;
63 Graphics::Surface _bat[3];
64 byte ****_glerk; // [6][4][35][9]
65 Graphics::Surface _aargh[6];
66 Common::Point _aarghWhere[6];
67 Graphics::Surface _greenEyes[5];
68 Graphics::Surface _greldet[6][2];
69
70 int16 _batX, _batY;
71 uint16 _batCount;
72 byte _glerkStage;
73 int8 _aarghCount;
74 int16 _greldetX, _greldetY;
75 byte _greldetCount;
76 bool _redGreldet;
77 bool _wasLoaded;
78
79 void loadPictures();
80 void wait(uint16 howLong);
81 void doBat();
82 void bigGreenEyes(byte how);
83};
84
85} // End of namespace Avalanche
86
87#endif // AVALANCHE_GHOSTROOM_H
Definition: avalanche.h:78
Definition: ghostroom.h:43
Definition: file.h:47
Definition: ghostroom.h:36
Definition: rect.h:144
Definition: surface.h:67