Fixed basic stuff around

This commit is contained in:
Shoghi Cervantes
2014-02-07 00:16:39 +01:00
parent 0af197a0f7
commit 45a3b54d32
6 changed files with 115 additions and 94 deletions

View File

@@ -21,7 +21,7 @@
abstract class RakNetDataPacket extends stdClass{
private $offset = 0;
private $buffer = b"";
public $buffer = b"";
public $reliability = 0;
public $hasSplit = false;

View File

@@ -57,35 +57,35 @@ class RakNetInfo{
public static function isRakNet($pid){
public static function isValid($pid){
switch((int) $pid){
case UNCONNECTED_PING:
case UNCONNECTED_PING_OPEN_CONNECTIONS:
case OPEN_CONNECTION_REQUEST_1:
case OPEN_CONNECTION_REPLY_1:
case OPEN_CONNECTION_REQUEST_2:
case OPEN_CONNECTION_REPLY_2:
case INCOMPATIBLE_PROTOCOL_VERSION:
case UNCONNECTED_PONG:
case ADVERTISE_SYSTEM:
case DATA_PACKET_0:
case DATA_PACKET_1:
case DATA_PACKET_2:
case DATA_PACKET_3:
case DATA_PACKET_4:
case DATA_PACKET_5:
case DATA_PACKET_6:
case DATA_PACKET_7:
case DATA_PACKET_8:
case DATA_PACKET_9:
case DATA_PACKET_A:
case DATA_PACKET_B:
case DATA_PACKET_C:
case DATA_PACKET_D:
case DATA_PACKET_E:
case DATA_PACKET_F:
case NACK:
case ACK:
case RakNetInfo::UNCONNECTED_PING:
case RakNetInfo::UNCONNECTED_PING_OPEN_CONNECTIONS:
case RakNetInfo::OPEN_CONNECTION_REQUEST_1:
case RakNetInfo::OPEN_CONNECTION_REPLY_1:
case RakNetInfo::OPEN_CONNECTION_REQUEST_2:
case RakNetInfo::OPEN_CONNECTION_REPLY_2:
case RakNetInfo::INCOMPATIBLE_PROTOCOL_VERSION:
case RakNetInfo::UNCONNECTED_PONG:
case RakNetInfo::ADVERTISE_SYSTEM:
case RakNetInfo::DATA_PACKET_0:
case RakNetInfo::DATA_PACKET_1:
case RakNetInfo::DATA_PACKET_2:
case RakNetInfo::DATA_PACKET_3:
case RakNetInfo::DATA_PACKET_4:
case RakNetInfo::DATA_PACKET_5:
case RakNetInfo::DATA_PACKET_6:
case RakNetInfo::DATA_PACKET_7:
case RakNetInfo::DATA_PACKET_8:
case RakNetInfo::DATA_PACKET_9:
case RakNetInfo::DATA_PACKET_A:
case RakNetInfo::DATA_PACKET_B:
case RakNetInfo::DATA_PACKET_C:
case RakNetInfo::DATA_PACKET_D:
case RakNetInfo::DATA_PACKET_E:
case RakNetInfo::DATA_PACKET_F:
case RakNetInfo::NACK:
case RakNetInfo::ACK:
return true;
default:
return false;

View File

@@ -37,7 +37,7 @@ class RakNetParser{
}
public function pid(){
return (int) $this->pid;
return (int) $this->id;
}
private function get($len){
@@ -120,6 +120,25 @@ class RakNetParser{
$this->data[] = $this->parseDataPacket();
}
break;
case RakNetInfo::NACK:
case RakNetInfo::ACK:
$count = $this->getShort();
$this->packets = array();
for($i = 0; $i < $count and !$this->feof(); ++$i){
if($this->getByte() === 0){
$start = $this->getLTriad();
$end = $this->getLTriad();
if(($end - $start) > 4096){
$end = $start + 4096;
}
for($c = $start; $c <= $end; ++$c){
$this->packets[] = $c;
}
}else{
$this->packets[] = $this->getLTriad();
}
}
break;
default:
$this->packet = false;
break;