X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fg_netmaster.pas;h=84f6544515de235e82b753cda05af9eb15fb718f;hp=723a364713e56432402cf0fdb6e29d9993232168;hb=f0703eae1c66566c95d11bf44ff4560be416b971;hpb=e6a2ca524340877015dc54ec063f925989548a98 diff --git a/src/game/g_netmaster.pas b/src/game/g_netmaster.pas index 723a364..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;