DEADSOFTWARE

game: disable shells for server
[d2df-sdl.git] / src / game / g_netmsg.pas
index c49ffaa6aa6ae4a192465faad13ef82a7e3e3973..775a7ae0c06afeb392244540d9917605fb199097 100644 (file)
@@ -275,11 +275,21 @@ function IsValidFilePath(const S: String): Boolean;
 
 implementation
 
-uses
-  Math, ENet, e_input, e_log, g_base, g_basic,
-  g_textures, g_gfx, g_sound, g_console, g_options,
-  g_game, g_player, g_map, g_panel, g_items, g_weapons, g_phys, g_gui,
-  g_language, g_monsters, g_netmaster, utils, wadreader, MAPDEF;
+  uses
+    {$IFDEF ENABLE_MENU}
+      g_gui,
+    {$ENDIF}
+    {$IFDEF ENABLE_GFX}
+      g_gfx,
+    {$ENDIF}
+    {$IFDEF ENABLE_SHELLS}
+      g_shells,
+    {$ENDIF}
+    Math, ENet, e_input, e_log, g_base, g_basic,
+    g_textures, g_sound, g_console, g_options,
+    g_game, g_player, g_map, g_panel, g_items, g_weapons, g_phys,
+    g_language, g_monsters, g_netmaster, utils, wadreader, MAPDEF
+  ;
 
 const
   NET_KEY_LEFT     = 1;
@@ -650,7 +660,7 @@ begin
     Pl.Name := TmpName;
   end;
 
-  if TmpModel <> Pl.Model.Name then
+  if TmpModel <> Pl.Model.GetName() then
     Pl.SetModel(TmpModel);
 
   MH_SEND_PlayerSettings(Pl.UID, TmpModel);
@@ -1242,7 +1252,7 @@ begin
   NetOut.Write(PID);
   NetOut.Write(Pl.Name);
   if Mdl = '' then
-    NetOut.Write(Pl.Model.Name)
+    NetOut.Write(Pl.Model.GetName())
   else
     NetOut.Write(Mdl);
   NetOut.Write(Pl.FColor.R);
@@ -1543,8 +1553,6 @@ var
   Kind: Byte;
   X, Y: Integer;
   Ang: SmallInt;
-  Anim: TAnimation;
-  ID: LongWord;
 begin
   if not gGameOn then Exit;
   Kind := M.ReadByte();
@@ -1554,90 +1562,75 @@ begin
 
   case Kind of
     NET_GFX_SPARK:
-      g_GFX_Spark(X, Y, 2 + Random(2), Ang, 0, 0);
-
+    begin
+      {$IFDEF ENABLE_GFX}
+        g_GFX_Spark(X, Y, 2 + Random(2), Ang, 0, 0);
+      {$ENDIF}
+    end;
     NET_GFX_TELE:
     begin
-      if g_Frames_Get(ID, 'FRAMES_TELEPORT') then
-      begin
-        Anim := TAnimation.Create(ID, False, 3);
-        g_GFX_OnceAnim(X, Y, Anim);
-        Anim.Free();
-      end;
+      {$IFDEF ENABLE_GFX}
+        g_GFX_QueueEffect(R_GFX_TELEPORT_FAST, X, Y);
+      {$ENDIF}
       if Ang = 1 then
         g_Sound_PlayExAt('SOUND_GAME_TELEPORT', X, Y);
     end;
-
     NET_GFX_EXPLODE:
     begin
-      if g_Frames_Get(ID, 'FRAMES_EXPLODE_ROCKET') then
-      begin
-        Anim := TAnimation.Create(ID, False, 6);
-        Anim.Blending := False;
-        g_GFX_OnceAnim(X-64, Y-64, Anim);
-        Anim.Free();
-      end;
+      {$IFDEF ENABLE_GFX}
+        g_GFX_QueueEffect(R_GFX_EXPLODE_ROCKET, X - 64, Y - 64);
+      {$ENDIF}
       if Ang = 1 then
         g_Sound_PlayExAt('SOUND_WEAPON_EXPLODEROCKET', X, Y);
     end;
-
     NET_GFX_BFGEXPL:
     begin
-      if g_Frames_Get(ID, 'FRAMES_EXPLODE_BFG') then
-      begin
-        Anim := TAnimation.Create(ID, False, 6);
-        Anim.Blending := False;
-        g_GFX_OnceAnim(X-64, Y-64, Anim);
-        Anim.Free();
-      end;
+      {$IFDEF ENABLE_GFX}
+        g_GFX_QueueEffect(R_GFX_EXPLODE_BFG, X - 64, Y - 64);
+      {$ENDIF}
       if Ang = 1 then
         g_Sound_PlayExAt('SOUND_WEAPON_EXPLODEBFG', X, Y);
     end;
-
     NET_GFX_BFGHIT:
     begin
-      if g_Frames_Get(ID, 'FRAMES_BFGHIT') then
-      begin
-        Anim := TAnimation.Create(ID, False, 4);
-        g_GFX_OnceAnim(X-32, Y-32, Anim);
-        Anim.Free();
-      end;
+      {$IFDEF ENABLE_GFX}
+        g_GFX_QueueEffect(R_GFX_BFG_HIT, X - 32, Y - 32);
+      {$ENDIF}
     end;
-
     NET_GFX_FIRE:
     begin
-      if g_Frames_Get(ID, 'FRAMES_FIRE') then
-      begin
-        Anim := TAnimation.Create(ID, False, 4);
-        g_GFX_OnceAnim(X, Y, Anim);
-        Anim.Free();
-      end;
+      {$IFDEF ENABLE_GFX}
+        g_GFX_QueueEffect(R_GFX_FIRE, X, Y);
+      {$ENDIF}
       if Ang = 1 then
         g_Sound_PlayExAt('SOUND_FIRE', X, Y);
     end;
-
     NET_GFX_RESPAWN:
     begin
-      if g_Frames_Get(ID, 'FRAMES_ITEM_RESPAWN') then
-      begin
-        Anim := TAnimation.Create(ID, False, 4);
-        g_GFX_OnceAnim(X, Y, Anim);
-        Anim.Free();
-      end;
+      {$IFDEF ENABLE_GFX}
+        g_GFX_QueueEffect(R_GFX_ITEM_RESPAWN, X, Y);
+      {$ENDIF}
       if Ang = 1 then
         g_Sound_PlayExAt('SOUND_ITEM_RESPAWNITEM', X, Y);
     end;
-
     NET_GFX_SHELL1:
-      g_Player_CreateShell(X, Y, 0, -2, SHELL_BULLET);
-
+    begin
+      {$IFDEF ENABLE_SHELLS}
+        g_Shells_Create(X, Y, 0, -2, SHELL_BULLET);
+      {$ENDIF}
+    end;
     NET_GFX_SHELL2:
-      g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL);
-
+    begin
+      {$IFDEF ENABLE_SHELLS}
+        g_Shells_Create(X, Y, 0, -2, SHELL_SHELL);
+      {$ENDIF}
+    end;
     NET_GFX_SHELL3:
     begin
-      g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL);
-      g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL);
+      {$IFDEF ENABLE_SHELLS}
+        g_Shells_Create(X, Y, 0, -2, SHELL_SHELL);
+        g_Shells_Create(X, Y, 0, -2, SHELL_SHELL);
+      {$ENDIF}
     end;
   end;
 end;
@@ -2533,7 +2526,7 @@ begin
     Pl.Name := TmpName;
   end;
 
-  if TmpModel <> Pl.Model.Name then
+  if TmpModel <> Pl.Model.GetName() then
     Pl.SetModel(TmpModel);
 end;
 
@@ -2542,11 +2535,9 @@ end;
 procedure MC_RECV_ItemSpawn(var M: TMsg);
 var
   ID: Word;
-  AID: DWord;
   X, Y, VX, VY: Integer;
   T: Byte;
   Quiet, Fall{, Resp}: Boolean;
-  Anim: TAnimation;
   it: PItem;
 begin
   if not gGameOn then Exit;
@@ -2570,12 +2561,9 @@ begin
   if not Quiet then
   begin
     g_Sound_PlayExAt('SOUND_ITEM_RESPAWNITEM', X, Y);
-    if g_Frames_Get(AID, 'FRAMES_ITEM_RESPAWN') then
-    begin
-      Anim := TAnimation.Create(AID, False, 4);
-      g_GFX_OnceAnim(X+(it.Obj.Rect.Width div 2)-16, Y+(it.Obj.Rect.Height div 2)-16, Anim);
-      Anim.Free();
-    end;
+    {$IFDEF ENABLE_GFX}
+      g_GFX_QueueEffect(R_GFX_ITEM_RESPAWN, X+(it.Obj.Rect.Width div 2)-16, Y+(it.Obj.Rect.Height div 2)-16);
+    {$ENDIF}
   end;
 end;
 
@@ -2981,7 +2969,11 @@ begin
   kByte := 0;
   Predict := NetPredictSelf; // and (not NetGotKeys);
 
+{$IFDEF DISABLE_MENU}
+  if (not gConsoleShow) and (not gChatShow) then
+{$ELSE}
   if (not gConsoleShow) and (not gChatShow) and (g_ActiveWindow = nil) then
+{$ENDIF}
   begin
     strafeDir := P1MoveButton shr 4;
     P1MoveButton := P1MoveButton and $0F;