DEADSOFTWARE

added simple hash table tester
[d2df-sdl.git] / src / game / g_game.pas
index 2a52eccfb90dd8b19c144ee23530224f9684315a..9edbcf0ed2f5c7d00cbba3850735174494a7419c 100644 (file)
@@ -327,7 +327,7 @@ uses
   g_playermodel, g_gfx, g_options, g_weapons, Math,
   g_triggers, MAPDEF, g_monsters, e_sound, CONFIG,
   BinEditor, g_language, g_net, SDL,
-  ENet, e_fixedbuffer, g_netmsg, g_netmaster, GL, GLExt,
+  ENet, e_msg, g_netmsg, g_netmaster, GL, GLExt,
   utils, sfs;
 
 
@@ -1440,7 +1440,7 @@ var
   w: Word;
   i, b: Integer;
 
-  function sendMonsPos (monidx: Integer; mon: TMonster): Boolean;
+  function sendMonsPos (mon: TMonster): Boolean;
   begin
     result := false; // don't stop
     if (mon.MonsterType = MONSTER_BARREL) then
@@ -2442,7 +2442,7 @@ procedure DrawMinimap(p: TPlayer; RenderRect: e_graphics.TRect);
 var
   a, aX, aY, aX2, aY2, Scale, ScaleSz: Integer;
 
-  function monDraw (monidx: Integer; mon: TMonster): Boolean;
+  function monDraw (mon: TMonster): Boolean;
   begin
     result := false; // don't stop
     with mon do
@@ -3740,6 +3740,7 @@ var
   State: Byte;
   OuterLoop: Boolean;
   newResPath: string;
+  InMsg: TMsg;
 begin
   g_Game_Free();
 
@@ -3787,27 +3788,28 @@ begin
       if (NetEvent.kind = ENET_EVENT_TYPE_RECEIVE) then
       begin
         Ptr := NetEvent.packet^.data;
-        e_Raw_Seek(0);
+        if not InMsg.Init(Ptr, NetEvent.packet^.dataLength, True) then
+          continue;
 
-        MID := e_Raw_Read_Byte(Ptr);
+        MID := InMsg.ReadByte();
 
         if (MID = NET_MSG_INFO) and (State = 0) then
         begin
-          NetMyID := e_Raw_Read_Byte(Ptr);
-          NetPlrUID1 := e_Raw_Read_Word(Ptr);
+          NetMyID := InMsg.ReadByte();
+          NetPlrUID1 := InMsg.ReadWord();
 
-          WadName := e_Raw_Read_String(Ptr);
-          Map := e_Raw_Read_String(Ptr);
+          WadName := InMsg.ReadString();
+          Map := InMsg.ReadString();
 
-          gWADHash := e_Raw_Read_MD5(Ptr);
+          gWADHash := InMsg.ReadMD5();
 
-          gGameSettings.GameMode := e_Raw_Read_Byte(Ptr);
+          gGameSettings.GameMode := InMsg.ReadByte();
           gSwitchGameMode := gGameSettings.GameMode;
-          gGameSettings.GoalLimit := e_Raw_Read_Word(Ptr);
-          gGameSettings.TimeLimit := e_Raw_Read_Word(Ptr);
-          gGameSettings.MaxLives := e_Raw_Read_Byte(Ptr);
-          gGameSettings.Options := e_Raw_Read_LongWord(Ptr);
-          T := e_Raw_Read_LongWord(Ptr);
+          gGameSettings.GoalLimit := InMsg.ReadWord();
+          gGameSettings.TimeLimit := InMsg.ReadWord();
+          gGameSettings.MaxLives := InMsg.ReadByte();
+          gGameSettings.Options := InMsg.ReadLongWord();
+          T := InMsg.ReadLongWord();
 
           newResPath := g_Res_SearchSameWAD(MapsDir, WadName, gWADHash);
           if newResPath = '' then
@@ -4169,7 +4171,7 @@ procedure g_Game_RestartRound(NoMapRestart: Boolean = False);
 var
   i, n, nb, nr: Integer;
 
-  function monRespawn (monidx: Integer; mon: TMonster): Boolean;
+  function monRespawn (mon: TMonster): Boolean;
   begin
     result := false; // don't stop
     if not mon.FNoRespawn then mon.Respawn();
@@ -4993,6 +4995,17 @@ begin
     if gdbg_map_dump_coldet_tree_queries then g_Console_Add('grid coldet tree queries: tan') else g_Console_Add('grid coldet tree queries: ona');
     exit;
   end;
+
+  if (cmd = 'mon_sq_enabled') then
+  begin
+    case getBool(1) of
+      -1: begin end;
+       0: gmon_debug_use_sqaccel := false;
+       1: gmon_debug_use_sqaccel := true;
+    end;
+    if gmon_debug_use_sqaccel then g_Console_Add('accelerated monster coldet: tan') else g_Console_Add('accelerated monster coldet: ona');
+    exit;
+  end;
 end;
 
 procedure DebugCommands(P: SArray);