mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-21 20:14:31 +01:00
Fix two problems with suits
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
// Default species get default sprites, VR species get VR sprites
|
||||
#define VR_SPECIES_SPRITE_SHEETS_SUIT_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',\
|
||||
@@ -12,6 +13,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HEAD_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',\
|
||||
@@ -24,6 +26,7 @@ SPECIES_VULPKANIN = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HANDS_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/mob.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/hands/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/mob_unathi.dmi',\
|
||||
@@ -36,6 +39,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/mob_vr_vulpkanin.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_FEET_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/mob.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/feet/mob_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/mob_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/mob_unathi.dmi',\
|
||||
@@ -49,6 +53,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/mob_vr_vulpkanin.dmi')
|
||||
|
||||
#define VR_SPECIES_SPRITE_SHEETS_SUIT_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/suit/item.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/suit/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi',\
|
||||
@@ -61,6 +66,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/item_vr_vulpkanin.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HEAD_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/item.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/head/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi',\
|
||||
@@ -73,6 +79,7 @@ SPECIES_VULPKANIN = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/item_vr_vulpkanin.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_HANDS_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/item.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/hands/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/item_unathi.dmi',\
|
||||
@@ -85,6 +92,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/item_vr_vulpkanin.dmi')
|
||||
#define VR_SPECIES_SPRITE_SHEETS_FEET_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/item.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/feet/item_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/item_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/item_unathi.dmi',\
|
||||
@@ -99,6 +107,7 @@ SPECIES_FENNEC = 'icons/inventory/feet/item_vr_vulpkanin.dmi')
|
||||
|
||||
// All species get VR sprites
|
||||
#define ALL_VR_SPRITE_SHEETS_SUIT_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/suit/mob_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/suit/mob_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/mob_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/mob_vr_unathi.dmi',\
|
||||
@@ -111,6 +120,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HEAD_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/mob_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/head/mob_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/mob_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/mob_vr_unathi.dmi',\
|
||||
@@ -123,6 +133,7 @@ SPECIES_VULPKANIN = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HANDS_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/mob_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/hands/mob_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/mob_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/mob_vr_unathi.dmi',\
|
||||
@@ -135,6 +146,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/mob_vr_vulpkanin.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_FEET_MOB list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/mob_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/feet/mob_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/mob_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/mob_vr_unathi.dmi',\
|
||||
@@ -148,6 +160,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/feet/mob_vr_vulpkanin.dmi')
|
||||
|
||||
#define ALL_VR_SPRITE_SHEETS_SUIT_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/suit/item_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/suit/item_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/suit/item_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/suit/item_vr_unathi.dmi',\
|
||||
@@ -160,6 +173,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/suit/item_vr_vulpkanin.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HEAD_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/head/item_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/head/item_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/head/item_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/head/item_vr_unathi.dmi',\
|
||||
@@ -172,6 +186,7 @@ SPECIES_VULPKANIN = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/head/item_vr_vulpkanin.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_HANDS_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/hands/item_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/hands/item_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/hands/item_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/hands/item_vr_unathi.dmi',\
|
||||
@@ -184,6 +199,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
|
||||
SPECIES_FENNEC = 'icons/inventory/hands/item_vr_vulpkanin.dmi')
|
||||
#define ALL_VR_SPRITE_SHEETS_FEET_ITEM list(\
|
||||
SPECIES_HUMAN = 'icons/inventory/feet/item_vr.dmi',\
|
||||
SPECIES_TAJ = 'icons/inventory/feet/item_vr_tajaran.dmi',\
|
||||
SPECIES_SKRELL = 'icons/inventory/feet/item_vr_skrell.dmi',\
|
||||
SPECIES_UNATHI = 'icons/inventory/feet/item_vr_unathi.dmi',\
|
||||
|
||||
@@ -14,12 +14,13 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
|
||||
var/helmet_becomes
|
||||
|
||||
/datum/suit_cycler_choice/department/proc/can_refit_helmet(obj/item/clothing/head/helmet/helmet)
|
||||
return !!helmet_becomes
|
||||
return helmet && !!helmet_becomes
|
||||
|
||||
/datum/suit_cycler_choice/department/proc/do_refit_helmet(obj/item/clothing/head/helmet/helmet)
|
||||
var/obj/item/clothing/tmp = new helmet_becomes()
|
||||
helmet.name = "refitted [tmp.name]"
|
||||
helmet.desc = tmp.desc
|
||||
helmet.icon = tmp.icon
|
||||
helmet.icon_state = tmp.icon_state
|
||||
helmet.item_state = tmp.item_state
|
||||
helmet.item_state_slots = tmp.item_state_slots?.Copy()
|
||||
@@ -28,12 +29,13 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
|
||||
helmet.default_worn_icon = tmp.default_worn_icon
|
||||
|
||||
/datum/suit_cycler_choice/department/proc/can_refit_suit(obj/item/clothing/suit/space/suit)
|
||||
return !!suit_becomes
|
||||
return suit && !!suit_becomes
|
||||
|
||||
/datum/suit_cycler_choice/department/proc/do_refit_suit(obj/item/clothing/suit/space/suit)
|
||||
var/obj/item/clothing/tmp = new suit_becomes()
|
||||
suit.name = "refitted [tmp.name]"
|
||||
suit.desc = tmp.desc
|
||||
suit.icon = tmp.icon
|
||||
suit.icon_state = tmp.icon_state
|
||||
suit.item_state = tmp.item_state
|
||||
suit.item_state_slots = tmp.item_state_slots?.Copy()
|
||||
@@ -305,16 +307,16 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
|
||||
|
||||
// Uses same logic as it used to, which is that it bases an assumption of 'we should have custom sprites' on
|
||||
// the presence of the species in the sprite_sheets_obj list on the helmet and suit
|
||||
/datum/suit_cycler_choice/species/proc/can_refit_to(obj/item/clothing/head/helmet/helmet, obj/item/clothing/suit/space/suit)
|
||||
for(var/obj/item/clothing/C in list(helmet, suit))
|
||||
/datum/suit_cycler_choice/species/proc/can_refit_to(...)
|
||||
for(var/obj/item/clothing/C in args)
|
||||
if(LAZYACCESS(C.sprite_sheets_obj, name))
|
||||
if(!(C.icon_state in cached_icon_states(C.sprite_sheets_obj[name])))
|
||||
return FALSE // Species was in sprite_sheets_obj, but had no sprite for this object in particular
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/suit_cycler_choice/species/proc/do_refit_to(obj/item/clothing/head/helmet/helmet, obj/item/clothing/suit/space/suit)
|
||||
for(var/obj/item/clothing/C in list(helmet, suit))
|
||||
/datum/suit_cycler_choice/species/proc/do_refit_to(...)
|
||||
for(var/obj/item/clothing/C in args)
|
||||
C.refit_for_species(name)
|
||||
|
||||
/datum/suit_cycler_choice/species/noop
|
||||
|
||||
@@ -1114,17 +1114,20 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
|
||||
/obj/machinery/suit_cycler/proc/apply_paintjob()
|
||||
if(!target_species || !target_department)
|
||||
return
|
||||
if(suit?.helmet)
|
||||
visible_message("[bicon(src)]<span class='warning'>Separate the suit and helmet before applying any customizations.</span>")
|
||||
return
|
||||
|
||||
if(helmet && target_department.can_refit_helmet(helmet))
|
||||
// Helmet to new paint
|
||||
if(target_department.can_refit_helmet(helmet))
|
||||
target_department.do_refit_helmet(helmet)
|
||||
if(suit && target_department.can_refit_suit(suit))
|
||||
// Suit to new paint
|
||||
if(target_department.can_refit_suit(suit))
|
||||
target_department.do_refit_suit(suit)
|
||||
|
||||
if(target_species.can_refit_to(helmet, suit))
|
||||
target_species.do_refit_to(helmet, suit)
|
||||
// Attached voidsuit helmet to new paint
|
||||
if(target_department.can_refit_helmet(suit?.helmet))
|
||||
target_department.do_refit_helmet(suit.helmet)
|
||||
|
||||
// Species fitting for all 3 potential changes
|
||||
if(target_species.can_refit_to(helmet, suit, suit?.helmet))
|
||||
target_species.do_refit_to(helmet, suit, suit?.helmet)
|
||||
else
|
||||
visible_message("[bicon(src)]<span class='warning'>Unable to apply specified cosmetics with specified species. Please try again with a different species or cosmetic option selected.</span>")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user