ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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 
35 namespace ICB {
36 
37 // Define the minimum distance an actor can be from the camera until he/she is clipped in cm
38 const int32 g_actor_hither_plane = 100; // 1m
39 const int32 g_actor_far_clip_plane = 8000; // 80m
40 
41 class 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
45 extern res_man *rs1;
46 extern res_man *rs2;
47 extern res_man *rs3;
48 
49 extern 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
53 extern res_man *rs_bg; // pointer to which res_man to use for background buffer
54 extern res_man *rs_icons; // pointer to which res_man to use for icons
55 extern res_man *rs_anims; // pointer to which res_man to use for animation data
56 extern res_man *rs_remora; // pointer to which res_man to use for remora graphics
57 extern res_man *rs_font; // pointer to which res_man to use for font data
58 
59 // global test file only in this resman
60 extern res_man *global_text_resman;
61 extern LinkedDataFile *global_text;
62 
63 extern text_sprite *g_text_bloc1;
64 extern text_sprite *g_text_bloc2;
65 
66 class _mission;
67 // holds info about current mission
68 extern _mission *g_mission;
69 
70 extern _stub *g_stub;
71 
72 // game script manager
73 extern _game_script gs;
74 
75 extern _mission *g_icb_mission;
76 extern _game_session *g_icb_session;
77 
78 // session objects
79 extern _barrier_handler g_icb_session_barriers;
80 extern _floor_world *g_icb_session_floors;
81 extern _logic *g_logics[MAX_session_objects];
82 extern _mega *g_megas[MAX_voxel_list];
83 extern _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 
90 extern const char *g_sessions[MAX_SESSIONS];
91 extern const char *g_mission_startup_names[MAX_MISSIONS];
92 extern const char *g_mission_names[NUMBER_OF_MISSIONS];
93 
94 extern const char *g_m01;
95 extern const char *g_m02;
96 extern const char *g_m03;
97 extern const char *g_m04;
98 extern const char *g_m05;
99 extern const char *g_m07;
100 extern const char *g_m08;
101 extern const char *g_m09;
102 extern const char *g_m10;
103 
104 // Prop sprite brightness to use when highlighting a prop that the player could interact with
105 extern int32 g_prop_select_r;
106 extern int32 g_prop_select_g;
107 extern int32 g_prop_select_b;
108 
109 // extra ambient brightness to use when highlighting a mega that the player could interact with
110 extern int32 g_mega_select_r;
111 extern int32 g_mega_select_g;
112 extern int32 g_mega_select_b;
113 
114 } // End of namespace ICB
115 
116 #endif
Definition: actor.h:32