From f771ea7082fd366a4b696e6ce2d2f4a523c72e0f Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 28 Jun 2017 15:30:59 +0200 Subject: [PATCH] Fixes emergency shuttle endgame state (#28870) --- code/modules/shuttle/emergency.dm | 14 ++------------ code/modules/shuttle/shuttle.dm | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index cf0f7403fe4..1836b479695 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -347,9 +347,7 @@ //move each escape pod (or applicable spaceship) to its corresponding transit dock for(var/A in SSshuttle.mobile) var/obj/docking_port/mobile/M = A - if(M.launch_status == UNLAUNCHED) //Pods will not launch from the mine/planet, and other ships won't launch unless we tell them to. - M.launch_status = ENDGAME_LAUNCHED - M.enterTransit() + M.on_emergency_launch() //now move the actual emergency shuttle to its transit dock var/list/areas = list() @@ -383,12 +381,7 @@ //move each escape pod to its corresponding escape dock for(var/A in SSshuttle.mobile) var/obj/docking_port/mobile/M = A - if(M.launch_status == ENDGAME_LAUNCHED) - if(istype(M, /obj/docking_port/mobile/pod)) - M.dock(SSshuttle.getDock("[M.id]_away")) //Escape pods dock at centcomm - else - M.launch_status = ENDGAME_TRANSIT - //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext + M.on_emergency_dock() // now move the actual emergency shuttle to centcomm // unless the shuttle is "hijacked" @@ -562,9 +555,6 @@ SSshuttle.emergency = current_emergency SSshuttle.backup_shuttle = src -#undef UNLAUNCHED -#undef LAUNCHED -#undef EARLY_LAUNCHED #undef TIMELEFT #undef ENGINES_START_TIME #undef ENGINES_STARTED diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 7358f97093c..3a38b1818de 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -829,4 +829,27 @@ return ..() +//Called when emergency shuttle leaves the station +/obj/docking_port/mobile/proc/on_emergency_launch() + if(launch_status == UNLAUNCHED) //Pods will not launch from the mine/planet, and other ships won't launch unless we tell them to. + launch_status = ENDGAME_LAUNCHED + enterTransit() + +/obj/docking_port/mobile/emergency/on_emergency_launch() + return + +//Called when emergency shuttle docks at centcom +/obj/docking_port/mobile/proc/on_emergency_dock() + //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext + if(launch_status == ENDGAME_LAUNCHED) + launch_status = ENDGAME_TRANSIT + +/obj/docking_port/mobile/pod/on_emergency_dock() + if(launch_status == ENDGAME_LAUNCHED) + dock(SSshuttle.getDock("[id]_away")) //Escape pods dock at centcomm + launch_status = SHUTTLE_ENDGAME + +/obj/docking_port/mobile/emergency/on_emergency_dock() + return + #undef DOCKING_PORT_HIGHLIGHT