Files
Bubberstation/code/_globalvars/lists/mapping.dm
cacogen 07022a3ffb Makes navigate verb use landmarks instead of navigation beacons (#65906)
About The Pull Request

#65741 replaced wayfinding pinpointers with the navigate verb.

However, one of the features of wayfinding pinpointers was the ability to edit the codes of the navigation beacons they pointed to in order to change the names of the destinations in their list.

While it makes sense that an in-game object can be fallible, it doesn't make a lot of sense for a UI button that creates a path only the player can see. People will expect it to be objective and reliable.

So this removes that in favour of landmarks that add their location to a global list used by the verb on LateInitialize() and delete themselves afterwards.

StrongDMM_4KNvlSYNy5.png

This also adds "Nearest Way Up" and "Nearest Way Down" to the navigate destination list. This paths to the nearest staircase or ladder.
Why It's Good For The Game

    Removes confusion for newer players on the off-chance somebody decides to modify destination names of wayfinding beacons
    Makes mapping these easier, because instead of placing an underfloor navigation beacon, you're placing a map pin that is above most things on the map
    Makes the existence of this feature more obvious to mappers by replacing underfloor wayfinding beacons that look identical to other navigation beacons with bright red pins (I noticed when looking at Ice Box for this PR that some wayfinding beacons have been removed in areas that have been remapped since I placed them)
    Somewhat compensates for the inability to path between z levels by allowing players to find the nearest ladder or staircase instead (does nothing to indicate destinations on other z levels or the direction they're in though)

Changelog

cl
del: Navigate verb uses landmarks now, which means that underfloor wayfinding beacons (which could be used to change the names of destinations) are gone
qol: Adds Nearest Way Up and Nearest Way Down to the navigate list, which point to the nearest ladder or staircase up or down
fix: Fixes runtime with navigation verb paths where deleted paths were still attempting to animate
/cl
2022-04-11 09:32:01 +12:00

138 lines
3.1 KiB
Plaintext

GLOBAL_LIST_INIT(cardinals, list(
NORTH,
SOUTH,
EAST,
WEST,
))
GLOBAL_LIST_INIT(cardinals_multiz, list(
NORTH,
SOUTH,
EAST,
WEST,
UP,
DOWN,
))
GLOBAL_LIST_INIT(diagonals, list(
NORTHEAST,
NORTHWEST,
SOUTHEAST,
SOUTHWEST,
))
GLOBAL_LIST_INIT(corners_multiz, list(
UP|NORTHEAST,
UP|NORTHWEST,
UP|SOUTHEAST,
UP|SOUTHWEST,
DOWN|NORTHEAST,
DOWN|NORTHWEST,
DOWN|SOUTHEAST,
DOWN|SOUTHWEST,
))
GLOBAL_LIST_INIT(diagonals_multiz, list(
NORTHEAST,
NORTHWEST,
SOUTHEAST,
SOUTHWEST,
UP|NORTH,
UP|SOUTH,
UP|EAST,
UP|WEST,
UP|NORTHEAST,
UP|NORTHWEST,
UP|SOUTHEAST,
UP|SOUTHWEST,
DOWN|NORTH,
DOWN|SOUTH,
DOWN|EAST,
DOWN|WEST,
DOWN|NORTHEAST,
DOWN|NORTHWEST,
DOWN|SOUTHEAST,
DOWN|SOUTHWEST,
))
GLOBAL_LIST_INIT(alldirs_multiz, list(
NORTH,
SOUTH,
EAST,
WEST,
NORTHEAST,
NORTHWEST,
SOUTHEAST,
SOUTHWEST,
UP,
UP|NORTH,
UP|SOUTH,
UP|EAST,
UP|WEST,
UP|NORTHEAST,
UP|NORTHWEST,
UP|SOUTHEAST,
UP|SOUTHWEST,
DOWN,
DOWN|NORTH,
DOWN|SOUTH,
DOWN|EAST,
DOWN|WEST,
DOWN|NORTHEAST,
DOWN|NORTHWEST,
DOWN|SOUTHEAST,
DOWN|SOUTHWEST,
))
GLOBAL_LIST_INIT(alldirs, list(
NORTH,
SOUTH,
EAST,
WEST,
NORTHEAST,
NORTHWEST,
SOUTHEAST,
SOUTHWEST,
))
GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created
GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created
GLOBAL_LIST_EMPTY(department_security_spawns) //list of all department security spawns
GLOBAL_LIST_EMPTY(generic_event_spawns) //handles clockwork portal+eminence teleport destinations
GLOBAL_LIST_EMPTY(jobspawn_overrides) //These will take precedence over normal spawnpoints if created.
GLOBAL_LIST_EMPTY(wizardstart)
GLOBAL_LIST_EMPTY(nukeop_start)
GLOBAL_LIST_EMPTY(nukeop_leader_start)
GLOBAL_LIST_EMPTY(newplayer_start)
GLOBAL_LIST_EMPTY(prisonwarp) //admin prisoners go to these
GLOBAL_LIST_EMPTY(holdingfacility) //captured people go here (ninja energy net)
GLOBAL_LIST_EMPTY(xeno_spawn)//aliens, morphs and nightmares spawn at these
GLOBAL_LIST_EMPTY(tdome1)
GLOBAL_LIST_EMPTY(tdome2)
GLOBAL_LIST_EMPTY(tdomeobserve)
GLOBAL_LIST_EMPTY(tdomeadmin)
GLOBAL_LIST_EMPTY(prisonwarped) //list of players already warped
GLOBAL_LIST_EMPTY(blobstart) //stationloving objects, blobs, santa
GLOBAL_LIST_EMPTY(navigate_destinations) //list of all destinations used by the navigate verb
GLOBAL_LIST_EMPTY(secequipment) //sec equipment lockers that scale with the number of sec players
GLOBAL_LIST_EMPTY(deathsquadspawn)
GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
GLOBAL_LIST_EMPTY(ruin_landmarks)
GLOBAL_LIST_EMPTY(bar_areas)
//away missions
GLOBAL_LIST_EMPTY(vr_spawnpoints)
//used by jump-to-area etc. Updated by area/updateName()
GLOBAL_LIST_EMPTY(sortedAreas)
/// An association from typepath to area instance. Only includes areas with `unique` set.
GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area)
GLOBAL_LIST_EMPTY(all_abstract_markers)
/// Global list of megafauna spawns on cave gen
GLOBAL_LIST_INIT(megafauna_spawn_list, list(
/mob/living/simple_animal/hostile/megafauna/bubblegum = 6,
/mob/living/simple_animal/hostile/megafauna/colossus = 2,
/mob/living/simple_animal/hostile/megafauna/dragon = 4,
))