mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Commented out the authentication system. It was the remnants of the old goon authentication stuff (or maybe even older) and wasn't actually used in our code at all (at least not in any useful way, it was merely called and short-circuited to 1, so all those if(authenticated) were totally pointless. This has removed 3 unused variables from every client, a bunch of unused variables from the config and two empty text files! Committed (as a config option) a feature requested by Apoc station. It causes a 'reply to' window to popup when an admin PMs a non-admin player. It's meant to grab their attention so they can't say "I didn't see your PM". It defaults to off. To turn it on just uncomment the #POPUP_ADMIN_PM line in config/config.txt Fixed a derp in isday where it was fetching the month instead of the day. Removed medal references from Gib() Removed the medal_hub global variables because they aren't used in any way shape or form. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3444 316c924e-a436-60f5-8080-3fe189b3f50e
182 lines
6.0 KiB
Plaintext
182 lines
6.0 KiB
Plaintext
dmm_suite/load_map(var/dmm_file as file, var/z_offset as num)
|
|
if(!z_offset)
|
|
z_offset = world.maxz+1
|
|
var/quote = ascii2text(34)
|
|
var/tfile = file2text(dmm_file)
|
|
var/tfile_len = length(tfile)
|
|
var/list/grid_models[0]
|
|
var/key_len = length(copytext(tfile,2,findtext(tfile,quote,2,0)))
|
|
for(var/lpos=1;lpos<tfile_len;lpos=findtext(tfile,"\n",lpos,0)+1)
|
|
var/tline = copytext(tfile,lpos,findtext(tfile,"\n",lpos,0))
|
|
if(copytext(tline,1,2)!=quote) break
|
|
var/model_key = copytext(tline,2,findtext(tfile,quote,2,0))
|
|
var/model_contents = copytext(tline,findtext(tfile,"=")+3,length(tline))
|
|
grid_models[model_key] = model_contents
|
|
sleep(-1)
|
|
|
|
var/zcrd=-1
|
|
var/ycrd=0
|
|
var/xcrd=0
|
|
for(var/zpos=findtext(tfile,"\n(1,1,");TRUE;zpos=findtext(tfile,"\n(1,1,",zpos+1,0))
|
|
zcrd++
|
|
world.maxz = max(world.maxz, zcrd+z_offset)
|
|
ycrd=0
|
|
var/zgrid = copytext(tfile,findtext(tfile,quote+"\n",zpos,0)+2,findtext(tfile,"\n"+quote,zpos,0)+1)
|
|
for(var/gpos=1;gpos!=0;gpos=findtext(zgrid,"\n",gpos,0)+1)
|
|
var/grid_line = copytext(zgrid,gpos,findtext(zgrid,"\n",gpos,0)+1)
|
|
var/y_depth = length(zgrid)/(length(grid_line))
|
|
if(world.maxy<y_depth) world.maxy=y_depth
|
|
grid_line=copytext(grid_line,1,length(grid_line))
|
|
if(!ycrd)
|
|
ycrd = y_depth
|
|
else
|
|
ycrd--
|
|
xcrd=0
|
|
for(var/mpos=1;mpos<=length(grid_line);mpos+=key_len)
|
|
xcrd++
|
|
if(world.maxx<xcrd) world.maxx=xcrd
|
|
var/model_key = copytext(grid_line,mpos,mpos+key_len)
|
|
parse_grid(grid_models[model_key],xcrd,ycrd,zcrd+z_offset)
|
|
|
|
if(gpos+length(grid_line)+1>length(zgrid)) break
|
|
sleep(-1)
|
|
|
|
if(findtext(tfile,quote+"}",zpos,0)+2==tfile_len) break
|
|
sleep(-1)
|
|
|
|
|
|
dmm_suite/proc/parse_grid(var/model as text,var/xcrd as num,var/ycrd as num,var/zcrd as num)
|
|
set background = 1
|
|
|
|
/*Method parse_grid()
|
|
- Accepts a text string containing a comma separated list of type paths of the
|
|
same construction as those contained in a .dmm file, and instantiates them.
|
|
*/
|
|
var/list/text_strings[0]
|
|
for(var/index=1;findtext(model,quote);index++)
|
|
/*Loop: Stores quoted portions of text in text_strings, and replaces them with an
|
|
index to that list.
|
|
- Each iteration represents one quoted section of text.
|
|
*/
|
|
text_strings.len=index
|
|
text_strings[index] = copytext(model,findtext(model,quote)+1,findtext(model,quote,findtext(model,quote)+1,0))
|
|
model = copytext(model,1,findtext(model,quote))+"~[index]"+copytext(model,findtext(model,quote,findtext(model,quote)+1,0)+1,0)
|
|
sleep(-1)
|
|
|
|
for(var/dpos=1;dpos!=0;dpos=findtext(model,",",dpos,0)+1)
|
|
/*Loop: Identifies each object's data, instantiates it, and reconstitues it's fields.
|
|
- Each iteration represents one object's data, including type path and field values.
|
|
*/
|
|
var/full_def = copytext(model,dpos,findtext(model,",",dpos,0))
|
|
var/atom_def = text2path(copytext(full_def,1,findtext(full_def,"{")))
|
|
|
|
if(ispath(atom_def, /turf/space))
|
|
continue
|
|
|
|
var/list/attributes[0]
|
|
if(findtext(full_def,"{"))
|
|
full_def = copytext(full_def,1,length(full_def))
|
|
for(var/apos=findtext(full_def,"{")+1;apos!=0;apos=findtext(full_def,";",apos,0)+1)
|
|
//Loop: Identifies each attribute/value pair, and stores it in attributes[].
|
|
attributes.Add(copytext(full_def,apos,findtext(full_def,";",apos,0)))
|
|
if(!findtext(copytext(full_def,apos,0),";")) break
|
|
sleep(-1)
|
|
|
|
//Construct attributes associative list
|
|
var/list/fields = new(0)
|
|
for(var/index=1;index<=attributes.len;index++)
|
|
var/trim_left = trim_text(copytext(attributes[index],1,findtext(attributes[index],"=")))
|
|
var/trim_right = trim_text(copytext(attributes[index],findtext(attributes[index],"=")+1,0))
|
|
//Check for string
|
|
if(findtext(trim_right,"~"))
|
|
var/reference_index = copytext(trim_right,findtext(trim_right,"~")+1,0)
|
|
trim_right=text_strings[text2num(reference_index)]
|
|
//Check for number
|
|
else if(isnum(text2num(trim_right)))
|
|
trim_right = text2num(trim_right)
|
|
//Check for file
|
|
else if(copytext(trim_right,1,2) == "'")
|
|
trim_right = file(copytext(trim_right,2,length(trim_right)))
|
|
fields[trim_left] = trim_right
|
|
|
|
//End construction
|
|
//Begin Instanciation
|
|
var/atom/instance
|
|
var/dmm_suite/preloader/_preloader = new(fields)
|
|
if(ispath(atom_def,/area))
|
|
var/turf/A = locate(xcrd,ycrd,zcrd)
|
|
if(A.loc.name == "Space")
|
|
instance = locate(atom_def)
|
|
if(instance)
|
|
instance.contents.Add(locate(xcrd,ycrd,zcrd))
|
|
|
|
else
|
|
//global.current_preloader = _preloader
|
|
instance = new atom_def(locate(xcrd,ycrd,zcrd))
|
|
if(_preloader)
|
|
_preloader.load(instance)
|
|
//End Instanciation
|
|
if(!findtext(copytext(model,dpos,0),",")) break
|
|
|
|
|
|
dmm_suite/proc/trim_text(var/what as text)
|
|
while(length(what) && findtext(what," ",1,2))
|
|
what=copytext(what,2,0)
|
|
while(length(what) && findtext(what," ",length(what),0))
|
|
what=copytext(what,1,length(what))
|
|
return what
|
|
|
|
/*
|
|
var/global/dmm_suite/preloader/current_preloader = null
|
|
atom/New()
|
|
if(global.current_preloader)
|
|
global.current_preloader.load(src)
|
|
..()
|
|
*/
|
|
|
|
|
|
dmm_suite/preloader
|
|
parent_type = /datum
|
|
var/list/attributes
|
|
|
|
|
|
New(list/the_attributes)
|
|
..()
|
|
if(!the_attributes.len) Del()
|
|
attributes = the_attributes
|
|
|
|
|
|
proc/load(atom/what)
|
|
for(var/attribute in attributes)
|
|
what.vars[attribute] = attributes[attribute]
|
|
Del()
|
|
|
|
|
|
|
|
/client/proc/mapload(var/dmm_map as file)
|
|
set category = "Debug"
|
|
set name = "LoadMap"
|
|
set desc = "Loads a map"
|
|
set hidden = 1
|
|
if(src.holder)
|
|
if(!src.mob)
|
|
return
|
|
if(src.holder.rank in list("Game Admin", "Game Master"))
|
|
var/file_name = "[dmm_map]"
|
|
var/file_extension = copytext(file_name,length(file_name)-2,0)
|
|
if(file_extension != "dmm")
|
|
usr << "Supplied file must be a .dmm file."
|
|
return
|
|
var/map_z = input(usr,"Enter variable value:" ,"Value", 123) as num
|
|
if(map_z > (world.maxz+1))
|
|
map_z = (world.maxz+1)
|
|
|
|
var/dmm_suite/new_reader = new()
|
|
new_reader.load_map(dmm_map, map_z)
|
|
log_admin("[key_name(src.mob)] loaded a map on z:[map_z]")
|
|
|
|
else
|
|
alert("No")
|
|
return
|
|
return
|