summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a96d132)
raw | patch | inline | side by side (parent: a96d132)
author | Ketmar Dark <ketmar@ketmar.no-ip.org> | |
Sun, 6 Aug 2017 03:19:41 +0000 (06:19 +0300) | ||
committer | Ketmar Dark <ketmar@ketmar.no-ip.org> | |
Sun, 6 Aug 2017 04:08:08 +0000 (07:08 +0300) |
src/game/g_net.pas | patch | blob | history | |
src/game/g_netmsg.pas | patch | blob | history |
diff --git a/src/game/g_net.pas b/src/game/g_net.pas
index 1b7a5035da6e67c3db9279cedf4e95d3b2cb6901..e935fc98eb68556f60e92a4be559b0419abb86ce 100644 (file)
--- a/src/game/g_net.pas
+++ b/src/game/g_net.pas
e_log, e_fixedbuffer, ENet, Classes;
const
- NET_PROTOCOL_VER = 168;
+ NET_PROTOCOL_VER = 169;
NET_MAXCLIENTS = 24;
NET_CHANS = 11;
diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas
index 6e8106fc61701e20d9b29c2eede43ff50d6cec16..839e6429bd16d83d15c2636337d3b7e6ee97f1d3 100644 (file)
--- a/src/game/g_netmsg.pas
+++ b/src/game/g_netmsg.pas
function MH_RECV_PlayerPos(C: pTNetClient; P: Pointer): Word;
var
- Dir, WeaponSelect: Byte;
+ Dir, i: Byte;
+ WeaponSelect: Word;
PID: Word;
kByte: Word;
Pl: TPlayer;
NetTime := GT;
kByte := e_Raw_Read_Word(P);
Dir := e_Raw_Read_Byte(P);
- WeaponSelect := e_Raw_Read_Byte(P);
+ WeaponSelect := e_Raw_Read_Word(P);
if Direction <> TDirection(Dir) then
JustTeleported := False;
if LongBool(kByte and NET_KEY_NW) then PressKey(KEY_NEXTWEAPON, 10000);
if LongBool(kByte and NET_KEY_PW) then PressKey(KEY_PREVWEAPON, 10000);
- if WeaponSelect <> 255 then
- QueueWeaponSwitch(WeaponSelect);
+ for i := 0 to 15 do if (WeaponSelect and (1 shl i)) <> 0 then QueueWeaponSwitch(i);
end;
// MH_SEND_PlayerPos(False, PID, C^.ID);
kByte: Word;
Predict: Boolean;
strafeDir: Byte;
- WeaponSelect: Byte = 255;
+ WeaponSelect: Word = 0;
I: Integer;
begin
if not gGameOn then Exit;
if isKeyPressed(KeyPrevWeapon, KeyPrevWeapon2) then kByte := kByte or NET_KEY_PW;
for I := 0 to High(KeyWeapon) do
if isKeyPressed(KeyWeapon[I], KeyWeapon2[I]) then
- WeaponSelect := I;
+ WeaponSelect := WeaponSelect or Word(1 shl I);
end;
// fix movebutton state
P1MoveButton := P1MoveButton or (strafeDir shl 4);