My very own feedback gathering system! The blackbox can now gather feedback via the feedback_set(var_name,amt), feedback_inc(var_name,amt) and feedback_dec(var_name,amt) procs.

The way feedback is gathered is that the three procs are placed in code where feedback is wanted, these in turn set variables in the blackbox (Yes, I could have done it in an out-of-world datum or object, but I just prefer having an actual physical object gather this stuff.) At the end of the round, all acquired data is saved to a database. I still need to get ahold of TLE to make the required tables and bugtest some things.

The saving proc exsists, but is not yet called due to the lack for a table to save to. The rest of it should work fine tho, so you can place the feedbac_set, _inc and _dec procs around code and see what they provide via view variables, it just won't save it to the database yet.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2092 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
baloh.matevz
2011-09-03 01:00:01 +00:00
parent 51ec2499d9
commit e6aa3fc0b1
2 changed files with 159 additions and 1 deletions

View File

@@ -65,6 +65,49 @@
/datum/feedback_variable
var/variable
var/value
New(var/param_variable,var/param_value = 0)
variable = param_variable
value = param_value
proc/inc(var/num = 1)
if(isnum(value))
value += num
else
value = text2num(value)
if(isnum(value))
value += num
else
value = num
proc/dec(var/num = 1)
if(isnum(value))
value -= num
else
value = text2num(value)
if(isnum(value))
value -= num
else
value = -num
proc/set_value(var/num)
if(isnum(num))
value = num
proc/get_value()
return value
proc/get_variable()
return variable
proc/get_parsed()
return list(variable,value)
var/obj/machinery/blackbox_recorder/blackbox
/obj/machinery/blackbox_recorder
icon = 'stationobjs.dmi'
icon_state = "blackbox"
@@ -86,4 +129,51 @@
var/msg_deathsquad = list()
var/msg_syndicate = list()
var/msg_mining = list()
var/msg_cargo = list()
var/msg_cargo = list()
var/list/datum/feedback_variable/feedback = new()
//Only one can exsist in the world!
New()
for(var/obj/machinery/blackbox_recorder/BR in world)
if(BR != src)
del(src)
blackbox = src
proc/find_feedback_datum(var/variable)
for(var/datum/feedback_variable/FV in feedback)
if(FV.get_variable() == variable)
return FV
var/datum/feedback_variable/FV = new(variable)
feedback += FV
return FV
proc/get_round_feedback()
return feedback
proc/feedback_set(var/variable,var/value)
if(!blackbox) return
var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable)
if(!FV) return
FV.set_value(value)
proc/feedback_inc(var/variable,var/value)
if(!blackbox) return
var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable)
if(!FV) return
FV.inc(value)
proc/feedback_dec(var/variable,var/value)
if(!blackbox) return
var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable)
if(!FV) return
FV.dec(value)