Generalizes embedded program

This commit is contained in:
mwerezak
2014-06-09 23:05:58 -04:00
parent 0d95d0aad3
commit 32ba5903b4
3 changed files with 38 additions and 27 deletions
@@ -5,13 +5,13 @@
#define STATE_DOCKED 3
/datum/computer/file/embedded_program/docking_port
/datum/computer/file/embedded_program/airlock/docking
var/tag_target //the tag of the docking controller that we are trying to dock with
var/airlock_override = 0 //allows use of the docking port as a normal airlock (normally this is only allowed in STATE_UNDOCKED)
var/dock_state = STATE_UNDOCKED
var/dock_master = 0 //are we the initiator of the dock?
/datum/computer/file/embedded_program/docking_port/receive_signal(datum/signal/signal, receive_method, receive_param)
/datum/computer/file/embedded_program/airlock/docking/receive_signal(datum/signal/signal, receive_method, receive_param)
var/receive_tag = signal.data["tag"] //for docking signals, this is the sender id
var/command = signal.data["command"]
var/recipient = signal.data["recipient"]
@@ -53,11 +53,11 @@
..()
/datum/computer/file/embedded_program/docking_port/receive_user_command(command)
/datum/computer/file/embedded_program/airlock/docking/receive_user_command(command)
if (state == STATE_UNDOCKED || airlock_override)
..(command)
/datum/computer/file/embedded_program/docking_port/process()
/datum/computer/file/embedded_program/airlock/docking/process()
..() //process regular airlock stuff first
switch(dock_state)
@@ -81,17 +81,17 @@
dock_master = 0
tag_target = null
/datum/computer/file/embedded_program/docking_port/cycleDoors(var/target)
/datum/computer/file/embedded_program/airlock/docking/cycleDoors(var/target)
if (state == STATE_UNDOCKED || airlock_override)
..(target)
//get the docking port into a good state for docking.
/datum/computer/file/embedded_program/docking_port/proc/begin_dock()
/datum/computer/file/embedded_program/airlock/docking/proc/begin_dock()
dock_state = STATE_DOCKING
begin_cycle_in()
//get the docking port into a good state for undocking.
/datum/computer/file/embedded_program/docking_port/proc/begin_undock()
/datum/computer/file/embedded_program/airlock/docking/proc/begin_undock()
dock_state = STATE_UNDOCKING
stop_cycling()
@@ -99,9 +99,14 @@
toggleDoor(memory["interior_status"], tag_interior_door, memory["secure"], "close")
toggleDoor(memory["exterior_status"], tag_exterior_door, memory["secure"], "close")
/datum/computer/file/embedded_program/docking_port/proc/send_docking_command(var/recipient, var/command)
/datum/computer/file/embedded_program/airlock/docking/proc/send_docking_command(var/recipient, var/command)
var/datum/signal/signal = new
signal.data["tag"] = id_tag
signal.data["command"] = command
signal.data["recipient"] = recipient
post_signal(signal)
#undef STATE_UNDOCKED
#undef STATE_DOCKING
#undef STATE_UNDOCKING
#undef STATE_DOCKED