network.c
changeset 280 3d5b25a5f11f
parent 279 1d2f6b676e9f
child 281 57f126a1e4b5
equal deleted inserted replaced
279:1d2f6b676e9f 280:3d5b25a5f11f
    99 	uint16 cmd;
    99 	uint16 cmd;
   100 	uint32 p1,p2;
   100 	uint32 p1,p2;
   101 	TileIndex tile;
   101 	TileIndex tile;
   102 	byte player;// player id, this is checked by the server.
   102 	byte player;// player id, this is checked by the server.
   103 	byte when;  // offset from the current max_frame value minus 1. this is set by the server.
   103 	byte when;  // offset from the current max_frame value minus 1. this is set by the server.
   104 	uint32 dp[8];
   104 	uint32 dp[10];
   105 } CommandPacket;
   105 } CommandPacket;
   106 
   106 
   107 typedef struct EventPacket {
   107 typedef struct EventPacket {
   108 	byte packet_length;
   108 	byte packet_length;
   109 	byte packet_type;
   109 	byte packet_type;
   479 
   479 
   480 	// so the server knows when to execute it.
   480 	// so the server knows when to execute it.
   481 	qp->frame = _frame_counter_max - GetNextSyncFrame();
   481 	qp->frame = _frame_counter_max - GetNextSyncFrame();
   482 
   482 
   483 	// calculate the amount of extra bytes.
   483 	// calculate the amount of extra bytes.
   484 	nump = 8;
   484 	nump = 10;
   485 	while ( nump != 0 && ((uint32*)_decode_parameters)[nump-1] == 0) nump--;
   485 	while ( nump != 0 && ((uint32*)_decode_parameters)[nump-1] == 0) nump--;
   486 	qp->cp.packet_length = COMMAND_PACKET_BASE_SIZE + nump * sizeof(uint32);
   486 	qp->cp.packet_length = COMMAND_PACKET_BASE_SIZE + nump * sizeof(uint32);
   487 	if (nump != 0) memcpy(qp->cp.dp, _decode_parameters, nump * sizeof(uint32));
   487 	if (nump != 0) memcpy(qp->cp.dp, _decode_parameters, nump * sizeof(uint32));
   488 
   488 
   489 	cp = qp->cp;
   489 	cp = qp->cp;
   669 }
   669 }
   670 
   670 
   671 static void HandleFilePacket(FilePacketHdr *fp)
   671 static void HandleFilePacket(FilePacketHdr *fp)
   672 {
   672 {
   673 	int n = fp->packet_length - sizeof(FilePacketHdr);
   673 	int n = fp->packet_length - sizeof(FilePacketHdr);
   674 	char *tempfile = str_fmt("%s/networkc.tmp", _path.personal_dir);
   674 	char tempfile[512];
       
   675 
       
   676 	sprintf(tempfile, "%s/networkc.tmp",  _path.personal_dir);
   675 
   677 
   676 	if (n == 0) {
   678 	if (n == 0) {
   677 		assert(_networking_queuing);
   679 		assert(_networking_queuing);
   678 		assert(!_networking_sync);
   680 		assert(!_networking_sync);
   679 		// eof
   681 		// eof