anchor.diff:  			gear_points -= init_cost
   
   	//try to fix any outdated data if necessary
  +	//preference updating will handle saving the updated data for us.
   	if(needs_update >= 0)
   		update_character(needs_update, S)		//needs_update == savefile_version if we need an update (positive integer)
   
  
positive.code: 
  /datum/preferences/proc/load_preferences()
  	if(!path)
  		return 0
  	if(world.time < loadprefcooldown)
  		if(istype(parent))
  			to_chat(parent, "<span class='warning'>You're attempting to load your preferences a little too fast. Wait half a second, then try again.</span>")
  		return 0
  	loadprefcooldown = world.time + PREF_SAVELOAD_COOLDOWN
  	if(!fexists(path))
  		return 0
  
  	var/savefile/S = new /savefile(path)
  	if(!S)
  		return 0
  	S.cd = "/"
  
  	var/needs_update = savefile_needs_update(S)
  	if(needs_update == -2)		//fatal, can't load any data
  		return 0
  
  	. = TRUE
  
  
negative.code: 	S.cd = "/character[slot]"
  	var/needs_update = savefile_needs_update(S)
  	if(needs_update == -2)		//fatal, can't load any data
  		return FALSE
  
  	. = TRUE
  
  