@@ -367,7 +367,7 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel
367
367
if (check_fire_protection())
368
368
return 0
369
369
370
- if (! istype (loc, / turf )) // worn or held items don't ignite (for now >:^) )
370
+ if (! isturf (loc)) // worn or held items don't ignite (for now >:^) )
371
371
return 0
372
372
373
373
if (! flammable)
@@ -389,8 +389,7 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel
389
389
return 1
390
390
391
391
/ atom/movable / ignite()
392
- .. ()
393
- if (! firelightdummy)
392
+ if (.. () && ! firelightdummy)
394
393
firelightdummy = new (src )
395
394
396
395
/ atom / proc / fire_act( datum / gas_mixture/ air, exposed_temperature, exposed_volume)
@@ -607,15 +606,22 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel
607
606
QDEL_NULL (firelightdummy)
608
607
qdel (src )
609
608
609
+
610
+ / obj / effect/ fire/ burnSolidFuel()
611
+ return 0
612
+
613
+ / obj / effect/ fire/ burnLiquidFuel()
614
+ return 0
615
+
610
616
/ obj / effect/ fire/ process()
611
617
if (timestopped)
612
618
return 0
613
619
. = 1
614
620
615
621
// Fires shouldn't spawn in areas or mobs, but it has happened...
616
- if (istype(loc,/ area ) || istype(loc, / mob ))
622
+ if (! istype(loc,/ turf ))
617
623
qdel (src )
618
- CRASH (" Fire was created at [ loc] instead of a turf." )
624
+ CRASH (" Fire was created at src->loc: [ src ] -> [ loc] instead of a turf." )
619
625
620
626
// Get location and check if it is in a proper ZAS zone.
621
627
var /turf /simulated/S = get_turf(loc)
@@ -648,14 +654,15 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel
648
654
setfirelight (firelevel, air_contents. temperature)
649
655
650
656
// Burn mobs.
651
- for (var /mob /living/carbon/human/M in loc )
657
+ for (var /mob /living/carbon/human/M in S )
652
658
if (M. mutations. Find(M_UNBURNABLE ))
653
659
continue
654
660
M. FireBurn(firelevel, FLAME_TEMPERATURE_PLASTIC , air_contents. return_pressure())
655
661
656
662
// Burn items in the turf.
657
- for (var /atom /A in loc)
658
- A. fire_act(air_contents, air_contents. temperature, air_contents. return_volume())
663
+ for (var /atom /A in S)
664
+ if (A. loc == S)
665
+ A. fire_act(air_contents, air_contents. temperature, air_contents. return_volume())
659
666
660
667
// Burn the turf, too.
661
668
S. fire_act(air_contents, air_contents. temperature, air_contents. return_volume())
@@ -759,15 +766,15 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel
759
766
var /solid_burn_products
760
767
var /liquid_burn_products
761
768
if (T)
762
- if (T. flammable ) // burn the turf
769
+ if (T. on_fire ) // burn the turf
763
770
solid_burn_products = T. burnSolidFuel()
764
771
if (solid_burn_products)
765
772
combustion_energy += solid_burn_products[" heat_out" ]
766
773
combustion_oxy_used += solid_burn_products[" oxy_used" ]
767
774
combustion_co2_prod += solid_burn_products[" co2_prod" ]
768
775
max_temperature = max(max_temperature, solid_burn_products[" max_temperature" ])
769
776
for (var /atom /A in T)
770
- if (A. flammable ) // burn items on the turf
777
+ if (A. on_fire ) // burn items on the turf
771
778
solid_burn_products = A. burnSolidFuel()
772
779
if (solid_burn_products)
773
780
combustion_energy += solid_burn_products[" heat_out" ]
0 commit comments