Move Base_control_center_explosion_time to d_level_shared_control_center_state
This commit is contained in:
parent
e58daea0da
commit
9689a7f7d2
|
@ -71,8 +71,14 @@ constexpr std::integral_constant<unsigned, 1> Num_reactors{};
|
|||
constexpr std::integral_constant<unsigned, 7> MAX_REACTORS{};
|
||||
#define DEFAULT_CONTROL_CENTER_EXPLOSION_TIME 30 // Note: Usually uses Alan_pavlish_reactor_times, but can be overridden in editor.
|
||||
|
||||
struct d_level_shared_control_center_state
|
||||
{
|
||||
int Base_control_center_explosion_time; // how long to blow up on insane
|
||||
};
|
||||
|
||||
extern d_level_shared_control_center_state LevelSharedControlCenterState;
|
||||
|
||||
extern unsigned Num_reactors;
|
||||
extern int Base_control_center_explosion_time; // how long to blow up on insane
|
||||
extern int Reactor_strength;
|
||||
|
||||
/*
|
||||
|
|
|
@ -59,7 +59,6 @@ array<reactor, MAX_REACTORS> Reactors;
|
|||
#if defined(DXX_BUILD_DESCENT_II)
|
||||
unsigned Num_reactors;
|
||||
//how long to blow up on insane
|
||||
int Base_control_center_explosion_time=DEFAULT_CONTROL_CENTER_EXPLOSION_TIME;
|
||||
int Reactor_strength=-1; //-1 mean not set by designer
|
||||
#endif
|
||||
}
|
||||
|
@ -291,6 +290,7 @@ void do_controlcen_destroyed_stuff(const imobjptridx_t objp)
|
|||
if (Current_level_num < 0)
|
||||
PHYSFS_delete(SECRETC_FILENAME);
|
||||
|
||||
const auto Base_control_center_explosion_time = LevelSharedControlCenterState.Base_control_center_explosion_time;
|
||||
if (Base_control_center_explosion_time != DEFAULT_CONTROL_CENTER_EXPLOSION_TIME)
|
||||
Total_countdown_time = Base_control_center_explosion_time + Base_control_center_explosion_time * (NDL-Difficulty_level-1)/2;
|
||||
else if (!EMULATING_D1)
|
||||
|
@ -524,6 +524,7 @@ void special_reactor_stuff()
|
|||
{
|
||||
auto &LevelUniqueControlCenterState = LevelUniqueObjectState.ControlCenterState;
|
||||
if (LevelUniqueControlCenterState.Control_center_destroyed) {
|
||||
const auto Base_control_center_explosion_time = LevelSharedControlCenterState.Base_control_center_explosion_time;
|
||||
LevelUniqueControlCenterState.Countdown_timer += i2f(Base_control_center_explosion_time + (NDL - 1 - GameUniqueState.Difficulty_level) * Base_control_center_explosion_time / (NDL - 1));
|
||||
LevelUniqueControlCenterState.Total_countdown_time = f2i(LevelUniqueControlCenterState.Countdown_timer) + 2; // Will prevent "Self destruct sequence activated" message from replaying.
|
||||
}
|
||||
|
|
|
@ -1329,9 +1329,9 @@ int load_level(
|
|||
strcpy(Current_level_palette.next().data(), DEFAULT_LEVEL_PALETTE);
|
||||
|
||||
if (Gamesave_current_version >= 3)
|
||||
Base_control_center_explosion_time = PHYSFSX_readInt(LoadFile);
|
||||
LevelSharedControlCenterState.Base_control_center_explosion_time = PHYSFSX_readInt(LoadFile);
|
||||
else
|
||||
Base_control_center_explosion_time = DEFAULT_CONTROL_CENTER_EXPLOSION_TIME;
|
||||
LevelSharedControlCenterState.Base_control_center_explosion_time = DEFAULT_CONTROL_CENTER_EXPLOSION_TIME;
|
||||
|
||||
if (Gamesave_current_version >= 4)
|
||||
Reactor_strength = PHYSFSX_readInt(LoadFile);
|
||||
|
@ -1871,7 +1871,7 @@ static int save_level_sub(
|
|||
PHYSFSX_printf(SaveFile, "%s\n", static_cast<const char *>(Current_level_palette));
|
||||
|
||||
if (Gamesave_current_version >= 3)
|
||||
PHYSFS_writeSLE32(SaveFile, Base_control_center_explosion_time);
|
||||
PHYSFS_writeSLE32(SaveFile, LevelSharedControlCenterState.Base_control_center_explosion_time);
|
||||
if (Gamesave_current_version >= 4)
|
||||
PHYSFS_writeSLE32(SaveFile, Reactor_strength);
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "vecmat.h"
|
||||
#include "inferno.h"
|
||||
#include "lighting.h"
|
||||
#include "cntrlcen.h"
|
||||
#include "effects.h"
|
||||
#include "fuelcen.h"
|
||||
#include "segment.h"
|
||||
|
@ -118,6 +119,9 @@ valptridx<managed_type>::array_managed_type::array_managed_type()
|
|||
namespace dsx {
|
||||
d_game_unique_state GameUniqueState;
|
||||
d_level_shared_boss_state LevelSharedBossState;
|
||||
#if defined(DXX_BUILD_DESCENT_II)
|
||||
d_level_shared_control_center_state LevelSharedControlCenterState;
|
||||
#endif
|
||||
d_level_unique_effects_clip_state LevelUniqueEffectsClipState;
|
||||
d_level_shared_segment_state LevelSharedSegmentState;
|
||||
d_level_unique_object_state LevelUniqueObjectState;
|
||||
|
|
Loading…
Reference in a new issue