Adjusts sectors to have real_icons

* Previous implementation relied on icon and icon_state at compile time.
* This prevented GMs from editing icon_state, as it always reverted to defaults when scanned
* GMs can now edit real_icon using var edit->E "Icon" to use non-standard icon_states
* GMs can now edit real_icon_state to choose specific state as a simple text var type edit
* GMs can call a proc called gmtools_update_omobject_vars(setToHidden) with an argument that forces known locations to become unknown again with an arg of "1"
* If GM uses arg of 0, proc simply changes how pilots inside the sector see their own ship by updating real_appearance with real_icon_state
This commit is contained in:
Runa Dacino
2023-04-07 14:19:43 +02:00
parent 3bc7afbc14
commit 2f6dc67e42
+28 -2
View File
@@ -16,6 +16,11 @@
var/real_desc
/// Icon_state prior to being scanned if !known
var/unknown_state = "field"
//Set to null. Exists only for admins/GMs when spawning overmap objects.
//We need these as normal functionality relies on initial() which do not work at all with GM shenanigans.
var/real_icon //Holds the .dmi file for icon_state to pick from. Leave null if using standard overmap.dmi
var/real_icon_state //actual icon name to be used. Find examples inside 'icons/obj/overmap.dmi'
var/real_color
var/list/map_z = list()
var/list/extra_z_levels //if you need to manually insist that these z-levels are part of this sector, for things like edge-of-map step trigger transitions rather than multi-z complexes
@@ -84,6 +89,19 @@
//at the moment only used for the OM location renamer. Initializing here in case we want shuttles incl as well in future. Also proc definition convenience.
visitable_overmap_object_instances |= src
//To be used by GMs and calling through var edits for the overmap object
//It causes the overmap object to "reinitialize" its real_appearance for known = FALSE objects
//Includes an argument that allows GMs/Admins to set a previously known sector to unknown. Set to any value except 0/False/Null to activate
/obj/effect/overmap/visitable/proc/gmtools_update_omobject_vars(var/setToHidden)
real_appearance = image(real_icon, src, real_icon_state)
real_appearance.override = TRUE
if(!setToHidden && known) //
name = unknown_name
icon = 'icons/obj/overmap.dmi'
icon_state = unknown_state
color = null
desc = "Scan this to find out more information."
known = FALSE
// You generally shouldn't destroy these.
@@ -141,8 +159,16 @@
name = real_name
else
name = initial(name)
icon_state = initial(icon_state)
color = initial(color)
if(real_icon_state) //Only true when GMs/Admins play with the object
if(real_icon) //Only true if GMs/Admins want a non-standard icon from outside 'icons/obj/overmap.dmi'
icon = real_icon
icon_state = real_icon_state
else
icon_state = initial(icon_state)
if(real_color)
color = real_color
else
color = initial(color)
if(real_desc)
desc = real_desc
else