int check_trigger_sub(int trigger_num, int pnum) { if (pnum == Player_num) { if (Triggers[trigger_num].flags & TRIGGER_SHIELD_DAMAGE) { Players[Player_num].shields -= Triggers[trigger_num].value; } if (Triggers[trigger_num].flags & TRIGGER_EXIT) { start_endlevel_sequence(); } if (Triggers[trigger_num].flags & TRIGGER_SECRET_EXIT) { if (Newdemo_state == ND_STATE_RECORDING) // stop demo recording Newdemo_state = ND_STATE_PAUSED; Fuelcen_control_center_destroyed = 0; #ifdef NETWORK if (Game_mode & GM_MULTI) multi_send_endlevel_start(1); #endif #ifdef NETWORK if (Game_mode & GM_NETWORK) network_do_frame(1, 1); #endif PlayerFinishedLevel(1); //1 means go to secret level return 1; } if (Triggers[trigger_num].flags & TRIGGER_ENERGY_DRAIN) { Players[Player_num].energy -= Triggers[trigger_num].value; } } if (Triggers[trigger_num].flags & TRIGGER_CONTROL_DOORS) { do_link(trigger_num); } if (Triggers[trigger_num].flags & TRIGGER_MATCEN) { if (!(Game_mode & GM_MULTI) || (Game_mode & GM_MULTI_ROBOTS)) do_matcen(trigger_num); } if (Triggers[trigger_num].flags & TRIGGER_ILLUSION_ON) { do_il_on(trigger_num); } if (Triggers[trigger_num].flags & TRIGGER_ILLUSION_OFF) { do_il_off(trigger_num); } return 0; }
int check_trigger_sub(int trigger_num, int pnum) { if (pnum == Player_num) { if (Triggers[trigger_num].flags & TRIGGER_SHIELD_DAMAGE) { Players[Player_num].shields -= Triggers[trigger_num].value; mprintf((0,"BZZT!\n")); } if (Triggers[trigger_num].flags & TRIGGER_EXIT) { start_endlevel_sequence(); mprintf((0,"WOOHOO! (leaving the mine!)\n")); } if (Triggers[trigger_num].flags & TRIGGER_SECRET_EXIT) { if (Newdemo_state == ND_STATE_RECORDING) // stop demo recording Newdemo_state = ND_STATE_PAUSED; Fuelcen_control_center_destroyed = 0; mprintf((0,"Exiting to secret level\n")); #ifdef NETWORK if (Game_mode & GM_MULTI) multi_send_endlevel_start(1); #endif #ifdef NETWORK if (Game_mode & GM_NETWORK) network_do_frame(1, 1); #endif gr_palette_fade_out(gr_palette, 32, 0); PlayerFinishedLevel(1); //1 means go to secret level return 1; } if (Triggers[trigger_num].flags & TRIGGER_ENERGY_DRAIN) { Players[Player_num].energy -= Triggers[trigger_num].value; mprintf((0,"SLURP!\n")); } } if (Triggers[trigger_num].flags & TRIGGER_CONTROL_DOORS) { mprintf((0,"D")); do_link(trigger_num); } if (Triggers[trigger_num].flags & TRIGGER_MATCEN) { if (!(Game_mode & GM_MULTI) || (Game_mode & GM_MULTI_ROBOTS)) do_matcen(trigger_num); } if (Triggers[trigger_num].flags & TRIGGER_ILLUSION_ON) { mprintf((0,"I")); do_il_on(trigger_num); } if (Triggers[trigger_num].flags & TRIGGER_ILLUSION_OFF) { // Triggers[trigger_num].time = TRIGGER_DELAY_DOOR; mprintf((0,"i")); do_il_off(trigger_num); } return 0; }