Move Control_center_next_fire_time to d_level_unique_control_center_state
This commit is contained in:
parent
885296b136
commit
195f5e7d9f
|
@ -105,7 +105,6 @@ static inline reactor &get_reactor_definition(int id)
|
||||||
|
|
||||||
namespace dcx {
|
namespace dcx {
|
||||||
//@@extern int N_controlcen_guns;
|
//@@extern int N_controlcen_guns;
|
||||||
extern int Control_center_next_fire_time;
|
|
||||||
extern int Control_center_present;
|
extern int Control_center_present;
|
||||||
extern objnum_t Dead_controlcen_object_num;
|
extern objnum_t Dead_controlcen_object_num;
|
||||||
}
|
}
|
||||||
|
|
|
@ -571,6 +571,7 @@ struct d_level_unique_control_center_state
|
||||||
uint8_t Control_center_been_hit;
|
uint8_t Control_center_been_hit;
|
||||||
int Countdown_seconds_left;
|
int Countdown_seconds_left;
|
||||||
fix Countdown_timer;
|
fix Countdown_timer;
|
||||||
|
fix Control_center_next_fire_time;
|
||||||
int Total_countdown_time; //in whole seconds
|
int Total_countdown_time; //in whole seconds
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,6 @@ control_center_triggers ControlCenterTriggers;
|
||||||
namespace dcx {
|
namespace dcx {
|
||||||
|
|
||||||
player_visibility_state Control_center_player_been_seen;
|
player_visibility_state Control_center_player_been_seen;
|
||||||
int Control_center_next_fire_time;
|
|
||||||
int Control_center_present;
|
int Control_center_present;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -365,7 +364,7 @@ void do_controlcen_frame(const vmobjptridx_t obj)
|
||||||
auto dist_to_player = vm_vec_normalize_quick(vec_to_player);
|
auto dist_to_player = vm_vec_normalize_quick(vec_to_player);
|
||||||
if (dist_to_player < F1_0*200) {
|
if (dist_to_player < F1_0*200) {
|
||||||
Control_center_player_been_seen = player_is_visible_from_object(obj, obj->pos, 0, vec_to_player);
|
Control_center_player_been_seen = player_is_visible_from_object(obj, obj->pos, 0, vec_to_player);
|
||||||
Control_center_next_fire_time = 0;
|
LevelUniqueControlCenterState.Control_center_next_fire_time = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -397,7 +396,8 @@ void do_controlcen_frame(const vmobjptridx_t obj)
|
||||||
else
|
else
|
||||||
controlcen_death_silence = 0;
|
controlcen_death_silence = 0;
|
||||||
|
|
||||||
if ((Control_center_next_fire_time < 0) && !(controlcen_death_silence > F1_0*2)) {
|
if (LevelUniqueControlCenterState.Control_center_next_fire_time < 0 && !(controlcen_death_silence > F1_0*2))
|
||||||
|
{
|
||||||
auto &player_info = plrobj.ctype.player_info;
|
auto &player_info = plrobj.ctype.player_info;
|
||||||
const auto &player_pos = (player_info.powerup_flags & PLAYER_FLAGS_CLOAKED) ? Believed_player_pos : ConsoleObject->pos;
|
const auto &player_pos = (player_info.powerup_flags & PLAYER_FLAGS_CLOAKED) ? Believed_player_pos : ConsoleObject->pos;
|
||||||
best_gun_num = calc_best_gun(
|
best_gun_num = calc_best_gun(
|
||||||
|
@ -453,12 +453,11 @@ void do_controlcen_frame(const vmobjptridx_t obj)
|
||||||
if (Game_mode & GM_MULTI) // slow down rate of fire in multi player
|
if (Game_mode & GM_MULTI) // slow down rate of fire in multi player
|
||||||
delta_fire_time *= 2;
|
delta_fire_time *= 2;
|
||||||
|
|
||||||
Control_center_next_fire_time = delta_fire_time;
|
LevelUniqueControlCenterState.Control_center_next_fire_time = delta_fire_time;
|
||||||
|
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
Control_center_next_fire_time -= FrameTime;
|
LevelUniqueControlCenterState.Control_center_next_fire_time -= FrameTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@ -533,7 +532,7 @@ void init_controlcen_for_level(void)
|
||||||
// Say the control center has not yet been hit.
|
// Say the control center has not yet been hit.
|
||||||
LevelUniqueControlCenterState.Control_center_been_hit = 0;
|
LevelUniqueControlCenterState.Control_center_been_hit = 0;
|
||||||
Control_center_player_been_seen = player_visibility_state::no_line_of_sight;
|
Control_center_player_been_seen = player_visibility_state::no_line_of_sight;
|
||||||
Control_center_next_fire_time = 0;
|
LevelUniqueControlCenterState.Control_center_next_fire_time = 0;
|
||||||
|
|
||||||
Dead_controlcen_object_num = object_none;
|
Dead_controlcen_object_num = object_none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1237,7 +1237,7 @@ int state_save_all_sub(const char *filename, const char *desc)
|
||||||
const auto cc = static_cast<int>(Control_center_player_been_seen);
|
const auto cc = static_cast<int>(Control_center_player_been_seen);
|
||||||
PHYSFS_write(fp, &cc, sizeof(int), 1);
|
PHYSFS_write(fp, &cc, sizeof(int), 1);
|
||||||
}
|
}
|
||||||
PHYSFS_write(fp, &Control_center_next_fire_time, sizeof(int), 1);
|
PHYSFS_write(fp, &LevelUniqueControlCenterState.Control_center_next_fire_time, sizeof(int), 1);
|
||||||
PHYSFS_write(fp, &Control_center_present, sizeof(int), 1);
|
PHYSFS_write(fp, &Control_center_present, sizeof(int), 1);
|
||||||
int dead_controlcen_object_num = Dead_controlcen_object_num == object_none ? -1 : Dead_controlcen_object_num;
|
int dead_controlcen_object_num = Dead_controlcen_object_num == object_none ? -1 : Dead_controlcen_object_num;
|
||||||
PHYSFS_write(fp, &dead_controlcen_object_num, sizeof(int), 1);
|
PHYSFS_write(fp, &dead_controlcen_object_num, sizeof(int), 1);
|
||||||
|
@ -1861,7 +1861,7 @@ int state_restore_all_sub(const d_level_shared_destructible_light_state &LevelSh
|
||||||
const int cc = PHYSFSX_readSXE32(fp, swap);
|
const int cc = PHYSFSX_readSXE32(fp, swap);
|
||||||
Control_center_player_been_seen = static_cast<player_visibility_state>(cc);
|
Control_center_player_been_seen = static_cast<player_visibility_state>(cc);
|
||||||
}
|
}
|
||||||
Control_center_next_fire_time = PHYSFSX_readSXE32(fp, swap);
|
LevelUniqueControlCenterState.Control_center_next_fire_time = PHYSFSX_readSXE32(fp, swap);
|
||||||
Control_center_present = PHYSFSX_readSXE32(fp, swap);
|
Control_center_present = PHYSFSX_readSXE32(fp, swap);
|
||||||
Dead_controlcen_object_num = PHYSFSX_readSXE32(fp, swap);
|
Dead_controlcen_object_num = PHYSFSX_readSXE32(fp, swap);
|
||||||
if (LevelUniqueControlCenterState.Control_center_destroyed)
|
if (LevelUniqueControlCenterState.Control_center_destroyed)
|
||||||
|
|
Loading…
Reference in a new issue