DEADSOFTWARE

Flammenwerfer: Burn in hell demons!
[d2df-sdl.git] / src / game / g_weapons.pas
index 725ab6d701a05634adb9baffe2e256e6b94d41ee..21b206127a34928f44cb9c90de0fd5adcbfc570b 100644 (file)
@@ -1117,6 +1117,7 @@ begin
   g_Sound_CreateWADEx('SOUND_WEAPON_FIRECGUN', GameWAD+':SOUNDS\FIRECGUN');
   g_Sound_CreateWADEx('SOUND_WEAPON_FIREBFG', GameWAD+':SOUNDS\FIREBFG');
   g_Sound_CreateWADEx('SOUND_FIRE', GameWAD+':SOUNDS\FIRE');
+  g_Sound_CreateWADEx('SOUND_IGNITE', GameWAD+':SOUNDS\IGNITE');
   g_Sound_CreateWADEx('SOUND_WEAPON_STARTFIREBFG', GameWAD+':SOUNDS\STARTFIREBFG');
   g_Sound_CreateWADEx('SOUND_WEAPON_EXPLODEROCKET', GameWAD+':SOUNDS\EXPLODEROCKET');
   g_Sound_CreateWADEx('SOUND_WEAPON_EXPLODEBFG', GameWAD+':SOUNDS\EXPLODEBFG');
@@ -1126,6 +1127,9 @@ begin
   g_Sound_CreateWADEx('SOUND_WEAPON_FIREBALL', GameWAD+':SOUNDS\FIREBALL');
   g_Sound_CreateWADEx('SOUND_WEAPON_EXPLODEBALL', GameWAD+':SOUNDS\EXPLODEBALL');
   g_Sound_CreateWADEx('SOUND_WEAPON_FIREREV', GameWAD+':SOUNDS\FIREREV');
+  g_Sound_CreateWADEx('SOUND_WEAPON_FLAMEON', GameWAD+':SOUNDS\STARTFLM');
+  g_Sound_CreateWADEx('SOUND_WEAPON_FLAMEOFF', GameWAD+':SOUNDS\STOPFLM');
+  g_Sound_CreateWADEx('SOUND_WEAPON_FLAMEWORK', GameWAD+':SOUNDS\WORKFLM');
   g_Sound_CreateWADEx('SOUND_PLAYER_JETFLY', GameWAD+':SOUNDS\WORKJETPACK');
   g_Sound_CreateWADEx('SOUND_PLAYER_JETON', GameWAD+':SOUNDS\STARTJETPACK');
   g_Sound_CreateWADEx('SOUND_PLAYER_JETOFF', GameWAD+':SOUNDS\STOPJETPACK');
@@ -1183,6 +1187,7 @@ begin
   g_Sound_Delete('SOUND_WEAPON_FIRECGUN');
   g_Sound_Delete('SOUND_WEAPON_FIREBFG');
   g_Sound_Delete('SOUND_FIRE');
+  g_Sound_Delete('SOUND_IGNITE');
   g_Sound_Delete('SOUND_WEAPON_STARTFIREBFG');
   g_Sound_Delete('SOUND_WEAPON_EXPLODEROCKET');
   g_Sound_Delete('SOUND_WEAPON_EXPLODEBFG');
@@ -1192,6 +1197,9 @@ begin
   g_Sound_Delete('SOUND_WEAPON_FIREBALL');
   g_Sound_Delete('SOUND_WEAPON_EXPLODEBALL');
   g_Sound_Delete('SOUND_WEAPON_FIREREV');
+  g_Sound_Delete('SOUND_WEAPON_FLAMEON');
+  g_Sound_Delete('SOUND_WEAPON_FLAMEOFF');
+  g_Sound_Delete('SOUND_WEAPON_FLAMEWORK');
   g_Sound_Delete('SOUND_PLAYER_JETFLY');
   g_Sound_Delete('SOUND_PLAYER_JETON');
   g_Sound_Delete('SOUND_PLAYER_JETOFF');
@@ -1467,9 +1475,8 @@ var
   {$IF DEFINED(D2F_DEBUG)}
   stt: UInt64;
   {$ENDIF}
-  pmark: PoolMark;
-  hitcount: Integer;
-  pmon: PMonster;
+  mit: PMonster;
+  it: TMonsterGrid.Iter;
 begin
   (*
   if not gwep_debug_fast_trace then
@@ -1526,16 +1533,9 @@ begin
   // collect monsters
   //g_Mons_AlongLine(x, y, x2, y2, sqchecker);
 
-  pmark := framePool.mark();
-  hitcount := monsGrid.forEachAlongLine(x, y, x2, y2, -1);
-  pmon := PMonster(framePool.getPtr(pmark));
-  while (hitcount > 0) do
-  begin
-    sqchecker(pmon^);
-    Inc(pmon);
-    Dec(hitcount);
-  end;
-  framePool.release(pmark);
+  it := monsGrid.forEachAlongLine(x, y, x2, y2, -1);
+  for mit in it do sqchecker(mit^);
+  it.release();
 
   // here, we collected all monsters and players in `wgunHitHeap` and `wgunHitTime`
   // also, if `wallWasHit` is `true`, then `wallHitX` and `wallHitY` contains spark coords
@@ -2159,7 +2159,7 @@ begin
 
       if Stopped = 0 then
       begin
-        st := g_Obj_Move(@Obj, False, spl);
+        st := g_Obj_Move_Projectile(@Obj, False, spl);
       end
       else
       begin