ScummVM API documentation
scene.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 * Scene parsing defines
21 */
22
23#ifndef TINSEL_SCENE_H
24#define TINSEL_SCENE_H
25
26#include "tinsel/dw.h"
27#include "tinsel/events.h"
28
29namespace Tinsel {
30
31enum {
32 MAX_NODES = 32,
35 MAX_POLY = 256,
36 MAX_ACTOR = 32
37};
38
39// ENTRANCE_STRUC bitflags
40enum ENTRANCE_FLAGS {
41 fCall = 0x00000001L,
42 fHook = 0x00000002L
43};
44
46enum REFTYPE {
47 REF_DEFAULT, REF_UP, REF_DOWN, REF_LEFT, REF_RIGHT, REF_POINT
48};
49
50enum TFTYPE {
51 TF_NONE, TF_UP, TF_DOWN, TF_LEFT, TF_RIGHT, TF_FILM
52};
53
56 ACT_DEFAULT,
57 ACT_MASK = -1,
58 ACT_ALWAYS = -2
59};
60
62enum SCALE {
63 SCALE_DEFAULT, SCALE_LARGE, SCALE_MEDIUM, SCALE_SMALL,
64 SCALE_COMPACT, SCALE_TINY,
65 SCALE_AUX1, SCALE_AUX2, SCALE_AUX3,
66 SCALE_AUX4, SCALE_AUX5
67};
68
70enum REEL {
71 REEL_DEFAULT, REEL_ALL, REEL_HORIZ, REEL_VERT
72};
73
74typedef enum { TRANS_DEF, TRANS_CUT, TRANS_FADE } TRANSITS;
75
76// amount to shift scene handles by
77#define SCNHANDLE_SHIFT (((TinselVersion >= 2) && !TinselV2Demo) ? 25 : 23)
78#define OFFSETMASK (((TinselVersion >= 2) && !TinselV2Demo) ? 0x01ffffffL : 0x007fffffL)
79#define HANDLEMASK (((TinselVersion >= 2) && !TinselV2Demo) ? 0xFE000000L : 0xFF800000L)
80
81void DoHailScene(SCNHANDLE scene);
82
83void WrapScene();
84
85void StartNewScene(SCNHANDLE scene, int entry);
86
87void EndScene();
88
89void SendSceneTinselProcess(TINSEL_EVENT event);
90
91void SetView(int id, int scale);
92
93bool InDw1Intro();
94void EndDw1Intro();
95void ResetDw1Intro();
96bool WasDw1IntroSkipped();
97
98} // End of namespace Tinsel
99
100#endif // TINSEL_SCENE_H
Definition: actors.h:36
SCALE
Definition: scene.h:62
@ MAX_POLY
maximum number of polygons in a scene
Definition: scene.h:35
@ MAX_NOSCROLL
maximum number of NoScroll commands in a scene
Definition: scene.h:33
@ MAX_NODES
maximum nodes in a Node Path
Definition: scene.h:32
@ MAX_ENTRANCE
maximum number of entrances in a scene
Definition: scene.h:34
@ MAX_ACTOR
maximum number of actors in a scene
Definition: scene.h:36
uint32 SCNHANDLE
Definition: dw.h:31
MASK_TYPE
Definition: scene.h:55
REFTYPE
Definition: scene.h:46
REEL
Definition: scene.h:70
TINSEL_EVENT
Definition: events.h:91