DEADSOFTWARE

game: fix playermodel forcing
[d2df-sdl.git] / src / game / g_game.pas
index 7ec13174f02efdfb7d897b5d82a095f8c9dcc8e2..34a387ab255c4a9fb8eefee58216c06dfca0a291 100644 (file)
@@ -774,6 +774,19 @@ end;
 function g_Game_IsNet(): Boolean;
 begin
   Result := (gGameSettings.GameType in [GT_SERVER, GT_CLIENT]);
+
+  if gGameSettings.GameType in [GT_SERVER, GT_CLIENT] then
+  begin
+    // set debug options to false to avoid cheaters
+    g_debug_Sounds := False;
+    g_debug_Frames := False;
+    g_debug_WinMsgs := False;
+    g_debug_MonsterOff := False;
+    g_debug_BotAIOff := 0;
+    g_debug_HealthBar := False;
+    g_Debug_Player := False;
+    Exit;
+  end;
 end;
 
 function g_Game_IsServer(): Boolean;
@@ -5761,6 +5774,64 @@ begin
       e_LogWritefln('usage: %s <n>', [cmd])
     end
   end
+  else if cmd = 'g_force_model' then
+  begin
+    if Length(p) = 2 then
+    begin
+      a := StrToIntDef(p[1], 0);
+      g_Force_Model_Set(a);
+      if (g_Force_Model_Get() <> 0) and (gPlayers <> nil) then
+      begin
+        for a := Low(gPlayers) to High(gPlayers) do
+        begin
+          if (gPlayers[a] <> nil) then
+          begin
+            if (gPlayers[a].UID = gPlayer1.UID) then
+              continue
+            else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
+              continue;
+            gPlayers[a].setModel(g_Forced_Model_GetName());
+          end;
+        end
+      end
+      else if (g_Force_Model_Get() = 0) and (gPlayers <> nil) then
+      begin
+        for a := Low(gPlayers) to High(gPlayers) do
+        begin
+          if (gPlayers[a] <> nil) then
+          begin
+            if (gPlayers[a].UID = gPlayer1.UID) then
+              continue
+            else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
+              continue;
+            gPlayers[a].setModel(gPlayers[a].FActualModelName);
+          end;
+        end
+      end
+    end
+  end
+  else if cmd = 'g_force_model_name' then
+  begin
+    if (Length(P) > 1) then
+    begin
+      cmd := b_Text_Unformat(P[1]);
+      g_Forced_Model_SetName(cmd);
+      if (g_Force_Model_Get() <> 0) and (gPlayers <> nil) then
+      begin
+        for a := Low(gPlayers) to High(gPlayers) do
+        begin
+          if (gPlayers[a] <> nil) then
+          begin
+            if (gPlayers[a].UID = gPlayer1.UID) then
+              continue
+            else if (gPlayer2 <> nil) and (gPlayers[a].UID = gPlayer2.UID) then
+              continue;
+            gPlayers[a].setModel(g_Forced_Model_GetName());
+          end;
+        end
+      end
+    end
+  end
   else if cmd = 'g_scorelimit' then
   begin
     if Length(P) > 1 then