/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * Additional copyright for this file: * Copyright (C) 1999-2000 Revolution Software Ltd. * This code is based on source code created by Revolution Software, * used with permission. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef ICB_GLOBAL_OBJECTS #define ICB_GLOBAL_OBJECTS #include "engines/icb/p4.h" #include "engines/icb/line_of_sight.h" #include "engines/icb/game_script.h" #include "engines/icb/global_objects_pc.h" namespace ICB { // Define the minimum distance an actor can be from the camera until he/she is clipped in cm const int32 g_actor_hither_plane = 100; // 1m const int32 g_actor_far_clip_plane = 8000; // 80m class res_man; // this is the main resource manager object // this remains as NULL if the engine finds no resources // There are currently physically only 2 global res_man's and 1 private res_man inside game_session extern res_man *rs1; extern res_man *rs2; extern res_man *rs3; extern res_man *private_session_resman; // But we have pointers to lots of others, so the PC & PSX can choose which res_man to use for // the different resources which need to be loaded in extern res_man *rs_bg; // pointer to which res_man to use for background buffer extern res_man *rs_icons; // pointer to which res_man to use for icons extern res_man *rs_anims; // pointer to which res_man to use for animation data extern res_man *rs_remora; // pointer to which res_man to use for remora graphics extern res_man *rs_font; // pointer to which res_man to use for font data // global test file only in this resman extern res_man *global_text_resman; extern LinkedDataFile *global_text; extern text_sprite *g_text_bloc1; extern text_sprite *g_text_bloc2; class _mission; // holds info about current mission extern _mission *g_mission; extern _stub *g_stub; // game script manager extern _game_script gs; extern _mission *g_icb_mission; extern _game_session *g_icb_session; // session objects extern _barrier_handler g_icb_session_barriers; extern _floor_world *g_icb_session_floors; extern _logic *g_logics[MAX_session_objects]; extern _mega *g_megas[MAX_voxel_list]; extern _vox_image *g_vox_images[MAX_voxel_list]; // For choosing different sessions & missions #define NUMBER_OF_MISSIONS (11) #define MAX_SESSIONS (29 * 2) #define MAX_MISSIONS (NUMBER_OF_MISSIONS * 2) extern const char *g_sessions[MAX_SESSIONS]; extern const char *g_mission_startup_names[MAX_MISSIONS]; extern const char *g_mission_names[NUMBER_OF_MISSIONS]; extern const char *g_m01; extern const char *g_m02; extern const char *g_m03; extern const char *g_m04; extern const char *g_m05; extern const char *g_m07; extern const char *g_m08; extern const char *g_m09; extern const char *g_m10; // Prop sprite brightness to use when highlighting a prop that the player could interact with extern int32 g_prop_select_r; extern int32 g_prop_select_g; extern int32 g_prop_select_b; // extra ambient brightness to use when highlighting a mega that the player could interact with extern int32 g_mega_select_r; extern int32 g_mega_select_g; extern int32 g_mega_select_b; } // End of namespace ICB #endif