anchor.diff:  
   
   /obj/item/weapon/flamethrower/attack_self(mob/user)
  -	if(user.stat || user.restrained() || user.lying)
  -		return
  -	user.set_machine(src)
  +	toggle_igniter(user)
  +
  +
  +/obj/item/weapon/flamethrower/proc/toggle_igniter(mob/user)
   	if(!ptank)
   		to_chat(user, "<span class='notice'>Attach a plasma tank first!</span>")
   		return
  -	var/dat = text("<TT><B>Flamethrower (<A HREF='?src=\ref[src];light=1'>[lit ? "<font color='red'>Lit</font>" : "Unlit"]</a>)</B><BR>\n Tank Pressure: [ptank.air_contents.return_pressure()]<BR>\nAmount to throw: <A HREF='?src=\ref[src];amount=-100'>-</A> <A HREF='?src=\ref[src];amount=-10'>-</A> <A HREF='?src=\ref[src];amount=-1'>-</A> [throw_amount] <A HREF='?src=\ref[src];amount=1'>+</A> <A HREF='?src=\ref[src];amount=10'>+</A> <A HREF='?src=\ref[src];amount=100'>+</A><BR>\n<A HREF='?src=\ref[src];remove=1'>Remove plasmatank</A> - <A HREF='?src=\ref[src];close=1'>Close</A></TT>")
  -	user << browse(dat, "window=flamethrower;size=600x300")
  -	onclose(user, "flamethrower")
  -	return
  -
  -
  -/obj/item/weapon/flamethrower/Topic(href,href_list[])
  -	if(href_list["close"])
  -		usr.unset_machine()
  -		usr << browse(null, "window=flamethrower")
  -		return
  -	if(usr.stat || usr.restrained() || usr.lying)
  -		return
  -	usr.set_machine(src)
  -	if(href_list["light"])
  -		if(!ptank)
  -			return
  -		if(!status)
  -			return
  -		lit = !lit
  -		if(lit)
  -			START_PROCESSING(SSobj, src)
  -			if(!warned_admins)
  -				message_admins("[ADMIN_LOOKUPFLW(usr)] has lit a flamethrower.")
  -				warned_admins = 1
  -	if(href_list["amount"])
  -		throw_amount = throw_amount + text2num(href_list["amount"])
  -		throw_amount = max(50, min(5000, throw_amount))
  -	if(href_list["remove"])
  -		if(!ptank)
  -			return
  -		usr.put_in_hands(ptank)
  -		ptank = null
  -		lit = 0
  -		usr.unset_machine()
  -		usr << browse(null, "window=flamethrower")
  -	for(var/mob/M in viewers(1, loc))
  -		if((M.client && M.machine == src))
  -			attack_self(M)
  +	if(!status)
  +		to_chat(user, "<span class='notice'>Secure the igniter first!</span>")
  +		return
  +	to_chat(user, "<span class='notice'>You ignite [src]!</span>")
  +	lit = !lit
  +	if(lit)
  +		START_PROCESSING(SSobj, src)
  +		if(!warned_admins)
  +			message_admins("[ADMIN_LOOKUPFLW(user)] has lit a flamethrower.")
  +			warned_admins = 1
  +	else
  +		STOP_PROCESSING(SSobj,src)
   	update_icon()
  -	return
   
   /obj/item/weapon/flamethrower/CheckParts(list/parts_list)
   	..()
  
positive.code: 		item_state = "flamethrower_1"
  	else
  		item_state = "flamethrower_0"
  	return
  
  /obj/item/weapon/flamethrower/afterattack(atom/target, mob/user, flag)
  
negative.code: 	target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500)
  	//location.hotspot_expose(1000,500,1)
  	SSair.add_to_active(target, 0)
  
  
  /obj/item/weapon/flamethrower/Initialize(mapload)
  	. = ..()
  	if(create_full)
  		if(!weldtool)
  			weldtool = new /obj/item/weapon/weldingtool(src)
  		weldtool.status = 0
  		if(!igniter)
  			igniter = new igniter_type(src)
  		igniter.secured = 0
  		status = 1
  		if(create_with_tank)
  			ptank = new /obj/item/weapon/tank/internals/plasma/full(src)
  		update_icon()
  
  /obj/item/weapon/flamethrower/full/tank
  	create_full = TRUE
  
  /obj/item/weapon/flamethrower/full/tank
  	create_with_tank = TRUE
  
  /obj/item/weapon/flamethrower/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type)
  	if(ptank && damage && attack_type == PROJECTILE_ATTACK && prob(15))
  		owner.visible_message("<span class='danger'>[attack_text] hits the fueltank on [owner]'s [src], rupturing it! What a shot!</span>")
  		var/target_turf = get_turf(owner)
  		igniter.ignite_turf(src,target_turf, release_amount = 100)
  		qdel(ptank)
  		return 1 //It hit the flamethrower, not them
  
  
  /obj/item/device/assembly/igniter/proc/flamethrower_process(turf/open/location)
  	location.hotspot_expose(700,2)
  
  /obj/item/device/assembly/igniter/cold/flamethrower_process(turf/open/location)
  	return
  
  /obj/item/device/assembly/igniter/proc/ignite_turf(obj/item/weapon/flamethrower/F,turf/open/location,release_amount = 0.05)
  	F.default_ignite(location,release_amount)