aboutsummaryrefslogtreecommitdiff
path: root/lib/PacketManager/packets
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PacketManager/packets')
-rw-r--r--lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py27
-rw-r--r--lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py6
-rw-r--r--lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py4
3 files changed, 32 insertions, 5 deletions
diff --git a/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py b/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py
index ef7f785..61e2b3f 100644
--- a/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py
+++ b/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py
@@ -46,7 +46,34 @@ class FSNETCMD_ADDOBJECT: #5
#There is an extra short, but it's just set to 0
if len(self.buffer) >= 176:
self.pilot = unpack("32s", self.buffer[124:156])[0].decode().strip('\x00')
+
+ def to_dict(self):
+ return {
+ "object_type": self.object_type,
+ "net_type": self.net_type,
+ "object_id": self.object_id,
+ "iff": self.iff,
+ "pos": self.pos,
+ "atti": self.atti,
+ "identifier": self.identifier,
+ "substrname": self.substrname,
+ "ysfid": self.ysfid,
+ "flags": self.flags,
+ "flags0": self.flags0,
+ "outside_radius": self.outsideRadius,
+ "aircraft_class": self.aircraft_class,
+ "aircraft_category": self.aircraft_category,
+ "pilot": self.pilot
+ }
+ def to_packet(self, with_size:bool=True):
+ return FSNETCMD_ADDOBJECT.encode(self.object_type, self.net_type,
+ self.object_id, self.iff, self.pos,
+ self.atti, self.identifier, self.substrname,
+ self.ysfid, self.flags, self.flags0,
+ self.outsideRadius, self.aircraft_class,
+ self.aircraft_category, self.pilot, with_size)
+
@staticmethod
def encode(object_type, net_type, object_id, iff, pos, atti, identifier, substrname, ysfid,
flags, flags0, outside_radius, aircraft_class=None, aircraft_category=None,
diff --git a/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py b/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py
index 3ebf8d6..9ebfc00 100644
--- a/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py
+++ b/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py
@@ -198,7 +198,7 @@ class FSNETCMD_AIRPLANESTATE: #11
packet = self.buffer[:56] + pack('h',flag) + self.buffer[58:]
return pack('I',len(packet)) + packet
else:
- flag = unpack('h',self.buffer[74:75])[0]
+ flag = unpack('h',self.buffer[74:76])[0]
flag &= ~((255<<8)|2)
flag |= (255<<8) | 2
@@ -213,7 +213,7 @@ class FSNETCMD_AIRPLANESTATE: #11
packet = self.buffer[:56] + pack('h',flag) + self.buffer[58:]
return pack('I',len(packet)) + packet
else:
- flag = unpack('h',self.buffer[74:75])[0]
+ flag = unpack('h',self.buffer[74:76])[0]
flag &= ~(8)
packet = self.buffer[:74] + pack('h',flag) + self.buffer[76:]
return pack('I',len(packet)) + packet
@@ -235,7 +235,7 @@ class FSNETCMD_AIRPLANESTATE: #11
buffer = pack("IfI", 11, remote_time, player_id)
buffer += pack("H", packet_version)
if packet_version == 4 or packet_version == 5:
- buffer += pack("fffhhhhhhhhh", *position, *atti, *velocity, *atti_velocity)
+ buffer += pack("3f9H", *position, *atti, *velocity, *atti_velocity)
buffer += pack("hhhh", smoke_oil, fuel, payload, 0)
buffer += pack("BB", flight_state, int(vgw*255))
buffer += pack("BB", int(spoiler*15)<<4 | int(landing_gear*15), int(flap*15)<<4 | int(brake*15))
diff --git a/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py b/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py
index 7796599..f24c94a 100644
--- a/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py
+++ b/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py
@@ -7,7 +7,7 @@ class FSNETCMD_JOINREQUEST: #8
"""
def __init__(self, buffer:bytes, should_decode:bool=True):
self.buffer = buffer
- self.iff = None
+ self.iff = 0 # The IFF sent is 1 subtracted from the selected value by the player
self.aircraft = None
self.start_pos = None #It's the STP name
self.fuel = None
@@ -26,4 +26,4 @@ class FSNETCMD_JOINREQUEST: #8
start_pos.encode(), 1, fuel, smoke)
if with_size:
return pack("I",len(buffer))+buffer
- return buffer \ No newline at end of file
+ return buffer