Adds ability to selectively disable submap rotation.

This commit is contained in:
Neerti
2018-12-01 07:40:47 -05:00
parent e145b5c0f7
commit 07ad88b590
4 changed files with 27 additions and 9 deletions

View File

@@ -228,6 +228,8 @@ var/list/gamemode_cache = list()
var/radiation_resistance_multiplier = 6.5 var/radiation_resistance_multiplier = 6.5
var/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it. var/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it.
var/random_submap_orientation = FALSE // If true, submaps loaded automatically can be rotated.
/datum/configuration/New() /datum/configuration/New()
var/list/L = typesof(/datum/game_mode) - /datum/game_mode var/list/L = typesof(/datum/game_mode) - /datum/game_mode
for (var/T in L) for (var/T in L)
@@ -748,6 +750,9 @@ var/list/gamemode_cache = list()
if ("paranoia_logging") if ("paranoia_logging")
config.paranoia_logging = 1 config.paranoia_logging = 1
if("random_submap_orientation")
config.random_submap_orientation = 1
else else
log_misc("Unknown setting in configuration: '[name]'") log_misc("Unknown setting in configuration: '[name]'")

View File

@@ -19,6 +19,7 @@ var/list/global/map_templates = list()
var/mappath = null var/mappath = null
var/loaded = 0 // Times loaded this round var/loaded = 0 // Times loaded this round
var/annihilate = FALSE // If true, all (movable) atoms at the location where the map is loaded will be deleted before the map is loaded in. var/annihilate = FALSE // If true, all (movable) atoms at the location where the map is loaded will be deleted before the map is loaded in.
var/fixed_orientation = FALSE // If true, the submap will not be rotated randomly when loaded.
var/cost = null // The map generator has a set 'budget' it spends to place down different submaps. It will pick available submaps randomly until \ var/cost = null // The map generator has a set 'budget' it spends to place down different submaps. It will pick available submaps randomly until \
it runs out. The cost of a submap should roughly corrispond with several factors such as size, loot, difficulty, desired scarcity, etc. \ it runs out. The cost of a submap should roughly corrispond with several factors such as size, loot, difficulty, desired scarcity, etc. \
@@ -225,7 +226,13 @@ var/list/global/map_templates = list()
var/specific_sanity = 100 // A hundred chances to place the chosen submap. var/specific_sanity = 100 // A hundred chances to place the chosen submap.
while(specific_sanity > 0) while(specific_sanity > 0)
specific_sanity-- specific_sanity--
var/orientation = pick(cardinal)
var/orientation
if(chosen_template.fixed_orientation || !config.random_submap_orientation)
orientation = SOUTH
else
orientation = pick(cardinal)
chosen_template.preload_size(chosen_template.mappath, orientation) chosen_template.preload_size(chosen_template.mappath, orientation)
var/width_border = TRANSITIONEDGE + SUBMAP_MAP_EDGE_PAD + round(((orientation & NORTH|SOUTH) ? chosen_template.width : chosen_template.height) / 2) var/width_border = TRANSITIONEDGE + SUBMAP_MAP_EDGE_PAD + round(((orientation & NORTH|SOUTH) ? chosen_template.width : chosen_template.height) / 2)
var/height_border = TRANSITIONEDGE + SUBMAP_MAP_EDGE_PAD + round(((orientation & NORTH|SOUTH) ? chosen_template.height : chosen_template.width) / 2) var/height_border = TRANSITIONEDGE + SUBMAP_MAP_EDGE_PAD + round(((orientation & NORTH|SOUTH) ? chosen_template.height : chosen_template.width) / 2)

View File

@@ -91,10 +91,10 @@ SQL_ENABLED
SHOW_DEVS SHOW_DEVS
##Show mods on staffwho ##Show mods on staffwho
SHOW_MODS SHOW_MODS
##Show mentors on staffwho ##Show mentors on staffwho
SHOW_EVENT SHOW_EVENT
## Chooses whether mods have the ability to tempban or not ## Chooses whether mods have the ability to tempban or not
MODS_CAN_TEMPBAN MODS_CAN_TEMPBAN
@@ -133,12 +133,12 @@ TRAITOR_SCALING
## if objectives are disabled ## if objectives are disabled
#OBJECTIVES_DISABLED #OBJECTIVES_DISABLED
## make ERT's be only called by admins ## make ERT's be only called by admins
#ERT_ADMIN_ONLY #ERT_ADMIN_ONLY
## If uncommented, votes can be called to add extra antags to the round. ## If uncommented, votes can be called to add extra antags to the round.
#ALLOW_EXTRA_ANTAGS #ALLOW_EXTRA_ANTAGS
## If security is prohibited from being most antagonists ## If security is prohibited from being most antagonists
#PROTECT_ROLES_FROM_ANTAGONIST #PROTECT_ROLES_FROM_ANTAGONIST
@@ -315,7 +315,7 @@ CHARACTER_SLOTS 10
LOADOUT_SLOTS 3 LOADOUT_SLOTS 3
## Uncomment to use overmap system for zlevel travel ## Uncomment to use overmap system for zlevel travel
#USE_OVERMAP #USE_OVERMAP
## Defines which Z-levels the station exists on. ## Defines which Z-levels the station exists on.
STATION_LEVELS 1 STATION_LEVELS 1
@@ -384,7 +384,7 @@ STARLIGHT 0
## Defines how Law Zero is phrased. Primarily used in the Malfunction gamemode. ## Defines how Law Zero is phrased. Primarily used in the Malfunction gamemode.
# LAW_ZERO ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010 # LAW_ZERO ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010
## Enables specific procedural map generation, generally for mining, however it is specific to the loaded map. Uncomment to enable it, however it can ## Enables specific procedural map generation, generally for mining, however it is specific to the loaded map. Uncomment to enable it, however it can
## worth it to keep it disabled if you are not hosting an actual server, to speed up start-up time for testing code. ## worth it to keep it disabled if you are not hosting an actual server, to speed up start-up time for testing code.
@@ -408,3 +408,8 @@ STARLIGHT 0
## Uncomment to enable Paranoia Logging. This will notify admins and write to a file any time a new player (byond or your server) connects. ## Uncomment to enable Paranoia Logging. This will notify admins and write to a file any time a new player (byond or your server) connects.
# PARANOIA_LOGGING # PARANOIA_LOGGING
## Uncomment to enable submaps to have their orientation rotated randomly during map generation.
## Submap rotation is an experimental feature and can cause bugs and weirdness if certain objects inside the submap are coded poorly.
## Submaps can still be rotated when loading manually with the admin verbs, if desired.
# RANDOM_SUBMAP_ORIENTATION

View File

@@ -68,6 +68,7 @@
desc = "A bunch of marker beacons, scattered in a strange pattern." desc = "A bunch of marker beacons, scattered in a strange pattern."
mappath = 'maps/submaps/surface_submaps/plains/beacons.dmm' mappath = 'maps/submaps/surface_submaps/plains/beacons.dmm'
cost = 5 cost = 5
fixed_orientation = TRUE
/datum/map_template/surface/plains/Epod /datum/map_template/surface/plains/Epod
name = "Emergency Pod" name = "Emergency Pod"