31 #define SUPERNOVA_SOUND_1_TIME 15.0f
32 #define SUPERNOVA_SOUND_2_TIME 5.0f
37 static float Supernova_time_total = -1.0f;
38 static float Supernova_time = -1.0f;
39 static int Supernova_finished = 0;
40 static int Supernova_popup = 0;
41 static float Supernova_fade_to_white = 0.0f;
42 static int Supernova_particle_stamp = -1;
53 Supernova_time_total = -1.0f;
54 Supernova_time = -1.0f;
55 Supernova_finished = 0;
56 Supernova_fade_to_white = 0.0f;
58 Supernova_particle_stamp = -1;
79 Supernova_time_total = (
float)seconds;
80 Supernova_time = (
float)seconds;
81 Supernova_finished = 0;
82 Supernova_fade_to_white = 0.0f;
84 Supernova_particle_stamp = -1;
108 Supernova_time_total = -1.0f;
109 Supernova_time = -1.0f;
110 Supernova_finished = 0;
112 Supernova_fade_to_white = 0.0f;
113 Supernova_particle_stamp = -1;
120 DCF_INT2(sn_part,
sn_particles, 0, INT_MAX,
"Sets number of supernova particles (default is 100)");
126 vec3d norm, sun_temp;
134 if((Supernova_particle_stamp == -1) ||
timestamp_elapsed(Supernova_particle_stamp)) {
155 for(idx=0; idx<10; idx++) {
182 DCF_FLOAT2(sn_shud,
sn_shudder, 0.0, FLT_MAX,
"Sets camera shudder rate for being in supernova shockwave (default is 0.45)");
210 if((sn_stage >= 2) && (sn_stage != 5)) {
215 if(Supernova_time < 0.0
f) {
216 Supernova_finished = 1;
221 if(!Supernova_popup) {
233 Supernova_finished = 2;
248 if(Supernova_finished == 1) {
252 if(Supernova_finished == 2) {
258 if( (Supernova_time_total <= 0.0
f) || (Supernova_time <= 0.0
f) ) {
281 return Supernova_time;
292 return (Supernova_time_total - Supernova_time) / Supernova_time_total;
315 DCF_FLOAT2(sn_dist,
sn_distance, 0.0, FLT_MAX,
"Sets supernova shockwave distance (default is 300.0f)");
323 vec3d Supernova_camera_pos;
324 static matrix Supernova_camera_orient;
327 vec3d sun_temp, sun_vec;
343 *eye_pos = Supernova_camera_pos;
349 *eye_orient = Supernova_camera_orient;
363 vm_vec_sub(&view, &at, &Supernova_camera_pos);
367 *eye_orient = Supernova_camera_orient;
int timestamp(int delta_ms)
int Cmdline_old_collision_sys
#define SUPERNOVA_CUT_TIME
float supernova_pct_complete()
void vm_vec_scale_add(vec3d *dest, const vec3d *src1, const vec3d *src2, float k)
SCP_vector< game_snd > Snds
#define SUPERNOVA_STARTED
#define SUPERNOVA_SOUND_1_TIME
void supernova_level_init()
DCF_INT2(sn_part, sn_particles, 0, INT_MAX,"Sets number of supernova particles (default is 100)")
void vm_vec_scale_add2(vec3d *dest, const vec3d *src, float k)
void particle_emit(particle_emitter *pe, int type, int optional_data, float range)
#define SUPERNOVA_SOUND_2_TIME
void supernova_get_eye(vec3d *eye_pos, matrix *eye_orient)
int Supernova_sound_1_played
DCF_FLOAT2(sn_shud, sn_shudder, 0.0, FLT_MAX,"Sets camera shudder rate for being in supernova shockwave (default is 0.45)")
float supernova_time_left()
matrix * vm_vector_2_matrix(matrix *m, const vec3d *fvec, const vec3d *uvec, const vec3d *rvec)
void vm_vec_add2(vec3d *dest, const vec3d *src)
int supernova_camera_cut()
struct matrix::@228::@230 vec
void vm_vec_scale(vec3d *dest, float s)
GLboolean GLboolean GLboolean GLboolean a
int snd_play(game_snd *gs, float pan, float vol_scale, int priority, bool is_voice_msg)
vec3d * vm_vec_unrotate(vec3d *dest, const vec3d *src, const matrix *m)
void submodel_get_two_random_points(int model_num, int submodel_num, vec3d *v1, vec3d *v2, vec3d *n1=NULL, vec3d *n2=NULL)
#define SND_PRIORITY_MUST_PLAY
void vm_vec_sub(vec3d *dest, const vec3d *src0, const vec3d *src1)
void supernova_start(int seconds)
GLboolean GLboolean GLboolean b
typedef float(SCP_EXT_CALLCONV *SCPTRACKIR_PFFLOATVOID)()
void stars_get_sun_pos(int sun_n, vec3d *pos)
void submodel_get_two_random_points_better(int model_num, int submodel_num, vec3d *v1, vec3d *v2)
int Campaign_ending_via_supernova
An overhauled/updated debug console to allow monitoring, testing, and general debugging of new featur...
SCP_vector< ship_info > Ship_info
#define timestamp_elapsed(stamp)
void gameseq_post_event(int event)
#define SUPERNOVA_FADE_TO_WHITE_TIME
int Supernova_sound_2_played
void supernova_do_particles()
#define SUPERNOVA_CAMERA_MOVE_TIME
float vm_vec_normalize(vec3d *v)