DEADSOFTWARE

Fast fix nil Sound on damned.wad MAP11
[d2df-sdl.git] / src / game / g_netmsg.pas
index abe7278a5a42267f06c0df26db3658604193af66..f17c0ed40a2c1c4742b0cea5499117a52abc7d1c 100644 (file)
@@ -644,7 +644,7 @@ procedure MH_SEND_Everything(CreatePlayers: Boolean = False; ID: Integer = NET_E
   begin
     result := false; // don't stop
     MH_SEND_PanelState(pan.guid, ID); // anyway, to sync mplats
-    if (pan.GetTextureCount > 1) then MH_SEND_PanelTexture(pan.guid, pan.LastAnimLoop, ID);
+    if (pan.CanChangeTexture) then MH_SEND_PanelTexture(pan.guid, pan.LastAnimLoop, ID);
   end;
 
 var
@@ -778,7 +778,7 @@ begin
     begin
       g_Console_Add(Txt, True);
       e_WriteLog('[Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
-      g_Sound_PlayEx('SOUND_GAME_RADIO');
+      g_Game_ChatSound(b_Text_Unformat(Txt));
     end
     else
     if Mode = NET_CHAT_TEAM then
@@ -788,13 +788,13 @@ begin
         begin
           g_Console_Add(#18'[Team] '#2 + Txt, True);
           e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
-          g_Sound_PlayEx('SOUND_GAME_RADIO');
+          g_Game_ChatSound(b_Text_Unformat(Txt));
         end
         else if (gPlayer1.Team = TEAM_BLUE) and (Team = TEAM_BLUE) then
         begin
           g_Console_Add(#20'[Team] '#2 + Txt, True);
           e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
-          g_Sound_PlayEx('SOUND_GAME_RADIO');
+          g_Game_ChatSound(b_Text_Unformat(Txt));
         end;
       end;
   end
@@ -803,7 +803,7 @@ begin
     Name := g_Net_ClientName_ByID(ID);
     g_Console_Add('-> ' + Name + ': ' + Txt, True);
     e_WriteLog('[Tell ' + Name + '] ' + b_Text_Unformat(Txt), TMsgType.Notify);
-    g_Sound_PlayEx('SOUND_GAME_RADIO');
+    g_Game_ChatSound(b_Text_Unformat(Txt), False);
   end;
 end;
 
@@ -1410,7 +1410,7 @@ begin
     begin
       g_Console_Add(Txt, True);
       e_WriteLog('[Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
-      g_Sound_PlayEx('SOUND_GAME_RADIO');
+      g_Game_ChatSound(b_Text_Unformat(Txt));
     end else
     if (Mode = NET_CHAT_TEAM) and (gPlayer1 <> nil) then
     begin
@@ -1419,7 +1419,7 @@ begin
       if gPlayer1.Team = TEAM_BLUE then
         g_Console_Add(b_Text_Format('\b[Team] ') + Txt, True);
       e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
-      g_Sound_PlayEx('SOUND_GAME_RADIO');
+      g_Game_ChatSound(b_Text_Unformat(Txt));
     end;
   end else
     g_Console_Add(Txt, True);
@@ -2364,17 +2364,9 @@ begin
   TP := g_Map_PanelByGUID(PGUID);
   if (TP <> nil) then
   begin
-    if Loop = 0 then
-    begin
-      // switch texture
-      TP.SetTexture(Tex, Loop);
-      TP.SetFrame(Fr, Cnt);
-    end
-    else
-    begin
-      // looped or non-looped animation
-      TP.NextTexture(Loop);
-    end;
+    // switch texture
+    TP.SetTexture(Tex, Loop);
+    TP.SetFrame(Fr, Cnt);
   end;
 end;
 
@@ -2464,16 +2456,19 @@ begin
       if gTriggers[I].ClientID = SID then
         with gTriggers[I] do
         begin
-          if SPlaying then
+          if Sound <> nil then
           begin
-            if tgcLocal then
-              Sound.PlayVolumeAt(X+(Width div 2), Y+(Height div 2), tgcVolume/255.0)
+            if SPlaying then
+            begin
+              if tgcLocal then
+                Sound.PlayVolumeAt(X+(Width div 2), Y+(Height div 2), tgcVolume/255.0)
+              else
+                Sound.PlayPanVolume((tgcPan-127.0)/128.0, tgcVolume/255.0);
+              Sound.SetPosition(SPos);
+            end
             else
-              Sound.PlayPanVolume((tgcPan-127.0)/128.0, tgcVolume/255.0);
-            Sound.SetPosition(SPos);
-          end
-          else
-            if Sound.IsPlaying then Sound.Stop;
+              if Sound.IsPlaying then Sound.Stop;
+          end;
 
           SoundPlayCount := SCount;
         end;