X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame%2Fg_netmsg.pas;h=17942e24e65b63be12b38c02f369ee7a0d9f0e6d;hb=26c0265257cea7f80b2b1a7cbe11c46aa0533949;hp=92084b1304662060019422a77096ad59f138a132;hpb=dffafd305d0df029f317cc92c1968ba0065c0cd8;p=d2df-sdl.git diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas index 92084b1..17942e2 100644 --- a/src/game/g_netmsg.pas +++ b/src/game/g_netmsg.pas @@ -1110,9 +1110,10 @@ begin if IsKeyPressed(KEY_UP) then kByte := kByte or NET_KEY_UP; if IsKeyPressed(KEY_DOWN) then kByte := kByte or NET_KEY_DOWN; if IsKeyPressed(KEY_JUMP) then kByte := kByte or NET_KEY_JUMP; - if JustTeleported then kByte := kByte or NET_KEY_FORCEDIR; end; + if JustTeleported then kByte := kByte or NET_KEY_FORCEDIR; + NetOut.Write(kByte); if Direction = TDirection.D_LEFT then NetOut.Write(Byte(0)) else NetOut.Write(Byte(1)); NetOut.Write(GameX); @@ -2264,7 +2265,7 @@ begin ReleaseKeys; - if (kByte = NET_KEY_CHAT) then + if LongBool(kByte and NET_KEY_CHAT) then PressKey(KEY_CHAT, 10000) else begin @@ -2275,15 +2276,16 @@ begin if LongBool(kByte and NET_KEY_JUMP) then PressKey(KEY_JUMP, 10000); end; - if ((Pl <> gPlayer1) and (Pl <> gPlayer2)) or LongBool(kByte and NET_KEY_FORCEDIR) then + JustTeleported := LongBool(kByte and NET_KEY_FORCEDIR); + + if ((Pl <> gPlayer1) and (Pl <> gPlayer2)) or JustTeleported then SetDirection(TDirection(Dir)); GameVelX := M.ReadLongInt(); GameVelY := M.ReadLongInt(); GameAccelX := M.ReadLongInt(); GameAccelY := M.ReadLongInt(); - GameX := TmpX; - GameY := TmpY; + SetLerp(TmpX, TmpY); if NetForcePlayerUpdate then Update(); end; end;