SCREEE. fuck this. I'mma just revert at this point, but don't want to lose progress.
This commit is contained in:
+13
-13
@@ -2,27 +2,27 @@
|
||||
|
||||
#define COLOR_INPUT_DISABLED "#F0F0F0"
|
||||
#define COLOR_INPUT_ENABLED "#D3B5B5"
|
||||
|
||||
//#define COLOR_WHITE "#EEEEEE"
|
||||
//#define COLOR_SILVER "#C0C0C0"
|
||||
//#define COLOR_GRAY "#808080"
|
||||
//CITADEL EDIT - why the fuck are colors commented out???
|
||||
#define COLOR_WHITE "#EEEEEE"
|
||||
#define COLOR_SILVER "#C0C0C0"
|
||||
#define COLOR_GRAY "#808080"
|
||||
#define COLOR_FLOORTILE_GRAY "#8D8B8B"
|
||||
#define COLOR_ALMOST_BLACK "#333333"
|
||||
//#define COLOR_BLACK "#000000"
|
||||
#define COLOR_BLACK "#000000"
|
||||
#define COLOR_RED "#FF0000"
|
||||
//#define COLOR_RED_LIGHT "#FF3333"
|
||||
//#define COLOR_MAROON "#800000"
|
||||
#define COLOR_RED_LIGHT "#FF3333"
|
||||
#define COLOR_MAROON "#800000"
|
||||
#define COLOR_YELLOW "#FFFF00"
|
||||
//#define COLOR_OLIVE "#808000"
|
||||
//#define COLOR_LIME "#32CD32"
|
||||
#define COLOR_OLIVE "#808000"
|
||||
#define COLOR_LIME "#32CD32"
|
||||
#define COLOR_GREEN "#008000"
|
||||
#define COLOR_CYAN "#00FFFF"
|
||||
//#define COLOR_TEAL "#008080"
|
||||
#define COLOR_TEAL "#008080"
|
||||
#define COLOR_BLUE "#0000FF"
|
||||
//#define COLOR_BLUE_LIGHT "#33CCFF"
|
||||
//#define COLOR_NAVY "#000080"
|
||||
#define COLOR_BLUE_LIGHT "#33CCFF"
|
||||
#define COLOR_NAVY "#000080"
|
||||
#define COLOR_PINK "#FFC0CB"
|
||||
//#define COLOR_MAGENTA "#FF00FF"
|
||||
#define COLOR_MAGENTA "#FF00FF"
|
||||
#define COLOR_PURPLE "#800080"
|
||||
#define COLOR_ORANGE "#FF9900"
|
||||
#define COLOR_BEIGE "#CEB689"
|
||||
|
||||
@@ -24,4 +24,26 @@ GLOBAL_LIST_EMPTY(whitelisted_species_list)
|
||||
|
||||
/proc/log_mentor(text)
|
||||
GLOB.mentorlog.Add(text)
|
||||
GLOB.world_game_log << "\[[time_stamp()]]MENTOR: [text]"
|
||||
GLOB.world_game_log << "\[[time_stamp()]]MENTOR: [text]"
|
||||
|
||||
|
||||
//Mergesort: any value in a list, preserves key=value structure
|
||||
/proc/sortAssoc(var/list/L)
|
||||
if(L.len < 2)
|
||||
return L
|
||||
var/middle = L.len / 2 + 1 // Copy is first,second-1
|
||||
return mergeAssoc(sortAssoc(L.Copy(0,middle)), sortAssoc(L.Copy(middle))) //second parameter null = to end of list
|
||||
|
||||
/proc/mergeAssoc(var/list/L, var/list/R)
|
||||
var/Li=1
|
||||
var/Ri=1
|
||||
var/list/result = new()
|
||||
while(Li <= L.len && Ri <= R.len)
|
||||
if(sorttext(L[Li], R[Ri]) < 1)
|
||||
result += R&R[Ri++]
|
||||
else
|
||||
result += L&L[Li++]
|
||||
|
||||
if(Li <= L.len)
|
||||
return (result + L.Copy(Li, 0))
|
||||
return (result + R.Copy(Ri, 0))
|
||||
@@ -127,6 +127,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
|
||||
var/action_buttons_screen_locs = list()
|
||||
|
||||
//CITADEL GEAR SLOT DATA
|
||||
//Gear stuff
|
||||
var/list/gear = list()
|
||||
var/gear_tab = "General"
|
||||
var/max_gear_slots = 10
|
||||
var/list/gear_categories
|
||||
var/list/chosen_gear
|
||||
|
||||
/datum/preferences/New(client/C)
|
||||
parent = C
|
||||
custom_names["human"] = random_unique_name()
|
||||
@@ -515,7 +523,66 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Be [capitalize(i)]:</b> <a href='?_src_=prefs;preference=be_special;be_special_type=[i]'>[(i in be_special) ? "Yes" : "No"]</a><br>"
|
||||
dat += citadel_pref_replace(current_tab)
|
||||
dat += "</td></tr></table>"
|
||||
//CITDEL EDIT - GEAR THINGS, fuck trying to get this working modularlly ******************************
|
||||
if(current_tab == 3)
|
||||
var/total_cost = 0
|
||||
var/list/type_blacklist = list()
|
||||
if(gear && gear.len)
|
||||
for(var/i = 1, i <= gear.len, i++)
|
||||
var/datum/gear/G = GLOB.loadout_items[gear[i]]
|
||||
if(G)
|
||||
if(!G.subtype_cost_overlap)
|
||||
if(G.subtype_path in type_blacklist)
|
||||
continue
|
||||
type_blacklist += G.subtype_path
|
||||
total_cost += G.cost
|
||||
|
||||
var/fcolor = "#3366CC"
|
||||
if(total_cost < max_gear_slots)
|
||||
fcolor = "#E67300"
|
||||
dat += "<table align='center' width='100%'>"
|
||||
dat += "<tr><td colspan=4><center><b><font color='[fcolor]'>[total_cost]/[max_gear_slots]</font> loadout points spent.</b> \[<a href='?_src_=prefs;preference=gear;clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
|
||||
dat += "<tr><td colspan=4><center><b>"
|
||||
|
||||
var/firstcat = 1
|
||||
for(var/category in GLOB.loadout_items)
|
||||
var/datum/loadout_catagories/LC = GLOB.loadout_items[category]
|
||||
var/datum/gear/gear = GLOB.loadout_items
|
||||
if(LC.donor_only)
|
||||
if(gear.ckeywhitelist && gear.ckeywhitelist.len)
|
||||
if(user && user.client && user.client.ckey && !(gear.ckeywhitelist.Find(user.client.ckey)))
|
||||
continue
|
||||
if(firstcat)
|
||||
firstcat = 0
|
||||
else
|
||||
dat += " |"
|
||||
if(category == gear_tab)
|
||||
dat += " <span class='linkOff'>[category]</span> "
|
||||
else
|
||||
dat += " <a href='?_src_=prefs;preference=gear;select_category=[category]'>[category]</a> "
|
||||
dat += "</b></center></td></tr>"
|
||||
|
||||
var/datum/loadout_catagories/LC = GLOB.loadout_catagories[gear_tab]
|
||||
dat += "<tr><td colspan=4><hr></td></tr>"
|
||||
dat += "<tr><td colspan=4><b><center>[LC.catagory]</center></b></td></tr>"
|
||||
dat += "<tr><td colspan=4><hr></td></tr>"
|
||||
for(var/gear_name in LC.gear)
|
||||
var/datum/gear/G = LC.gear[gear_name]
|
||||
var/ticked = (G.name in gear)
|
||||
dat += "<tr style='vertical-align:top;'><td width=15%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='?_src_=prefs;preference=gear;toggle_gear=[G.name]'>[G.name]</a></td>"
|
||||
dat += "<td width = 5% style='vertical-align:top'>[G.cost]</td><td>"
|
||||
if(G.restricted_roles)
|
||||
dat += "<font size=2>Restrictions: "
|
||||
for(var/role in G.restricted_roles)
|
||||
dat += role + " "
|
||||
dat += "</font>"
|
||||
dat += "</td><td><font size=2><i>[G.description]</i></font></td></tr>"
|
||||
if(ticked)
|
||||
. += "<tr><td colspan=4>"
|
||||
for(var/datum/gear_tweak/tweak in G.gear_tweaks)
|
||||
. += " <a href='?_src_=prefs;preference=gear;gear=[G.name];tweak=\ref[tweak]'>[tweak.get_contents(get_tweak_metadata(G, tweak))]</a>"
|
||||
. += "</td></tr>"
|
||||
dat += "</table>"
|
||||
|
||||
else
|
||||
dat = citadel_dat_replace(current_tab)
|
||||
@@ -533,6 +600,25 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
popup.set_content(dat)
|
||||
popup.open(0)
|
||||
|
||||
//CITADEL GEAR STUFF
|
||||
/datum/preferences/proc/get_gear_metadata(var/datum/gear/G)
|
||||
. = gear[G.name]
|
||||
if(!.)
|
||||
. = list()
|
||||
gear[G.name] = .
|
||||
|
||||
/datum/preferences/proc/get_tweak_metadata(var/datum/gear/G, var/datum/gear_tweak/tweak)
|
||||
var/list/metadata = get_gear_metadata(G)
|
||||
. = metadata["[tweak]"]
|
||||
if(!.)
|
||||
. = tweak.get_default()
|
||||
metadata["[tweak]"] = .
|
||||
|
||||
/datum/preferences/proc/set_tweak_metadata(var/datum/gear/G, var/datum/gear_tweak/tweak, var/new_metadata)
|
||||
var/list/metadata = get_gear_metadata(G)
|
||||
metadata["[tweak]"] = new_metadata
|
||||
//END CITADEL GEAR STUFF
|
||||
|
||||
/datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620)
|
||||
if(!SSjob)
|
||||
return
|
||||
@@ -1423,6 +1509,41 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if("tab")
|
||||
if (href_list["tab"])
|
||||
current_tab = text2num(href_list["tab"])
|
||||
|
||||
if(href_list["toggle_gear"])
|
||||
var/datum/gear/TG = GLOB.loadout_items[href_list["toggle_gear"]]
|
||||
if(TG.name in TG)
|
||||
TG -= TG.name
|
||||
else
|
||||
if(TG.donor_only)
|
||||
if(TG.ckeywhitelist && TG.ckeywhitelist.len)
|
||||
if(user && user.client && user.client.ckey && !(TG.ckeywhitelist.Find(user.client.ckey)))
|
||||
return
|
||||
var/total_cost = 0
|
||||
var/list/type_blacklist = list()
|
||||
for(var/gear_name in TG)
|
||||
var/datum/gear/G = GLOB.loadout_items[gear_name]
|
||||
if(istype(G))
|
||||
if(!G.subtype_cost_overlap)
|
||||
if(G.subtype_path in type_blacklist)
|
||||
continue
|
||||
type_blacklist += G.subtype_path
|
||||
total_cost += G.cost
|
||||
if((total_cost + TG.cost) <= max_gear_slots)
|
||||
gear += TG.name
|
||||
else if(href_list["gear"] && href_list["tweak"])
|
||||
var/datum/gear/gear = GLOB.loadout_items[href_list["gear"]]
|
||||
var/datum/gear_tweak/tweak = locate(href_list["tweak"])
|
||||
if(!tweak || !istype(gear) || !(tweak in gear.gear_tweaks))
|
||||
return
|
||||
var/metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak))
|
||||
if(!metadata)
|
||||
return
|
||||
set_tweak_metadata(gear, tweak, metadata)
|
||||
else if(href_list["select_category"])
|
||||
gear_tab = href_list["select_category"]
|
||||
else if(href_list["clear_loadout"])
|
||||
gear.Cut()
|
||||
process_citadel_prefs(user, href_list)
|
||||
process_citadel_link(user, href_list)
|
||||
ShowChoices(user)
|
||||
|
||||
Reference in New Issue
Block a user