DEADSOFTWARE

Flammenwerfer: Burn in hell demons!
[d2df-sdl.git] / src / game / g_monsters.pas
index 12488d6e1c69aedad84bdaf0207800bf6a479347..83714cbdd0ec333d5f9a581bfd35c78aae655fd5 100644 (file)
@@ -2469,6 +2469,14 @@ begin
   st := g_Obj_Move(@FObj, fall, True, True);
   positionChanged(); // this updates spatial accelerators
 
+// Åñëè ãîðèì - ïîäæèãàåì äðóãèõ ìîíñòðîâ:
+  if FFireTime > 0 then
+    for a := 0 to High(gMonsters) do
+      if (gMonsters[a] <> nil) and (gMonsters[a].alive) and
+         (gMonsters[a].FUID <> FUID) and
+         g_Obj_Collide(@FObj, @gMonsters[a].Obj) then
+        gMonsters[a].CatchFire(FFireAttacker);
+
 // Âûëåòåë çà êàðòó - óäàëÿåì è çàïóñêàåì òðèããåðû:
   if WordBool(st and MOVE_FALLOUT) or (FObj.X < -1000) or
      (FObj.X > gMapInfo.Width+1000) or (FObj.Y < -1000) then
@@ -4638,6 +4646,8 @@ end;
 
 procedure TMonster.CatchFire(Attacker: Word);
 begin
+  if FFireTime <= 0 then
+    g_Sound_PlayExAt('SOUND_IGNITE', FObj.X, FObj.Y);
   FFireTime := 100;
   FFireAttacker := Attacker;
   if g_Game_IsNet and g_Game_IsServer then MH_SEND_MonsterState(FUID);