artemis-nerds / protocol-docs

Unofficial documentation for the Artemis network and file protocols, written by the Artemis community
https://artemis-nerds.github.io/protocol-docs/
MIT License
8 stars 5 forks source link

Figure out BeamFiredPacket #174

Closed JordanLongstaff closed 5 years ago

JordanLongstaff commented 5 years ago

The current description of BeamFiredPacket leaves me confused. Apparently it has some convention of structs and unknown fields and apparently this affects which fields are included in the packet structure. Are we sure this is what is really going on, and if so, can we fill in the missing details?

NoseyNick commented 5 years ago

Yeah, it's messy 😦 The first integer is an object ID. Yes, beams have their own IDs. The next integer is what I have called "type" If type==0 (enemy beam), 1 (player beam), or 4 (yeah not sure) (all are protocol version <= 2.2.0)...

if type==8 (protocol version <= 2.2.0) there's a lot of unknowns that MIGHT correspond to undefined values in the corresponding fields above?

If type==9 (protocol version 2.3.0+)...

I wish I was joking about how complicated it is, or how confusing the whole type/subtype/protocol_version thing is, and if type==8 is the same structure as type==0,1,4, then I wish I knew why those values LOOK so much like shorts (possibly UTF16s - they look SOMEWHAT printable, but also somewhat nonsense) 😖

NoseyNick commented 5 years ago

Actually... See also https://github.com/artemis-nerds/protocol-docs/issues/83 - I'll mark this issue as a dupe.

NoseyNick commented 5 years ago

If you're OK taking this to #83 , I'll close this. Feel free to re-open if you think it's a different question.