ScummVM API documentation
global_objects.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 * Additional copyright for this file:
8 * Copyright (C) 1999-2000 Revolution Software Ltd.
9 * This code is based on source code created by Revolution Software,
10 * used with permission.
11 *
12 * This program is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation, either version 3 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 *
25 */
26
27#ifndef ICB_GLOBAL_OBJECTS
28#define ICB_GLOBAL_OBJECTS
29
30#include "engines/icb/p4.h"
31#include "engines/icb/line_of_sight.h"
32#include "engines/icb/game_script.h"
33#include "engines/icb/global_objects_pc.h"
34
35namespace ICB {
36
37// Define the minimum distance an actor can be from the camera until he/she is clipped in cm
38const int32 g_actor_hither_plane = 100; // 1m
39const int32 g_actor_far_clip_plane = 8000; // 80m
40
41class res_man;
42// this is the main resource manager object
43// this remains as NULL if the engine finds no resources
44// There are currently physically only 2 global res_man's and 1 private res_man inside game_session
45extern res_man *rs1;
46extern res_man *rs2;
47extern res_man *rs3;
48
49extern res_man *private_session_resman;
50
51// But we have pointers to lots of others, so the PC & PSX can choose which res_man to use for
52// the different resources which need to be loaded in
53extern res_man *rs_bg; // pointer to which res_man to use for background buffer
54extern res_man *rs_icons; // pointer to which res_man to use for icons
55extern res_man *rs_anims; // pointer to which res_man to use for animation data
56extern res_man *rs_remora; // pointer to which res_man to use for remora graphics
57extern res_man *rs_font; // pointer to which res_man to use for font data
58
59// global test file only in this resman
60extern res_man *global_text_resman;
61extern LinkedDataFile *global_text;
62
63extern text_sprite *g_text_bloc1;
64extern text_sprite *g_text_bloc2;
65
66class _mission;
67// holds info about current mission
68extern _mission *g_mission;
69
70extern _stub *g_stub;
71
72// game script manager
73extern _game_script gs;
74
75extern _mission *g_icb_mission;
76extern _game_session *g_icb_session;
77
78// session objects
79extern _barrier_handler g_icb_session_barriers;
80extern _floor_world *g_icb_session_floors;
81extern _logic *g_logics[MAX_session_objects];
82extern _mega *g_megas[MAX_voxel_list];
83extern _vox_image *g_vox_images[MAX_voxel_list];
84
85// For choosing different sessions & missions
86#define NUMBER_OF_MISSIONS (11)
87#define MAX_SESSIONS (29 * 2)
88#define MAX_MISSIONS (NUMBER_OF_MISSIONS * 2)
89
90extern const char *g_sessions[MAX_SESSIONS];
91extern const char *g_mission_startup_names[MAX_MISSIONS];
92extern const char *g_mission_names[NUMBER_OF_MISSIONS];
93
94extern const char *g_m01;
95extern const char *g_m02;
96extern const char *g_m03;
97extern const char *g_m04;
98extern const char *g_m05;
99extern const char *g_m07;
100extern const char *g_m08;
101extern const char *g_m09;
102extern const char *g_m10;
103
104// Prop sprite brightness to use when highlighting a prop that the player could interact with
105extern int32 g_prop_select_r;
106extern int32 g_prop_select_g;
107extern int32 g_prop_select_b;
108
109// extra ambient brightness to use when highlighting a mega that the player could interact with
110extern int32 g_mega_select_r;
111extern int32 g_mega_select_g;
112extern int32 g_mega_select_b;
113
114} // End of namespace ICB
115
116#endif