X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fg_netmaster.pas;h=84f6544515de235e82b753cda05af9eb15fb718f;hp=4ca51eb6bf6bde69a5e5e2017f6bdbaf0fe220ab;hb=f0703eae1c66566c95d11bf44ff4560be416b971;hpb=84fa2f88d5d832ed9cc932fd2860d74467e242e1 diff --git a/src/game/g_netmaster.pas b/src/game/g_netmaster.pas index 4ca51eb..84f6544 100644 --- a/src/game/g_netmaster.pas +++ b/src/game/g_netmaster.pas @@ -80,7 +80,8 @@ implementation uses SysUtils, e_msg, e_input, e_graphics, e_log, g_window, g_net, g_console, - g_map, g_game, g_sound, g_gui, g_menu, g_options, g_language, wadreader; + g_map, g_game, g_sound, g_gui, g_menu, g_options, g_language, g_basic, + wadreader; var NetMEvent: ENetEvent; @@ -135,6 +136,7 @@ var InMsg: TMsg; SvAddr: ENetAddress; FromSL: Boolean; + UpdVer, MyVer: string; procedure ProcessLocal(); begin @@ -215,6 +217,10 @@ begin NetOut.Clear(); NetOut.Write(Byte(NET_MMSG_GET)); + // TODO: what should we identify the build with? + MyVer := GAME_VERSION; + NetOut.Write(MyVer); + P := enet_packet_create(NetOut.Data, NetOut.CurSize, Cardinal(ENET_PACKET_FLAG_RELIABLE)); enet_peer_send(NetMPeer, NET_MCHAN_MAIN, P); enet_host_flush(NetMHost); @@ -254,6 +260,17 @@ begin end; end; + if InMsg.ReadCount < InMsg.CurSize then + begin + // new master, supports version reports + UpdVer := InMsg.ReadString(); + if (UpdVer <> MyVer) then + begin + { TODO } + g_Console_Add('!!! UpdVer = `' + UpdVer + '`'); + end; + end; + Result := True; break; end; @@ -708,7 +725,8 @@ begin qm := g_ProcessMessages(); // this updates kbd if qm or e_KeyPressed(IK_ESCAPE) or e_KeyPressed(VK_ESCAPE) or - e_KeyPressed(JOY0_JUMP) or e_KeyPressed(JOY1_JUMP) or e_KeyPressed(JOY2_JUMP) or e_KeyPressed(JOY3_JUMP) then + e_KeyPressed(JOY0_JUMP) or e_KeyPressed(JOY1_JUMP) or + e_KeyPressed(JOY2_JUMP) or e_KeyPressed(JOY3_JUMP) then begin SL := nil; ST := nil;