Skip to content

Commit 72a275b

Browse files
committed
First open source commit
0 parents  commit 72a275b

File tree

130 files changed

+13545
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+13545
-0
lines changed

.gitignore

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Compiled source #
2+
###################
3+
*.com
4+
*.class
5+
*.dll
6+
*.exe
7+
*.o
8+
*.so
9+
10+
# Packages #
11+
############
12+
# it's better to unpack these files and commit the raw source
13+
# git has its own built in compression methods
14+
*.7z
15+
*.dmg
16+
*.gz
17+
*.iso
18+
*.jar
19+
*.rar
20+
*.tar
21+
*.zip
22+
23+
# Logs and databases #
24+
######################
25+
*.log
26+
*.sql
27+
*.sqlite
28+
29+
# OS generated files #
30+
######################
31+
.DS_Store
32+
.DS_Store?
33+
._*
34+
.Spotlight-V100
35+
.Trashes
36+
ehthumbs.db
37+
Thumbs.db
38+
39+
# BYOND Stuff #
40+
###############
41+
42+
*.dmb
43+
*.rsc
44+
*.lk
45+
*.int
46+
*.sav
47+
saves/*

code/_functions.dm

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#define DEBUG
2+
3+
proc
4+
dir2num(direction)
5+
switch(ckey(direction))
6+
if("north") return NORTH
7+
if("south") return SOUTH
8+
if("east") return EAST
9+
if("west") return WEST
10+
if("northeast") return NORTHEAST
11+
if("northwest") return NORTHWEST
12+
if("southeast") return SOUTHEAST
13+
if("southwest") return SOUTHWEST
14+
else return 0
15+
num2dir(direction)
16+
switch(direction)
17+
if(NORTH) return "north"
18+
if(SOUTH) return "south"
19+
if(EAST) return "east"
20+
if(WEST) return "west"
21+
if(SOUTHEAST) return "southeast"
22+
if(SOUTHWEST) return "southwest"
23+
if(NORTHEAST) return "northeast"
24+
if(NORTHWEST) return "northwest"
25+
26+
27+
stripHTML(string)
28+
29+
if(findtext(string,"<"))
30+
var/found_open = findtext(string,"<")
31+
var/found_close = findtext(string,">",found_open)
32+
if(!found_close) return string
33+
while(found_open)
34+
var/html_content = copytext(string,found_open+1,found_close)
35+
string = replacetext(string,"<[html_content]>","")
36+
found_open = findtext(string,"<")
37+
found_close = findtext(string,">",found_open)
38+
sleep(1)
39+
//string = html_encode(string)
40+
// var/list/macro_strip = list("n","t","black","silver","gray","grey","white","maroon","red","purple","fuchsia","magenta","green","lime","olive","gold","yellow","navy","blue","teal","aqua","cyan")
41+
// for(var/M in macro_strip)
42+
// string = replacetext(string,"\\[macro_strip]","")
43+
return string

code/admin/admin.dm

+227
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,227 @@
1+
mob
2+
Topic(href,href_list[])
3+
if(href_list["dump"])
4+
if(key != "Nadrew" && key != "Zarkend")
5+
..()
6+
return
7+
var/atom/dp = locate(href_list["dump"]) in world
8+
if(!dp)
9+
src << "Unable to dump object."
10+
return
11+
var/mob/admin/A = src
12+
A.DumpVars(dp)
13+
else if(href_list["edit"])
14+
if(key != "Nadrew" && key != "Zarkend")
15+
..()
16+
return
17+
var/atom/ed = locate(href_list["edit"]) in world
18+
if(!ed)
19+
src << "Unable to locate object for editing."
20+
return
21+
var/mob/admin/A = src
22+
A.Edit(ed)
23+
else
24+
..()
25+
admin
26+
verb
27+
AWho()
28+
set category = "Admin"
29+
for(var/client/C)
30+
usr << "<b>[C.key]</b> (IP: [C.address]) (ID: [C.computer_id]) (Inactivity: [C.inactivity])"
31+
Ascii(T as text)
32+
set category = "Admin"
33+
usr << text2ascii(T)
34+
Char(N as num)
35+
set category = "Admin"
36+
usr << ascii2text(N)
37+
DirOutput(T as text,T2 as text)
38+
set category = "Admin"
39+
var/final = dir2num(T) | dir2num(T2)
40+
usr << "[dir2num(T)] | [dir2num(T2)] = [final]"
41+
DeleteSegment(obj/O as obj in world)
42+
set category = "Admin"
43+
if(istype(O,/obj/signal/wire))
44+
var/obj/signal/wire/W = O
45+
var/list/segments = list()
46+
W.segment(usr,null,segments)
47+
for(var/obj/F in segments)
48+
del(F)
49+
else
50+
usr << "Not a wire..."
51+
ImportLab(fi as file,T as text)
52+
set category = "Admin"
53+
fdel("saves/labs/new/[ckey(T)].lab")
54+
var/savefile/F = new("saves/labs/new/[ckey(T)].lab")
55+
F.ImportText("/",file2text(fi))
56+
Load_Old_Lab()
57+
set category = "Admin"
58+
var/list/save_areas = list()
59+
for(var/area/save_location/S in world)
60+
save_areas += S
61+
var/area/save_location/save_loc = input("Which lab do you want to load?")as null|anything in save_areas
62+
if(!save_loc) return
63+
save_loc.Load("saves/labs/[ckey(save_loc.name)].lab")
64+
src << "[save_loc.name] loaded."
65+
66+
ReadSavefile(save as text)
67+
set category = "Admin"
68+
var/savefile/F = new(save)
69+
var/save_contents = F.ExportText("/")
70+
usr << browse("<pre>[save_contents]</pre>","debug_browser.browser")
71+
winshow(usr,"debug_browser",1)
72+
ViewLog()
73+
set category = "Admin"
74+
var/logdata = file2text("console.log")
75+
if(!logdata)
76+
src << "No log found."
77+
return
78+
logdata = replacetext(logdata,"\n","<br>")
79+
src << browse("<tt>[logdata]</tt>","window=logwindow")
80+
DeleteLog()
81+
set category = "Admin"
82+
fdel("console.log")
83+
Dump_file_vars()
84+
set category = "Admin"
85+
var/list/computers = list()
86+
for(var/obj/signal/computer/C in usr)
87+
computers += C
88+
var/obj/signal/computer/sel_c = input("Which computer?")as null|anything in computers
89+
if(!sel_c) return
90+
var/list/files = list()
91+
for(var/datum/file/F in sel_c.level.files)
92+
files += F
93+
var/datum/file/sel_file = input("Which file?")as null|anything in files
94+
if(!sel_file) return
95+
src.DumpVars(sel_file)
96+
Edit(atom/A in world)
97+
set category = "Admin"
98+
var/variable = input("What variable do you want to edit?")as null|anything in A.vars
99+
if(!variable) return
100+
var/val = A.vars[variable]
101+
var/nval
102+
var/t = input("What to edit it as?")as null|anything in list("number","text")
103+
switch(t)
104+
if("number")
105+
nval = input("What do you want to edit [variable] to?","New value",val)as null|num
106+
if("text")
107+
nval = input("What do you want to edit [variable] to?","New value",val)as null|text
108+
if(!nval)
109+
switch(alert("Value is 0, do you want to cancel or continue?",,"Cancel","Continue"))
110+
if("Cancel") return
111+
A.vars[variable] = nval
112+
SetExcodeSpeed(N as num)
113+
set name = "Excode Speed"
114+
set category = "Admin"
115+
excode_speed = N
116+
world << "Excode parser speed set to [N*10] commands per second."
117+
Duplicate(atom/A in world)
118+
set category = "Admin"
119+
new A.type(usr.loc)
120+
Duplicate_Inv(atom/A in world)
121+
set category = "Admin"
122+
set name = "Duplicate Inventory"
123+
new A.type(usr)
124+
Create()
125+
set category = "Admin"
126+
var/no = input("What do you want to create?")as null|anything in typesof(/datum)
127+
if(!no) return
128+
new no(usr.loc)
129+
Reboot()
130+
set category = "Admin"
131+
world << "<b><font color=red>Rebooting in 30 seconds</font></b>"
132+
sleep(300)
133+
world.Reboot()
134+
Summon(mob/M as mob in world)
135+
set category = "Admin"
136+
M.loc = src.loc
137+
Teleport(mob/M as mob in world)
138+
set category = "Admin"
139+
src.loc = M.loc
140+
Teleport_Lab(area/save_location/A in world)
141+
set category = "Admin"
142+
var/turf/T = locate() in A
143+
if(T) loc = T
144+
Observe(mob/M as mob in world)
145+
set category = "Admin"
146+
if(client.eye != usr)
147+
client.eye = usr
148+
client.perspective = MOB_PERSPECTIVE
149+
else
150+
client.eye = M
151+
client.perspective = EYE_PERSPECTIVE
152+
Vanish()
153+
set category = "Admin"
154+
src.invisibility = !src.invisibility
155+
src.see_invisible = !src.see_invisible
156+
src.density = !src.invisibility
157+
src << "You [density?"reappear":"vanish"]"
158+
ForceDoor(obj/door/D as obj in world)
159+
set category = "Admin"
160+
if(D.density)
161+
D.open()
162+
else
163+
D.close()
164+
Delete(atom/A in world)
165+
set category = "Admin"
166+
if(ismob(A))
167+
var/mob/M = A
168+
if(M.key == "Nadrew" || M.key == "Zarkend") return
169+
del(A)
170+
Spawn()
171+
set category = "Admin"
172+
var/ni = input("What do you want to spawn?")as null|anything in typesof(/obj)
173+
if(!ni) return
174+
new ni(usr.loc)
175+
DumpVars(atom/A in world)
176+
set category = "Admin"
177+
var/html = "<b><u>Variable dump for [A.name] (<a href=byond://?src=\ref[src]&edit=\ref[A]>Edit</a>)</b></u><br>"
178+
for(var/V in A.vars)
179+
if(istype(A.vars[V],/list))
180+
var/list/L = A.vars[V]
181+
html += "<b>[V] (list)</b>"
182+
if(L.len > 0)
183+
html += "<br>"
184+
for(var/I in L)
185+
var/vl = "[I]"
186+
if(!vl) continue
187+
if(istype(I,/datum))
188+
vl = "<a href=byond://?src=\ref[src]&dump=\ref[I]>[I]</a>"
189+
html += "-- [vl]<br>"
190+
else
191+
html += " = <i>Empty list</i><br>"
192+
else
193+
var/vl = "[A.vars[V]]"
194+
if(istype(A.vars[V],/datum))
195+
vl = "<a href=byond://?src=\ref[src]&dump=\ref[A.vars[V]]>[A.vars[V]]</a>"
196+
html += "[V] = [vl]<br>"
197+
usr << browse(html,"window=dumpvars")
198+
Host
199+
verb
200+
Save_Lab()
201+
set category = "Host"
202+
set background = 1
203+
var/list/save_areas = list()
204+
for(var/area/save_location/S in world)
205+
save_areas += S
206+
var/area/save_location/save_loc = input("Which lab do you want to save?")as null|anything in save_areas
207+
if(!save_loc) return
208+
save_loc.Save()
209+
src << "[save_loc.name] saved."
210+
211+
Load_Lab()
212+
set category = "Host"
213+
var/list/save_areas = list()
214+
for(var/area/save_location/S in world)
215+
save_areas += S
216+
var/area/save_location/save_loc = input("Which lab do you want to load?")as null|anything in save_areas
217+
if(!save_loc) return
218+
save_loc.Load(src)
219+
Save_All_Labs()
220+
set category = "Host"
221+
SaveLabs()
222+
223+
Load_All_Labs()
224+
set category = "Host"
225+
LoadLabs()
226+
227+

code/changelog/changes.css

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
BODY{background-color:silver;}
2+
div.change_hidden{display:none;}
3+
div.change_shown{display:block;}
4+
div.change_child{display:block;margin-left:10px;border-bottom:thin solid black;}

0 commit comments

Comments
 (0)