Changeset 32
- Timestamp:
- 12/29/05 20:56:37 (3 years ago)
- Files:
-
- trunk/raknet/line.d (modified) (4 diffs)
- trunk/raknet/lineserver.d (modified) (3 diffs)
- trunk/raknet/rakglue/rakclient.h (modified) (1 diff)
- trunk/raknet/rakglue/rakclientglue.cpp (modified) (1 diff)
- trunk/raknet/rakglue/rakserver.h (modified) (1 diff)
- trunk/raknet/rakglue/rakserverglue.cpp (modified) (1 diff)
- trunk/raknet/raknet/client.d (modified) (2 diffs)
- trunk/raknet/raknet/networktypes.d (modified) (2 diffs)
- trunk/raknet/raknet/server.d (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/raknet/line.d
r29 r32 18 18 19 19 const ubyte PACKET_ID_LINE = 100; 20 21 22 20 const ubyte PACKET_ID_NUM = 101; 21 const ubyte PACKET_ID_NUM_REQUEST = 102; 23 22 24 23 struct Line … … 56 55 private: 57 56 Line[] lines; 57 int playerNum = 0; 58 58 59 59 this(char *serverIP, char *portString) … … 86 86 87 87 lines ~= line; 88 } 89 90 // send player ID to server and wait to recieve player number 91 void getPlayerNum() 92 { 93 // get player ID 94 PlayerID pid = raknet.client.playerID(); 95 96 // request player num based on player ID from server 97 raknet.bitstream.start(); 98 99 raknet.bitstream.write(PACKET_ID_NUM_REQUEST); 100 raknet.bitstream.write(pid.binaryAddress); 101 raknet.bitstream.write(pid.port); 102 103 raknet.client.sendBitstream(PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, 0); 104 105 raknet.bitstream.end(); 106 107 debug writefln("getPlayerNum: sent request"); 108 109 // wait until recieve player number from server 110 ubyte packetID = 0; 111 112 do 113 { 114 Packet * p = raknet.client.receivePacket(); 115 116 if(p !is null) { 117 118 // decode packet 119 raknet.bitstream.start(cast(char*)p.data, p.length, false); 120 121 // read packet ID 122 raknet.bitstream.read(packetID); 123 124 debug writefln("recieved packet ", packetID); 125 126 // if we found it, read its data 127 if (packetID == PACKET_ID_NUM) 128 { 129 raknet.bitstream.read(playerNum); 130 debug writefln("player ", playerNum, " connected"); 131 } 132 133 // otherwise deallocate and wait some more 134 raknet.client.deallocatePacket(p); 135 136 } // p !is unll 137 138 } while (packetID != PACKET_ID_NUM) 139 140 88 141 } 89 142 … … 163 216 ClientConnection clientConnect = new ClientConnection("127.0.0.1", "6881"); 164 217 218 // send PID to 219 clientConnect.getPlayerNum(); 220 165 221 int lineCount = 0; 166 222 trunk/raknet/lineserver.d
r25 r32 9 9 // packet identifier so we know packet is a line 10 10 const ubyte PACKET_ID_LINE = 100; 11 const ubyte PACKET_ID_NUM = 101; 12 const ubyte PACKET_ID_NUM_REQUEST = 102; 13 14 int num = 0; 11 15 12 16 void sendLineToClients(PlayerID clientToExclude, float x1, float y1, float x2, float y2, int r, int g, int b) … … 25 29 26 30 raknet.server.sendBitstream(PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, 0, clientToExclude, true); 31 32 // deallocates bitstream 33 raknet.bitstream.end(); 34 } 35 36 void sendNumToClients(PlayerID pid, int num) 37 { 38 // allocates bitstream 39 raknet.bitstream.start(); 40 41 // send info & packet ID 42 raknet.bitstream.write(PACKET_ID_NUM); 43 raknet.bitstream.write(num); 44 45 raknet.server.sendBitstream(PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, 0, pid, false); 27 46 28 47 // deallocates bitstream … … 54 73 sendLineToClients(p.playerId, x1, y1, x2, y2, r, g, b); 55 74 break; 75 76 // on incoming connection tell player which number it is 77 case ID_NEW_INCOMING_CONNECTION: 78 debug writefln("player ", p.playerIndex, " connected"); 79 80 sendNumToClients(p.playerId, p.playerIndex); 81 break; 82 83 56 84 default: 57 85 printf("Unhandled packet (not a problem): %i\n", cast(int)packetID); trunk/raknet/rakglue/rakclient.h
r23 r32 33 33 bool rakClientInterface_SendBitstream(PacketPriority priority, PacketReliability reliability, char orderingChannel); 34 34 35 PlayerID rakClientInterface_GetPlayerID(); 36 35 37 } 36 38 trunk/raknet/rakglue/rakclientglue.cpp
r25 r32 66 66 } 67 67 68 PlayerID rakClientInterface_GetPlayerID() 69 { 70 return rakClientInterface->GetPlayerID(); 71 } 72 68 73 69 74 } trunk/raknet/rakglue/rakserver.h
r23 r32 35 35 36 36 void rakServerInterface_Disconnect( unsigned blockDuration ); 37 38 int rakServerInterface_GetIndexFromPlayerID(PlayerID pid); 37 39 } 38 40 trunk/raknet/rakglue/rakserverglue.cpp
r25 r32 67 67 } 68 68 69 int rakServerInterface_GetIndexFromPlayerID(PlayerID pid) 70 { 71 return rakServerInterface->GetIndexFromPlayerID(pid); 72 } 69 73 70 74 } trunk/raknet/raknet/client.d
r30 r32 50 50 } 51 51 52 PlayerID playerID() 53 { 54 return rakClientInterface_GetPlayerID(); 55 } 56 52 57 // will crash if not alias'd 53 58 alias rakClientInterface_REG_AS_RPC REG_AS_RPC; … … 77 82 78 83 void rakClientInterface_SendBitstream(PacketPriority priority, PacketReliability reliability, char orderingChannel); 84 85 PlayerID rakClientInterface_GetPlayerID(); 79 86 } 80 87 trunk/raknet/raknet/networktypes.d
r30 r32 1 1 module raknet.networktypes; 2 3 debug import std.stdio; 2 4 3 5 /* -*- mode: c++; c-file-style: raknet; tab-always-indent: nil; -*- */ … … 69 71 */ 70 72 73 debug 74 { 75 void print() 76 { 77 writefln("Binary Address: ", binaryAddress, ", port: ", port); 78 } 79 } 80 71 81 // handles == and != 72 82 int opEquals(inout PlayerID pid) trunk/raknet/raknet/server.d
r30 r32 40 40 } 41 41 42 43 44 42 void disconnect( uint blockDuration ) 45 43 { … … 47 45 } 48 46 49 bool sendBitstream(PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast) 47 bool sendBitstream(PacketPriority priority, PacketReliability reliability, char orderingChannel, 48 PlayerID playerId, bool broadcast) 50 49 { 51 50 return rakServerInterface_SendBitstream(priority, reliability, orderingChannel, playerId, broadcast); 51 } 52 53 int getIndexFromPlayerID(PlayerID pid) 54 { 55 return rakServerInterface_GetIndexFromPlayerID(pid); 52 56 } 53 57 … … 71 75 bool rakServerInterface_SendBitstream(PacketPriority priority, PacketReliability reliability, char orderingChannel, PlayerID playerId, bool broadcast); 72 76 void rakServerInterface_Disconnect( uint blockDuration ); 77 int rakServerInterface_GetIndexFromPlayerID(PlayerID pid); 73 78 } 74 79
