[s] Fixes datum var hiding (#26027)

* .

* Buildmode

* SDQL global. now refers to GLOB

@kevinz000

* Another SDQL thing

* Fix
This commit is contained in:
Cyberboss
2017-04-11 19:20:46 -04:00
committed by oranges
parent a4e8051a05
commit a8cc3cd6c2
7 changed files with 31 additions and 16 deletions
+8 -4
View File
@@ -419,10 +419,9 @@
/proc/SDQL_var(datum/object, list/expression, start = 1, source)
var/v
var/static/list/exclude = list("usr", "src", "marked", "global")
var/long = start < expression.len
if(object == world && long && expression[start + 1] == ".")
to_chat(usr, "Sorry, but global variables are not supported at the moment.")
to_chat(usr, "Sorry, but world variables are not supported at the moment.")
return null
else if(expression [start] == "{" && long)
if(lowertext(copytext(expression[start + 1], 1, 3)) != "0x")
@@ -434,7 +433,10 @@
return null
start++
else if((!long || expression[start + 1] == ".") && (expression[start] in object.vars))
v = object.vars[expression[start]]
if(object.can_vv_get(expression[start]))
v = object.vars[expression[start]]
else
v = "SECRET"
else if(long && expression[start + 1] == ":" && hascall(object, expression[start]))
v = expression[start]
else if(!long || expression[start + 1] == ".")
@@ -448,8 +450,10 @@
v = usr.client.holder.marked_datum
else
return null
if("global")
if("world")
v = world
if("global")
v = GLOB
else
return null
else if(object == world) // Shitty ass hack kill me.
+8 -4
View File
@@ -305,14 +305,18 @@
if(VAR_BUILDMODE)
if(left_click) //I cant believe this shit actually compiles.
if(object.vars.Find(varholder))
log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]")
object.vars[varholder] = valueholder
if(object.vv_edit_var(varholder, valueholder))
log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]")
else
to_chat(user, "<span class='warning'>Varedit rejected</span>")
else
to_chat(user, "<span class='warning'>[initial(object.name)] does not have a var called '[varholder]'</span>")
if(right_click)
if(object.vars.Find(varholder))
log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]")
object.vars[varholder] = initial(object.vars[varholder])
if(object.vv_edit_var(varholder, initial(object.vars[varholder])))
log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]")
else
to_chat(user, "<span class='warning'>Varedit rejected</span>")
else
to_chat(user, "<span class='warning'>[initial(object.name)] does not have a var called '[varholder]'</span>")
+1 -1
View File
@@ -32,7 +32,7 @@
else
variable = var_name
if(!variable)
if(!variable || !O.can_vv_get(variable))
return
var/default
var/var_value = O.vars[variable]
@@ -528,6 +528,9 @@ GLOBAL_PROTECT(VVpixelmovement)
variable = input("Which var?","Var") as null|anything in names
if(!variable)
return
if(!O.can_vv_get(variable))
return
var_value = O.vars[variable]