Added the structure definition files for replica parsing.

This commit is contained in:
lcdr 2015-06-11 21:20:10 +02:00
parent 1e36774079
commit bfa76cf704
19 changed files with 407 additions and 0 deletions

View File

@ -0,0 +1,5 @@
Component 60 - BaseCombatAI (tested using LOT 6366)
Index 1 ($+824290):
[L:BIT1] - flag
[L:4] - ???
[L:8] - ???

View File

@ -0,0 +1,4 @@
Component 6 - Bouncer (tested using LOT 14366)
Index 1 ($+7D6620):
[L:BIT1] - flag
[L:BIT1] - ???

View File

@ -0,0 +1,87 @@
Index 24:
[L:BIT1] - flag
[L:BIT1] - flag
[L:8] - ???
[L:1] - ???
Index 25-26: missing
Index 27:
[L:BIT1] - flag
[L:4] - ???
Index 28:
[L:BIT1] - flag
[L:BIT1] - ???
[L:BIT1] - ???
Index 29:
[EVAL:creation] - ...
[L:BIT1] - flag
[L:8] - ???, could be "co" from xml data
[L:BIT1] - flag
[L:8] - ???
[L:BIT1] - flag
[L:8] - ???
[L:BIT1] - flag
[L:8] - ???
[L:4] - hair color ("hc" from xml data), u32
[L:4] - hair style ("hs" from xml data), u32
[L:4] - ???, could be "hd" or "hdc" from xml data, u32
[L:4] - shirt color ("t" from xml data), u32
[L:4] - pants color ("l" from xml data), u32
[L:4] - ???, could be "cd" from xml data, u32
[L:4] - ???, could be "hdc" or "hd" from xml data, u32
[L:4] - eyebrows style ("es" from xml data), u32
[L:4] - eyes style ("ess" from xml data), u32
[L:4] - mouth style ("ms" from xml data), u32
[L:8] - accountID (in xml data and chardata packet), u64
[L:8] - "llog" from xml data, u64
[L:8] - ???, could be a couple of things from the xml data (since its 0 in the packet), u64
[L:8] - lego score (from xml data), u64
[L:BIT1] - flag that sets free2play mode for player (1 means player is free2play)
[L:8] - Total Amount of Currency Collected, u64
[L:8] - Number of Bricks Collected, u64
[L:8] - Number of smashables smashed, u64
[L:8] - Number of Quick Builds Completed, u64
[L:8] - Number of enemies smashed, u64
[L:8] - Number of Rockets used, u64
[L:8] - Number of missions completed, u64
[L:8] - Number of Pets tamed, u64
[L:8] - Number of Imagination power-ups collected, u64
[L:8] - Number of Life Power-Ups Collected, u64
[L:8] - Number of Armor power-ups collected, u64
[L:8] - Total Distance Traveled (in meters), u64
[L:8] - Number of times smashed, u64
[L:8] - Total damage taken, u64
[L:8] - Total damage Healed, u64
[L:8] - Total Armor Repaired, u64
[L:8] - Total Imagination Restored, u64
[L:8] - Total Imagination used, u64
[L:8] - Total Distance Driven (in meters), u64
[L:8] - Total Time Airborne in a Race Car (in seconds), u64
[L:8] - Number of Racing Imagination power-ups collected, u64
[L:8] - Number of Racing Imagination Crates Smashed, u64
[L:8] - Number of Times Race Car Boost Activated, u64
[L:8] - Number of Wrecks in a Race Car, u64
[L:8] - Number of Racing Smashables smashed, u64
[L:8] - Number of Races finished, u64
[L:8] - Number of 1st Place Race Finishes, u64
[L:BIT1] - ???, originally a [L:BIT2], simplified for parsing
[L:BIT1] - ???, originally a [L:BIT2], simplified for parsing
[L:2] - count of characters
[L:2] - ???, seems to be a string in text lego data format, sample "1:9746;1:9747;1:9748;", wchar
[L:BIT1] - flag, assert == True
[L:BIT1] - flag?, assert == False
[L:BIT1] - ???, assert == False
[L:1] - ???, assert == 0
[L:BIT1] - ???, assert == False
[L:1] - ???, assert == 0
[L:BIT1] - flag, assert == True
[L:4] - ???
[L:BIT1] - flag (this and below was in a separate function in the code), assert == True
[L:8] - ???
[L:1] - ??? (count for next struct?)
[L:BIT1] - ???
[L:4] - ???

View File

@ -0,0 +1,52 @@
[EVAL:creation] - ...
[L:BIT1] - flag
[L:4] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - flag
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:BIT1] - flag
[L:4] - ???, could be a float, float
[L:4] - ???, could be a float, float
[L:BIT1] - flag
[L:4] - ???
[L:BIT1] - ???
[L:BIT1] - flag
[L:BIT1] - flag
[L:4] - ???
[L:BIT1] - ???
[L:BIT1] - flag
[L:4] - pos x, float
[L:4] - pos y, float
[L:4] - pos z, float
[L:4] - rotation x, float
[L:4] - rotation y, float
[L:4] - rotation z, float
[L:4] - rotation w, float
[L:BIT1] - is on ground, bool
[L:BIT1] - ???
[L:BIT1] - flag
[L:4] - velocity x, float
[L:4] - velocity y, float
[L:4] - velocity z, float
[L:BIT1] - flag
[L:4] - angular velocity x, float
[L:4] - angular velocity y, float
[L:4] - angular velocity z, float
[L:BIT1] - flag
[L:8] - ???
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:BIT1] - flag
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[EVAL:not creation]
[L:BIT1] - flag?

View File

@ -0,0 +1,77 @@
Index 22:
[EVAL:creation] - ...
[L:BIT1] - flag, expect == False
[L:4] - ??? (seems to be a a count for following?)
[L:4] - ???
[L:BIT1] - flag
[L:4] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
trigger=[L:BIT1] - ???, seems to trigger L:8 below?
[L:BIT1] - ???
[EVAL:trigger] - seems to trigger this
[L:8] - ???
[L:4] - ???
[L:BIT1] - flag, expect == False
[L:4] - ??? (seems to be a a count for following?)
[L:4] - ???
[L:BIT1] - flag
[L:4] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
[L:BIT1] - ???
trigger=[L:BIT1] - ???, seems to trigger L:8 below?
[L:BIT1] - ???
[EVAL:trigger] - seems to trigger this
[L:8] - ???
[L:4] - ???
Index 23:
[EVAL:creation] - ...
[L:BIT1] - flag
[L:4] - ???, assert == 0
[L:4] - ???, assert == 0
[L:4] - ???
[L:4] - ???
[L:4] - ???, assert == 0
[L:4] - ???, assert == 0
[L:4] - ???, assert == 0
[L:4] - ???, assert == 0
[L:4] - ???
[L:BIT1] - flag
[L:4] - ???
maxhealth=[L:4] - ???, has same number as max health struct, float, assert % 1 == 0
[L:4] - ???
maxarmor=[L:4] - ???, has same number as max armor struct, float, assert % 1 == 0
[L:4] - ???, assert == 0
maximag=[L:4] - ???, has same number as max imagination, float, assert % 1 == 0
[L:4] - ???, assert == 0
[L:BIT1] - ???
[L:BIT1] - ???, assert == False
[L:BIT1] - ???, assert == False
[L:4] - max health, float, assert == maxhealth
[L:4] - max armor, float, assert == maxarmor
[L:4] - max imagination, float, assert == maximag
[L:4] - ??? (count for next struct?)
[L:4] - faction id? (at least something with factions)
trigger=[L:BIT1] - flag
[EVAL:creation]
[L:BIT1] - flag, assert == False
[L:BIT1] - flag, assert == False
[EVAL:trigger]
[L:BIT1] - ???, assert == False
[L:BIT1] - flag
[L:4] - ???
[L:BIT1] - flag
[L:BIT1] - ???

View File

@ -0,0 +1,3 @@
Index 36:
[L:BIT1] - flag, assert == True
[L:8] - ???

View File

@ -0,0 +1,20 @@
Index 30:
[L:BIT1] - flag
[L:4] - # of items equipped, u32, assert > -1 and < 9
[L:8] - objectID of item, s64
[L:4] - LOT of item, s32
[L:BIT1] - flag
[L:8] - ???
[L:BIT1] - flag
[L:4] - ???, assert == 1
[L:BIT1] - flag
[L:2] - slot in inventory
[L:BIT1] - flag
[L:4] - ???, expect == 4
[L:BIT1] - flag
[L:4] - length of following structure
[L:1] - compressed data
[L:BIT1] - ??? (perhaps a flag that specifies if the item gets loaded or if data needs to be retrieved from the cdclient database?), expect == True
[L:BIT1] - flag, assert == True
[L:4] - ???, assert == 0

View File

@ -0,0 +1,10 @@
Component 11 - Item (tested using LOT 16380)
Index 1 ($+81B2D0):
[L:BIT1] - flag
[L:8] - ???
[L:4] - ???
[L:BIT1] - flag, assert == False
not sure about this
[L:4] - ???
[L:1] - ???

View File

@ -0,0 +1,15 @@
Component 26 - Pet (tested using LOT 3995)
Index 1 ($+8D1270):
[L:BIT1] - flag
[L:4] - ???
[L:4] - ???
[L:BIT1] - flag
[L:8] - ???
[L:BIT1] - flag
[L:8] - ???
[L:BIT1] - flag
[L:4] - ???
[L:1] - length
[L:2] - ???
[L:1] - length
[L:2] - ???

View File

@ -0,0 +1,21 @@
Component 40 - PhantomPhysics (tested using LOT 4940)
Index 1 ($+834DB0):
[L:BIT1] - flag
[L:4] - position x, float
[L:4] - position y, float
[L:4] - position z, float
[L:4] - rotation x, float
[L:4] - rotation y, float
[L:4] - rotation z, float
[L:4] - rotation w, float
[L:BIT1] - flag, assert == True
[L:BIT1] - flag, expect == False
[L:4] - ???
[L:4] - ???, float
[L:BIT1] - flag
[L:4] - ???
[L:4] - ???
[L:BIT1] - flag
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float

View File

@ -0,0 +1,10 @@
Index 32:
[EVAL:creation]
[L:4] - number of BehaviorEffects? (see BehaviorEffect table in cdclient), if this is -1 the client logs "Bad FX Unserialize", expect != -1
[L:1] - effectID string length (# of letters), u8
[L:1] - char, char
[L:4] - effectID, i32
[L:1] - effectType, string length (# of letters), u8
[L:2] - wchar, wchar
[L:4] - ???, float
[L:8] - ???

View File

@ -0,0 +1,6 @@
Component 5 - Script (tested using LOT 3495)
Index 1 ($+87CDF0):
[EVAL:creation]
[L:BIT1] - flag
[L:4] - size of following struct
[L:1] - compressed data, x bytes according to prev struct, u8

View File

@ -0,0 +1,16 @@
Component 39 - ScriptedActivity (tested using LOT 11165)
Index 1 ($+9002B0):
[L:BIT1] - flag
[L:4] - length
[L:8] - ???
constant size 10 loop
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float

View File

@ -0,0 +1,22 @@
Component 3 - SimplePhysics (tested using LOT 7701)
Index 1 ($+7E4B00):
[EVAL:creation] - ...
[L:BIT1] - ???
[L:4] - ???, float
[L:BIT1] - flag
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:4] - ???, float
[L:BIT1] - flag
[L:4] - ???, assert == 5
[L:BIT1] - flag
[L:4] - position x, float
[L:4] - position y, float
[L:4] - position z, float
[L:4] - rotation x, float
[L:4] - rotation y, float
[L:4] - rotation z, float
[L:4] - rotation w, float

View File

@ -0,0 +1,22 @@
Index 31:
// component_type 9?
// Seems to be related to BehaviorTemplate
[EVAL:creation] - ...
[L:BIT1] - flag
[L:4] - count for following structs
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:4] - ???
[L:4] - count for following structs
[L:4] - ???
[L:4] - ???, seems to be something in BehaviorTemplate?
[L:4] - ???
[L:4] - ???, expect == 18
[L:8] - ???
[L:8] - ???
[L:8] - ???, expect == 0
[L:BIT1] - ???, assert == False
[L:4] - ???, expect == 0
[L:4] - ???, expect == 0
[L:4] - ???, expect == 0

View File

@ -0,0 +1,3 @@
Component 49 - Switch (tested using LOT 16143)
Index 1 ($+80EBF0):
[L:BIT1] - since this is a switch it's likely it's the switch state (on/off)

View File

@ -0,0 +1,5 @@
Component 16 - Vendor (tested using LOT 8212)
Index 1 ($+7E1CB0):
[L:BIT1] - flag
[L:BIT1] - ???
[L:BIT1] - ???

View File

@ -0,0 +1,22 @@
[L:1] - Replica packet ID, assert == 0x24
[L:BIT1] - Whether NetworkID is there, assert == 1
[L:2] - NetworkID, u16
objectID=[L:8] - objectID, s64
[L:4] - LOT, s32
[L:1] - length, u8
[L:2] - name, wchar
[L:4] - time_since_created_on_server?
[L:BIT1] - flag, expect == False
[L:4] - size of following struct
[L:1] - compressed data, x bytes according to prev struct, u8
[L:BIT1] - trigger_id, expect == False
[L:BIT1] - flag
[L:8] - SpawnerID, s64
[L:BIT1] - flag
[L:4] - spawner_node_id, expect == 0
[L:BIT1] - flag
[L:4] - ???, float
[L:BIT1] - flag, assert == False
[L:1] - objectWorldState?
[L:BIT1] - flag, assert == False
[L:1] - ???

View File

@ -0,0 +1,7 @@
[L:BIT1] - flag
[L:BIT1] - flag, expect == False
[L:8] - ???
[L:BIT1] - ???
[L:BIT1] - flag, expect == False
[L:2] - ??? (if > 0 read next block n times?)
[L:8] - ???