mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
179 lines
6.3 KiB
C++
179 lines
6.3 KiB
C++
/* ResidualVM - A 3D game interpreter
|
|
*
|
|
* ResidualVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the AUTHORS
|
|
* 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 2
|
|
* 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, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
// global objects are in here - this makes it easier to see what there is
|
|
#include "engines/icb/global_objects.h"
|
|
#include "engines/icb/sound_logic.h"
|
|
|
|
namespace ICB {
|
|
|
|
int32 globalCharSpacing = 0;
|
|
|
|
// Prop sprite brightness to use when highlighting a prop that the player could interact with
|
|
int32 g_prop_select_r = 200;
|
|
int32 g_prop_select_g = 200;
|
|
int32 g_prop_select_b = 200;
|
|
|
|
// extra ambient brightness to use when highlighting a mega that the player could interact with
|
|
int32 g_mega_select_r = 200;
|
|
int32 g_mega_select_g = 200;
|
|
int32 g_mega_select_b = 200;
|
|
|
|
// holds info about current mission
|
|
_mission *g_mission = NULL;
|
|
|
|
// main buffer object
|
|
// if this remains NULL then the system knows that there are no resources present
|
|
// this should be used as a high level indication of the situation
|
|
res_man *rs1 = NULL;
|
|
res_man *rs2 = NULL;
|
|
res_man *rs3 = NULL;
|
|
|
|
res_man *private_session_resman = NULL;
|
|
|
|
res_man *rs_bg = NULL; // pointer to which res_man to use for background buffer
|
|
res_man *rs_icons = NULL; // pointer to which res_man to use for icons
|
|
res_man *rs_anims = NULL; // pointer to which res_man to use for animation data
|
|
res_man *rs_remora = NULL; // pointer to which res_man to use for remora graphics
|
|
res_man *rs_font = NULL; // pointer to which res_man to use for font data
|
|
|
|
// global test only
|
|
res_man *global_text_resman = NULL;
|
|
_linked_data_file *global_text;
|
|
|
|
// route-manager service object
|
|
// doesnt depend on session specific extrernal data so we make it global service
|
|
// gets reset by the session constructor
|
|
// the service exists to facilitate and coordinate the movement of non player characters - the player object has its own stuff
|
|
//_route_manager router;
|
|
|
|
// speech
|
|
text_sprite *g_text_bloc1;
|
|
|
|
// pc has extra bloc for remora, etc.
|
|
text_sprite *g_text_bloc2;
|
|
|
|
_mission *g_icb_mission;
|
|
_game_session *g_icb_session;
|
|
|
|
// session objects
|
|
_barrier_handler g_icb_session_barriers;
|
|
_floor_world *g_icb_session_floors;
|
|
_logic *g_logics[MAX_session_objects];
|
|
_mega *g_megas[MAX_voxel_list];
|
|
_vox_image *g_vox_images[MAX_voxel_list];
|
|
|
|
// master modes
|
|
_stub *g_stub;
|
|
|
|
// game script manager
|
|
_game_script gs;
|
|
|
|
class _remora;
|
|
class _icon_menu;
|
|
class _icon_list_manager;
|
|
// These objects are now all declared in one place because the order of creation matters.
|
|
_event_manager *g_oEventManager;
|
|
_line_of_sight *g_oLineOfSight;
|
|
_icon_menu *g_oIconMenu;
|
|
_icon_list_manager *g_oIconListManager;
|
|
_remora *g_oRemora;
|
|
_sound_logic *g_oSoundLogicEngine;
|
|
|
|
// Mission strings for the options menus (harmonised for PC and PSX)
|
|
|
|
const char *g_m01 = "m01_investigate_mine";
|
|
const char *g_m02 = "m02_security_hq";
|
|
const char *g_m03 = "m03_land_train";
|
|
const char *g_m04 = "m04_raid_on_containment";
|
|
const char *g_m05 = "m05_sabotage_refinery";
|
|
const char *g_m07 = "m07_mainland_base";
|
|
const char *g_m08 = "m08_entering_island_base";
|
|
const char *g_m09 = "m09_escape_island_base";
|
|
const char *g_m10 = "m10_submarine";
|
|
|
|
// The collection of possible missions including the session to start for each mission
|
|
const char *g_mission_startup_names[MAX_MISSIONS] = {
|
|
"m01_investigate_mine", "office_building",
|
|
"m02_security_hq", "basement",
|
|
"m03_land_train", "car_5",
|
|
"m04_raid_on_containment", "level_alphabeta",
|
|
"m05_sabotage_refinery", "m5_mine",
|
|
"m07_mainland_base", "compound",
|
|
"m08_entering_island_base", "cable_car_dock",
|
|
"m08_entering_island_base", "security",
|
|
"m10_submarine", "submarine",
|
|
"m_ed", "2_ship",
|
|
"test_mission", "test_session"
|
|
};
|
|
|
|
const char *g_mission_names[NUMBER_OF_MISSIONS] = {
|
|
"m01_investigate_mine",
|
|
"m02_security_hq",
|
|
"m03_land_train",
|
|
"m04_raid_on_containment",
|
|
"m05_sabotage_refinery",
|
|
"m07_mainland_base",
|
|
"m08_entering_island_base",
|
|
"m08_entering_island_base",
|
|
"m10_submarine",
|
|
"m_ed",
|
|
"test_mission"
|
|
};
|
|
|
|
const char *g_sessions[MAX_SESSIONS] = {"m01_investigate_mine", "mine",
|
|
"m01_investigate_mine", "mineworkings",
|
|
"m01_investigate_mine", "office_building",
|
|
"m02_security_hq", "basement",
|
|
"m02_security_hq", "ground_floor",
|
|
"m02_security_hq", "first_floor",
|
|
"m03_land_train", "car_1",
|
|
"m03_land_train", "car_2",
|
|
"m03_land_train", "car_3",
|
|
"m03_land_train", "car_4",
|
|
"m03_land_train", "car_5",
|
|
"m04_raid_on_containment", "level_alphabeta",
|
|
"m04_raid_on_containment", "level_kappa",
|
|
"m04_raid_on_containment", "level_omega",
|
|
"m05_sabotage_refinery", "m5_mine",
|
|
"m05_sabotage_refinery", "m5_office_building",
|
|
"m05_sabotage_refinery", "refinery",
|
|
"m07_mainland_base", "compound",
|
|
"m07_mainland_base", "monorail__station",
|
|
"m07_mainland_base", "cable_car_building",
|
|
"m08_entering_island_base", "cable_car_dock",
|
|
"m08_entering_island_base", "manufacturing",
|
|
"m08_entering_island_base", "quayside",
|
|
"m08_entering_island_base", "reactor",
|
|
"m08_entering_island_base", "security",
|
|
"m10_submarine", "submarine",
|
|
"test_mission", "test_mission",
|
|
"test_mission", "test_session_2",
|
|
"m_ed", "2_ship"};
|
|
|
|
} // End of namespace ICB
|