// Setup player for a brand-new ship void init_player_stats_new_ship(ubyte pnum) { int i; if (pnum == Player_num) { if (Newdemo_state == ND_STATE_RECORDING) { newdemo_record_laser_level(Players[Player_num].laser_level, 0); newdemo_record_player_weapon(0, 0); newdemo_record_player_weapon(1, 0); } Global_laser_firing_count=0; Primary_weapon = 0; Secondary_weapon = 0; dead_player_end(); //player no longer dead Player_is_dead = 0; Player_exploded = 0; Player_eggs_dropped = 0; int delete_camera = 1; #ifdef NETWORK if ((Game_mode & GM_MULTI) && (Netgame.SpawnStyle == SPAWN_STYLE_PREVIEW)) { delete_camera = 0; } #endif if(delete_camera) Dead_player_camera = 0; } Players[pnum].energy = INITIAL_ENERGY; Players[pnum].shields = StartingShields; Players[pnum].laser_level = 0; Players[pnum].killer_objnum = -1; Players[pnum].hostages_on_board = 0; for (i=0; i<MAX_PRIMARY_WEAPONS; i++) Players[pnum].primary_ammo[i] = 0; for (i=1; i<MAX_SECONDARY_WEAPONS; i++) Players[pnum].secondary_ammo[i] = 0; Players[pnum].secondary_ammo[0] = 2 + NDL - Difficulty_level; Players[pnum].primary_weapon_flags = HAS_LASER_FLAG; Players[pnum].secondary_weapon_flags = HAS_CONCUSSION_FLAG; Players[pnum].flags &= ~(PLAYER_FLAGS_QUAD_LASERS | PLAYER_FLAGS_CLOAKED | PLAYER_FLAGS_INVULNERABLE); Players[pnum].cloak_time = 0; Players[pnum].invulnerable_time = 0; Players[pnum].homing_object_dist = -F1_0; RespawningConcussions[pnum] = 0; digi_kill_sound_linked_to_object(Players[pnum].objnum); }
// Setup player for a brand-new ship void init_player_stats_new_ship() { int i; if (Newdemo_state == ND_STATE_RECORDING) { newdemo_record_laser_level(Players[Player_num].laser_level, 0); newdemo_record_player_weapon(0, 0); newdemo_record_player_weapon(1, 0); } Players[Player_num].energy = MAX_ENERGY; Players[Player_num].shields = MAX_SHIELDS; //added on 3/15/99 by Victor Rachels to maybe fix respawn-shoot Global_laser_firing_count=0; //end this section addition - VR Players[Player_num].laser_level = 0; Players[Player_num].killer_objnum = -1; Players[Player_num].hostages_on_board = 0; for (i=0; i<MAX_PRIMARY_WEAPONS; i++) Players[Player_num].primary_ammo[i] = 0; for (i=1; i<MAX_SECONDARY_WEAPONS; i++) Players[Player_num].secondary_ammo[i] = 0; Players[Player_num].secondary_ammo[0] = 2 + NDL - Difficulty_level; Players[Player_num].primary_weapon_flags = HAS_LASER_FLAG; Players[Player_num].secondary_weapon_flags = HAS_CONCUSSION_FLAG; Primary_weapon = 0; Secondary_weapon = 0; Players[Player_num].flags &= ~(PLAYER_FLAGS_QUAD_LASERS | PLAYER_FLAGS_AFTERBURNER | PLAYER_FLAGS_CLOAKED | PLAYER_FLAGS_INVULNERABLE); Players[Player_num].cloak_time = 0; Players[Player_num].invulnerable_time = 0; Player_is_dead = 0; //player no longer dead Players[Player_num].homing_object_dist = -F1_0; // Added by RH }
// ------------------------------------------------------------------------------------ //if message flag set, print message saying selected void select_weapon(int weapon_num, int secondary_flag, int print_message, int wait_for_rearm) { const char *weapon_name; if (Newdemo_state==ND_STATE_RECORDING ) newdemo_record_player_weapon(secondary_flag, weapon_num); if (!secondary_flag) { if (Primary_weapon != weapon_num) { #ifndef FUSION_KEEPS_CHARGE //added 8/6/98 by Victor Rachels to fix fusion charge bug Fusion_charge=0; //end edit - Victor Rachels #endif if (wait_for_rearm) digi_play_sample_once( SOUND_GOOD_SELECTION_PRIMARY, F1_0 ); #ifdef NETWORK if (Game_mode & GM_MULTI) { if (wait_for_rearm) multi_send_play_sound(SOUND_GOOD_SELECTION_PRIMARY, F1_0); } #endif if (wait_for_rearm) Next_laser_fire_time = GameTime64 + REARM_TIME; else Next_laser_fire_time = 0; Global_laser_firing_count = 0; } Primary_weapon = weapon_num; weapon_name = PRIMARY_WEAPON_NAMES(weapon_num); //save flag for whether was super version Primary_last_was_super[weapon_num % SUPER_WEAPON] = (weapon_num >= SUPER_WEAPON); } else { if (Secondary_weapon != weapon_num) { if (wait_for_rearm) digi_play_sample_once( SOUND_GOOD_SELECTION_SECONDARY, F1_0 ); #ifdef NETWORK if (Game_mode & GM_MULTI) { if (wait_for_rearm) multi_send_play_sound(SOUND_GOOD_SELECTION_PRIMARY, F1_0); } #endif if (wait_for_rearm) Next_missile_fire_time = GameTime64 + REARM_TIME; else Next_missile_fire_time = 0; Global_missile_firing_count = 0; } else { if (wait_for_rearm) { digi_play_sample_once( SOUND_ALREADY_SELECTED, F1_0 ); } } Secondary_weapon = weapon_num; weapon_name = SECONDARY_WEAPON_NAMES(weapon_num); //save flag for whether was super version Secondary_last_was_super[weapon_num % SUPER_WEAPON] = (weapon_num >= SUPER_WEAPON); } if (print_message) { const player *const plr = &Players[Player_num]; if (weapon_num == LASER_INDEX && !secondary_flag) HUD_init_message(HM_DEFAULT, "%s Level %d selected (energy=%i)!", weapon_name, plr->laser_level+1, f2i(plr->energy)); else if (!secondary_flag && (weapon_num == 1 || weapon_num == 6)) HUD_init_message(HM_DEFAULT, "%s selected (ammo=%i/%i)!", weapon_name, PRINTABLE_VULCAN_AMMO(plr->primary_ammo[1]), PRINTABLE_VULCAN_AMMO(CURRENT_VULCAN_AMMO_CAPACITY(Player_num))); else if (!secondary_flag) HUD_init_message(HM_DEFAULT, "%s selected (energy=%i)!", weapon_name, f2i(plr->energy)); else HUD_init_message(HM_DEFAULT, "%s selected (count=%i)!", weapon_name, plr->secondary_ammo[weapon_num]); } }