Added global lists for chemistry datums.

chemical_reactions_list for storing /datum/chemical_reaction so we don't have to spawn them all everytime two reagents get mixed together.

chemical_reagents_list, unlike reactions it is indexed by id so we can have fast lookup of reagent data. Again, without spawning everytype of that datum everytime we add a reagent to something 

It was making all subtypes of this datum everytime it filled any reagent_container with a single reagent. Considering how many reagent containers there are that's a lot of wastage. Now it only does this once, thank goodness.

Unfortunately I had to stick the initialisation inside the datum/reagents holder object's New() proc, since New() for map ojects gets called before world/New()

Fixed clean_blood() yet again *sigh*. It's probably as good as I'm gonna get it without changing loadsa stuff needlessly.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4273 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
elly1989@rocketmail.com
2012-08-01 19:27:09 +00:00
parent a928428541
commit 187ecee177
7 changed files with 106 additions and 94 deletions

View File

@@ -10,6 +10,8 @@ var/global/list/client_list = list()//List of all clients, based on ckey
var/global/list/cable_list = list()//Index for all cables, so that powernets don't have to look through the entire world all the time
var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name
var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name
var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions
var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff
//////////////////////////
/////Initial Building/////