Skip to content
This repository has been archived by the owner on Feb 16, 2024. It is now read-only.

Commit

Permalink
Merge pull request #25 from Helixis/hispaupdate
Browse files Browse the repository at this point in the history
Hispa ship fix
  • Loading branch information
kokolo21 authored Aug 26, 2023
2 parents c3ae62d + a146cdc commit 65b7251
Showing 1 changed file with 85 additions and 80 deletions.
165 changes: 85 additions & 80 deletions code/controllers/subsystem/mapping.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,92 +173,97 @@ SUBSYSTEM_DEF(mapping)

shuttle_templates[S.file_name] = S

#define CHECK_STRING_EXISTS(X) if(!istext(data[X])) { log_world("[##X] missing from json!"); continue; }
#define CHECK_LIST_EXISTS(X) if(!islist(data[X])) { log_world("[##X] missing from json!"); continue; }
#define CHECK_STRING_EXISTS(X) if(!istext(data[X])) { log_world("[##X] missing from json!"); return; }
#define CHECK_LIST_EXISTS(X) if(!islist(data[X])) { log_world("[##X] missing from json!"); return; }

/datum/controller/subsystem/mapping/proc/load_ship_template_individual(filename,mapfolder)
var/file = file(mapfolder + filename)
if(!file)
log_world("Could not open map config: [filename]")
return
file = file2text(file)
if(!file)
log_world("map config is not text: [filename]")
return

var/list/data = json_decode(file)
if(!data)
log_world("map config is not json: [filename]")
return

CHECK_STRING_EXISTS("map_name")
CHECK_STRING_EXISTS("map_path")
CHECK_LIST_EXISTS("job_slots")
var/datum/map_template/shuttle/S = new(data["map_path"], data["map_name"], TRUE)
S.file_name = data["map_path"]
S.category = "shiptest"

if(istext(data["map_short_name"]))
S.short_name = data["map_short_name"]
else
S.short_name = copytext(S.name, 1, 20)
if(istext(data["prefix"]))
S.prefix = data["prefix"]
if(islist(data["namelists"]))
S.name_categories = data["namelists"]
if ( isnum( data[ "unique_ship_access" ] && data["unique_ship_access"] ) )
S.unique_ship_access = data[ "unique_ship_access" ]
if(istext(data["description"]))
S.description = data["description"]
if(islist(data["tags"]))
S.tags = data["tags"]

S.job_slots = list()
var/list/job_slot_list = data["job_slots"]
for(var/job in job_slot_list)
var/datum/job/job_slot
var/value = job_slot_list[job]
var/slots
if(isnum(value))
job_slot = SSjob.GetJob(job)
slots = value
else if(islist(value))
var/datum/outfit/job_outfit = text2path(value["outfit"])
if(isnull(job_outfit))
stack_trace("Invalid job outfit! [value["outfit"]] on [S.name]'s config! Defaulting to assistant clothing.")
job_outfit = /datum/outfit/job/assistant
job_slot = new /datum/job(job, job_outfit)
job_slot.wiki_page = value["wiki_page"]
job_slot.officer = value["officer"]
slots = value["slots"]

if(!job_slot || !slots)
stack_trace("Invalid job slot entry! [job]: [value] on [S.name]'s config! Excluding job.")
return

S.job_slots[job_slot] = slots
if(isnum(data["limit"]))
S.limit = data["limit"]
if(isnum(data["spawn_time_coeff"]))
S.spawn_time_coeff = data["spawn_time_coeff"]
if(isnum(data["officer_time_coeff"]))
S.officer_time_coeff = data["officer_time_coeff"]

if(isnum(data["enabled"]) && data["enabled"])
S.enabled = TRUE
ship_purchase_list[S.name] = S
if(isnum(data["roundstart"]) && data["roundstart"])
maplist[S.name] = S

shuttle_templates[S.file_name] = S

/datum/controller/subsystem/mapping/proc/load_ship_templates()
maplist = list()
ship_purchase_list = list()
var/list/filelist = flist("_maps/configs/")
for(var/filename in filelist)
var/file = file("_maps/configs/" + filename)
if(!file)
log_world("Could not open map config: [filename]")
continue
file = file2text(file)
if(!file)
log_world("map config is not text: [filename]")
continue

var/list/data = json_decode(file)
if(!data)
log_world("map config is not json: [filename]")
continue
var/list/filelistHISPANIA = flist("_maps/HISPANIAconfigs/") //Cambios Hispania

CHECK_STRING_EXISTS("map_name")
CHECK_STRING_EXISTS("map_path")
CHECK_LIST_EXISTS("job_slots")
var/datum/map_template/shuttle/S = new(data["map_path"], data["map_name"], TRUE)
S.file_name = data["map_path"]
S.category = "shiptest"
for(var/filename in filelistHISPANIA)
load_ship_template_individual(filename,"_maps/HISPANIAconfigs/")

if(istext(data["map_short_name"]))
S.short_name = data["map_short_name"]
else
S.short_name = copytext(S.name, 1, 20)
if(istext(data["prefix"]))
S.prefix = data["prefix"]
if(islist(data["namelists"]))
S.name_categories = data["namelists"]
if ( isnum( data[ "unique_ship_access" ] && data["unique_ship_access"] ) )
S.unique_ship_access = data[ "unique_ship_access" ]
if(istext(data["description"]))
S.description = data["description"]
if(islist(data["tags"]))
S.tags = data["tags"]

S.job_slots = list()
var/list/job_slot_list = data["job_slots"]
for(var/job in job_slot_list)
var/datum/job/job_slot
var/value = job_slot_list[job]
var/slots
if(isnum(value))
job_slot = SSjob.GetJob(job)
slots = value
else if(islist(value))
var/datum/outfit/job_outfit = text2path(value["outfit"])
if(isnull(job_outfit))
stack_trace("Invalid job outfit! [value["outfit"]] on [S.name]'s config! Defaulting to assistant clothing.")
job_outfit = /datum/outfit/job/assistant
job_slot = new /datum/job(job, job_outfit)
job_slot.wiki_page = value["wiki_page"]
job_slot.officer = value["officer"]
slots = value["slots"]

if(!job_slot || !slots)
stack_trace("Invalid job slot entry! [job]: [value] on [S.name]'s config! Excluding job.")
continue

S.job_slots[job_slot] = slots
if(isnum(data["limit"]))
S.limit = data["limit"]
if(isnum(data["spawn_time_coeff"]))
S.spawn_time_coeff = data["spawn_time_coeff"]
if(isnum(data["officer_time_coeff"]))
S.officer_time_coeff = data["officer_time_coeff"]

if(isnum(data["starting_funds"]))
S.starting_funds = data["starting_funds"]

if(isnum(data["enabled"]) && data["enabled"])
S.enabled = TRUE
ship_purchase_list[S.name] = S
if(isnum(data["roundstart"]) && data["roundstart"])
maplist[S.name] = S
if(isnum(data["space_spawn"]) && data["space_spawn"])
S.space_spawn = TRUE

shuttle_templates[S.file_name] = S
for(var/filename in filelist)
load_ship_template_individual(filename,"_maps/configs/")
//Fin cambios hispania
#undef CHECK_STRING_EXISTS
#undef CHECK_LIST_EXISTS

Expand Down

0 comments on commit 65b7251

Please sign in to comment.