mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
[MIRROR] Converts SSblackbox feedback to an associative list [MDB IGNORE] (#15955)
* Converts SSblackbox feedback to an associative list (#69399) About The Pull Request I DID NOT TEST THIS. I DO NOT KNOW DATABASE STUFF. I JUST NOTICED IT WHILE WORKING ON AN UNRELATED PR. Title. Why It's Good For The Game Speeds up a hot proc substantially * Converts SSblackbox feedback to an associative list Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
This commit is contained in:
@@ -4,7 +4,7 @@ SUBSYSTEM_DEF(blackbox)
|
||||
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
|
||||
init_order = INIT_ORDER_BLACKBOX
|
||||
|
||||
var/list/feedback = list() //list of datum/feedback_variable
|
||||
var/list/feedback_list = list() //list of datum/feedback_variable
|
||||
var/list/first_death = list() //the first death of this round, assoc. vars keep track of different things
|
||||
var/triggertime = 0
|
||||
var/sealed = FALSE //time to stop tracking stats?
|
||||
@@ -58,18 +58,18 @@ SUBSYSTEM_DEF(blackbox)
|
||||
qdel(query_record_playercount)
|
||||
|
||||
/datum/controller/subsystem/blackbox/Recover()
|
||||
feedback = SSblackbox.feedback
|
||||
feedback_list = SSblackbox.feedback_list
|
||||
sealed = SSblackbox.sealed
|
||||
|
||||
//no touchie
|
||||
/datum/controller/subsystem/blackbox/vv_get_var(var_name)
|
||||
if(var_name == NAMEOF(src, feedback))
|
||||
return debug_variable(var_name, deep_copy_list(feedback), 0, src)
|
||||
if(var_name == NAMEOF(src, feedback_list))
|
||||
return debug_variable(var_name, deep_copy_list(feedback_list), 0, src)
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/blackbox/vv_edit_var(var_name, var_value)
|
||||
switch(var_name)
|
||||
if(NAMEOF(src, feedback))
|
||||
if(NAMEOF(src, feedback_list))
|
||||
return FALSE
|
||||
if(NAMEOF(src, sealed))
|
||||
if(var_value)
|
||||
@@ -101,7 +101,9 @@ SUBSYSTEM_DEF(blackbox)
|
||||
"datetime" = "NOW()"
|
||||
)
|
||||
var/list/sqlrowlist = list()
|
||||
for (var/datum/feedback_variable/FV in feedback)
|
||||
|
||||
for (var/key in feedback_list)
|
||||
var/datum/feedback_variable/FV = feedback_list[key]
|
||||
sqlrowlist += list(list(
|
||||
"round_id" = GLOB.round_id,
|
||||
"key_name" = FV.key,
|
||||
@@ -162,13 +164,13 @@ SUBSYSTEM_DEF(blackbox)
|
||||
record_feedback("tally", "radio_usage", 1, "other")
|
||||
|
||||
/datum/controller/subsystem/blackbox/proc/find_feedback_datum(key, key_type)
|
||||
for(var/datum/feedback_variable/FV in feedback)
|
||||
if(FV.key == key)
|
||||
return FV
|
||||
|
||||
var/datum/feedback_variable/FV = new(key, key_type)
|
||||
feedback += FV
|
||||
return FV
|
||||
var/datum/feedback_variable/FV = feedback_list[key]
|
||||
if(FV)
|
||||
return FV
|
||||
else
|
||||
FV = new(key, key_type)
|
||||
feedback_list[key] = FV
|
||||
return FV
|
||||
/*
|
||||
feedback data can be recorded in 5 formats:
|
||||
"text"
|
||||
|
||||
Reference in New Issue
Block a user