diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index b25e86a8579..84b25c97d17 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -233,7 +233,6 @@ #define isdiona(A) (is_species(A, /datum/species/diona)) #define ismachineperson(A) (is_species(A, /datum/species/machine)) #define isdrask(A) (is_species(A, /datum/species/drask)) -#define iswryn(A) (is_species(A, /datum/species/wryn)) #define ismoth(A) (is_species(A, /datum/species/moth)) #define isanimal(A) (istype((A), /mob/living/simple_animal)) diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm index 5f0519e2203..f369cc8a984 100644 --- a/code/modules/client/preference/character.dm +++ b/code/modules/client/preference/character.dm @@ -572,7 +572,7 @@ s_tone = random_skin_tone(species) h_style = random_hair_style(gender, species, robohead) f_style = random_facial_hair_style(gender, species, robohead) - if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) randomize_hair_color("hair") randomize_hair_color("facial") if(S.bodyflags & HAS_HEAD_ACCESSORY) diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm index f627d0c5699..ce8c662f443 100644 --- a/code/modules/client/preference/link_processing.dm +++ b/code/modules/client/preference/link_processing.dm @@ -137,18 +137,18 @@ if("age") active_character.age = rand(AGE_MIN, AGE_MAX) if("hair") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.h_colour = rand_hex_color() if("secondary_hair") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.h_sec_colour = rand_hex_color() if("h_style") active_character.h_style = random_hair_style(active_character.gender, active_character.species, robohead) if("facial") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.f_colour = rand_hex_color() if("secondary_facial") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.f_sec_colour = rand_hex_color() if("f_style") active_character.f_style = random_facial_hair_style(active_character.gender, active_character.species, robohead) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 78959bc4e08..b223d8a4570 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -114,7 +114,7 @@ //Set species_restricted list switch(target_species) if("Human", "Skrell") //humanoid bodytypes - species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Wryn","Drask") + species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Drask") else species_restricted = list(target_species) @@ -635,7 +635,6 @@ BLIND // can't see anything min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - species_restricted = list("exclude","Wryn") flash_protect = FLASH_PROTECTION_WELDER strip_delay = 50 put_on_delay = 50 @@ -665,7 +664,6 @@ BLIND // can't see anything put_on_delay = 80 resistance_flags = NONE hide_tail_by_species = null - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' ) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index e2013effa2d..d42bd705c53 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -21,7 +21,6 @@ var/datum/looping_sound/geiger/soundloop //Species-specific stuff. - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Unathi" = 'icons/mob/clothing/species/unathi/helmet.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/helmet.dmi', @@ -155,7 +154,6 @@ var/obj/item/tank/jetpack/suit/jetpack = null hide_tail_by_species = list("Vox" , "Vulpkanin" , "Unathi" , "Tajaran") - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index ac8327c2ba0..aad2feada83 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -7,7 +7,6 @@ flags_inv = HIDEFACE permeability_coefficient = 0.01 armor = list(MELEE = 35, BULLET = 50, LASER = 50, ENERGY = 15, BOMB = 50, BIO = INFINITY, RAD = 50, FIRE = INFINITY, ACID = INFINITY) - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi', @@ -31,7 +30,6 @@ w_class = WEIGHT_CLASS_BULKY allowed = list(/obj/item/tank/internals, /obj/item/flashlight,/obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/restraints/handcuffs) armor = list(MELEE = 35, BULLET = 50, LASER = 50, ENERGY = 15, BOMB = 50, BIO = INFINITY, RAD = 50, FIRE = INFINITY, ACID = INFINITY) - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' @@ -75,7 +73,6 @@ armor = list(MELEE = 35, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 450, RAD = 10, FIRE = INFINITY, ACID = INFINITY) strip_delay = 120 resistance_flags = FIRE_PROOF | ACID_PROOF - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' @@ -179,7 +176,6 @@ desc = "A brand new paramedic EVA helmet. It seems to mold to your head shape. Used for retrieving bodies in space." icon_state = "paramedic-eva-helmet" item_state = "paramedic-eva-helmet" - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi', @@ -199,7 +195,6 @@ icon_state = "paramedic-eva" item_state = "paramedic-eva" desc = "A brand new paramedic EVA suit. The nitrile seems a bit too thin to be space proof. Used for retrieving bodies in space." - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', @@ -219,7 +214,6 @@ item_state = "s_suit" desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = INFINITY, RAD = 10, FIRE = 50, ACID = 95) - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', @@ -242,7 +236,7 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = INFINITY, RAD = 10, FIRE = 50, ACID = 95) flash_protect = FLASH_PROTECTION_NONE - species_restricted = list("exclude", "Wryn") + sprite_sheets = list( "Tajaran" = 'icons/mob/clothing/species/tajaran/helmet.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/helmet.dmi', @@ -262,7 +256,6 @@ desc = ". . ." icon_state = "spacemimehelmet" item_state = "spacemimehelmet" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi') sprite_sheets_obj = null @@ -273,7 +266,6 @@ desc = ". . ." icon_state = "spacemime_suit" item_state = "spacemime_items" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') sprite_sheets_obj = null @@ -284,7 +276,6 @@ desc = "An EVA helmet specifically designed for the clown. SPESSHONK!" icon_state = "clownhelmet" item_state = "clownhelmet" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi') sprite_sheets_obj = null @@ -295,7 +286,6 @@ desc = "An EVA suit specifically designed for the clown. SPESSHONK!" icon_state = "spaceclown_suit" item_state = "spaceclown_items" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') sprite_sheets_obj = null diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index bd9091e5083..865a860d224 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -477,26 +477,6 @@ "tizan","chka","tagan","dobry","okt","boda","veta","idi","cyk","blyt","hui","na", "udi","litchki","casa","linka","toly","anatov","vich","vech","vuch","toi","ka","vod") -/datum/language/wryn - name = "Wryn Hivemind" - desc = "Wryn have the strange ability to commune over a psychic hivemind." - speech_verb = "chitters" - ask_verb = "chitters" - exclaim_verbs = list("buzzes") - colour = "alien" - key = "y" - flags = RESTRICTED | HIVEMIND | NOBABEL - follow = TRUE - -/datum/language/wryn/check_special_condition(mob/other) - var/mob/living/carbon/M = other - if(!istype(M)) - return TRUE - if(locate(/obj/item/organ/internal/wryn/hivenode) in M.internal_organs) - return TRUE - - return FALSE - /datum/language/xenocommon name = "Xenomorph" colour = "alien" diff --git a/code/modules/mob/living/carbon/human/body_accessories.dm b/code/modules/mob/living/carbon/human/body_accessories.dm index a00af925e0d..b2cbd07943f 100644 --- a/code/modules/mob/living/carbon/human/body_accessories.dm +++ b/code/modules/mob/living/carbon/human/body_accessories.dm @@ -120,12 +120,6 @@ GLOBAL_LIST_INIT(body_accessory_by_species, list()) animated_icon_state = "straightbushy_a" allowed_species = list("Vulpkanin") -//Wryn -/datum/body_accessory/tail/wryn - name = "Bee Tail" - icon_state = "wryntail" - allowed_species = list("Wryn") - //Moth wings /datum/body_accessory/wing icon = 'icons/mob/sprite_accessories/moth/moth_wings.dmi' diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 81373ad5ca9..d3019a0a141 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -140,9 +140,6 @@ /mob/living/carbon/human/golem/Initialize(mapload) . = ..(mapload, /datum/species/golem) -/mob/living/carbon/human/wryn/Initialize(mapload) - . = ..(mapload, /datum/species/wryn) - /mob/living/carbon/human/nucleation/Initialize(mapload) . = ..(mapload, /datum/species/nucleation) diff --git a/code/modules/mob/living/carbon/human/species/wryn.dm b/code/modules/mob/living/carbon/human/species/wryn.dm deleted file mode 100644 index a88b0efaf8b..00000000000 --- a/code/modules/mob/living/carbon/human/species/wryn.dm +++ /dev/null @@ -1,175 +0,0 @@ -/datum/species/wryn - name = "Wryn" - name_plural = "Wryn" - icobase = 'icons/mob/human_races/r_wryn.dmi' - blacklisted = TRUE - language = "Wryn Hivemind" - tail = "wryntail" - punchdamagelow = 0 - punchdamagehigh = 1 - speed_mod = 1 - warning_low_pressure = -300 - hazard_low_pressure = 1 - blurb = "The wryn (r-in, singular r-in) are a humanoid race that possess many bee-like features. Originating from Alveare they \ - have adapted extremely well to cold environments though have lost most of their muscles over generations.\ - In order to communicate and work with multi-species crew Wryn were forced to take on names. Wryn have tended towards using only \ - first names, these names are generally simplistic and easy to pronounce. Wryn have rarely had to communicate using their mouths, \ - so in order to integrate with the multi-species crew they have been taught broken sol?." - - cold_level_1 = 200 //Default 260 - Lower is better - cold_level_2 = 150 //Default 200 - cold_level_3 = 115 //Default 120 - - heat_level_1 = 300 //Default 360 - Higher is better - heat_level_2 = 310 //Default 400 - heat_level_3 = 317 //Default 1000 - - body_temperature = 286 - - has_organ = list( - "heart" = /obj/item/organ/internal/heart, - "brain" = /obj/item/organ/internal/brain, - "eyes" = /obj/item/organ/internal/eyes/wryn, //3 darksight. - "appendix" = /obj/item/organ/internal/appendix, - "antennae" = /obj/item/organ/internal/wryn/hivenode - ) - - species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, NO_HAIR, HIVEMIND) - inherent_traits = list(TRAIT_NOBREATH) - clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_COLOR - dietflags = DIET_HERB //bees feed off nectar, so bee people feed off plants too - - dies_at_threshold = TRUE - - reagent_tag = PROCESS_ORG - base_color = "#704300" - flesh_color = "#704300" - blood_color = "#FFFF99" - //Default styles for created mobs. - default_hair = "Antennae" - - var/datum/action/innate/wryn_sting/wryn_sting - -/datum/species/wryn/on_species_gain(mob/living/carbon/human/H) - ..() - wryn_sting = new - wryn_sting.Grant(H) - -/datum/species/wryn/on_species_loss(mob/living/carbon/human/H) - ..() - if(wryn_sting) - wryn_sting.Remove(H) - -/* Wryn Sting Action Begin */ - -//Define the Sting Action -/datum/action/innate/wryn_sting - name = "Wryn Sting" - desc = "Readies Wryn Sting for stinging." - button_icon_state = "wryn_sting_off" //Default Button State - check_flags = AB_CHECK_LYING | AB_CHECK_CONSCIOUS | AB_CHECK_STUNNED - var/button_on = FALSE - -//What happens when you click the Button? -/datum/action/innate/wryn_sting/Trigger() - if(!..()) - return - var/mob/living/carbon/user = owner - if((user.restrained() && user.pulledby) || user.buckled) //Is your Wryn restrained, pulled, or buckled? No stinging! - to_chat(user, "You need freedom of movement to sting someone!") - return - if(user.wear_suit) //Is your Wryn wearing a Hardsuit or a Laboat that's blocking their Stinger? - to_chat(user, "You must remove your hardsuit, labcoat, or jacket before using your Wryn stinger.") - return - if(user.getStaminaLoss() >= 50) //Does your Wryn have enough Stamina to sting? - to_chat(user, "You feel too tired to use your Wryn Stinger at the moment.") - return - else - button_on = TRUE - UpdateButtonIcon() - select_target(user) - -//Update the Button Icon -/datum/action/innate/wryn_sting/UpdateButtonIcon() - if(button_on) - button_icon_state = "wryn_sting_on" - name = "Wryn Stinger \[READY\]" - button.name = name - else - button_icon_state = "wryn_sting_off" - name = "Wryn Stinger" - button.name = name - ..() - -//Select a Target from a List -/datum/action/innate/wryn_sting/proc/select_target(mob/living/carbon/human/user) - var/list/names = list() - for(var/mob/living/carbon/human/M in orange(1)) - names += M - var/target = input("Select a Target: ", "Sting Target", null) as null|anything in names - if(!target) //No one's around! - to_chat(user, "There's no one around to sting so you retract your stinger.") - user.visible_message("") - button_on = FALSE - UpdateButtonIcon() - return - else //Get ready, aim, fire! - user.visible_message(" [user] prepares to use their Wryn stinger!") - sting_target(user, target) - return - -//What does the Wryn Sting do? -/datum/action/innate/wryn_sting/proc/sting_target(mob/living/carbon/human/user, mob/living/carbon/human/target) - button_on = FALSE //For when we Update the Button Icon - if(!(target in orange(1, user))) //Dang, did they get away? - to_chat(user, "You are no longer adjacent to [target]. You retract your stinger for now.") - user.visible_message("") - UpdateButtonIcon() - return - else //Nah, that chump is still here! Sting 'em! Sting 'em good! - var/obj/item/organ/external/organ = target.get_organ(pick("l_leg", "r_leg", "l_foot", "r_foot", "groin")) - to_chat(user, " You sting [target] in their [organ] with your stinger!") - user.visible_message("[user] stings [target] in [organ] with their stinger! ") - user.adjustStaminaLoss(20) //You can't sting infinitely, Wryn - take some Stamina loss - var/dam = rand(3, 7) - target.apply_damage(dam, BRUTE, organ) - playsound(user.loc, 'sound/weapons/bladeslice.ogg', 50, 0) - add_attack_logs(user, target, "Stung by Wryn Stinger - [dam] Brute damage to [organ].") - if(target.restrained()) //Apply tiny BURN damage if target is restrained - if(prob(50)) - user.apply_damage(2, BURN, target) - to_chat(target, "You feel a little burnt! Yowch!") - user.visible_message("[user] is looking a little burnt!") - UpdateButtonIcon() - return - -/* Wryn Sting Action End */ - -/datum/species/wryn/handle_death(gibbed, mob/living/carbon/human/H) - for(var/mob/living/carbon/C in GLOB.alive_mob_list) - if(C.get_int_organ(/obj/item/organ/internal/wryn/hivenode)) - to_chat(C, "Your antennae tingle as you are overcome with pain...") - to_chat(C, "It feels like part of you has died.") // This is bullshit - -/datum/species/wryn/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) - if(target.handcuffed && target.get_int_organ(/obj/item/organ/internal/wryn/hivenode)) - - user.visible_message("[user] begins to violently pull off [target]'s antennae.") - to_chat(target, "[user] grips your antennae and starts violently pulling!") - if(do_mob(user, target, 250)) - var/obj/item/organ/internal/wryn/hivenode/node = new /obj/item/organ/internal/wryn/hivenode - target.remove_language("Wryn Hivemind") - node.remove(target) - node.forceMove(user.loc) - to_chat(user, "You hear a loud crunch as you mercilessly pull off [target]'s antennae.") - to_chat(target, "You hear a loud crunch as your antennae is ripped off your head by [user].") - to_chat(target, "It's so quiet...") - var/obj/item/organ/external/head/head_organ = target.get_organ("head") - head_organ.h_style = "Bald" - target.update_hair() - - add_attack_logs(user, target, "Antennae removed") - return 0 - else - ..() diff --git a/code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm b/code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm deleted file mode 100644 index 668808de217..00000000000 --- a/code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm +++ /dev/null @@ -1,8 +0,0 @@ -/datum/sprite_accessory/hair/wryn - icon = 'icons/mob/sprite_accessories/wryn/wryn_face.dmi' - species_allowed = list("Wryn") - glasses_over = 1 - -/datum/sprite_accessory/hair/wryn/wry_antennae_default - name = "Antennae" - icon_state = "antennae" diff --git a/code/modules/surgery/organs/subtypes/wryn.dm b/code/modules/surgery/organs/subtypes/wryn.dm deleted file mode 100644 index cbc60599744..00000000000 --- a/code/modules/surgery/organs/subtypes/wryn.dm +++ /dev/null @@ -1,11 +0,0 @@ -//WRYN ORGAN -/obj/item/organ/internal/wryn/hivenode - name = "antennae" - organ_tag = "antennae" - icon = 'icons/mob/human_races/r_wryn.dmi' - icon_state = "antennae" - parent_organ = "head" - slot = "hivenode" - -/obj/item/organ/internal/eyes/wryn - see_in_dark = 3 diff --git a/icons/mob/body_accessory.dmi b/icons/mob/body_accessory.dmi index 7ae9721d4b3..4a9c56c8280 100644 Binary files a/icons/mob/body_accessory.dmi and b/icons/mob/body_accessory.dmi differ diff --git a/icons/mob/human_races/r_wryn.dmi b/icons/mob/human_races/r_wryn.dmi deleted file mode 100644 index 101605814d9..00000000000 Binary files a/icons/mob/human_races/r_wryn.dmi and /dev/null differ diff --git a/icons/mob/sprite_accessories/wryn/wryn_face.dmi b/icons/mob/sprite_accessories/wryn/wryn_face.dmi deleted file mode 100644 index f826b969c57..00000000000 Binary files a/icons/mob/sprite_accessories/wryn/wryn_face.dmi and /dev/null differ diff --git a/paradise.dme b/paradise.dme index cce964c1fca..c731bdcec75 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1980,7 +1980,6 @@ #include "code\modules\mob\living\carbon\human\species\unathi.dm" #include "code\modules\mob\living\carbon\human\species\vox.dm" #include "code\modules\mob\living\carbon\human\species\vulpkanin.dm" -#include "code\modules\mob\living\carbon\human\species\wryn.dm" #include "code\modules\mob\living\silicon\death.dm" #include "code\modules\mob\living\silicon\laws.dm" #include "code\modules\mob\living\silicon\login.dm" @@ -2209,7 +2208,6 @@ #include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm" #include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm" #include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm" #include "code\modules\newscaster\datums.dm" #include "code\modules\newscaster\defines.dm" #include "code\modules\newscaster\obj\newscaster.dm" @@ -2535,7 +2533,6 @@ #include "code\modules\surgery\organs\subtypes\unathi.dm" #include "code\modules\surgery\organs\subtypes\vox.dm" #include "code\modules\surgery\organs\subtypes\vulpkanin.dm" -#include "code\modules\surgery\organs\subtypes\wryn.dm" #include "code\modules\surgery\organs\subtypes\xenos.dm" #include "code\modules\telesci\bscrystal.dm" #include "code\modules\telesci\gps.dm"