hedgewars/uFLNetProtocol.pas
branchqmlfrontend
changeset 11424 86c13e5662f1
parent 11423 e045dc60c37e
child 11425 2947f06e8533
equal deleted inserted replaced
11423:e045dc60c37e 11424:86c13e5662f1
     3 
     3 
     4 procedure passNetData(p: pointer); cdecl;
     4 procedure passNetData(p: pointer); cdecl;
     5 
     5 
     6 procedure sendChatLine(msg: PChar); cdecl;
     6 procedure sendChatLine(msg: PChar); cdecl;
     7 procedure joinRoom(roomName: PChar); cdecl;
     7 procedure joinRoom(roomName: PChar); cdecl;
       
     8 procedure partRoom(msg: PChar); cdecl;
       
     9 
       
    10 procedure ResetNetState;
     8 
    11 
     9 implementation
    12 implementation
    10 uses uFLNetTypes, uFLTypes, uFLUICallback, uFLNet;
    13 uses uFLNetTypes, uFLTypes, uFLUICallback, uFLNet;
    11 
    14 
    12 type
    15 type
    13     PHandler = procedure (var t: TCmdData);
    16     PHandler = procedure (var t: TCmdData);
    14 
    17 
       
    18 var isInRoom: boolean;
       
    19 
    15 procedure handler_ASKPASSWORD(var p: TCmdParamS);
    20 procedure handler_ASKPASSWORD(var p: TCmdParamS);
    16 begin
    21 begin
    17 end;
    22 end;
    18 
    23 
    19 procedure handler_BANLIST(var p: TCmdParam);
    24 procedure handler_BANLIST(var p: TCmdParam);
    31 
    36 
    32 procedure handler_CHAT(var p: TCmdParamSL);
    37 procedure handler_CHAT(var p: TCmdParamSL);
    33 var s: string;
    38 var s: string;
    34 begin
    39 begin
    35     s:= p.str1 + #10 + p.str2;
    40     s:= p.str1 + #10 + p.str2;
    36     sendUI(mtLobbyChatLine, @s[1], length(s));
    41     if isInRoom then
       
    42         sendUI(mtRoomChatLine, @s[1], length(s))
       
    43     else
       
    44         sendUI(mtLobbyChatLine, @s[1], length(s));
    37 end;
    45 end;
    38 
    46 
    39 procedure handler_CLIENT_FLAGS(var p: TCmdParamS);
    47 procedure handler_CLIENT_FLAGS(var p: TCmdParamS);
    40 begin
    48 begin
    41 end;
    49 end;
    85 end;
    93 end;
    86 
    94 
    87 procedure handler_JOINED_s(var s: TCmdParamS);
    95 procedure handler_JOINED_s(var s: TCmdParamS);
    88 begin
    96 begin
    89     if s.str1 = 'qmlfrontend' then // we joined a room
    97     if s.str1 = 'qmlfrontend' then // we joined a room
       
    98     begin
       
    99         isInRoom:= true;
       
   100         sendUI(mtMoveToRoom, nil, 0);
       
   101     end;
       
   102 
       
   103     sendUI(mtAddRoomClient, @s.str1[1], length(s.str1));
       
   104 end;
       
   105 
       
   106 procedure handler_JOINING(var p: TCmdParamS);
       
   107 begin
       
   108 end;
       
   109 
       
   110 procedure handler_KICKED(var p: TCmdParam);
       
   111 begin
       
   112     isInRoom:= false;
       
   113     sendUI(mtMoveToLobby, nil, 0);
       
   114 end;
       
   115 
       
   116 procedure handler_LEFT(var p: TCmdParamS);
       
   117 begin
       
   118     sendUI(mtRemoveLobbyClient, @p.str1[1], length(p.str1));
       
   119 end;
       
   120 
       
   121 procedure handler_LEFT_s(var s: TCmdParamS);
       
   122 begin
       
   123 end;
       
   124 
       
   125 procedure handler_LOBBY_JOINED(var p: TCmdParam);
       
   126 begin
       
   127 end;
       
   128 
       
   129 procedure handler_LOBBY_JOINED_s(var s: TCmdParamS);
       
   130 begin
       
   131     if s.str1 = 'qmlfrontend' then 
       
   132     begin
       
   133         sendUI(mtMoveToLobby, nil, 0);
    90         sendNet('LIST');
   134         sendNet('LIST');
    91 end;
   135     end;
    92 
       
    93 procedure handler_JOINING(var p: TCmdParamS);
       
    94 begin
       
    95 end;
       
    96 
       
    97 procedure handler_KICKED(var p: TCmdParam);
       
    98 begin
       
    99 end;
       
   100 
       
   101 procedure handler_LEFT(var p: TCmdParamS);
       
   102 begin
       
   103 end;
       
   104 
       
   105 procedure handler_LEFT_s(var s: TCmdParamS);
       
   106 begin
       
   107 end;
       
   108 
       
   109 procedure handler_LOBBY_JOINED(var p: TCmdParam);
       
   110 begin
       
   111 end;
       
   112 
       
   113 procedure handler_LOBBY_JOINED_s(var s: TCmdParamS);
       
   114 begin
       
   115     if s.str1 = 'qmlfrontend' then sendNet('LIST');
       
   116 
   136 
   117     sendUI(mtAddLobbyClient, @s.str1[1], length(s.str1));
   137     sendUI(mtAddLobbyClient, @s.str1[1], length(s.str1));
   118 end;
   138 end;
   119 
   139 
   120 procedure handler_LOBBY_LEFT(var p: TCmdParamSL);
   140 procedure handler_LOBBY_LEFT(var p: TCmdParamSL);
   274 begin
   294 begin
   275     sendNetLn('JOIN_ROOM');
   295     sendNetLn('JOIN_ROOM');
   276     sendNet(roomName);
   296     sendNet(roomName);
   277 end;
   297 end;
   278 
   298 
       
   299 procedure partRoom(msg: PChar); cdecl;
       
   300 var s: string;
       
   301 begin
       
   302     if isInRoom then
       
   303     begin
       
   304         isInRoom:= false;
       
   305         s:= 'PART';
       
   306         if length(msg) > 0 then 
       
   307             s:= s + #10 + msg;
       
   308         sendNet(s);
       
   309         sendUI(mtMoveToLobby, nil, 0);
       
   310     end
       
   311 end;
       
   312 
       
   313 
       
   314 procedure ResetNetState;
       
   315 begin
       
   316     isInRoom:= false;
       
   317 end;
       
   318 
   279 end.
   319 end.
   280 
   320