DEADSOFTWARE

Add sounds for flamethrower
[d2df-sdl.git] / src / game / g_weapons.pas
index 725ab6d701a05634adb9baffe2e256e6b94d41ee..5505731729eb497613804cd78aa72d00886d96c8 100644 (file)
@@ -1126,6 +1126,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');
@@ -1192,6 +1195,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 +1473,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 +1531,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 +2157,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