From: Ketmar Dark Date: Sun, 6 Aug 2017 12:31:51 +0000 (+0300) Subject: fixed bug with weapon updating in network mode (moved it to common player update... X-Git-Url: http://deadsoftware.ru/gitweb?a=commitdiff_plain;h=2a94357f8d72648a4f1280543554c557beadb81a;p=d2df-sdl.git fixed bug with weapon updating in network mode (moved it to common player update code) --- diff --git a/src/game/g_game.pas b/src/game/g_game.pas index aa04366..075fe6b 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -1534,8 +1534,8 @@ begin if g_Game_IsNet and (gPlayer1 <> nil) then gPlayer1.PressKey(KEY_CHAT, 10000); end; // process weapon switch queue - if gPlayer1 <> nil then gPlayer1.RealizeCurrentWeapon(); - if gPlayer2 <> nil then gPlayer2.RealizeCurrentWeapon(); + //if gPlayer1 <> nil then gPlayer1.RealizeCurrentWeapon(); + //if gPlayer2 <> nil then gPlayer2.RealizeCurrentWeapon(); end; // if server // Íàáëþäàòåëü diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas index 839e642..bc54015 100644 --- a/src/game/g_netmsg.pas +++ b/src/game/g_netmsg.pas @@ -454,6 +454,7 @@ begin kByte := e_Raw_Read_Word(P); Dir := e_Raw_Read_Byte(P); WeaponSelect := e_Raw_Read_Word(P); + //e_WriteLog(Format('R:ws=%d', [WeaponSelect]), MSG_WARNING); if Direction <> TDirection(Dir) then JustTeleported := False; @@ -476,7 +477,14 @@ begin if LongBool(kByte and NET_KEY_NW) then PressKey(KEY_NEXTWEAPON, 10000); if LongBool(kByte and NET_KEY_PW) then PressKey(KEY_PREVWEAPON, 10000); - for i := 0 to 15 do if (WeaponSelect and (1 shl i)) <> 0 then QueueWeaponSwitch(i); + for i := 0 to 15 do + begin + if (WeaponSelect and Word(1 shl i)) <> 0 then + begin + //e_WriteLog(Format(' R:wn=%d', [i]), MSG_WARNING); + QueueWeaponSwitch(i); + end; + end; end; // MH_SEND_PlayerPos(False, PID, C^.ID); @@ -2868,6 +2876,7 @@ begin e_Buffer_Write(@NetOut, kByte); e_Buffer_Write(@NetOut, Byte(gPlayer1.Direction)); e_Buffer_Write(@NetOut, WeaponSelect); + //e_WriteLog(Format('S:ws=%d', [WeaponSelect]), MSG_WARNING); g_Net_Client_Send(True, NET_CHAN_PLAYERPOS); //kBytePrev := kByte;