DEADSOFTWARE

fix freeze when running out of bot names
[d2df-sdl.git] / src / game / g_player.pas
index 2ec93df11d2f99501fa7ce1176c5076105436ad7..94ca02efbd7372227be18b606ad975f94c2f0673 100644 (file)
@@ -1072,12 +1072,6 @@ begin
         Break;
       end;
 
-// Èìåíè íåò, çàäàåì ñëó÷àéíîå:
-  if _name = '' then
-    repeat
-      _name := Format('DFBOT%.2d', [Random(100)]);
-    until g_Player_ValidName(_name);
-
 // Âûáèðàåì ñëó÷àéíóþ ìîäåëü:
   _model := m[Random(Length(m))];
 
@@ -1088,7 +1082,11 @@ begin
                                          Min(Random(9)*32, 255)),
                                     Team, True)) as TBot do
   begin
-    Name := _name;
+  // Åñëè èìåíè íåò, äåëàåì åãî èç UID áîòà
+    if _name = '' then
+      Name := Format('DFBOT%.5d', [UID])
+    else
+      Name := _name;
 
     case Difficult of
       1: FDifficult := DIFFICULT_EASY;
@@ -4368,6 +4366,7 @@ begin
   FMonsterKills := 0;
   FDeath := 0;
   FSecrets := 0;
+  FSpawnInvul := 0;
   FReady := False;
   if FNoRespawn then
   begin
@@ -4560,6 +4559,7 @@ begin
   FShellTimer := -1;
   FPain := 0;
   FLastHit := 0;
+  FSpawnInvul := 0;
 
   if not g_Game_IsServer then
     Exit;
@@ -4827,7 +4827,7 @@ begin
 
   if FDirection = TDirection.D_LEFT then FAngle := ANGLE_LEFTDOWN else FAngle := ANGLE_RIGHTDOWN;
 
-  if FIncCam > -120.0 * g_dbg_scale then DecMin(FIncCam, 5, Integer(-120.0 * g_dbg_scale));
+  if FIncCam > -120 then DecMin(FIncCam, 5, -120);
 end;
 
 procedure TPlayer.SeeUp();
@@ -4836,7 +4836,7 @@ begin
 
   if FDirection = TDirection.D_LEFT then FAngle := ANGLE_LEFTUP else FAngle := ANGLE_RIGHTUP;
 
-  if FIncCam < 120.0 * g_dbg_scale then IncMax(FIncCam, 5, Integer(120.0 * g_dbg_scale));
+  if FIncCam < 120 then IncMax(FIncCam, 5, 120);
 end;
 
 procedure TPlayer.SetAction(Action: Byte; Force: Boolean = False);
@@ -6303,6 +6303,7 @@ begin
       if FMegaRulez[MR_INVUL] < gTime+PLAYER_INVUL_TIME then
       begin
         FMegaRulez[MR_INVUL] := gTime+PLAYER_INVUL_TIME;
+        FSpawnInvul := 0;
       end;
 
     ITEM_INVIS: