#include maps\_endmission; main() { // fix credits victory screen & add wait after giving mission achievements replacefunc(maps\_endmission::_nextmission, ::nextmission); } give_mission_achievement(name) { was_unlocked = achievementunlocked(name); maps\_utility::giveachievement_wrapper(name); if (!was_unlocked) { wait 4; } } nextmission(var_0) { level notify("achievements_level_complete"); if (level.script == "ending" && level._id_AC38 != "credits_1") { changelevel(""); } else { if (!isdefined(var_0)) var_0 = 0; level notify("nextmission"); level.player notify("levelComplete"); level.nextmission = 1; level.player enableinvulnerability(); if (maps\_utility::arcademode()) { level._id_AC81 = 1; thread _id_D36F::_id_AF95(); common_scripts\utility::flag_wait("arcademode_ending_complete"); } var_1 = undefined; setsaveddvar("ui_nextMission", "1"); setdvar("ui_showPopup", "0"); setdvar("ui_popupString", ""); if (level.script == "ending") { level.script = "af_chase"; nextmission(1); level.script = "ending"; } game["previous_map"] = level.script; var_1 = level.missionsettings getlevelindex(level.script); if (!(level.script == "af_chase" && var_0) && !maps\_utility::achievement_conditions("IMMORTAL")) { _func_1FC(level.script, var_1); updategamerprofileall(); maps\_endmission::check_immortal_achievement(); } maps\_gameskill::auto_adust_zone_complete("aa_main_" + level.script); if (!isdefined(var_1)) { missionsuccess(level.script); return; } if (level.script != "ending" && !(level.script == "af_chase" && var_0)) { level.player thread maps\_hud_util::fade_out(1, undefined); soundscripts\_snd::snd_message("end_mission_fade_to_black"); wait 2; maps\_utility::level_end_save(); } if (level.script != "af_chase" || var_0) { level.missionsettings setlevelcompleted(var_1); var_3 = maps\_endmission::updatesppercent(); updategamerprofile(); if (level.missionsettings hasachievement(var_1)) { give_mission_achievement(level.missionsettings getachievement(var_1)); } if (level.missionsettings haslevelveteranaward(var_1) && getlevelcompleted(var_1) == 4 && level.missionsettings check_other_haslevelveteranachievement(var_1)) { give_mission_achievement(level.missionsettings getlevelveteranaward(var_1)); } if (level.missionsettings hasmissionhardenedaward() && level.missionsettings getlowestskill() > 2) { give_mission_achievement(level.missionsettings gethardenedaward()); } level.missionsettings maps\_endmission::_id_D1B9(); var_4 = level.missionsettings.levels.size; } if (level.script == "af_chase" && var_0) return; if (level.script == "ending" && level._id_AC38 == "credits_1") common_scripts\utility::flag_wait("af_chase_nextmission"); if (level.script == "airplane" || level.script == "ending") { if (level.credits_active) { level notify("credits_ended"); credits_end(); } setsaveddvar("ui_nextMission", "0"); return; } else { var_4 = var_1 + 1; } if (getdvarint("limited_mode")) { setsaveddvar("ui_nextMission", "0"); changelevel(""); return; } if (maps\_utility::arcademode()) { if (!getdvarint("arcademode_full")) { setsaveddvar("ui_nextMission", "0"); changelevel(""); return; } if (level.script == "cargoship") { changelevel("blackout", level.missionsettings getkeepweapons(var_1)); return; } else if (level.script == "airlift") { changelevel("village_assault", level.missionsettings getkeepweapons(var_1)); return; } else if (level.script == "jeepride") { changelevel("airplane", level.missionsettings getkeepweapons(var_1)); return; } } if (level.missionsettings skipssuccess(var_1)) { changelevel(level.missionsettings getlevelname(var_4), level.missionsettings getkeepweapons(var_1)); return; } missionsuccess(level.missionsettings getlevelname(var_4), level.missionsettings getkeepweapons(var_1)); } }