X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_netmaster.pas;h=bc7d4ae30aaa7e19d9d8671d5e32106ab5166b1f;hb=94c8854f0ba3a87de3928f587e66d5d0e43d8f9b;hp=c5e792b585d7808dd105bb189feabff114e689b4;hpb=844441154d1220d6c83f75043300c2851ec87109;p=d2df-sdl.git diff --git a/src/game/g_netmaster.pas b/src/game/g_netmaster.pas index c5e792b..bc7d4ae 100644 --- a/src/game/g_netmaster.pas +++ b/src/game/g_netmaster.pas @@ -1,3 +1,19 @@ +(* Copyright (C) DooM 2D:Forever Developers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + *) +{$INCLUDE g_amodes.inc} unit g_netmaster; interface @@ -57,8 +73,7 @@ implementation uses SysUtils, e_fixedbuffer, e_input, e_graphics, e_log, g_window, g_net, g_console, - g_map, g_game, g_sound, g_textures, g_gui, g_menu, g_options, g_language, wadreader, - ENetPlatform; + g_map, g_game, g_sound, g_textures, g_gui, g_menu, g_options, g_language, wadreader; var NetMEvent: ENetEvent; @@ -115,7 +130,7 @@ begin e_Buffer_Clear(@NetOut); e_Buffer_Write(@NetOut, Byte(NET_MMSG_GET)); - P := enet_packet_create(Addr(NetOut.Data), NetOut.Len, Cardinal(ENET_PACKET_FLAG_RELIABLE)); + P := enet_packet_create(Addr(NetOut.Data), NetOut.WritePos, Cardinal(ENET_PACKET_FLAG_RELIABLE)); enet_peer_send(NetMPeer, NET_MCHAN_MAIN, P); enet_host_flush(NetMHost); @@ -131,6 +146,7 @@ begin Cnt := e_Raw_Read_Byte(NetMEvent.packet^.data); e_WriteLog('Retrieved ' + IntToStr(Cnt) + ' server(s).', MSG_NOTIFY); g_Console_Add(_lc[I_NET_MSG] + Format(_lc[I_NET_SLIST_RETRIEVED], [Cnt]), True); + //writeln('BOO!'); if Cnt > 0 then begin @@ -185,7 +201,7 @@ begin RX := enet_socket_receive(Sock, @SvAddr, @Buf, 1); if RX <= 0 then continue; - NetIn.Len := RX + 1; + NetIn.Cap := RX + 1; NetIn.ReadPos := 0; if e_Buffer_Read_Char(@NetIn) <> 'D' then continue; @@ -222,8 +238,8 @@ var Wad, Map: string; Cli: Byte; begin - g_ProcessResourceStr(gMapInfo.Map, @Wad, nil, @Map); - Wad := ExtractFileName(Wad); + Wad := g_ExtractWadNameNoPath(gMapInfo.Map); + Map := g_ExtractFileName(gMapInfo.Map); e_Buffer_Write(@NetOut, NetServerName); @@ -253,7 +269,7 @@ begin g_Net_Slist_WriteInfo(); - P := enet_packet_create(Addr(NetOut.Data), NetOut.Len, Cardinal(ENET_PACKET_FLAG_RELIABLE)); + P := enet_packet_create(Addr(NetOut.Data), NetOut.WritePos, Cardinal(ENET_PACKET_FLAG_RELIABLE)); enet_peer_send(NetMPeer, NET_MCHAN_UPD, P); enet_host_flush(NetMHost); @@ -269,7 +285,7 @@ begin e_Buffer_Write(@NetOut, Byte(NET_MMSG_DEL)); e_Buffer_Write(@NetOut, NetAddr.port); - P := enet_packet_create(Addr(NetOut.Data), NetOut.Len, Cardinal(ENET_PACKET_FLAG_RELIABLE)); + P := enet_packet_create(Addr(NetOut.Data), NetOut.WritePos, Cardinal(ENET_PACKET_FLAG_RELIABLE)); enet_peer_send(NetMPeer, NET_MCHAN_MAIN, P); enet_host_flush(NetMHost);