anchor.diff:  	objectives, uplinks, powers etc are all handled.
   */
   
  -	proc/remove_antag(specified_antag)
  -		special_role = null
  -
  +	proc/remove_objectives()
   		if(objectives.len)
   			for(var/datum/objective/O in objectives)
   				objectives -= O
   				qdel(O)
   
  -		switch(specified_antag)
  -			if(Changeling)
  -				if(src in ticker.mode.changelings)
  -					ticker.mode.changelings -= src
  -					current.remove_changeling_powers()
  -					if(changeling)
  -						qdel(changeling)
  -						changeling = null
  -			if(Traitor)
  -				if(src in ticker.mode.traitors)
  -					ticker.mode.traitors -= src
  -					if(isAI(current))
  -						var/mob/living/silicon/ai/A = current
  -						A.set_zeroth_law("")
  -						A.show_laws()
  -			if(NuclearOp)
  -				if(src in ticker.mode.syndicates)
  -					ticker.mode.syndicates -= src
  -					ticker.mode.update_synd_icons_removed(src)
  -			if(Wizard)
  -				if(src in ticker.mode.wizards)
  -					ticker.mode.wizards -= src
  -					current.spellremove(current)
  -			if(Cultist)
  -				if(src in ticker.mode.cult)
  -					ticker.mode.cult -= src
  -					ticker.mode.update_cult_icons_removed(src)
  -					var/datum/game_mode/cult/cult = ticker.mode
  -					if(istype(cult))
  -						cult.memorize_cult_objectives(src)
  -			if(Rev)
  -				if(src in ticker.mode.revolutionaries)
  -					ticker.mode.revolutionaries -= src
  -					ticker.mode.update_rev_icons_removed(src)
  -				if(src in ticker.mode.head_revolutionaries)
  -					ticker.mode.head_revolutionaries -= src
  -					ticker.mode.update_rev_icons_removed(src)
  -			if(Malf)
  -				if(src in ticker.mode.malf_ai)
  -					ticker.mode.malf_ai -= src
  -					var/mob/living/silicon/ai/A = current
  -					A.verbs.Remove(/mob/living/silicon/ai/proc/choose_modules,
  -						/datum/game_mode/malfunction/proc/takeover,
  -						/datum/game_mode/malfunction/proc/ai_win)
  -					A.malf_picker.remove_verbs(A)
  -					A.make_laws()
  -					qdel(A.malf_picker)
  -					A.show_laws()
  -					A.icon_state = "ai"
  -
  +	proc/remove_changeling()
  +		if(src in ticker.mode.changelings)
  +			ticker.mode.changelings -= src
  +			current.remove_changeling_powers()
  +			if(changeling)
  +				qdel(changeling)
  +				changeling = null
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_traitor()
  +		if(src in ticker.mode.traitors)
  +			ticker.mode.traitors -= src
  +			if(isAI(current))
  +				var/mob/living/silicon/ai/A = current
  +				A.set_zeroth_law("")
  +				A.show_laws()
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_nukeop()
  +		if(src in ticker.mode.syndicates)
  +			ticker.mode.syndicates -= src
  +			ticker.mode.update_synd_icons_removed(src)
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_wizard()
  +		if(src in ticker.mode.wizards)
  +			ticker.mode.wizards -= src
  +			current.spellremove(current)
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_cultist()
  +		if(src in ticker.mode.cult)
  +			ticker.mode.cult -= src
  +			ticker.mode.update_cult_icons_removed(src)
  +			var/datum/game_mode/cult/cult = ticker.mode
  +			if(istype(cult))
  +				cult.memorize_cult_objectives(src)
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_rev()
  +		if(src in ticker.mode.revolutionaries)
  +			ticker.mode.revolutionaries -= src
  +			ticker.mode.update_rev_icons_removed(src)
  +		if(src in ticker.mode.head_revolutionaries)
  +			ticker.mode.head_revolutionaries -= src
  +			ticker.mode.update_rev_icons_removed(src)
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_malf()
  +		if(src in ticker.mode.malf_ai)
  +			ticker.mode.malf_ai -= src
  +			var/mob/living/silicon/ai/A = current
  +			A.verbs.Remove(/mob/living/silicon/ai/proc/choose_modules,
  +				/datum/game_mode/malfunction/proc/takeover,
  +				/datum/game_mode/malfunction/proc/ai_win)
  +			A.malf_picker.remove_verbs(A)
  +			A.make_laws()
  +			qdel(A.malf_picker)
  +			A.show_laws()
  +			A.icon_state = "ai"
  +		special_role = null
  +		remove_objectives()
  +
  +	proc/remove_antag_equip()
   		var/list/Mob_Contents = current.get_contents()
   		for(var/obj/item/I in Mob_Contents)
   			if(istype(I, /obj/item/device/pda))
  
positive.code: 		else if (href_list["traitor"])
  			switch(href_list["traitor"])
  				if("clear")
  					remove_antag(Traitor)
  					current << "\red <FONT size = 3><B>You have been brainwashed! You are no longer a traitor!</B></FONT>"
  					message_admins("[key_name_admin(usr)] has de-traitor'ed [current].")
  					log_admin("[key_name(usr)] has de-traitor'ed [current].")
  
negative.code: 		else if (href_list["cult"])
  			switch(href_list["cult"])
  				if("clear")
  					remove_cultist()
  					current << "\red <FONT size = 3><B>You have been brainwashed! You are no longer a cultist!</B></FONT>"
  					message_admins("[key_name_admin(usr)] has de-cult'ed [current].")
  					log_admin("[key_name(usr)] has de-cult'ed [current].")
  