diff --git a/bin/class_mapping.py b/bin/class_mapping.py index 3cab3c4..eac969f 100644 --- a/bin/class_mapping.py +++ b/bin/class_mapping.py @@ -58,9 +58,11 @@ def detect_class_types(protocol): for r in protocol.typeinfos[t[1]][1][0]: if r[0] == "m_gameOptions": mapping[r[1]] = 'Rogiel\StarReplay\Metadata\Init\GameOptions' - if t[0] == "m_lobbyState": mapping[t[1]] = 'Rogiel\StarReplay\Metadata\Init\LobbyState' + for s in protocol.typeinfos[t[1]][1][0]: + if s[0] == "m_slots": + mapping[protocol.typeinfos[s[1]][1][1]] = 'Rogiel\StarReplay\Metadata\Init\LobbySlot' for index, type in enumerate(protocol.typeinfos): if type[0] == '_struct': diff --git a/bin/class_mapping.pyc b/bin/class_mapping.pyc new file mode 100644 index 0000000..7dbde79 Binary files /dev/null and b/bin/class_mapping.pyc differ diff --git a/bin/template.pyc b/bin/template.pyc new file mode 100644 index 0000000..62b9afb Binary files /dev/null and b/bin/template.pyc differ diff --git a/bin/tree.pyc b/bin/tree.pyc new file mode 100644 index 0000000..3b7f1df Binary files /dev/null and b/bin/tree.pyc differ diff --git a/s2protocol b/s2protocol index d9973aa..2c5452f 160000 --- a/s2protocol +++ b/s2protocol @@ -1 +1 @@ -Subproject commit d9973aacd000a18a98a91fc6a8c66cbf201940cb +Subproject commit 2c5452faf8fbca8effcfcc39458f593688ca1fce diff --git a/src/Entity/Player.php b/src/Entity/Player.php index 74e3f00..7ebafe6 100644 --- a/src/Entity/Player.php +++ b/src/Entity/Player.php @@ -85,13 +85,37 @@ class Player extends AbstractEntity { */ private $hero; + // ----------------------------------------------------------------------------------------------------------------- + + /** + * @return string + */ + public function getRawName() { + return $this->name; + } + /** * @return string */ public function getName() { - return $this->name; + $hasClanTag = strpos($this->name, ''); + if(!$hasClanTag) { + return $this->name; + } + return substr($this->name, $hasClanTag + 5); } + /** + * @return string + */ + public function getClanTag() { + $hasClanTag = strpos($this->name, ''); + if(!$hasClanTag) { + return NULL; + } + return substr($this->name, 0, $hasClanTag); + } + /** * @return Toon */ @@ -144,7 +168,7 @@ class Player extends AbstractEntity { /** * @return boolean */ - public function isResult() { + public function getResult() { return $this->result; } diff --git a/src/Entity/Toon.php b/src/Entity/Toon.php index 4686020..7cefb03 100644 --- a/src/Entity/Toon.php +++ b/src/Entity/Toon.php @@ -36,6 +36,60 @@ class Toon extends AbstractEntity { private $realm; private $id; + /** + * @return mixed + */ + public function getRegion() { + return $this->region; + } + /** + * @param mixed $region + */ + public function setRegion($region) { + $this->region = $region; + } + + /** + * @return mixed + */ + public function getProgramId() { + return $this->programId; + } + + /** + * @param mixed $programId + */ + public function setProgramId($programId) { + $this->programId = $programId; + } + + /** + * @return mixed + */ + public function getRealm() { + return $this->realm; + } + + /** + * @param mixed $realm + */ + public function setRealm($realm) { + $this->realm = $realm; + } + + /** + * @return mixed + */ + public function getId() { + return $this->id; + } + + /** + * @param mixed $id + */ + public function setId($id) { + $this->id = $id; + } } \ No newline at end of file diff --git a/src/Event/Game/DecrementGameTimeRemainingEvent.php b/src/Event/Game/DecrementGameTimeRemainingEvent.php index e58a36f..66ee095 100644 --- a/src/Event/Game/DecrementGameTimeRemainingEvent.php +++ b/src/Event/Game/DecrementGameTimeRemainingEvent.php @@ -31,7 +31,7 @@ namespace Rogiel\StarReplay\Event\Game; class DecrementGameTimeRemainingEvent extends AbstractGameEvent { /** @var integer */ - public $decrementMs; + public $decrementSeconds; /** * @return string the event name @@ -44,10 +44,10 @@ class DecrementGameTimeRemainingEvent extends AbstractGameEvent { * @return string a string representation of the event */ public function __toString() { - return $this->getEventName()."{ decrementMs = $this->decrementMs }"; + return $this->getEventName()."{ decrementSeconds = $this->decrementSeconds }"; } /** @return integer */ - public function getDecrementMs() { return $this->decrementMs; } + public function getDecrementSeconds() { return $this->decrementSeconds; } } \ No newline at end of file diff --git a/src/Event/Game/TriggerCameraMoveEvent.php b/src/Event/Game/TriggerCameraMoveEvent.php index a7b6603..f94cbdc 100644 --- a/src/Event/Game/TriggerCameraMoveEvent.php +++ b/src/Event/Game/TriggerCameraMoveEvent.php @@ -30,7 +30,7 @@ namespace Rogiel\StarReplay\Event\Game; class TriggerCameraMoveEvent extends AbstractGameEvent { - /** @var array */ + /** @var \Rogiel\StarReplay\Event\Game\Entity\SubgroupUnit */ public $reason; /** @@ -47,7 +47,7 @@ class TriggerCameraMoveEvent extends AbstractGameEvent { return $this->getEventName()."{ reason = $this->reason }"; } - /** @return array */ + /** @return \Rogiel\StarReplay\Event\Game\Entity\SubgroupUnit */ public function getReason() { return $this->reason; } } \ No newline at end of file diff --git a/src/Metadata/Init/LobbySlot.php b/src/Metadata/Init/LobbySlot.php new file mode 100644 index 0000000..88499de --- /dev/null +++ b/src/Metadata/Init/LobbySlot.php @@ -0,0 +1,241 @@ +control; + } + + /** + * @return mixed + */ + public function getUserId() { + return $this->userId; + } + + /** + * @return mixed + */ + public function getTeamId() { + return $this->teamId; + } + + /** + * @return array + */ + public function getColorPref() { + return $this->colorPref; + } + + /** + * @return mixed + */ + public function getRacePref() { + return $this->racePref; + } + + /** + * @return mixed + */ + public function getDifficulty() { + return $this->difficulty; + } + + /** + * @return mixed + */ + public function getAiBuild() { + return $this->aiBuild; + } + + /** + * @return mixed + */ + public function getHandicap() { + return $this->handicap; + } + + /** + * @return mixed + */ + public function getObserve() { + return $this->observe; + } + + /** + * @return mixed + */ + public function getLogoIndex() { + return $this->logoIndex; + } + + /** + * @return mixed + */ + public function getHero() { + return $this->hero; + } + + /** + * @return mixed + */ + public function getSkin() { + return $this->skin; + } + + /** + * @return mixed + */ + public function getMount() { + return $this->mount; + } + + /** + * @return array + */ + public function getArtifacts() { + return $this->artifacts; + } + + /** + * @return mixed + */ + public function getWorkingSetSlotId() { + return $this->workingSetSlotId; + } + + /** + * @return array + */ + public function getRewards() { + return $this->rewards; + } + + /** + * @return mixed + */ + public function getToonHandle() { + return $this->toonHandle; + } + + /** + * @return mixed + */ + public function getLicenses() { + return $this->licenses; + } + + /** + * @return mixed + */ + public function getTandemLeaderId() { + return $this->tandemLeaderId; + } + + /** + * @return mixed + */ + public function getCommander() { + return $this->commander; + } + + /** + * @return mixed + */ + public function getCommanderLevel() { + return $this->commanderLevel; + } + + /** + * @return mixed + */ + public function getHasSilencePenalty() { + return $this->hasSilencePenalty; + } + + /** + * @return mixed + */ + public function getTandemId() { + return $this->tandemId; + } + + /** + * @return mixed + */ + public function getCommanderMasteryLevel() { + return $this->commanderMasteryLevel; + } + + /** + * @return mixed + */ + public function getCommanderMasteryTalents() { + return $this->commanderMasteryTalents; + } + +} \ No newline at end of file diff --git a/src/Metadata/Init/LobbyState.php b/src/Metadata/Init/LobbyState.php index 0f578e1..4d33c4c 100644 --- a/src/Metadata/Init/LobbyState.php +++ b/src/Metadata/Init/LobbyState.php @@ -47,7 +47,7 @@ class LobbyState { private $maxObservers; /** - * @var integer + * @var LobbySlot[] */ private $slots; @@ -108,7 +108,7 @@ class LobbyState { } /** - * @return int + * @return LobbySlot[] */ public function getSlots() { return $this->slots; diff --git a/src/Parser/Serializer/AbstractSerializer.php b/src/Parser/Serializer/AbstractSerializer.php index e54258f..d34ee38 100644 --- a/src/Parser/Serializer/AbstractSerializer.php +++ b/src/Parser/Serializer/AbstractSerializer.php @@ -103,8 +103,7 @@ abstract class AbstractSerializer implements Serializer{ ); } else if($rootNode instanceof ChoiceNode) { return $this->decorateObject( - $this->parseChoice($rootNode) - , + $this->parseChoice($rootNode), $rootNode ); } else if($rootNode instanceof IntegerNode) { diff --git a/src/Replay.php b/src/Replay.php index d5870c9..b0883a4 100644 --- a/src/Replay.php +++ b/src/Replay.php @@ -240,6 +240,9 @@ class Replay { } $stream = $this->file->openStream('replay.tracker.events'); +// echo bin2hex($stream->readBytes(10)); +// die(); + $stream = new BitStream($stream); $parser = new ReplayStreamParser($stream); $serializer = new VersionedSerializer($parser, $this->getVersion()->getTree(), $this->hydratorFactory); diff --git a/src/Version/Version15405.php b/src/Version/Version15405.php index 7b8735d..10b85de 100644 --- a/src/Version/Version15405.php +++ b/src/Version/Version15405.php @@ -333,7 +333,9 @@ Version15405::$TREE = new Tree([ "handicap" => array('type' => 0, 'tag' => -3), "observe" => array('type' => 19, 'tag' => -2), "rewards" => array('type' => 50, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 52 => new ArrayNode( new IntegerNode(5, 0), 51 diff --git a/src/Version/Version16561.php b/src/Version/Version16561.php index 29e88aa..0422964 100644 --- a/src/Version/Version16561.php +++ b/src/Version/Version16561.php @@ -338,7 +338,9 @@ Version16561::$TREE = new Tree([ "handicap" => array('type' => 0, 'tag' => -3), "observe" => array('type' => 19, 'tag' => -2), "rewards" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version16605.php b/src/Version/Version16605.php index 14143c0..2205647 100644 --- a/src/Version/Version16605.php +++ b/src/Version/Version16605.php @@ -338,7 +338,9 @@ Version16605::$TREE = new Tree([ "handicap" => array('type' => 0, 'tag' => -3), "observe" => array('type' => 19, 'tag' => -2), "rewards" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version16755.php b/src/Version/Version16755.php index 1879681..07d26ef 100644 --- a/src/Version/Version16755.php +++ b/src/Version/Version16755.php @@ -338,7 +338,9 @@ Version16755::$TREE = new Tree([ "handicap" => array('type' => 0, 'tag' => -3), "observe" => array('type' => 19, 'tag' => -2), "rewards" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version16939.php b/src/Version/Version16939.php index 75073b9..fbe0c3d 100644 --- a/src/Version/Version16939.php +++ b/src/Version/Version16939.php @@ -338,7 +338,9 @@ Version16939::$TREE = new Tree([ "handicap" => array('type' => 0, 'tag' => -3), "observe" => array('type' => 19, 'tag' => -2), "rewards" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version17266.php b/src/Version/Version17266.php index c4ad167..50c4558 100644 --- a/src/Version/Version17266.php +++ b/src/Version/Version17266.php @@ -338,7 +338,9 @@ Version17266::$TREE = new Tree([ "observe" => array('type' => 19, 'tag' => -3), "rewards" => array('type' => 50, 'tag' => -2), "toonHandle" => array('type' => 15, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 52 => new ArrayNode( new IntegerNode(5, 0), 51 diff --git a/src/Version/Version17326.php b/src/Version/Version17326.php index 120fcb1..bafcbe7 100644 --- a/src/Version/Version17326.php +++ b/src/Version/Version17326.php @@ -338,7 +338,9 @@ Version17326::$TREE = new Tree([ "observe" => array('type' => 19, 'tag' => -3), "rewards" => array('type' => 50, 'tag' => -2), "toonHandle" => array('type' => 15, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 52 => new ArrayNode( new IntegerNode(5, 0), 51 diff --git a/src/Version/Version18092.php b/src/Version/Version18092.php index ea64e5c..960c58a 100644 --- a/src/Version/Version18092.php +++ b/src/Version/Version18092.php @@ -338,7 +338,9 @@ Version18092::$TREE = new Tree([ "observe" => array('type' => 19, 'tag' => -3), "rewards" => array('type' => 50, 'tag' => -2), "toonHandle" => array('type' => 15, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 52 => new ArrayNode( new IntegerNode(5, 0), 51 diff --git a/src/Version/Version18468.php b/src/Version/Version18468.php index fdfeadf..7a03b06 100644 --- a/src/Version/Version18468.php +++ b/src/Version/Version18468.php @@ -338,7 +338,9 @@ Version18468::$TREE = new Tree([ "observe" => array('type' => 19, 'tag' => -3), "rewards" => array('type' => 50, 'tag' => -2), "toonHandle" => array('type' => 15, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 52 => new ArrayNode( new IntegerNode(5, 0), 51 diff --git a/src/Version/Version18574.php b/src/Version/Version18574.php index 51b4cb6..9ec85a9 100644 --- a/src/Version/Version18574.php +++ b/src/Version/Version18574.php @@ -338,7 +338,9 @@ Version18574::$TREE = new Tree([ "observe" => array('type' => 19, 'tag' => -3), "rewards" => array('type' => 50, 'tag' => -2), "toonHandle" => array('type' => 15, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 52 => new ArrayNode( new IntegerNode(5, 0), 51 diff --git a/src/Version/Version19132.php b/src/Version/Version19132.php index 176f148..a5ba34c 100644 --- a/src/Version/Version19132.php +++ b/src/Version/Version19132.php @@ -343,7 +343,9 @@ Version19132::$TREE = new Tree([ "rewards" => array('type' => 50, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version19458.php b/src/Version/Version19458.php index 95fa4b7..97b6b2a 100644 --- a/src/Version/Version19458.php +++ b/src/Version/Version19458.php @@ -343,7 +343,9 @@ Version19458::$TREE = new Tree([ "rewards" => array('type' => 50, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version19595.php b/src/Version/Version19595.php index 5471b4a..e405ec8 100644 --- a/src/Version/Version19595.php +++ b/src/Version/Version19595.php @@ -343,7 +343,9 @@ Version19595::$TREE = new Tree([ "rewards" => array('type' => 50, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version19679.php b/src/Version/Version19679.php index 44e8581..353b010 100644 --- a/src/Version/Version19679.php +++ b/src/Version/Version19679.php @@ -343,7 +343,9 @@ Version19679::$TREE = new Tree([ "rewards" => array('type' => 50, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version21029.php b/src/Version/Version21029.php index 5a63be7..1722189 100644 --- a/src/Version/Version21029.php +++ b/src/Version/Version21029.php @@ -343,7 +343,9 @@ Version21029::$TREE = new Tree([ "rewards" => array('type' => 50, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 51, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 53 => new ArrayNode( new IntegerNode(5, 0), 52 diff --git a/src/Version/Version21995.php b/src/Version/Version21995.php index 6b21b6d..a0ef6b1 100644 --- a/src/Version/Version21995.php +++ b/src/Version/Version21995.php @@ -349,7 +349,9 @@ Version21995::$TREE = new Tree([ "rewards" => array('type' => 52, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 53, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 55 => new ArrayNode( new IntegerNode(5, 0), 54 diff --git a/src/Version/Version22612.php b/src/Version/Version22612.php index 741edbc..217a453 100644 --- a/src/Version/Version22612.php +++ b/src/Version/Version22612.php @@ -350,7 +350,9 @@ Version22612::$TREE = new Tree([ "rewards" => array('type' => 52, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 53, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 55 => new ArrayNode( new IntegerNode(5, 0), 54 diff --git a/src/Version/Version23260.php b/src/Version/Version23260.php index aeaf815..8447842 100644 --- a/src/Version/Version23260.php +++ b/src/Version/Version23260.php @@ -350,7 +350,9 @@ Version23260::$TREE = new Tree([ "rewards" => array('type' => 52, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 53, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 55 => new ArrayNode( new IntegerNode(5, 0), 54 diff --git a/src/Version/Version24764.php b/src/Version/Version24764.php index b14d23f..1adc34b 100644 --- a/src/Version/Version24764.php +++ b/src/Version/Version24764.php @@ -366,7 +366,9 @@ Version24764::$TREE = new Tree([ "rewards" => array('type' => 55, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 56, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 58 => new ArrayNode( new IntegerNode(5, 0), 57 diff --git a/src/Version/Version24944.php b/src/Version/Version24944.php index 21c2f0b..edb8ee5 100644 --- a/src/Version/Version24944.php +++ b/src/Version/Version24944.php @@ -366,7 +366,9 @@ Version24944::$TREE = new Tree([ "rewards" => array('type' => 55, 'tag' => -3), "toonHandle" => array('type' => 15, 'tag' => -2), "licenses" => array('type' => 56, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 58 => new ArrayNode( new IntegerNode(5, 0), 57 diff --git a/src/Version/Version26490.php b/src/Version/Version26490.php index dbb6453..85ce76d 100644 --- a/src/Version/Version26490.php +++ b/src/Version/Version26490.php @@ -369,7 +369,9 @@ Version26490::$TREE = new Tree([ "rewards" => array('type' => 56, 'tag' => -3), "toonHandle" => array('type' => 16, 'tag' => -2), "licenses" => array('type' => 57, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 59 => new ArrayNode( new IntegerNode(5, 0), 58 diff --git a/src/Version/Version27950.php b/src/Version/Version27950.php index ea7eb4d..db85d80 100644 --- a/src/Version/Version27950.php +++ b/src/Version/Version27950.php @@ -372,7 +372,9 @@ Version27950::$TREE = new Tree([ "rewards" => array('type' => 57, 'tag' => -3), "toonHandle" => array('type' => 16, 'tag' => -2), "licenses" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 60 => new ArrayNode( new IntegerNode(5, 0), 59 diff --git a/src/Version/Version28272.php b/src/Version/Version28272.php index 249a6a5..aa3f415 100644 --- a/src/Version/Version28272.php +++ b/src/Version/Version28272.php @@ -372,7 +372,9 @@ Version28272::$TREE = new Tree([ "rewards" => array('type' => 57, 'tag' => -3), "toonHandle" => array('type' => 16, 'tag' => -2), "licenses" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 60 => new ArrayNode( new IntegerNode(5, 0), 59 diff --git a/src/Version/Version28667.php b/src/Version/Version28667.php index a889f5c..d8b43ee 100644 --- a/src/Version/Version28667.php +++ b/src/Version/Version28667.php @@ -372,7 +372,9 @@ Version28667::$TREE = new Tree([ "rewards" => array('type' => 57, 'tag' => -3), "toonHandle" => array('type' => 16, 'tag' => -2), "licenses" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 60 => new ArrayNode( new IntegerNode(5, 0), 59 diff --git a/src/Version/Version32283.php b/src/Version/Version32283.php index 2604eb0..ec1d065 100644 --- a/src/Version/Version32283.php +++ b/src/Version/Version32283.php @@ -373,7 +373,9 @@ Version32283::$TREE = new Tree([ "rewards" => array('type' => 57, 'tag' => -3), "toonHandle" => array('type' => 16, 'tag' => -2), "licenses" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 60 => new ArrayNode( new IntegerNode(5, 0), 59 diff --git a/src/Version/Version34784.php b/src/Version/Version34784.php index 9703ac0..38fcd47 100644 --- a/src/Version/Version34784.php +++ b/src/Version/Version34784.php @@ -408,7 +408,9 @@ Version34784::$TREE = new Tree([ "licenses" => array('type' => 64, 'tag' => -3), "tandemLeaderUserId" => array('type' => 59, 'tag' => -2), "commander" => array('type' => 46, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version34835.php b/src/Version/Version34835.php index c3b0004..73aa020 100644 --- a/src/Version/Version34835.php +++ b/src/Version/Version34835.php @@ -408,7 +408,9 @@ Version34835::$TREE = new Tree([ "licenses" => array('type' => 64, 'tag' => -3), "tandemLeaderUserId" => array('type' => 59, 'tag' => -2), "commander" => array('type' => 46, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version36442.php b/src/Version/Version36442.php index c7752cc..7b9e759 100644 --- a/src/Version/Version36442.php +++ b/src/Version/Version36442.php @@ -409,7 +409,9 @@ Version36442::$TREE = new Tree([ "tandemLeaderUserId" => array('type' => 59, 'tag' => -3), "commander" => array('type' => 46, 'tag' => -2), "commanderLevel" => array('type' => 6, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version38215.php b/src/Version/Version38215.php index 6ce193f..b53f22a 100644 --- a/src/Version/Version38215.php +++ b/src/Version/Version38215.php @@ -410,7 +410,9 @@ Version38215::$TREE = new Tree([ "commander" => array('type' => 46, 'tag' => -3), "commanderLevel" => array('type' => 6, 'tag' => -2), "hasSilencePenalty" => array('type' => 13, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version38535.php b/src/Version/Version38535.php index 1a3c78b..be7c46d 100644 --- a/src/Version/Version38535.php +++ b/src/Version/Version38535.php @@ -410,7 +410,9 @@ Version38535::$TREE = new Tree([ "commander" => array('type' => 46, 'tag' => -3), "commanderLevel" => array('type' => 6, 'tag' => -2), "hasSilencePenalty" => array('type' => 13, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version38624.php b/src/Version/Version38624.php index c01af3d..879b157 100644 --- a/src/Version/Version38624.php +++ b/src/Version/Version38624.php @@ -410,7 +410,9 @@ Version38624::$TREE = new Tree([ "commander" => array('type' => 46, 'tag' => -3), "commanderLevel" => array('type' => 6, 'tag' => -2), "hasSilencePenalty" => array('type' => 13, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version38749.php b/src/Version/Version38749.php index d7383c7..de43fd1 100644 --- a/src/Version/Version38749.php +++ b/src/Version/Version38749.php @@ -407,7 +407,9 @@ Version38749::$TREE = new Tree([ "commander" => array('type' => 46, 'tag' => -3), "commanderLevel" => array('type' => 6, 'tag' => -2), "hasSilencePenalty" => array('type' => 13, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version38996.php b/src/Version/Version38996.php index 7fe6db1..04996c7 100644 --- a/src/Version/Version38996.php +++ b/src/Version/Version38996.php @@ -407,7 +407,9 @@ Version38996::$TREE = new Tree([ "commander" => array('type' => 46, 'tag' => -3), "commanderLevel" => array('type' => 6, 'tag' => -2), "hasSilencePenalty" => array('type' => 13, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version39117.php b/src/Version/Version39117.php index 9802562..9e2cca2 100644 --- a/src/Version/Version39117.php +++ b/src/Version/Version39117.php @@ -407,7 +407,9 @@ Version39117::$TREE = new Tree([ "commander" => array('type' => 46, 'tag' => -3), "commanderLevel" => array('type' => 6, 'tag' => -2), "hasSilencePenalty" => array('type' => 13, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version39576.php b/src/Version/Version39576.php index f7a1ac1..869f134 100644 --- a/src/Version/Version39576.php +++ b/src/Version/Version39576.php @@ -408,7 +408,9 @@ Version39576::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version39948.php b/src/Version/Version39948.php index cc49a5a..95b452c 100644 --- a/src/Version/Version39948.php +++ b/src/Version/Version39948.php @@ -408,7 +408,9 @@ Version39948::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version40384.php b/src/Version/Version40384.php index e54f1c4..db1e9c3 100644 --- a/src/Version/Version40384.php +++ b/src/Version/Version40384.php @@ -408,7 +408,9 @@ Version40384::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version40977.php b/src/Version/Version40977.php index 7eb09be..19d1e42 100644 --- a/src/Version/Version40977.php +++ b/src/Version/Version40977.php @@ -408,7 +408,9 @@ Version40977::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version41128.php b/src/Version/Version41128.php index cb4bced..9e95dbe 100644 --- a/src/Version/Version41128.php +++ b/src/Version/Version41128.php @@ -408,7 +408,9 @@ Version41128::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version41219.php b/src/Version/Version41219.php index 40ece56..294ca1c 100644 --- a/src/Version/Version41219.php +++ b/src/Version/Version41219.php @@ -408,7 +408,9 @@ Version41219::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version41743.php b/src/Version/Version41743.php index 7b5b78c..e474142 100644 --- a/src/Version/Version41743.php +++ b/src/Version/Version41743.php @@ -408,7 +408,9 @@ Version41743::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version41973.php b/src/Version/Version41973.php index 3ca4ca7..e7fd192 100644 --- a/src/Version/Version41973.php +++ b/src/Version/Version41973.php @@ -408,7 +408,9 @@ Version41973::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version42253.php b/src/Version/Version42253.php index f848bee..e6947b3 100644 --- a/src/Version/Version42253.php +++ b/src/Version/Version42253.php @@ -408,7 +408,9 @@ Version42253::$TREE = new Tree([ "commanderLevel" => array('type' => 6, 'tag' => -3), "hasSilencePenalty" => array('type' => 13, 'tag' => -2), "tandemId" => array('type' => 58, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 65 => new ArrayNode( new IntegerNode(5, 0), 64 diff --git a/src/Version/Version42932.php b/src/Version/Version42932.php index 5138808..ea3bba9 100644 --- a/src/Version/Version42932.php +++ b/src/Version/Version42932.php @@ -415,7 +415,9 @@ Version42932::$TREE = new Tree([ "tandemId" => array('type' => 58, 'tag' => -3), "commanderMasteryLevel" => array('type' => 6, 'tag' => -2), "commanderMasteryTalents" => array('type' => 64, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version43199.php b/src/Version/Version43199.php index 2ee3272..e524e8d 100644 --- a/src/Version/Version43199.php +++ b/src/Version/Version43199.php @@ -415,7 +415,9 @@ Version43199::$TREE = new Tree([ "tandemId" => array('type' => 58, 'tag' => -3), "commanderMasteryLevel" => array('type' => 6, 'tag' => -2), "commanderMasteryTalents" => array('type' => 64, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version43478.php b/src/Version/Version43478.php index a89096e..d677d8e 100644 --- a/src/Version/Version43478.php +++ b/src/Version/Version43478.php @@ -415,7 +415,9 @@ Version43478::$TREE = new Tree([ "tandemId" => array('type' => 58, 'tag' => -3), "commanderMasteryLevel" => array('type' => 6, 'tag' => -2), "commanderMasteryTalents" => array('type' => 64, 'tag' => -1), -]), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), 66 => new ArrayNode( new IntegerNode(5, 0), 65 diff --git a/src/Version/Version44169.php b/src/Version/Version44169.php new file mode 100644 index 0000000..2c22d18 --- /dev/null +++ b/src/Version/Version44169.php @@ -0,0 +1,1351 @@ +getNode(18); + } + + public function getReplayInitDataNode() { + return self::$TREE->getNode(69); + } + + public function getGameDetailsNode() { + return self::$TREE->getNode(40); + } + + public function getGameEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'user' => ['type' => 8], + 'event' => ['type' => 0] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + + public function getMessageEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'user' => ['type' => 8], + 'event' => ['type' => 1] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + + public function getTrackerEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'event' => ['type' => 2] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + +} + +Version44169::$TREE = new Tree([ +0 => new IntegerNode(7, 0), +1 => new IntegerNode(4, 0), +2 => new IntegerNode(5, 0), +3 => new IntegerNode(6, 0), +4 => new IntegerNode(14, 0), +5 => new IntegerNode(22, 0), +6 => new IntegerNode(32, 0), +7 => new ChoiceNode(new IntegerNode(2), [ + 0 => 3, + 1 => 4, + 2 => 5, + 3 => 6, +]), +8 => new StructNode([ + "userId" => array('type' => 2, 'tag' => -1), +]), +9 => new BlobNode(new IntegerNode(8, 0)), +10 => new IntegerNode(8, 0), +11 => new StructNode([ + "flags" => array('type' => 10, 'tag' => 0), + "major" => array('type' => 10, 'tag' => 1), + "minor" => array('type' => 10, 'tag' => 2), + "revision" => array('type' => 10, 'tag' => 3), + "build" => array('type' => 6, 'tag' => 4), + "baseBuild" => array('type' => 6, 'tag' => 5), +], + 'Rogiel\StarReplay\Metadata\Header\Version' +), +12 => new IntegerNode(3, 0), +13 => new BooleanNode(), +14 => new ArrayNode( + new IntegerNode(0, 16), + 10 +), +15 => new OptionalNode(14), +16 => new BlobNode(new IntegerNode(0, 16)), +17 => new StructNode([ + "dataDeprecated" => array('type' => 15, 'tag' => 0), + "data" => array('type' => 16, 'tag' => 1), +], + 'Rogiel\StarReplay\Metadata\Header\Hash' +), +18 => new StructNode([ + "signature" => array('type' => 9, 'tag' => 0), + "version" => array('type' => 11, 'tag' => 1), + "type" => array('type' => 12, 'tag' => 2), + "elapsedGameLoops" => array('type' => 6, 'tag' => 3), + "useScaledTime" => array('type' => 13, 'tag' => 4), + "ngdpRootKey" => array('type' => 17, 'tag' => 5), + "dataBuildNum" => array('type' => 6, 'tag' => 6), + "replayCompatibilityHash" => array('type' => 17, 'tag' => 7), +], + 'Rogiel\StarReplay\Metadata\Header\Header' +), +19 => new FourCCNode(), +20 => new BlobNode(new IntegerNode(7, 0)), +21 => new IntegerNode(64, 0), +22 => new StructNode([ + "region" => array('type' => 10, 'tag' => 0), + "programId" => array('type' => 19, 'tag' => 1), + "realm" => array('type' => 6, 'tag' => 2), + "name" => array('type' => 20, 'tag' => 3), + "id" => array('type' => 21, 'tag' => 4), +], + 'Rogiel\StarReplay\Entity\Toon' +), +23 => new StructNode([ + "a" => array('type' => 10, 'tag' => 0), + "r" => array('type' => 10, 'tag' => 1), + "g" => array('type' => 10, 'tag' => 2), + "b" => array('type' => 10, 'tag' => 3), +], + 'Rogiel\StarReplay\Entity\Color' +), +24 => new IntegerNode(2, 0), +25 => new OptionalNode(10), +26 => new StructNode([ + "name" => array('type' => 9, 'tag' => 0), + "toon" => array('type' => 22, 'tag' => 1), + "race" => array('type' => 9, 'tag' => 2), + "color" => array('type' => 23, 'tag' => 3), + "control" => array('type' => 10, 'tag' => 4), + "teamId" => array('type' => 1, 'tag' => 5), + "handicap" => array('type' => 0, 'tag' => 6), + "observe" => array('type' => 24, 'tag' => 7), + "result" => array('type' => 24, 'tag' => 8), + "workingSetSlotId" => array('type' => 25, 'tag' => 9), + "hero" => array('type' => 9, 'tag' => 10), +], + 'Rogiel\StarReplay\Entity\Player' +), +27 => new ArrayNode( + new IntegerNode(5, 0), + 26, + 'Rogiel\StarReplay\Metadata\Match\PlayerList' + +), +28 => new OptionalNode(27), +29 => new BlobNode(new IntegerNode(10, 0)), +30 => new BlobNode(new IntegerNode(11, 0)), +31 => new StructNode([ + "file" => array('type' => 30, 'tag' => 0), +], + 'Rogiel\StarReplay\Entity\Thumbnail' +), +32 => new OptionalNode(13), +33 => new IntegerNode(64, -9223372036854775808), +34 => new BlobNode(new IntegerNode(12, 0)), +35 => new BlobNode(new IntegerNode(0, 40)), +36 => new ArrayNode( + new IntegerNode(6, 0), + 35 +), +37 => new OptionalNode(36), +38 => new ArrayNode( + new IntegerNode(6, 0), + 30 +), +39 => new OptionalNode(38), +40 => new StructNode([ + "playerList" => array('type' => 28, 'tag' => 0), + "title" => array('type' => 29, 'tag' => 1), + "difficulty" => array('type' => 9, 'tag' => 2), + "thumbnail" => array('type' => 31, 'tag' => 3), + "isBlizzardMap" => array('type' => 13, 'tag' => 4), + "restartAsTransitionMap" => array('type' => 32, 'tag' => 16), + "timeUTC" => array('type' => 33, 'tag' => 5), + "timeLocalOffset" => array('type' => 33, 'tag' => 6), + "description" => array('type' => 34, 'tag' => 7), + "imageFilePath" => array('type' => 30, 'tag' => 8), + "campaignIndex" => array('type' => 10, 'tag' => 15), + "mapFileName" => array('type' => 30, 'tag' => 9), + "cacheHandles" => array('type' => 37, 'tag' => 10), + "miniSave" => array('type' => 13, 'tag' => 11), + "gameSpeed" => array('type' => 12, 'tag' => 12), + "defaultDifficulty" => array('type' => 3, 'tag' => 13), + "modPaths" => array('type' => 39, 'tag' => 14), +], + 'Rogiel\StarReplay\Metadata\Match\MatchInformation' +), +41 => new OptionalNode(9), +42 => new OptionalNode(35), +43 => new OptionalNode(6), +44 => new StructNode([ + "race" => array('type' => 25, 'tag' => -1), +]), +45 => new StructNode([ + "team" => array('type' => 25, 'tag' => -1), +]), +46 => new BlobNode(new IntegerNode(9, 0)), +47 => new StructNode([ + "name" => array('type' => 9, 'tag' => -18), + "clanTag" => array('type' => 41, 'tag' => -17), + "clanLogo" => array('type' => 42, 'tag' => -16), + "highestLeague" => array('type' => 25, 'tag' => -15), + "combinedRaceLevels" => array('type' => 43, 'tag' => -14), + "randomSeed" => array('type' => 6, 'tag' => -13), + "racePreference" => array('type' => 44, 'tag' => -12), + "teamPreference" => array('type' => 45, 'tag' => -11), + "testMap" => array('type' => 13, 'tag' => -10), + "testAuto" => array('type' => 13, 'tag' => -9), + "examine" => array('type' => 13, 'tag' => -8), + "customInterface" => array('type' => 13, 'tag' => -7), + "testType" => array('type' => 6, 'tag' => -6), + "observe" => array('type' => 24, 'tag' => -5), + "hero" => array('type' => 46, 'tag' => -4), + "skin" => array('type' => 46, 'tag' => -3), + "mount" => array('type' => 46, 'tag' => -2), + "toonHandle" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\UserInitialData' +), +48 => new ArrayNode( + new IntegerNode(5, 0), + 47, + 'Rogiel\StarReplay\Metadata\Init\UserInitialDataCollection' + +), +49 => new StructNode([ + "lockTeams" => array('type' => 13, 'tag' => -15), + "teamsTogether" => array('type' => 13, 'tag' => -14), + "advancedSharedControl" => array('type' => 13, 'tag' => -13), + "randomRaces" => array('type' => 13, 'tag' => -12), + "battleNet" => array('type' => 13, 'tag' => -11), + "amm" => array('type' => 13, 'tag' => -10), + "competitive" => array('type' => 13, 'tag' => -9), + "practice" => array('type' => 13, 'tag' => -8), + "cooperative" => array('type' => 13, 'tag' => -7), + "noVictoryOrDefeat" => array('type' => 13, 'tag' => -6), + "heroDuplicatesAllowed" => array('type' => 13, 'tag' => -5), + "fog" => array('type' => 24, 'tag' => -4), + "observers" => array('type' => 24, 'tag' => -3), + "userDifficulty" => array('type' => 24, 'tag' => -2), + "clientDebugFlags" => array('type' => 21, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\GameOptions' +), +50 => new IntegerNode(4, 1), +51 => new IntegerNode(8, 1), +52 => new BitArrayNode( + new IntegerNode(6, 0) +), +53 => new BitArrayNode( + new IntegerNode(8, 0) +), +54 => new BitArrayNode( + new IntegerNode(2, 0) +), +55 => new StructNode([ + "allowedColors" => array('type' => 52, 'tag' => -6), + "allowedRaces" => array('type' => 53, 'tag' => -5), + "allowedDifficulty" => array('type' => 52, 'tag' => -4), + "allowedControls" => array('type' => 53, 'tag' => -3), + "allowedObserveTypes" => array('type' => 54, 'tag' => -2), + "allowedAIBuilds" => array('type' => 53, 'tag' => -1), +]), +56 => new ArrayNode( + new IntegerNode(5, 0), + 55 +), +57 => new StructNode([ + "randomValue" => array('type' => 6, 'tag' => -27), + "gameCacheName" => array('type' => 29, 'tag' => -26), + "gameOptions" => array('type' => 49, 'tag' => -25), + "gameSpeed" => array('type' => 12, 'tag' => -24), + "gameType" => array('type' => 12, 'tag' => -23), + "maxUsers" => array('type' => 2, 'tag' => -22), + "maxObservers" => array('type' => 2, 'tag' => -21), + "maxPlayers" => array('type' => 2, 'tag' => -20), + "maxTeams" => array('type' => 50, 'tag' => -19), + "maxColors" => array('type' => 3, 'tag' => -18), + "maxRaces" => array('type' => 51, 'tag' => -17), + "maxControls" => array('type' => 10, 'tag' => -16), + "mapSizeX" => array('type' => 10, 'tag' => -15), + "mapSizeY" => array('type' => 10, 'tag' => -14), + "mapFileSyncChecksum" => array('type' => 6, 'tag' => -13), + "mapFileName" => array('type' => 30, 'tag' => -12), + "mapAuthorName" => array('type' => 9, 'tag' => -11), + "modFileSyncChecksum" => array('type' => 6, 'tag' => -10), + "slotDescriptions" => array('type' => 56, 'tag' => -9), + "defaultDifficulty" => array('type' => 3, 'tag' => -8), + "defaultAIBuild" => array('type' => 10, 'tag' => -7), + "cacheHandles" => array('type' => 36, 'tag' => -6), + "hasExtensionMod" => array('type' => 13, 'tag' => -5), + "hasNonBlizzardExtensionMod" => array('type' => 13, 'tag' => -4), + "isBlizzardMap" => array('type' => 13, 'tag' => -3), + "isPremadeFFA" => array('type' => 13, 'tag' => -2), + "isCoopMode" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\GameDescription' +), +58 => new OptionalNode(1), +59 => new OptionalNode(2), +60 => new StructNode([ + "color" => array('type' => 59, 'tag' => -1), +]), +61 => new ArrayNode( + new IntegerNode(4, 0), + 46 +), +62 => new ArrayNode( + new IntegerNode(17, 0), + 6 +), +63 => new ArrayNode( + new IntegerNode(9, 0), + 6 +), +64 => new ArrayNode( + new IntegerNode(3, 0), + 6 +), +65 => new StructNode([ + "control" => array('type' => 10, 'tag' => -25), + "userId" => array('type' => 58, 'tag' => -24), + "teamId" => array('type' => 1, 'tag' => -23), + "colorPref" => array('type' => 60, 'tag' => -22), + "racePref" => array('type' => 44, 'tag' => -21), + "difficulty" => array('type' => 3, 'tag' => -20), + "aiBuild" => array('type' => 10, 'tag' => -19), + "handicap" => array('type' => 0, 'tag' => -18), + "observe" => array('type' => 24, 'tag' => -17), + "logoIndex" => array('type' => 6, 'tag' => -16), + "hero" => array('type' => 46, 'tag' => -15), + "skin" => array('type' => 46, 'tag' => -14), + "mount" => array('type' => 46, 'tag' => -13), + "artifacts" => array('type' => 61, 'tag' => -12), + "workingSetSlotId" => array('type' => 25, 'tag' => -11), + "rewards" => array('type' => 62, 'tag' => -10), + "toonHandle" => array('type' => 20, 'tag' => -9), + "licenses" => array('type' => 63, 'tag' => -8), + "tandemLeaderId" => array('type' => 58, 'tag' => -7), + "commander" => array('type' => 46, 'tag' => -6), + "commanderLevel" => array('type' => 6, 'tag' => -5), + "hasSilencePenalty" => array('type' => 13, 'tag' => -4), + "tandemId" => array('type' => 58, 'tag' => -3), + "commanderMasteryLevel" => array('type' => 6, 'tag' => -2), + "commanderMasteryTalents" => array('type' => 64, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), +66 => new ArrayNode( + new IntegerNode(5, 0), + 65 +), +67 => new StructNode([ + "phase" => array('type' => 12, 'tag' => -11), + "maxUsers" => array('type' => 2, 'tag' => -10), + "maxObservers" => array('type' => 2, 'tag' => -9), + "slots" => array('type' => 66, 'tag' => -8), + "randomSeed" => array('type' => 6, 'tag' => -7), + "hostUserId" => array('type' => 58, 'tag' => -6), + "isSinglePlayer" => array('type' => 13, 'tag' => -5), + "pickedMapTag" => array('type' => 10, 'tag' => -4), + "gameDuration" => array('type' => 6, 'tag' => -3), + "defaultDifficulty" => array('type' => 3, 'tag' => -2), + "defaultAIBuild" => array('type' => 10, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\LobbyState' +), +68 => new StructNode([ + "userInitialData" => array('type' => 48, 'tag' => -3), + "gameDescription" => array('type' => 57, 'tag' => -2), + "lobbyState" => array('type' => 67, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\SyncLobbyState' +), +69 => new StructNode([ + "syncLobbyState" => array('type' => 68, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\InitData' +), +70 => new StructNode([ + "name" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankFileEvent' +), +71 => new BlobNode(new IntegerNode(6, 0)), +72 => new StructNode([ + "name" => array('type' => 71, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankSectionEvent' +), +73 => new StructNode([ + "name" => array('type' => 71, 'tag' => -3), + "type" => array('type' => 6, 'tag' => -2), + "data" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankKeyEvent' +), +74 => new StructNode([ + "type" => array('type' => 6, 'tag' => -3), + "name" => array('type' => 71, 'tag' => -2), + "data" => array('type' => 34, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankValueEvent' +), +75 => new ArrayNode( + new IntegerNode(5, 0), + 10, + 'Rogiel\StarReplay\Event\Game\Entity\BankSignature' + +), +76 => new StructNode([ + "signature" => array('type' => 75, 'tag' => -2), + "toonHandle" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankSignatureEvent' +), +77 => new StructNode([ + "gameFullyDownloaded" => array('type' => 13, 'tag' => -14), + "developmentCheatsEnabled" => array('type' => 13, 'tag' => -13), + "testCheatsEnabled" => array('type' => 13, 'tag' => -12), + "multiplayerCheatsEnabled" => array('type' => 13, 'tag' => -11), + "syncChecksummingEnabled" => array('type' => 13, 'tag' => -10), + "isMapToMapTransition" => array('type' => 13, 'tag' => -9), + "debugPauseEnabled" => array('type' => 13, 'tag' => -8), + "useGalaxyAsserts" => array('type' => 13, 'tag' => -7), + "platformMac" => array('type' => 13, 'tag' => -6), + "cameraFollow" => array('type' => 13, 'tag' => -5), + "baseBuildNum" => array('type' => 6, 'tag' => -4), + "buildNum" => array('type' => 6, 'tag' => -3), + "versionFlags" => array('type' => 6, 'tag' => -2), + "hotkeyProfile" => array('type' => 46, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UserOptionsEvent' +), +78 => new StructNode([ +], + 'Rogiel\StarReplay\Event\Message\ServerPingMessage' +), +79 => new IntegerNode(16, 0), +80 => new StructNode([ + "x" => array('type' => 79, 'tag' => -2), + "y" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +81 => new StructNode([ + "which" => array('type' => 12, 'tag' => -2), + "target" => array('type' => 80, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CameraSaveEvent' +), +82 => new StructNode([ + "fileName" => array('type' => 30, 'tag' => -5), + "automatic" => array('type' => 13, 'tag' => -4), + "overwrite" => array('type' => 13, 'tag' => -3), + "name" => array('type' => 9, 'tag' => -2), + "description" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SaveGameEvent' +), +83 => new StructNode([ + "sequence" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CommandManagerResetEvent' +), +84 => new IntegerNode(32, -2147483648), +85 => new StructNode([ + "x" => array('type' => 84, 'tag' => -2), + "y" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +86 => new StructNode([ + "point" => array('type' => 85, 'tag' => -4), + "time" => array('type' => 84, 'tag' => -3), + "verb" => array('type' => 29, 'tag' => -2), + "arguments" => array('type' => 29, 'tag' => -1), +]), +87 => new StructNode([ + "data" => array('type' => 86, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameCheatEvent' +), +88 => new IntegerNode(25, 0), +89 => new StructNode([ + "abilLink" => array('type' => 79, 'tag' => -3), + "abilCmdIndex" => array('type' => 2, 'tag' => -2), + "abilCmdData" => array('type' => 25, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\Ability' +), +90 => new OptionalNode(89), +91 => new NullNode(), +92 => new IntegerNode(20, 0), +93 => new StructNode([ + "x" => array('type' => 92, 'tag' => -3), + "y" => array('type' => 92, 'tag' => -2), + "z" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +94 => new StructNode([ + "targetUnitFlags" => array('type' => 79, 'tag' => -7), + "timer" => array('type' => 10, 'tag' => -6), + "tag" => array('type' => 6, 'tag' => -5), + "snapshotUnitLink" => array('type' => 79, 'tag' => -4), + "snapshotControlPlayerId" => array('type' => 58, 'tag' => -3), + "snapshotUpkeepPlayerId" => array('type' => 58, 'tag' => -2), + "snapshotPoint" => array('type' => 93, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\TargetUnit' +), +95 => new ChoiceNode(new IntegerNode(2), [ + 0 => 91, + 1 => 93, + 2 => 94, + 3 => 6, +]), +96 => new IntegerNode(32, 1), +97 => new StructNode([ + "cmdFlags" => array('type' => 88, 'tag' => -6), + "abil" => array('type' => 90, 'tag' => -5), + "data" => array('type' => 95, 'tag' => -4), + "sequence" => array('type' => 96, 'tag' => -3), + "otherUnit" => array('type' => 43, 'tag' => -2), + "unitGroup" => array('type' => 43, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdEvent' +), +98 => new IntegerNode(9, 0), +99 => new BitArrayNode( + new IntegerNode(9, 0) +, + 'Rogiel\StarReplay\Event\Game\Entity\ControlGroupUpdateMask'), +100 => new ArrayNode( + new IntegerNode(9, 0), + 98, + 'Rogiel\StarReplay\Event\Game\Entity\ControlGroupUpdateZeroIndices' + +), +101 => new ChoiceNode(new IntegerNode(2), [ + 0 => 91, + 1 => 99, + 2 => 100, + 3 => 100, +]), +102 => new StructNode([ + "unitLink" => array('type' => 79, 'tag' => -4), + "subgroupPriority" => array('type' => 10, 'tag' => -3), + "intraSubgroupPriority" => array('type' => 10, 'tag' => -2), + "count" => array('type' => 98, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SubgroupUnit' +), +103 => new ArrayNode( + new IntegerNode(9, 0), + 102 +), +104 => new StructNode([ + "subgroupIndex" => array('type' => 98, 'tag' => -4), + "removeMask" => array('type' => 101, 'tag' => -3), + "addSubgroups" => array('type' => 103, 'tag' => -2), + "addUnitTags" => array('type' => 63, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SelectionDelta' +), +105 => new StructNode([ + "controlGroupId" => array('type' => 1, 'tag' => -2), + "delta" => array('type' => 104, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SelectionDeltaEvent' +), +106 => new StructNode([ + "controlGroupIndex" => array('type' => 1, 'tag' => -3), + "controlGroupUpdate" => array('type' => 12, 'tag' => -2), + "mask" => array('type' => 101, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ControlGroupUpdateEvent' +), +107 => new StructNode([ + "count" => array('type' => 98, 'tag' => -6), + "subgroupCount" => array('type' => 98, 'tag' => -5), + "activeSubgroupIndex" => array('type' => 98, 'tag' => -4), + "unitTagsChecksum" => array('type' => 6, 'tag' => -3), + "subgroupIndicesChecksum" => array('type' => 6, 'tag' => -2), + "subgroupsChecksum" => array('type' => 6, 'tag' => -1), +]), +108 => new StructNode([ + "controlGroupId" => array('type' => 1, 'tag' => -2), + "selectionSyncData" => array('type' => 107, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SelectionSyncCheckEvent' +), +109 => new ArrayNode( + new IntegerNode(3, 0), + 84, + 'Rogiel\StarReplay\Event\Game\Entity\ResourceRequest' + +), +110 => new StructNode([ + "recipientId" => array('type' => 1, 'tag' => -2), + "resources" => array('type' => 109, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceTradeEvent' +), +111 => new StructNode([ + "chatMessage" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerChatMessageEvent' +), +112 => new IntegerNode(8, -128), +113 => new StructNode([ + "x" => array('type' => 84, 'tag' => -3), + "y" => array('type' => 84, 'tag' => -2), + "z" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +114 => new StructNode([ + "beacon" => array('type' => 112, 'tag' => -9), + "ally" => array('type' => 112, 'tag' => -8), + "flags" => array('type' => 112, 'tag' => -7), + "build" => array('type' => 112, 'tag' => -6), + "targetUnitTag" => array('type' => 6, 'tag' => -5), + "targetUnitSnapshotUnitLink" => array('type' => 79, 'tag' => -4), + "targetUnitSnapshotUpkeepPlayerId" => array('type' => 112, 'tag' => -3), + "targetUnitSnapshotControlPlayerId" => array('type' => 112, 'tag' => -2), + "targetPoint" => array('type' => 113, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AICommunicateEvent' +), +115 => new StructNode([ + "speed" => array('type' => 12, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SetAbsoluteGameSpeedEvent' +), +116 => new StructNode([ + "delta" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AddAbsoluteGameSpeedEvent' +), +117 => new StructNode([ + "point" => array('type' => 85, 'tag' => -9), + "unit" => array('type' => 6, 'tag' => -8), + "unitLink" => array('type' => 79, 'tag' => -7), + "unitControlPlayerId" => array('type' => 58, 'tag' => -6), + "unitUpkeepPlayerId" => array('type' => 58, 'tag' => -5), + "unitPosition" => array('type' => 93, 'tag' => -4), + "unitIsUnderConstruction" => array('type' => 13, 'tag' => -3), + "pingedMinimap" => array('type' => 13, 'tag' => -2), + "option" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPingEvent' +), +118 => new StructNode([ + "verb" => array('type' => 29, 'tag' => -2), + "arguments" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BroadcastCheatEvent' +), +119 => new StructNode([ + "alliance" => array('type' => 6, 'tag' => -2), + "control" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AllianceEvent' +), +120 => new StructNode([ + "unitTag" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UnitClickEvent' +), +121 => new StructNode([ + "unitTag" => array('type' => 6, 'tag' => -2), + "flags" => array('type' => 10, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UnitHighlightEvent' +), +122 => new StructNode([ + "conversationId" => array('type' => 84, 'tag' => -2), + "replyId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerReplySelectedEvent' +), +123 => new OptionalNode(20), +124 => new StructNode([ + "gameUserId" => array('type' => 1, 'tag' => -6), + "observe" => array('type' => 24, 'tag' => -5), + "name" => array('type' => 9, 'tag' => -4), + "toonHandle" => array('type' => 123, 'tag' => -3), + "clanTag" => array('type' => 41, 'tag' => -2), + "clanLogo" => array('type' => 42, 'tag' => -1), +]), +125 => new ArrayNode( + new IntegerNode(5, 0), + 124 +), +126 => new IntegerNode(1, 0), +127 => new StructNode([ + "userInfos" => array('type' => 125, 'tag' => -2), + "method" => array('type' => 126, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HijackReplayGameEvent' +), +128 => new StructNode([ + "purchaseItemId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPurchasePanelSelectedPurchaseItemChangedEvent' +), +129 => new StructNode([ + "difficultyLevel" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerVictoryPanelPlayMissionAgainEvent' +), +130 => new ChoiceNode(new IntegerNode(3), [ + 0 => 91, + 1 => 13, + 2 => 6, + 3 => 84, + 4 => 30, + 5 => 6, +]), +131 => new StructNode([ + "controlId" => array('type' => 84, 'tag' => -3), + "eventType" => array('type' => 84, 'tag' => -2), + "eventData" => array('type' => 130, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerDialogControlEvent' +), +132 => new StructNode([ + "soundHash" => array('type' => 6, 'tag' => -2), + "length" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundLengthQueryEvent' +), +133 => new ArrayNode( + new IntegerNode(7, 0), + 6 +), +134 => new StructNode([ + "soundHash" => array('type' => 133, 'tag' => -2), + "length" => array('type' => 133, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SoundLengthSync' +), +135 => new StructNode([ + "syncInfo" => array('type' => 134, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundLengthSyncEvent' +), +136 => new StructNode([ + "queryId" => array('type' => 79, 'tag' => -3), + "lengthMs" => array('type' => 6, 'tag' => -2), + "finishGameLoop" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimLengthQueryByNameEvent' +), +137 => new StructNode([ + "queryId" => array('type' => 79, 'tag' => -2), + "lengthMs" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimLengthQueryByPropsEvent' +), +138 => new StructNode([ + "animWaitQueryId" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimOffsetEvent' +), +139 => new StructNode([ + "sound" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundOffsetEvent' +), +140 => new StructNode([ + "transmissionId" => array('type' => 84, 'tag' => -2), + "thread" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTransmissionOffsetEvent' +), +141 => new StructNode([ + "transmissionId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTransmissionCompleteEvent' +), +142 => new OptionalNode(80), +143 => new OptionalNode(79), +144 => new OptionalNode(112), +145 => new StructNode([ + "target" => array('type' => 142, 'tag' => -6), + "distance" => array('type' => 143, 'tag' => -5), + "pitch" => array('type' => 143, 'tag' => -4), + "yaw" => array('type' => 143, 'tag' => -3), + "reason" => array('type' => 144, 'tag' => -2), + "follow" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CameraUpdateEvent' +), +146 => new StructNode([ + "skipType" => array('type' => 126, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerConversationSkippedEvent' +), +147 => new IntegerNode(11, 0), +148 => new StructNode([ + "x" => array('type' => 147, 'tag' => -2), + "y" => array('type' => 147, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +149 => new StructNode([ + "button" => array('type' => 6, 'tag' => -5), + "down" => array('type' => 13, 'tag' => -4), + "posUI" => array('type' => 148, 'tag' => -3), + "posWorld" => array('type' => 93, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseClickedEvent' +), +150 => new StructNode([ + "posUI" => array('type' => 148, 'tag' => -3), + "posWorld" => array('type' => 93, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseMovedEvent' +), +151 => new StructNode([ + "achievementLink" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AchievementAwardedEvent' +), +152 => new StructNode([ + "hotkey" => array('type' => 6, 'tag' => -2), + "down" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerHotkeyPressedEvent' +), +153 => new StructNode([ + "abilLink" => array('type' => 79, 'tag' => -3), + "abilCmdIndex" => array('type' => 2, 'tag' => -2), + "state" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTargetModeUpdateEvent' +), +154 => new StructNode([ + "soundtrack" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundtrackDoneEvent' +), +155 => new StructNode([ + "planetId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPlanetMissionSelectedEvent' +), +156 => new StructNode([ + "key" => array('type' => 112, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerKeyPressedEvent' +), +157 => new StructNode([ + "resources" => array('type' => 109, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestEvent' +), +158 => new StructNode([ + "fulfillRequestId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestFulfillEvent' +), +159 => new StructNode([ + "cancelRequestId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestCancelEvent' +), +160 => new StructNode([ + "error" => array('type' => 84, 'tag' => -2), + "abil" => array('type' => 90, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCommandErrorEvent' +), +161 => new StructNode([ + "researchItemId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerResearchPanelSelectionChangedEvent' +), +162 => new StructNode([ + "mercenaryId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMercenaryPanelSelectionChangedEvent' +), +163 => new StructNode([ + "battleReportId" => array('type' => 84, 'tag' => -2), + "difficultyLevel" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerBattleReportPanelPlayMissionEvent' +), +164 => new StructNode([ + "battleReportId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerBattleReportPanelSelectionChangedEvent' +), +165 => new StructNode([ + "decrementSeconds" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\DecrementGameTimeRemainingEvent' +), +166 => new StructNode([ + "portraitId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPortraitLoadedEvent' +), +167 => new StructNode([ + "functionName" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMovieFunctionEvent' +), +168 => new StructNode([ + "result" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCustomDialogDismissedEvent' +), +169 => new StructNode([ + "gameMenuItemIndex" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerGameMenuItemSelectedEvent' +), +170 => new IntegerNode(16, -32768), +171 => new StructNode([ + "wheelSpin" => array('type' => 170, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseWheelEvent' +), +172 => new StructNode([ + "purchaseCategoryId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPurchasePanelSelectedPurchaseCategoryChangedEvent' +), +173 => new StructNode([ + "button" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerButtonPressedEvent' +), +174 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -2), + "bookmarkName" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneBookmarkFiredEvent' +), +175 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneEndSceneFiredEvent' +), +176 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -3), + "conversationLine" => array('type' => 20, 'tag' => -2), + "altConversationLine" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneConversationLineEvent' +), +177 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -2), + "conversationLine" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneConversationLineMissingEvent' +), +178 => new StructNode([ + "leaveReason" => array('type' => 1, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameUserLeaveEvent' +), +179 => new StructNode([ + "observe" => array('type' => 24, 'tag' => -7), + "name" => array('type' => 9, 'tag' => -6), + "toonHandle" => array('type' => 123, 'tag' => -5), + "clanTag" => array('type' => 41, 'tag' => -4), + "clanLogo" => array('type' => 42, 'tag' => -3), + "hijack" => array('type' => 13, 'tag' => -2), + "hijackCloneGameUserId" => array('type' => 58, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameUserJoinEvent' +), +180 => new OptionalNode(96), +181 => new StructNode([ + "state" => array('type' => 24, 'tag' => -2), + "sequence" => array('type' => 180, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CommandManagerStateEvent' +), +182 => new StructNode([ + "target" => array('type' => 93, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdUpdateTargetPointEvent' +), +183 => new StructNode([ + "target" => array('type' => 94, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdUpdateTargetUnitEvent' +), +184 => new StructNode([ + "catalog" => array('type' => 10, 'tag' => -4), + "entry" => array('type' => 79, 'tag' => -3), + "field" => array('type' => 9, 'tag' => -2), + "value" => array('type' => 9, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CatalogModifyEvent' +), +185 => new StructNode([ + "index" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HeroTalentTreeSelectedEvent' +), +186 => new StructNode([ + "shown" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HeroTalentTreeSelectionPanelToggledEvent' +), +187 => new StructNode([ + "recipient" => array('type' => 12, 'tag' => -2), + "string" => array('type' => 30, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\ChatMessage' +), +188 => new StructNode([ + "recipient" => array('type' => 12, 'tag' => -2), + "point" => array('type' => 85, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\PingMessage' +), +189 => new StructNode([ + "progress" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\LoadingProgressMessage' +), +190 => new StructNode([ + "status" => array('type' => 24, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\ReconnectNotifyMessage' +), +191 => new StructNode([ + "scoreValueMineralsCurrent" => array('type' => 84, 'tag' => 0), + "scoreValueVespeneCurrent" => array('type' => 84, 'tag' => 1), + "scoreValueMineralsCollectionRate" => array('type' => 84, 'tag' => 2), + "scoreValueVespeneCollectionRate" => array('type' => 84, 'tag' => 3), + "scoreValueWorkersActiveCount" => array('type' => 84, 'tag' => 4), + "scoreValueMineralsUsedInProgressArmy" => array('type' => 84, 'tag' => 5), + "scoreValueMineralsUsedInProgressEconomy" => array('type' => 84, 'tag' => 6), + "scoreValueMineralsUsedInProgressTechnology" => array('type' => 84, 'tag' => 7), + "scoreValueVespeneUsedInProgressArmy" => array('type' => 84, 'tag' => 8), + "scoreValueVespeneUsedInProgressEconomy" => array('type' => 84, 'tag' => 9), + "scoreValueVespeneUsedInProgressTechnology" => array('type' => 84, 'tag' => 10), + "scoreValueMineralsUsedCurrentArmy" => array('type' => 84, 'tag' => 11), + "scoreValueMineralsUsedCurrentEconomy" => array('type' => 84, 'tag' => 12), + "scoreValueMineralsUsedCurrentTechnology" => array('type' => 84, 'tag' => 13), + "scoreValueVespeneUsedCurrentArmy" => array('type' => 84, 'tag' => 14), + "scoreValueVespeneUsedCurrentEconomy" => array('type' => 84, 'tag' => 15), + "scoreValueVespeneUsedCurrentTechnology" => array('type' => 84, 'tag' => 16), + "scoreValueMineralsLostArmy" => array('type' => 84, 'tag' => 17), + "scoreValueMineralsLostEconomy" => array('type' => 84, 'tag' => 18), + "scoreValueMineralsLostTechnology" => array('type' => 84, 'tag' => 19), + "scoreValueVespeneLostArmy" => array('type' => 84, 'tag' => 20), + "scoreValueVespeneLostEconomy" => array('type' => 84, 'tag' => 21), + "scoreValueVespeneLostTechnology" => array('type' => 84, 'tag' => 22), + "scoreValueMineralsKilledArmy" => array('type' => 84, 'tag' => 23), + "scoreValueMineralsKilledEconomy" => array('type' => 84, 'tag' => 24), + "scoreValueMineralsKilledTechnology" => array('type' => 84, 'tag' => 25), + "scoreValueVespeneKilledArmy" => array('type' => 84, 'tag' => 26), + "scoreValueVespeneKilledEconomy" => array('type' => 84, 'tag' => 27), + "scoreValueVespeneKilledTechnology" => array('type' => 84, 'tag' => 28), + "scoreValueFoodUsed" => array('type' => 84, 'tag' => 29), + "scoreValueFoodMade" => array('type' => 84, 'tag' => 30), + "scoreValueMineralsUsedActiveForces" => array('type' => 84, 'tag' => 31), + "scoreValueVespeneUsedActiveForces" => array('type' => 84, 'tag' => 32), + "scoreValueMineralsFriendlyFireArmy" => array('type' => 84, 'tag' => 33), + "scoreValueMineralsFriendlyFireEconomy" => array('type' => 84, 'tag' => 34), + "scoreValueMineralsFriendlyFireTechnology" => array('type' => 84, 'tag' => 35), + "scoreValueVespeneFriendlyFireArmy" => array('type' => 84, 'tag' => 36), + "scoreValueVespeneFriendlyFireEconomy" => array('type' => 84, 'tag' => 37), + "scoreValueVespeneFriendlyFireTechnology" => array('type' => 84, 'tag' => 38), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerStats' +), +192 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "stats" => array('type' => 191, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerStatsEvent' +), +193 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "unitTypeName" => array('type' => 29, 'tag' => 2), + "controlPlayerId" => array('type' => 1, 'tag' => 3), + "upkeepPlayerId" => array('type' => 1, 'tag' => 4), + "x" => array('type' => 10, 'tag' => 5), + "y" => array('type' => 10, 'tag' => 6), +], + 'Rogiel\StarReplay\Event\Tracker\UnitInitEvent' +), +194 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "killerPlayerId" => array('type' => 58, 'tag' => 2), + "x" => array('type' => 10, 'tag' => 3), + "y" => array('type' => 10, 'tag' => 4), + "killerUnitTagIndex" => array('type' => 43, 'tag' => 5), + "killerUnitTagRecycle" => array('type' => 43, 'tag' => 6), +], + 'Rogiel\StarReplay\Event\Tracker\UnitDiedEvent' +), +195 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "controlPlayerId" => array('type' => 1, 'tag' => 2), + "upkeepPlayerId" => array('type' => 1, 'tag' => 3), +], + 'Rogiel\StarReplay\Event\Tracker\UnitOwnerChangeEvent' +), +196 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "unitTypeName" => array('type' => 29, 'tag' => 2), +], + 'Rogiel\StarReplay\Event\Tracker\UnitTypeChangeEvent' +), +197 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "upgradeTypeName" => array('type' => 29, 'tag' => 1), + "count" => array('type' => 84, 'tag' => 2), +], + 'Rogiel\StarReplay\Event\Tracker\UpgradeEvent' +), +198 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\UnitDoneEvent' +), +199 => new ArrayNode( + new IntegerNode(10, 0), + 84, + 'Rogiel\StarReplay\Event\Tracker\UnitPositions' + +), +200 => new StructNode([ + "firstUnitIndex" => array('type' => 6, 'tag' => 0), + "items" => array('type' => 199, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\UnitPositionsEvent' +), +201 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "type" => array('type' => 6, 'tag' => 1), + "userId" => array('type' => 43, 'tag' => 2), + "slotId" => array('type' => 43, 'tag' => 3), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerSetupEvent' +), +] +); +Version44169::$GAME_EVENT_MAPPING = [ + 5 => 78, + 7 => 77, + 9 => 70, + 10 => 72, + 11 => 73, + 12 => 74, + 13 => 76, + 14 => 81, + 21 => 82, + 22 => 78, + 23 => 78, + 25 => 83, + 26 => 87, + 27 => 97, + 28 => 105, + 29 => 106, + 30 => 108, + 31 => 110, + 32 => 111, + 33 => 114, + 34 => 115, + 35 => 116, + 36 => 117, + 37 => 118, + 38 => 119, + 39 => 120, + 40 => 121, + 41 => 122, + 43 => 127, + 44 => 78, + 45 => 132, + 46 => 139, + 47 => 140, + 48 => 141, + 49 => 145, + 50 => 78, + 51 => 128, + 52 => 78, + 53 => 129, + 54 => 78, + 55 => 131, + 56 => 135, + 57 => 146, + 58 => 149, + 59 => 150, + 60 => 151, + 61 => 152, + 62 => 153, + 63 => 78, + 64 => 154, + 65 => 155, + 66 => 156, + 67 => 167, + 68 => 78, + 69 => 78, + 70 => 157, + 71 => 158, + 72 => 159, + 73 => 78, + 74 => 78, + 75 => 161, + 76 => 160, + 77 => 78, + 78 => 78, + 79 => 162, + 80 => 78, + 81 => 78, + 82 => 163, + 83 => 164, + 84 => 164, + 85 => 129, + 86 => 78, + 87 => 78, + 88 => 165, + 89 => 166, + 90 => 168, + 91 => 169, + 92 => 171, + 93 => 128, + 94 => 172, + 95 => 173, + 96 => 78, + 97 => 174, + 98 => 175, + 99 => 176, + 100 => 177, + 101 => 178, + 102 => 179, + 103 => 181, + 104 => 182, + 105 => 183, + 106 => 136, + 107 => 137, + 108 => 138, + 109 => 184, + 110 => 185, + 111 => 78, + 112 => 186, +]; +Version44169::$MESSAGE_EVENT_MAPPING = [ + 0 => 187, + 1 => 188, + 2 => 189, + 3 => 78, + 4 => 190, +]; +Version44169::$TRACKER_EVENT_MAPPING = [ + 0 => 192, + 1 => 193, + 2 => 194, + 3 => 195, + 4 => 196, + 5 => 197, + 6 => 193, + 7 => 198, + 8 => 200, + 9 => 201, +]; diff --git a/src/Version/Version44293.php b/src/Version/Version44293.php new file mode 100644 index 0000000..7b4202b --- /dev/null +++ b/src/Version/Version44293.php @@ -0,0 +1,1351 @@ +getNode(18); + } + + public function getReplayInitDataNode() { + return self::$TREE->getNode(69); + } + + public function getGameDetailsNode() { + return self::$TREE->getNode(40); + } + + public function getGameEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'user' => ['type' => 8], + 'event' => ['type' => 0] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + + public function getMessageEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'user' => ['type' => 8], + 'event' => ['type' => 1] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + + public function getTrackerEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'event' => ['type' => 2] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + +} + +Version44293::$TREE = new Tree([ +0 => new IntegerNode(7, 0), +1 => new IntegerNode(4, 0), +2 => new IntegerNode(5, 0), +3 => new IntegerNode(6, 0), +4 => new IntegerNode(14, 0), +5 => new IntegerNode(22, 0), +6 => new IntegerNode(32, 0), +7 => new ChoiceNode(new IntegerNode(2), [ + 0 => 3, + 1 => 4, + 2 => 5, + 3 => 6, +]), +8 => new StructNode([ + "userId" => array('type' => 2, 'tag' => -1), +]), +9 => new BlobNode(new IntegerNode(8, 0)), +10 => new IntegerNode(8, 0), +11 => new StructNode([ + "flags" => array('type' => 10, 'tag' => 0), + "major" => array('type' => 10, 'tag' => 1), + "minor" => array('type' => 10, 'tag' => 2), + "revision" => array('type' => 10, 'tag' => 3), + "build" => array('type' => 6, 'tag' => 4), + "baseBuild" => array('type' => 6, 'tag' => 5), +], + 'Rogiel\StarReplay\Metadata\Header\Version' +), +12 => new IntegerNode(3, 0), +13 => new BooleanNode(), +14 => new ArrayNode( + new IntegerNode(0, 16), + 10 +), +15 => new OptionalNode(14), +16 => new BlobNode(new IntegerNode(0, 16)), +17 => new StructNode([ + "dataDeprecated" => array('type' => 15, 'tag' => 0), + "data" => array('type' => 16, 'tag' => 1), +], + 'Rogiel\StarReplay\Metadata\Header\Hash' +), +18 => new StructNode([ + "signature" => array('type' => 9, 'tag' => 0), + "version" => array('type' => 11, 'tag' => 1), + "type" => array('type' => 12, 'tag' => 2), + "elapsedGameLoops" => array('type' => 6, 'tag' => 3), + "useScaledTime" => array('type' => 13, 'tag' => 4), + "ngdpRootKey" => array('type' => 17, 'tag' => 5), + "dataBuildNum" => array('type' => 6, 'tag' => 6), + "replayCompatibilityHash" => array('type' => 17, 'tag' => 7), +], + 'Rogiel\StarReplay\Metadata\Header\Header' +), +19 => new FourCCNode(), +20 => new BlobNode(new IntegerNode(7, 0)), +21 => new IntegerNode(64, 0), +22 => new StructNode([ + "region" => array('type' => 10, 'tag' => 0), + "programId" => array('type' => 19, 'tag' => 1), + "realm" => array('type' => 6, 'tag' => 2), + "name" => array('type' => 20, 'tag' => 3), + "id" => array('type' => 21, 'tag' => 4), +], + 'Rogiel\StarReplay\Entity\Toon' +), +23 => new StructNode([ + "a" => array('type' => 10, 'tag' => 0), + "r" => array('type' => 10, 'tag' => 1), + "g" => array('type' => 10, 'tag' => 2), + "b" => array('type' => 10, 'tag' => 3), +], + 'Rogiel\StarReplay\Entity\Color' +), +24 => new IntegerNode(2, 0), +25 => new OptionalNode(10), +26 => new StructNode([ + "name" => array('type' => 9, 'tag' => 0), + "toon" => array('type' => 22, 'tag' => 1), + "race" => array('type' => 9, 'tag' => 2), + "color" => array('type' => 23, 'tag' => 3), + "control" => array('type' => 10, 'tag' => 4), + "teamId" => array('type' => 1, 'tag' => 5), + "handicap" => array('type' => 0, 'tag' => 6), + "observe" => array('type' => 24, 'tag' => 7), + "result" => array('type' => 24, 'tag' => 8), + "workingSetSlotId" => array('type' => 25, 'tag' => 9), + "hero" => array('type' => 9, 'tag' => 10), +], + 'Rogiel\StarReplay\Entity\Player' +), +27 => new ArrayNode( + new IntegerNode(5, 0), + 26, + 'Rogiel\StarReplay\Metadata\Match\PlayerList' + +), +28 => new OptionalNode(27), +29 => new BlobNode(new IntegerNode(10, 0)), +30 => new BlobNode(new IntegerNode(11, 0)), +31 => new StructNode([ + "file" => array('type' => 30, 'tag' => 0), +], + 'Rogiel\StarReplay\Entity\Thumbnail' +), +32 => new OptionalNode(13), +33 => new IntegerNode(64, -9223372036854775808), +34 => new BlobNode(new IntegerNode(12, 0)), +35 => new BlobNode(new IntegerNode(0, 40)), +36 => new ArrayNode( + new IntegerNode(6, 0), + 35 +), +37 => new OptionalNode(36), +38 => new ArrayNode( + new IntegerNode(6, 0), + 30 +), +39 => new OptionalNode(38), +40 => new StructNode([ + "playerList" => array('type' => 28, 'tag' => 0), + "title" => array('type' => 29, 'tag' => 1), + "difficulty" => array('type' => 9, 'tag' => 2), + "thumbnail" => array('type' => 31, 'tag' => 3), + "isBlizzardMap" => array('type' => 13, 'tag' => 4), + "restartAsTransitionMap" => array('type' => 32, 'tag' => 16), + "timeUTC" => array('type' => 33, 'tag' => 5), + "timeLocalOffset" => array('type' => 33, 'tag' => 6), + "description" => array('type' => 34, 'tag' => 7), + "imageFilePath" => array('type' => 30, 'tag' => 8), + "campaignIndex" => array('type' => 10, 'tag' => 15), + "mapFileName" => array('type' => 30, 'tag' => 9), + "cacheHandles" => array('type' => 37, 'tag' => 10), + "miniSave" => array('type' => 13, 'tag' => 11), + "gameSpeed" => array('type' => 12, 'tag' => 12), + "defaultDifficulty" => array('type' => 3, 'tag' => 13), + "modPaths" => array('type' => 39, 'tag' => 14), +], + 'Rogiel\StarReplay\Metadata\Match\MatchInformation' +), +41 => new OptionalNode(9), +42 => new OptionalNode(35), +43 => new OptionalNode(6), +44 => new StructNode([ + "race" => array('type' => 25, 'tag' => -1), +]), +45 => new StructNode([ + "team" => array('type' => 25, 'tag' => -1), +]), +46 => new BlobNode(new IntegerNode(9, 0)), +47 => new StructNode([ + "name" => array('type' => 9, 'tag' => -18), + "clanTag" => array('type' => 41, 'tag' => -17), + "clanLogo" => array('type' => 42, 'tag' => -16), + "highestLeague" => array('type' => 25, 'tag' => -15), + "combinedRaceLevels" => array('type' => 43, 'tag' => -14), + "randomSeed" => array('type' => 6, 'tag' => -13), + "racePreference" => array('type' => 44, 'tag' => -12), + "teamPreference" => array('type' => 45, 'tag' => -11), + "testMap" => array('type' => 13, 'tag' => -10), + "testAuto" => array('type' => 13, 'tag' => -9), + "examine" => array('type' => 13, 'tag' => -8), + "customInterface" => array('type' => 13, 'tag' => -7), + "testType" => array('type' => 6, 'tag' => -6), + "observe" => array('type' => 24, 'tag' => -5), + "hero" => array('type' => 46, 'tag' => -4), + "skin" => array('type' => 46, 'tag' => -3), + "mount" => array('type' => 46, 'tag' => -2), + "toonHandle" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\UserInitialData' +), +48 => new ArrayNode( + new IntegerNode(5, 0), + 47, + 'Rogiel\StarReplay\Metadata\Init\UserInitialDataCollection' + +), +49 => new StructNode([ + "lockTeams" => array('type' => 13, 'tag' => -15), + "teamsTogether" => array('type' => 13, 'tag' => -14), + "advancedSharedControl" => array('type' => 13, 'tag' => -13), + "randomRaces" => array('type' => 13, 'tag' => -12), + "battleNet" => array('type' => 13, 'tag' => -11), + "amm" => array('type' => 13, 'tag' => -10), + "competitive" => array('type' => 13, 'tag' => -9), + "practice" => array('type' => 13, 'tag' => -8), + "cooperative" => array('type' => 13, 'tag' => -7), + "noVictoryOrDefeat" => array('type' => 13, 'tag' => -6), + "heroDuplicatesAllowed" => array('type' => 13, 'tag' => -5), + "fog" => array('type' => 24, 'tag' => -4), + "observers" => array('type' => 24, 'tag' => -3), + "userDifficulty" => array('type' => 24, 'tag' => -2), + "clientDebugFlags" => array('type' => 21, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\GameOptions' +), +50 => new IntegerNode(4, 1), +51 => new IntegerNode(8, 1), +52 => new BitArrayNode( + new IntegerNode(6, 0) +), +53 => new BitArrayNode( + new IntegerNode(8, 0) +), +54 => new BitArrayNode( + new IntegerNode(2, 0) +), +55 => new StructNode([ + "allowedColors" => array('type' => 52, 'tag' => -6), + "allowedRaces" => array('type' => 53, 'tag' => -5), + "allowedDifficulty" => array('type' => 52, 'tag' => -4), + "allowedControls" => array('type' => 53, 'tag' => -3), + "allowedObserveTypes" => array('type' => 54, 'tag' => -2), + "allowedAIBuilds" => array('type' => 53, 'tag' => -1), +]), +56 => new ArrayNode( + new IntegerNode(5, 0), + 55 +), +57 => new StructNode([ + "randomValue" => array('type' => 6, 'tag' => -27), + "gameCacheName" => array('type' => 29, 'tag' => -26), + "gameOptions" => array('type' => 49, 'tag' => -25), + "gameSpeed" => array('type' => 12, 'tag' => -24), + "gameType" => array('type' => 12, 'tag' => -23), + "maxUsers" => array('type' => 2, 'tag' => -22), + "maxObservers" => array('type' => 2, 'tag' => -21), + "maxPlayers" => array('type' => 2, 'tag' => -20), + "maxTeams" => array('type' => 50, 'tag' => -19), + "maxColors" => array('type' => 3, 'tag' => -18), + "maxRaces" => array('type' => 51, 'tag' => -17), + "maxControls" => array('type' => 10, 'tag' => -16), + "mapSizeX" => array('type' => 10, 'tag' => -15), + "mapSizeY" => array('type' => 10, 'tag' => -14), + "mapFileSyncChecksum" => array('type' => 6, 'tag' => -13), + "mapFileName" => array('type' => 30, 'tag' => -12), + "mapAuthorName" => array('type' => 9, 'tag' => -11), + "modFileSyncChecksum" => array('type' => 6, 'tag' => -10), + "slotDescriptions" => array('type' => 56, 'tag' => -9), + "defaultDifficulty" => array('type' => 3, 'tag' => -8), + "defaultAIBuild" => array('type' => 10, 'tag' => -7), + "cacheHandles" => array('type' => 36, 'tag' => -6), + "hasExtensionMod" => array('type' => 13, 'tag' => -5), + "hasNonBlizzardExtensionMod" => array('type' => 13, 'tag' => -4), + "isBlizzardMap" => array('type' => 13, 'tag' => -3), + "isPremadeFFA" => array('type' => 13, 'tag' => -2), + "isCoopMode" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\GameDescription' +), +58 => new OptionalNode(1), +59 => new OptionalNode(2), +60 => new StructNode([ + "color" => array('type' => 59, 'tag' => -1), +]), +61 => new ArrayNode( + new IntegerNode(4, 0), + 46 +), +62 => new ArrayNode( + new IntegerNode(17, 0), + 6 +), +63 => new ArrayNode( + new IntegerNode(9, 0), + 6 +), +64 => new ArrayNode( + new IntegerNode(3, 0), + 6 +), +65 => new StructNode([ + "control" => array('type' => 10, 'tag' => -25), + "userId" => array('type' => 58, 'tag' => -24), + "teamId" => array('type' => 1, 'tag' => -23), + "colorPref" => array('type' => 60, 'tag' => -22), + "racePref" => array('type' => 44, 'tag' => -21), + "difficulty" => array('type' => 3, 'tag' => -20), + "aiBuild" => array('type' => 10, 'tag' => -19), + "handicap" => array('type' => 0, 'tag' => -18), + "observe" => array('type' => 24, 'tag' => -17), + "logoIndex" => array('type' => 6, 'tag' => -16), + "hero" => array('type' => 46, 'tag' => -15), + "skin" => array('type' => 46, 'tag' => -14), + "mount" => array('type' => 46, 'tag' => -13), + "artifacts" => array('type' => 61, 'tag' => -12), + "workingSetSlotId" => array('type' => 25, 'tag' => -11), + "rewards" => array('type' => 62, 'tag' => -10), + "toonHandle" => array('type' => 20, 'tag' => -9), + "licenses" => array('type' => 63, 'tag' => -8), + "tandemLeaderId" => array('type' => 58, 'tag' => -7), + "commander" => array('type' => 46, 'tag' => -6), + "commanderLevel" => array('type' => 6, 'tag' => -5), + "hasSilencePenalty" => array('type' => 13, 'tag' => -4), + "tandemId" => array('type' => 58, 'tag' => -3), + "commanderMasteryLevel" => array('type' => 6, 'tag' => -2), + "commanderMasteryTalents" => array('type' => 64, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), +66 => new ArrayNode( + new IntegerNode(5, 0), + 65 +), +67 => new StructNode([ + "phase" => array('type' => 12, 'tag' => -11), + "maxUsers" => array('type' => 2, 'tag' => -10), + "maxObservers" => array('type' => 2, 'tag' => -9), + "slots" => array('type' => 66, 'tag' => -8), + "randomSeed" => array('type' => 6, 'tag' => -7), + "hostUserId" => array('type' => 58, 'tag' => -6), + "isSinglePlayer" => array('type' => 13, 'tag' => -5), + "pickedMapTag" => array('type' => 10, 'tag' => -4), + "gameDuration" => array('type' => 6, 'tag' => -3), + "defaultDifficulty" => array('type' => 3, 'tag' => -2), + "defaultAIBuild" => array('type' => 10, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\LobbyState' +), +68 => new StructNode([ + "userInitialData" => array('type' => 48, 'tag' => -3), + "gameDescription" => array('type' => 57, 'tag' => -2), + "lobbyState" => array('type' => 67, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\SyncLobbyState' +), +69 => new StructNode([ + "syncLobbyState" => array('type' => 68, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\InitData' +), +70 => new StructNode([ + "name" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankFileEvent' +), +71 => new BlobNode(new IntegerNode(6, 0)), +72 => new StructNode([ + "name" => array('type' => 71, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankSectionEvent' +), +73 => new StructNode([ + "name" => array('type' => 71, 'tag' => -3), + "type" => array('type' => 6, 'tag' => -2), + "data" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankKeyEvent' +), +74 => new StructNode([ + "type" => array('type' => 6, 'tag' => -3), + "name" => array('type' => 71, 'tag' => -2), + "data" => array('type' => 34, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankValueEvent' +), +75 => new ArrayNode( + new IntegerNode(5, 0), + 10, + 'Rogiel\StarReplay\Event\Game\Entity\BankSignature' + +), +76 => new StructNode([ + "signature" => array('type' => 75, 'tag' => -2), + "toonHandle" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankSignatureEvent' +), +77 => new StructNode([ + "gameFullyDownloaded" => array('type' => 13, 'tag' => -14), + "developmentCheatsEnabled" => array('type' => 13, 'tag' => -13), + "testCheatsEnabled" => array('type' => 13, 'tag' => -12), + "multiplayerCheatsEnabled" => array('type' => 13, 'tag' => -11), + "syncChecksummingEnabled" => array('type' => 13, 'tag' => -10), + "isMapToMapTransition" => array('type' => 13, 'tag' => -9), + "debugPauseEnabled" => array('type' => 13, 'tag' => -8), + "useGalaxyAsserts" => array('type' => 13, 'tag' => -7), + "platformMac" => array('type' => 13, 'tag' => -6), + "cameraFollow" => array('type' => 13, 'tag' => -5), + "baseBuildNum" => array('type' => 6, 'tag' => -4), + "buildNum" => array('type' => 6, 'tag' => -3), + "versionFlags" => array('type' => 6, 'tag' => -2), + "hotkeyProfile" => array('type' => 46, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UserOptionsEvent' +), +78 => new StructNode([ +], + 'Rogiel\StarReplay\Event\Message\ServerPingMessage' +), +79 => new IntegerNode(16, 0), +80 => new StructNode([ + "x" => array('type' => 79, 'tag' => -2), + "y" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +81 => new StructNode([ + "which" => array('type' => 12, 'tag' => -2), + "target" => array('type' => 80, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CameraSaveEvent' +), +82 => new StructNode([ + "fileName" => array('type' => 30, 'tag' => -5), + "automatic" => array('type' => 13, 'tag' => -4), + "overwrite" => array('type' => 13, 'tag' => -3), + "name" => array('type' => 9, 'tag' => -2), + "description" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SaveGameEvent' +), +83 => new StructNode([ + "sequence" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CommandManagerResetEvent' +), +84 => new IntegerNode(32, -2147483648), +85 => new StructNode([ + "x" => array('type' => 84, 'tag' => -2), + "y" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +86 => new StructNode([ + "point" => array('type' => 85, 'tag' => -4), + "time" => array('type' => 84, 'tag' => -3), + "verb" => array('type' => 29, 'tag' => -2), + "arguments" => array('type' => 29, 'tag' => -1), +]), +87 => new StructNode([ + "data" => array('type' => 86, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameCheatEvent' +), +88 => new IntegerNode(25, 0), +89 => new StructNode([ + "abilLink" => array('type' => 79, 'tag' => -3), + "abilCmdIndex" => array('type' => 2, 'tag' => -2), + "abilCmdData" => array('type' => 25, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\Ability' +), +90 => new OptionalNode(89), +91 => new NullNode(), +92 => new IntegerNode(20, 0), +93 => new StructNode([ + "x" => array('type' => 92, 'tag' => -3), + "y" => array('type' => 92, 'tag' => -2), + "z" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +94 => new StructNode([ + "targetUnitFlags" => array('type' => 79, 'tag' => -7), + "timer" => array('type' => 10, 'tag' => -6), + "tag" => array('type' => 6, 'tag' => -5), + "snapshotUnitLink" => array('type' => 79, 'tag' => -4), + "snapshotControlPlayerId" => array('type' => 58, 'tag' => -3), + "snapshotUpkeepPlayerId" => array('type' => 58, 'tag' => -2), + "snapshotPoint" => array('type' => 93, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\TargetUnit' +), +95 => new ChoiceNode(new IntegerNode(2), [ + 0 => 91, + 1 => 93, + 2 => 94, + 3 => 6, +]), +96 => new IntegerNode(32, 1), +97 => new StructNode([ + "cmdFlags" => array('type' => 88, 'tag' => -6), + "abil" => array('type' => 90, 'tag' => -5), + "data" => array('type' => 95, 'tag' => -4), + "sequence" => array('type' => 96, 'tag' => -3), + "otherUnit" => array('type' => 43, 'tag' => -2), + "unitGroup" => array('type' => 43, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdEvent' +), +98 => new IntegerNode(9, 0), +99 => new BitArrayNode( + new IntegerNode(9, 0) +, + 'Rogiel\StarReplay\Event\Game\Entity\ControlGroupUpdateMask'), +100 => new ArrayNode( + new IntegerNode(9, 0), + 98, + 'Rogiel\StarReplay\Event\Game\Entity\ControlGroupUpdateZeroIndices' + +), +101 => new ChoiceNode(new IntegerNode(2), [ + 0 => 91, + 1 => 99, + 2 => 100, + 3 => 100, +]), +102 => new StructNode([ + "unitLink" => array('type' => 79, 'tag' => -4), + "subgroupPriority" => array('type' => 10, 'tag' => -3), + "intraSubgroupPriority" => array('type' => 10, 'tag' => -2), + "count" => array('type' => 98, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SubgroupUnit' +), +103 => new ArrayNode( + new IntegerNode(9, 0), + 102 +), +104 => new StructNode([ + "subgroupIndex" => array('type' => 98, 'tag' => -4), + "removeMask" => array('type' => 101, 'tag' => -3), + "addSubgroups" => array('type' => 103, 'tag' => -2), + "addUnitTags" => array('type' => 63, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SelectionDelta' +), +105 => new StructNode([ + "controlGroupId" => array('type' => 1, 'tag' => -2), + "delta" => array('type' => 104, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SelectionDeltaEvent' +), +106 => new StructNode([ + "controlGroupIndex" => array('type' => 1, 'tag' => -3), + "controlGroupUpdate" => array('type' => 12, 'tag' => -2), + "mask" => array('type' => 101, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ControlGroupUpdateEvent' +), +107 => new StructNode([ + "count" => array('type' => 98, 'tag' => -6), + "subgroupCount" => array('type' => 98, 'tag' => -5), + "activeSubgroupIndex" => array('type' => 98, 'tag' => -4), + "unitTagsChecksum" => array('type' => 6, 'tag' => -3), + "subgroupIndicesChecksum" => array('type' => 6, 'tag' => -2), + "subgroupsChecksum" => array('type' => 6, 'tag' => -1), +]), +108 => new StructNode([ + "controlGroupId" => array('type' => 1, 'tag' => -2), + "selectionSyncData" => array('type' => 107, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SelectionSyncCheckEvent' +), +109 => new ArrayNode( + new IntegerNode(3, 0), + 84, + 'Rogiel\StarReplay\Event\Game\Entity\ResourceRequest' + +), +110 => new StructNode([ + "recipientId" => array('type' => 1, 'tag' => -2), + "resources" => array('type' => 109, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceTradeEvent' +), +111 => new StructNode([ + "chatMessage" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerChatMessageEvent' +), +112 => new IntegerNode(8, -128), +113 => new StructNode([ + "x" => array('type' => 84, 'tag' => -3), + "y" => array('type' => 84, 'tag' => -2), + "z" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +114 => new StructNode([ + "beacon" => array('type' => 112, 'tag' => -9), + "ally" => array('type' => 112, 'tag' => -8), + "flags" => array('type' => 112, 'tag' => -7), + "build" => array('type' => 112, 'tag' => -6), + "targetUnitTag" => array('type' => 6, 'tag' => -5), + "targetUnitSnapshotUnitLink" => array('type' => 79, 'tag' => -4), + "targetUnitSnapshotUpkeepPlayerId" => array('type' => 112, 'tag' => -3), + "targetUnitSnapshotControlPlayerId" => array('type' => 112, 'tag' => -2), + "targetPoint" => array('type' => 113, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AICommunicateEvent' +), +115 => new StructNode([ + "speed" => array('type' => 12, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SetAbsoluteGameSpeedEvent' +), +116 => new StructNode([ + "delta" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AddAbsoluteGameSpeedEvent' +), +117 => new StructNode([ + "point" => array('type' => 85, 'tag' => -9), + "unit" => array('type' => 6, 'tag' => -8), + "unitLink" => array('type' => 79, 'tag' => -7), + "unitControlPlayerId" => array('type' => 58, 'tag' => -6), + "unitUpkeepPlayerId" => array('type' => 58, 'tag' => -5), + "unitPosition" => array('type' => 93, 'tag' => -4), + "unitIsUnderConstruction" => array('type' => 13, 'tag' => -3), + "pingedMinimap" => array('type' => 13, 'tag' => -2), + "option" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPingEvent' +), +118 => new StructNode([ + "verb" => array('type' => 29, 'tag' => -2), + "arguments" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BroadcastCheatEvent' +), +119 => new StructNode([ + "alliance" => array('type' => 6, 'tag' => -2), + "control" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AllianceEvent' +), +120 => new StructNode([ + "unitTag" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UnitClickEvent' +), +121 => new StructNode([ + "unitTag" => array('type' => 6, 'tag' => -2), + "flags" => array('type' => 10, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UnitHighlightEvent' +), +122 => new StructNode([ + "conversationId" => array('type' => 84, 'tag' => -2), + "replyId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerReplySelectedEvent' +), +123 => new OptionalNode(20), +124 => new StructNode([ + "gameUserId" => array('type' => 1, 'tag' => -6), + "observe" => array('type' => 24, 'tag' => -5), + "name" => array('type' => 9, 'tag' => -4), + "toonHandle" => array('type' => 123, 'tag' => -3), + "clanTag" => array('type' => 41, 'tag' => -2), + "clanLogo" => array('type' => 42, 'tag' => -1), +]), +125 => new ArrayNode( + new IntegerNode(5, 0), + 124 +), +126 => new IntegerNode(1, 0), +127 => new StructNode([ + "userInfos" => array('type' => 125, 'tag' => -2), + "method" => array('type' => 126, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HijackReplayGameEvent' +), +128 => new StructNode([ + "purchaseItemId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPurchasePanelSelectedPurchaseItemChangedEvent' +), +129 => new StructNode([ + "difficultyLevel" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerVictoryPanelPlayMissionAgainEvent' +), +130 => new ChoiceNode(new IntegerNode(3), [ + 0 => 91, + 1 => 13, + 2 => 6, + 3 => 84, + 4 => 30, + 5 => 6, +]), +131 => new StructNode([ + "controlId" => array('type' => 84, 'tag' => -3), + "eventType" => array('type' => 84, 'tag' => -2), + "eventData" => array('type' => 130, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerDialogControlEvent' +), +132 => new StructNode([ + "soundHash" => array('type' => 6, 'tag' => -2), + "length" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundLengthQueryEvent' +), +133 => new ArrayNode( + new IntegerNode(7, 0), + 6 +), +134 => new StructNode([ + "soundHash" => array('type' => 133, 'tag' => -2), + "length" => array('type' => 133, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SoundLengthSync' +), +135 => new StructNode([ + "syncInfo" => array('type' => 134, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundLengthSyncEvent' +), +136 => new StructNode([ + "queryId" => array('type' => 79, 'tag' => -3), + "lengthMs" => array('type' => 6, 'tag' => -2), + "finishGameLoop" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimLengthQueryByNameEvent' +), +137 => new StructNode([ + "queryId" => array('type' => 79, 'tag' => -2), + "lengthMs" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimLengthQueryByPropsEvent' +), +138 => new StructNode([ + "animWaitQueryId" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimOffsetEvent' +), +139 => new StructNode([ + "sound" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundOffsetEvent' +), +140 => new StructNode([ + "transmissionId" => array('type' => 84, 'tag' => -2), + "thread" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTransmissionOffsetEvent' +), +141 => new StructNode([ + "transmissionId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTransmissionCompleteEvent' +), +142 => new OptionalNode(80), +143 => new OptionalNode(79), +144 => new OptionalNode(112), +145 => new StructNode([ + "target" => array('type' => 142, 'tag' => -6), + "distance" => array('type' => 143, 'tag' => -5), + "pitch" => array('type' => 143, 'tag' => -4), + "yaw" => array('type' => 143, 'tag' => -3), + "reason" => array('type' => 144, 'tag' => -2), + "follow" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CameraUpdateEvent' +), +146 => new StructNode([ + "skipType" => array('type' => 126, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerConversationSkippedEvent' +), +147 => new IntegerNode(11, 0), +148 => new StructNode([ + "x" => array('type' => 147, 'tag' => -2), + "y" => array('type' => 147, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +149 => new StructNode([ + "button" => array('type' => 6, 'tag' => -5), + "down" => array('type' => 13, 'tag' => -4), + "posUI" => array('type' => 148, 'tag' => -3), + "posWorld" => array('type' => 93, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseClickedEvent' +), +150 => new StructNode([ + "posUI" => array('type' => 148, 'tag' => -3), + "posWorld" => array('type' => 93, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseMovedEvent' +), +151 => new StructNode([ + "achievementLink" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AchievementAwardedEvent' +), +152 => new StructNode([ + "hotkey" => array('type' => 6, 'tag' => -2), + "down" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerHotkeyPressedEvent' +), +153 => new StructNode([ + "abilLink" => array('type' => 79, 'tag' => -3), + "abilCmdIndex" => array('type' => 2, 'tag' => -2), + "state" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTargetModeUpdateEvent' +), +154 => new StructNode([ + "soundtrack" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundtrackDoneEvent' +), +155 => new StructNode([ + "planetId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPlanetMissionSelectedEvent' +), +156 => new StructNode([ + "key" => array('type' => 112, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerKeyPressedEvent' +), +157 => new StructNode([ + "resources" => array('type' => 109, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestEvent' +), +158 => new StructNode([ + "fulfillRequestId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestFulfillEvent' +), +159 => new StructNode([ + "cancelRequestId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestCancelEvent' +), +160 => new StructNode([ + "error" => array('type' => 84, 'tag' => -2), + "abil" => array('type' => 90, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCommandErrorEvent' +), +161 => new StructNode([ + "researchItemId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerResearchPanelSelectionChangedEvent' +), +162 => new StructNode([ + "mercenaryId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMercenaryPanelSelectionChangedEvent' +), +163 => new StructNode([ + "battleReportId" => array('type' => 84, 'tag' => -2), + "difficultyLevel" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerBattleReportPanelPlayMissionEvent' +), +164 => new StructNode([ + "battleReportId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerBattleReportPanelSelectionChangedEvent' +), +165 => new StructNode([ + "decrementSeconds" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\DecrementGameTimeRemainingEvent' +), +166 => new StructNode([ + "portraitId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPortraitLoadedEvent' +), +167 => new StructNode([ + "functionName" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMovieFunctionEvent' +), +168 => new StructNode([ + "result" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCustomDialogDismissedEvent' +), +169 => new StructNode([ + "gameMenuItemIndex" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerGameMenuItemSelectedEvent' +), +170 => new IntegerNode(16, -32768), +171 => new StructNode([ + "wheelSpin" => array('type' => 170, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseWheelEvent' +), +172 => new StructNode([ + "purchaseCategoryId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPurchasePanelSelectedPurchaseCategoryChangedEvent' +), +173 => new StructNode([ + "button" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerButtonPressedEvent' +), +174 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -2), + "bookmarkName" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneBookmarkFiredEvent' +), +175 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneEndSceneFiredEvent' +), +176 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -3), + "conversationLine" => array('type' => 20, 'tag' => -2), + "altConversationLine" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneConversationLineEvent' +), +177 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -2), + "conversationLine" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneConversationLineMissingEvent' +), +178 => new StructNode([ + "leaveReason" => array('type' => 1, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameUserLeaveEvent' +), +179 => new StructNode([ + "observe" => array('type' => 24, 'tag' => -7), + "name" => array('type' => 9, 'tag' => -6), + "toonHandle" => array('type' => 123, 'tag' => -5), + "clanTag" => array('type' => 41, 'tag' => -4), + "clanLogo" => array('type' => 42, 'tag' => -3), + "hijack" => array('type' => 13, 'tag' => -2), + "hijackCloneGameUserId" => array('type' => 58, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameUserJoinEvent' +), +180 => new OptionalNode(96), +181 => new StructNode([ + "state" => array('type' => 24, 'tag' => -2), + "sequence" => array('type' => 180, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CommandManagerStateEvent' +), +182 => new StructNode([ + "target" => array('type' => 93, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdUpdateTargetPointEvent' +), +183 => new StructNode([ + "target" => array('type' => 94, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdUpdateTargetUnitEvent' +), +184 => new StructNode([ + "catalog" => array('type' => 10, 'tag' => -4), + "entry" => array('type' => 79, 'tag' => -3), + "field" => array('type' => 9, 'tag' => -2), + "value" => array('type' => 9, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CatalogModifyEvent' +), +185 => new StructNode([ + "index" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HeroTalentTreeSelectedEvent' +), +186 => new StructNode([ + "shown" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HeroTalentTreeSelectionPanelToggledEvent' +), +187 => new StructNode([ + "recipient" => array('type' => 12, 'tag' => -2), + "string" => array('type' => 30, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\ChatMessage' +), +188 => new StructNode([ + "recipient" => array('type' => 12, 'tag' => -2), + "point" => array('type' => 85, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\PingMessage' +), +189 => new StructNode([ + "progress" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\LoadingProgressMessage' +), +190 => new StructNode([ + "status" => array('type' => 24, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\ReconnectNotifyMessage' +), +191 => new StructNode([ + "scoreValueMineralsCurrent" => array('type' => 84, 'tag' => 0), + "scoreValueVespeneCurrent" => array('type' => 84, 'tag' => 1), + "scoreValueMineralsCollectionRate" => array('type' => 84, 'tag' => 2), + "scoreValueVespeneCollectionRate" => array('type' => 84, 'tag' => 3), + "scoreValueWorkersActiveCount" => array('type' => 84, 'tag' => 4), + "scoreValueMineralsUsedInProgressArmy" => array('type' => 84, 'tag' => 5), + "scoreValueMineralsUsedInProgressEconomy" => array('type' => 84, 'tag' => 6), + "scoreValueMineralsUsedInProgressTechnology" => array('type' => 84, 'tag' => 7), + "scoreValueVespeneUsedInProgressArmy" => array('type' => 84, 'tag' => 8), + "scoreValueVespeneUsedInProgressEconomy" => array('type' => 84, 'tag' => 9), + "scoreValueVespeneUsedInProgressTechnology" => array('type' => 84, 'tag' => 10), + "scoreValueMineralsUsedCurrentArmy" => array('type' => 84, 'tag' => 11), + "scoreValueMineralsUsedCurrentEconomy" => array('type' => 84, 'tag' => 12), + "scoreValueMineralsUsedCurrentTechnology" => array('type' => 84, 'tag' => 13), + "scoreValueVespeneUsedCurrentArmy" => array('type' => 84, 'tag' => 14), + "scoreValueVespeneUsedCurrentEconomy" => array('type' => 84, 'tag' => 15), + "scoreValueVespeneUsedCurrentTechnology" => array('type' => 84, 'tag' => 16), + "scoreValueMineralsLostArmy" => array('type' => 84, 'tag' => 17), + "scoreValueMineralsLostEconomy" => array('type' => 84, 'tag' => 18), + "scoreValueMineralsLostTechnology" => array('type' => 84, 'tag' => 19), + "scoreValueVespeneLostArmy" => array('type' => 84, 'tag' => 20), + "scoreValueVespeneLostEconomy" => array('type' => 84, 'tag' => 21), + "scoreValueVespeneLostTechnology" => array('type' => 84, 'tag' => 22), + "scoreValueMineralsKilledArmy" => array('type' => 84, 'tag' => 23), + "scoreValueMineralsKilledEconomy" => array('type' => 84, 'tag' => 24), + "scoreValueMineralsKilledTechnology" => array('type' => 84, 'tag' => 25), + "scoreValueVespeneKilledArmy" => array('type' => 84, 'tag' => 26), + "scoreValueVespeneKilledEconomy" => array('type' => 84, 'tag' => 27), + "scoreValueVespeneKilledTechnology" => array('type' => 84, 'tag' => 28), + "scoreValueFoodUsed" => array('type' => 84, 'tag' => 29), + "scoreValueFoodMade" => array('type' => 84, 'tag' => 30), + "scoreValueMineralsUsedActiveForces" => array('type' => 84, 'tag' => 31), + "scoreValueVespeneUsedActiveForces" => array('type' => 84, 'tag' => 32), + "scoreValueMineralsFriendlyFireArmy" => array('type' => 84, 'tag' => 33), + "scoreValueMineralsFriendlyFireEconomy" => array('type' => 84, 'tag' => 34), + "scoreValueMineralsFriendlyFireTechnology" => array('type' => 84, 'tag' => 35), + "scoreValueVespeneFriendlyFireArmy" => array('type' => 84, 'tag' => 36), + "scoreValueVespeneFriendlyFireEconomy" => array('type' => 84, 'tag' => 37), + "scoreValueVespeneFriendlyFireTechnology" => array('type' => 84, 'tag' => 38), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerStats' +), +192 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "stats" => array('type' => 191, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerStatsEvent' +), +193 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "unitTypeName" => array('type' => 29, 'tag' => 2), + "controlPlayerId" => array('type' => 1, 'tag' => 3), + "upkeepPlayerId" => array('type' => 1, 'tag' => 4), + "x" => array('type' => 10, 'tag' => 5), + "y" => array('type' => 10, 'tag' => 6), +], + 'Rogiel\StarReplay\Event\Tracker\UnitInitEvent' +), +194 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "killerPlayerId" => array('type' => 58, 'tag' => 2), + "x" => array('type' => 10, 'tag' => 3), + "y" => array('type' => 10, 'tag' => 4), + "killerUnitTagIndex" => array('type' => 43, 'tag' => 5), + "killerUnitTagRecycle" => array('type' => 43, 'tag' => 6), +], + 'Rogiel\StarReplay\Event\Tracker\UnitDiedEvent' +), +195 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "controlPlayerId" => array('type' => 1, 'tag' => 2), + "upkeepPlayerId" => array('type' => 1, 'tag' => 3), +], + 'Rogiel\StarReplay\Event\Tracker\UnitOwnerChangeEvent' +), +196 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "unitTypeName" => array('type' => 29, 'tag' => 2), +], + 'Rogiel\StarReplay\Event\Tracker\UnitTypeChangeEvent' +), +197 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "upgradeTypeName" => array('type' => 29, 'tag' => 1), + "count" => array('type' => 84, 'tag' => 2), +], + 'Rogiel\StarReplay\Event\Tracker\UpgradeEvent' +), +198 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\UnitDoneEvent' +), +199 => new ArrayNode( + new IntegerNode(10, 0), + 84, + 'Rogiel\StarReplay\Event\Tracker\UnitPositions' + +), +200 => new StructNode([ + "firstUnitIndex" => array('type' => 6, 'tag' => 0), + "items" => array('type' => 199, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\UnitPositionsEvent' +), +201 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "type" => array('type' => 6, 'tag' => 1), + "userId" => array('type' => 43, 'tag' => 2), + "slotId" => array('type' => 43, 'tag' => 3), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerSetupEvent' +), +] +); +Version44293::$GAME_EVENT_MAPPING = [ + 5 => 78, + 7 => 77, + 9 => 70, + 10 => 72, + 11 => 73, + 12 => 74, + 13 => 76, + 14 => 81, + 21 => 82, + 22 => 78, + 23 => 78, + 25 => 83, + 26 => 87, + 27 => 97, + 28 => 105, + 29 => 106, + 30 => 108, + 31 => 110, + 32 => 111, + 33 => 114, + 34 => 115, + 35 => 116, + 36 => 117, + 37 => 118, + 38 => 119, + 39 => 120, + 40 => 121, + 41 => 122, + 43 => 127, + 44 => 78, + 45 => 132, + 46 => 139, + 47 => 140, + 48 => 141, + 49 => 145, + 50 => 78, + 51 => 128, + 52 => 78, + 53 => 129, + 54 => 78, + 55 => 131, + 56 => 135, + 57 => 146, + 58 => 149, + 59 => 150, + 60 => 151, + 61 => 152, + 62 => 153, + 63 => 78, + 64 => 154, + 65 => 155, + 66 => 156, + 67 => 167, + 68 => 78, + 69 => 78, + 70 => 157, + 71 => 158, + 72 => 159, + 73 => 78, + 74 => 78, + 75 => 161, + 76 => 160, + 77 => 78, + 78 => 78, + 79 => 162, + 80 => 78, + 81 => 78, + 82 => 163, + 83 => 164, + 84 => 164, + 85 => 129, + 86 => 78, + 87 => 78, + 88 => 165, + 89 => 166, + 90 => 168, + 91 => 169, + 92 => 171, + 93 => 128, + 94 => 172, + 95 => 173, + 96 => 78, + 97 => 174, + 98 => 175, + 99 => 176, + 100 => 177, + 101 => 178, + 102 => 179, + 103 => 181, + 104 => 182, + 105 => 183, + 106 => 136, + 107 => 137, + 108 => 138, + 109 => 184, + 110 => 185, + 111 => 78, + 112 => 186, +]; +Version44293::$MESSAGE_EVENT_MAPPING = [ + 0 => 187, + 1 => 188, + 2 => 189, + 3 => 78, + 4 => 190, +]; +Version44293::$TRACKER_EVENT_MAPPING = [ + 0 => 192, + 1 => 193, + 2 => 194, + 3 => 195, + 4 => 196, + 5 => 197, + 6 => 193, + 7 => 198, + 8 => 200, + 9 => 201, +]; diff --git a/src/Version/Version44401.php b/src/Version/Version44401.php new file mode 100644 index 0000000..3753d68 --- /dev/null +++ b/src/Version/Version44401.php @@ -0,0 +1,1351 @@ +getNode(18); + } + + public function getReplayInitDataNode() { + return self::$TREE->getNode(69); + } + + public function getGameDetailsNode() { + return self::$TREE->getNode(40); + } + + public function getGameEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'user' => ['type' => 8], + 'event' => ['type' => 0] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + + public function getMessageEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'user' => ['type' => 8], + 'event' => ['type' => 1] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + + public function getTrackerEventHeaderNode() { + return new StructNode( + [ + 'timestamp' => ['type' => 7], + 'event' => ['type' => 2] + ], + 'Rogiel\StarReplay\Metadata\Event\Header', + true + ); + } + +} + +Version44401::$TREE = new Tree([ +0 => new IntegerNode(7, 0), +1 => new IntegerNode(4, 0), +2 => new IntegerNode(5, 0), +3 => new IntegerNode(6, 0), +4 => new IntegerNode(14, 0), +5 => new IntegerNode(22, 0), +6 => new IntegerNode(32, 0), +7 => new ChoiceNode(new IntegerNode(2), [ + 0 => 3, + 1 => 4, + 2 => 5, + 3 => 6, +]), +8 => new StructNode([ + "userId" => array('type' => 2, 'tag' => -1), +]), +9 => new BlobNode(new IntegerNode(8, 0)), +10 => new IntegerNode(8, 0), +11 => new StructNode([ + "flags" => array('type' => 10, 'tag' => 0), + "major" => array('type' => 10, 'tag' => 1), + "minor" => array('type' => 10, 'tag' => 2), + "revision" => array('type' => 10, 'tag' => 3), + "build" => array('type' => 6, 'tag' => 4), + "baseBuild" => array('type' => 6, 'tag' => 5), +], + 'Rogiel\StarReplay\Metadata\Header\Version' +), +12 => new IntegerNode(3, 0), +13 => new BooleanNode(), +14 => new ArrayNode( + new IntegerNode(0, 16), + 10 +), +15 => new OptionalNode(14), +16 => new BlobNode(new IntegerNode(0, 16)), +17 => new StructNode([ + "dataDeprecated" => array('type' => 15, 'tag' => 0), + "data" => array('type' => 16, 'tag' => 1), +], + 'Rogiel\StarReplay\Metadata\Header\Hash' +), +18 => new StructNode([ + "signature" => array('type' => 9, 'tag' => 0), + "version" => array('type' => 11, 'tag' => 1), + "type" => array('type' => 12, 'tag' => 2), + "elapsedGameLoops" => array('type' => 6, 'tag' => 3), + "useScaledTime" => array('type' => 13, 'tag' => 4), + "ngdpRootKey" => array('type' => 17, 'tag' => 5), + "dataBuildNum" => array('type' => 6, 'tag' => 6), + "replayCompatibilityHash" => array('type' => 17, 'tag' => 7), +], + 'Rogiel\StarReplay\Metadata\Header\Header' +), +19 => new FourCCNode(), +20 => new BlobNode(new IntegerNode(7, 0)), +21 => new IntegerNode(64, 0), +22 => new StructNode([ + "region" => array('type' => 10, 'tag' => 0), + "programId" => array('type' => 19, 'tag' => 1), + "realm" => array('type' => 6, 'tag' => 2), + "name" => array('type' => 20, 'tag' => 3), + "id" => array('type' => 21, 'tag' => 4), +], + 'Rogiel\StarReplay\Entity\Toon' +), +23 => new StructNode([ + "a" => array('type' => 10, 'tag' => 0), + "r" => array('type' => 10, 'tag' => 1), + "g" => array('type' => 10, 'tag' => 2), + "b" => array('type' => 10, 'tag' => 3), +], + 'Rogiel\StarReplay\Entity\Color' +), +24 => new IntegerNode(2, 0), +25 => new OptionalNode(10), +26 => new StructNode([ + "name" => array('type' => 9, 'tag' => 0), + "toon" => array('type' => 22, 'tag' => 1), + "race" => array('type' => 9, 'tag' => 2), + "color" => array('type' => 23, 'tag' => 3), + "control" => array('type' => 10, 'tag' => 4), + "teamId" => array('type' => 1, 'tag' => 5), + "handicap" => array('type' => 0, 'tag' => 6), + "observe" => array('type' => 24, 'tag' => 7), + "result" => array('type' => 24, 'tag' => 8), + "workingSetSlotId" => array('type' => 25, 'tag' => 9), + "hero" => array('type' => 9, 'tag' => 10), +], + 'Rogiel\StarReplay\Entity\Player' +), +27 => new ArrayNode( + new IntegerNode(5, 0), + 26, + 'Rogiel\StarReplay\Metadata\Match\PlayerList' + +), +28 => new OptionalNode(27), +29 => new BlobNode(new IntegerNode(10, 0)), +30 => new BlobNode(new IntegerNode(11, 0)), +31 => new StructNode([ + "file" => array('type' => 30, 'tag' => 0), +], + 'Rogiel\StarReplay\Entity\Thumbnail' +), +32 => new OptionalNode(13), +33 => new IntegerNode(64, -9223372036854775808), +34 => new BlobNode(new IntegerNode(12, 0)), +35 => new BlobNode(new IntegerNode(0, 40)), +36 => new ArrayNode( + new IntegerNode(6, 0), + 35 +), +37 => new OptionalNode(36), +38 => new ArrayNode( + new IntegerNode(6, 0), + 30 +), +39 => new OptionalNode(38), +40 => new StructNode([ + "playerList" => array('type' => 28, 'tag' => 0), + "title" => array('type' => 29, 'tag' => 1), + "difficulty" => array('type' => 9, 'tag' => 2), + "thumbnail" => array('type' => 31, 'tag' => 3), + "isBlizzardMap" => array('type' => 13, 'tag' => 4), + "restartAsTransitionMap" => array('type' => 32, 'tag' => 16), + "timeUTC" => array('type' => 33, 'tag' => 5), + "timeLocalOffset" => array('type' => 33, 'tag' => 6), + "description" => array('type' => 34, 'tag' => 7), + "imageFilePath" => array('type' => 30, 'tag' => 8), + "campaignIndex" => array('type' => 10, 'tag' => 15), + "mapFileName" => array('type' => 30, 'tag' => 9), + "cacheHandles" => array('type' => 37, 'tag' => 10), + "miniSave" => array('type' => 13, 'tag' => 11), + "gameSpeed" => array('type' => 12, 'tag' => 12), + "defaultDifficulty" => array('type' => 3, 'tag' => 13), + "modPaths" => array('type' => 39, 'tag' => 14), +], + 'Rogiel\StarReplay\Metadata\Match\MatchInformation' +), +41 => new OptionalNode(9), +42 => new OptionalNode(35), +43 => new OptionalNode(6), +44 => new StructNode([ + "race" => array('type' => 25, 'tag' => -1), +]), +45 => new StructNode([ + "team" => array('type' => 25, 'tag' => -1), +]), +46 => new BlobNode(new IntegerNode(9, 0)), +47 => new StructNode([ + "name" => array('type' => 9, 'tag' => -18), + "clanTag" => array('type' => 41, 'tag' => -17), + "clanLogo" => array('type' => 42, 'tag' => -16), + "highestLeague" => array('type' => 25, 'tag' => -15), + "combinedRaceLevels" => array('type' => 43, 'tag' => -14), + "randomSeed" => array('type' => 6, 'tag' => -13), + "racePreference" => array('type' => 44, 'tag' => -12), + "teamPreference" => array('type' => 45, 'tag' => -11), + "testMap" => array('type' => 13, 'tag' => -10), + "testAuto" => array('type' => 13, 'tag' => -9), + "examine" => array('type' => 13, 'tag' => -8), + "customInterface" => array('type' => 13, 'tag' => -7), + "testType" => array('type' => 6, 'tag' => -6), + "observe" => array('type' => 24, 'tag' => -5), + "hero" => array('type' => 46, 'tag' => -4), + "skin" => array('type' => 46, 'tag' => -3), + "mount" => array('type' => 46, 'tag' => -2), + "toonHandle" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\UserInitialData' +), +48 => new ArrayNode( + new IntegerNode(5, 0), + 47, + 'Rogiel\StarReplay\Metadata\Init\UserInitialDataCollection' + +), +49 => new StructNode([ + "lockTeams" => array('type' => 13, 'tag' => -15), + "teamsTogether" => array('type' => 13, 'tag' => -14), + "advancedSharedControl" => array('type' => 13, 'tag' => -13), + "randomRaces" => array('type' => 13, 'tag' => -12), + "battleNet" => array('type' => 13, 'tag' => -11), + "amm" => array('type' => 13, 'tag' => -10), + "competitive" => array('type' => 13, 'tag' => -9), + "practice" => array('type' => 13, 'tag' => -8), + "cooperative" => array('type' => 13, 'tag' => -7), + "noVictoryOrDefeat" => array('type' => 13, 'tag' => -6), + "heroDuplicatesAllowed" => array('type' => 13, 'tag' => -5), + "fog" => array('type' => 24, 'tag' => -4), + "observers" => array('type' => 24, 'tag' => -3), + "userDifficulty" => array('type' => 24, 'tag' => -2), + "clientDebugFlags" => array('type' => 21, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\GameOptions' +), +50 => new IntegerNode(4, 1), +51 => new IntegerNode(8, 1), +52 => new BitArrayNode( + new IntegerNode(6, 0) +), +53 => new BitArrayNode( + new IntegerNode(8, 0) +), +54 => new BitArrayNode( + new IntegerNode(2, 0) +), +55 => new StructNode([ + "allowedColors" => array('type' => 52, 'tag' => -6), + "allowedRaces" => array('type' => 53, 'tag' => -5), + "allowedDifficulty" => array('type' => 52, 'tag' => -4), + "allowedControls" => array('type' => 53, 'tag' => -3), + "allowedObserveTypes" => array('type' => 54, 'tag' => -2), + "allowedAIBuilds" => array('type' => 53, 'tag' => -1), +]), +56 => new ArrayNode( + new IntegerNode(5, 0), + 55 +), +57 => new StructNode([ + "randomValue" => array('type' => 6, 'tag' => -27), + "gameCacheName" => array('type' => 29, 'tag' => -26), + "gameOptions" => array('type' => 49, 'tag' => -25), + "gameSpeed" => array('type' => 12, 'tag' => -24), + "gameType" => array('type' => 12, 'tag' => -23), + "maxUsers" => array('type' => 2, 'tag' => -22), + "maxObservers" => array('type' => 2, 'tag' => -21), + "maxPlayers" => array('type' => 2, 'tag' => -20), + "maxTeams" => array('type' => 50, 'tag' => -19), + "maxColors" => array('type' => 3, 'tag' => -18), + "maxRaces" => array('type' => 51, 'tag' => -17), + "maxControls" => array('type' => 10, 'tag' => -16), + "mapSizeX" => array('type' => 10, 'tag' => -15), + "mapSizeY" => array('type' => 10, 'tag' => -14), + "mapFileSyncChecksum" => array('type' => 6, 'tag' => -13), + "mapFileName" => array('type' => 30, 'tag' => -12), + "mapAuthorName" => array('type' => 9, 'tag' => -11), + "modFileSyncChecksum" => array('type' => 6, 'tag' => -10), + "slotDescriptions" => array('type' => 56, 'tag' => -9), + "defaultDifficulty" => array('type' => 3, 'tag' => -8), + "defaultAIBuild" => array('type' => 10, 'tag' => -7), + "cacheHandles" => array('type' => 36, 'tag' => -6), + "hasExtensionMod" => array('type' => 13, 'tag' => -5), + "hasNonBlizzardExtensionMod" => array('type' => 13, 'tag' => -4), + "isBlizzardMap" => array('type' => 13, 'tag' => -3), + "isPremadeFFA" => array('type' => 13, 'tag' => -2), + "isCoopMode" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\GameDescription' +), +58 => new OptionalNode(1), +59 => new OptionalNode(2), +60 => new StructNode([ + "color" => array('type' => 59, 'tag' => -1), +]), +61 => new ArrayNode( + new IntegerNode(4, 0), + 46 +), +62 => new ArrayNode( + new IntegerNode(17, 0), + 6 +), +63 => new ArrayNode( + new IntegerNode(9, 0), + 6 +), +64 => new ArrayNode( + new IntegerNode(3, 0), + 6 +), +65 => new StructNode([ + "control" => array('type' => 10, 'tag' => -25), + "userId" => array('type' => 58, 'tag' => -24), + "teamId" => array('type' => 1, 'tag' => -23), + "colorPref" => array('type' => 60, 'tag' => -22), + "racePref" => array('type' => 44, 'tag' => -21), + "difficulty" => array('type' => 3, 'tag' => -20), + "aiBuild" => array('type' => 10, 'tag' => -19), + "handicap" => array('type' => 0, 'tag' => -18), + "observe" => array('type' => 24, 'tag' => -17), + "logoIndex" => array('type' => 6, 'tag' => -16), + "hero" => array('type' => 46, 'tag' => -15), + "skin" => array('type' => 46, 'tag' => -14), + "mount" => array('type' => 46, 'tag' => -13), + "artifacts" => array('type' => 61, 'tag' => -12), + "workingSetSlotId" => array('type' => 25, 'tag' => -11), + "rewards" => array('type' => 62, 'tag' => -10), + "toonHandle" => array('type' => 20, 'tag' => -9), + "licenses" => array('type' => 63, 'tag' => -8), + "tandemLeaderId" => array('type' => 58, 'tag' => -7), + "commander" => array('type' => 46, 'tag' => -6), + "commanderLevel" => array('type' => 6, 'tag' => -5), + "hasSilencePenalty" => array('type' => 13, 'tag' => -4), + "tandemId" => array('type' => 58, 'tag' => -3), + "commanderMasteryLevel" => array('type' => 6, 'tag' => -2), + "commanderMasteryTalents" => array('type' => 64, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\LobbySlot' +), +66 => new ArrayNode( + new IntegerNode(5, 0), + 65 +), +67 => new StructNode([ + "phase" => array('type' => 12, 'tag' => -11), + "maxUsers" => array('type' => 2, 'tag' => -10), + "maxObservers" => array('type' => 2, 'tag' => -9), + "slots" => array('type' => 66, 'tag' => -8), + "randomSeed" => array('type' => 6, 'tag' => -7), + "hostUserId" => array('type' => 58, 'tag' => -6), + "isSinglePlayer" => array('type' => 13, 'tag' => -5), + "pickedMapTag" => array('type' => 10, 'tag' => -4), + "gameDuration" => array('type' => 6, 'tag' => -3), + "defaultDifficulty" => array('type' => 3, 'tag' => -2), + "defaultAIBuild" => array('type' => 10, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\LobbyState' +), +68 => new StructNode([ + "userInitialData" => array('type' => 48, 'tag' => -3), + "gameDescription" => array('type' => 57, 'tag' => -2), + "lobbyState" => array('type' => 67, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\SyncLobbyState' +), +69 => new StructNode([ + "syncLobbyState" => array('type' => 68, 'tag' => -1), +], + 'Rogiel\StarReplay\Metadata\Init\InitData' +), +70 => new StructNode([ + "name" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankFileEvent' +), +71 => new BlobNode(new IntegerNode(6, 0)), +72 => new StructNode([ + "name" => array('type' => 71, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankSectionEvent' +), +73 => new StructNode([ + "name" => array('type' => 71, 'tag' => -3), + "type" => array('type' => 6, 'tag' => -2), + "data" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankKeyEvent' +), +74 => new StructNode([ + "type" => array('type' => 6, 'tag' => -3), + "name" => array('type' => 71, 'tag' => -2), + "data" => array('type' => 34, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankValueEvent' +), +75 => new ArrayNode( + new IntegerNode(5, 0), + 10, + 'Rogiel\StarReplay\Event\Game\Entity\BankSignature' + +), +76 => new StructNode([ + "signature" => array('type' => 75, 'tag' => -2), + "toonHandle" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BankSignatureEvent' +), +77 => new StructNode([ + "gameFullyDownloaded" => array('type' => 13, 'tag' => -14), + "developmentCheatsEnabled" => array('type' => 13, 'tag' => -13), + "testCheatsEnabled" => array('type' => 13, 'tag' => -12), + "multiplayerCheatsEnabled" => array('type' => 13, 'tag' => -11), + "syncChecksummingEnabled" => array('type' => 13, 'tag' => -10), + "isMapToMapTransition" => array('type' => 13, 'tag' => -9), + "debugPauseEnabled" => array('type' => 13, 'tag' => -8), + "useGalaxyAsserts" => array('type' => 13, 'tag' => -7), + "platformMac" => array('type' => 13, 'tag' => -6), + "cameraFollow" => array('type' => 13, 'tag' => -5), + "baseBuildNum" => array('type' => 6, 'tag' => -4), + "buildNum" => array('type' => 6, 'tag' => -3), + "versionFlags" => array('type' => 6, 'tag' => -2), + "hotkeyProfile" => array('type' => 46, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UserOptionsEvent' +), +78 => new StructNode([ +], + 'Rogiel\StarReplay\Event\Message\ServerPingMessage' +), +79 => new IntegerNode(16, 0), +80 => new StructNode([ + "x" => array('type' => 79, 'tag' => -2), + "y" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +81 => new StructNode([ + "which" => array('type' => 12, 'tag' => -2), + "target" => array('type' => 80, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CameraSaveEvent' +), +82 => new StructNode([ + "fileName" => array('type' => 30, 'tag' => -5), + "automatic" => array('type' => 13, 'tag' => -4), + "overwrite" => array('type' => 13, 'tag' => -3), + "name" => array('type' => 9, 'tag' => -2), + "description" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SaveGameEvent' +), +83 => new StructNode([ + "sequence" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CommandManagerResetEvent' +), +84 => new IntegerNode(32, -2147483648), +85 => new StructNode([ + "x" => array('type' => 84, 'tag' => -2), + "y" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +86 => new StructNode([ + "point" => array('type' => 85, 'tag' => -4), + "time" => array('type' => 84, 'tag' => -3), + "verb" => array('type' => 29, 'tag' => -2), + "arguments" => array('type' => 29, 'tag' => -1), +]), +87 => new StructNode([ + "data" => array('type' => 86, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameCheatEvent' +), +88 => new IntegerNode(25, 0), +89 => new StructNode([ + "abilLink" => array('type' => 79, 'tag' => -3), + "abilCmdIndex" => array('type' => 2, 'tag' => -2), + "abilCmdData" => array('type' => 25, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\Ability' +), +90 => new OptionalNode(89), +91 => new NullNode(), +92 => new IntegerNode(20, 0), +93 => new StructNode([ + "x" => array('type' => 92, 'tag' => -3), + "y" => array('type' => 92, 'tag' => -2), + "z" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +94 => new StructNode([ + "targetUnitFlags" => array('type' => 79, 'tag' => -7), + "timer" => array('type' => 10, 'tag' => -6), + "tag" => array('type' => 6, 'tag' => -5), + "snapshotUnitLink" => array('type' => 79, 'tag' => -4), + "snapshotControlPlayerId" => array('type' => 58, 'tag' => -3), + "snapshotUpkeepPlayerId" => array('type' => 58, 'tag' => -2), + "snapshotPoint" => array('type' => 93, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\TargetUnit' +), +95 => new ChoiceNode(new IntegerNode(2), [ + 0 => 91, + 1 => 93, + 2 => 94, + 3 => 6, +]), +96 => new IntegerNode(32, 1), +97 => new StructNode([ + "cmdFlags" => array('type' => 88, 'tag' => -6), + "abil" => array('type' => 90, 'tag' => -5), + "data" => array('type' => 95, 'tag' => -4), + "sequence" => array('type' => 96, 'tag' => -3), + "otherUnit" => array('type' => 43, 'tag' => -2), + "unitGroup" => array('type' => 43, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdEvent' +), +98 => new IntegerNode(9, 0), +99 => new BitArrayNode( + new IntegerNode(9, 0) +, + 'Rogiel\StarReplay\Event\Game\Entity\ControlGroupUpdateMask'), +100 => new ArrayNode( + new IntegerNode(9, 0), + 98, + 'Rogiel\StarReplay\Event\Game\Entity\ControlGroupUpdateZeroIndices' + +), +101 => new ChoiceNode(new IntegerNode(2), [ + 0 => 91, + 1 => 99, + 2 => 100, + 3 => 100, +]), +102 => new StructNode([ + "unitLink" => array('type' => 79, 'tag' => -4), + "subgroupPriority" => array('type' => 10, 'tag' => -3), + "intraSubgroupPriority" => array('type' => 10, 'tag' => -2), + "count" => array('type' => 98, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SubgroupUnit' +), +103 => new ArrayNode( + new IntegerNode(9, 0), + 102 +), +104 => new StructNode([ + "subgroupIndex" => array('type' => 98, 'tag' => -4), + "removeMask" => array('type' => 101, 'tag' => -3), + "addSubgroups" => array('type' => 103, 'tag' => -2), + "addUnitTags" => array('type' => 63, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SelectionDelta' +), +105 => new StructNode([ + "controlGroupId" => array('type' => 1, 'tag' => -2), + "delta" => array('type' => 104, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SelectionDeltaEvent' +), +106 => new StructNode([ + "controlGroupIndex" => array('type' => 1, 'tag' => -3), + "controlGroupUpdate" => array('type' => 12, 'tag' => -2), + "mask" => array('type' => 101, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ControlGroupUpdateEvent' +), +107 => new StructNode([ + "count" => array('type' => 98, 'tag' => -6), + "subgroupCount" => array('type' => 98, 'tag' => -5), + "activeSubgroupIndex" => array('type' => 98, 'tag' => -4), + "unitTagsChecksum" => array('type' => 6, 'tag' => -3), + "subgroupIndicesChecksum" => array('type' => 6, 'tag' => -2), + "subgroupsChecksum" => array('type' => 6, 'tag' => -1), +]), +108 => new StructNode([ + "controlGroupId" => array('type' => 1, 'tag' => -2), + "selectionSyncData" => array('type' => 107, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SelectionSyncCheckEvent' +), +109 => new ArrayNode( + new IntegerNode(3, 0), + 84, + 'Rogiel\StarReplay\Event\Game\Entity\ResourceRequest' + +), +110 => new StructNode([ + "recipientId" => array('type' => 1, 'tag' => -2), + "resources" => array('type' => 109, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceTradeEvent' +), +111 => new StructNode([ + "chatMessage" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerChatMessageEvent' +), +112 => new IntegerNode(8, -128), +113 => new StructNode([ + "x" => array('type' => 84, 'tag' => -3), + "y" => array('type' => 84, 'tag' => -2), + "z" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +114 => new StructNode([ + "beacon" => array('type' => 112, 'tag' => -9), + "ally" => array('type' => 112, 'tag' => -8), + "flags" => array('type' => 112, 'tag' => -7), + "build" => array('type' => 112, 'tag' => -6), + "targetUnitTag" => array('type' => 6, 'tag' => -5), + "targetUnitSnapshotUnitLink" => array('type' => 79, 'tag' => -4), + "targetUnitSnapshotUpkeepPlayerId" => array('type' => 112, 'tag' => -3), + "targetUnitSnapshotControlPlayerId" => array('type' => 112, 'tag' => -2), + "targetPoint" => array('type' => 113, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AICommunicateEvent' +), +115 => new StructNode([ + "speed" => array('type' => 12, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\SetAbsoluteGameSpeedEvent' +), +116 => new StructNode([ + "delta" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AddAbsoluteGameSpeedEvent' +), +117 => new StructNode([ + "point" => array('type' => 85, 'tag' => -9), + "unit" => array('type' => 6, 'tag' => -8), + "unitLink" => array('type' => 79, 'tag' => -7), + "unitControlPlayerId" => array('type' => 58, 'tag' => -6), + "unitUpkeepPlayerId" => array('type' => 58, 'tag' => -5), + "unitPosition" => array('type' => 93, 'tag' => -4), + "unitIsUnderConstruction" => array('type' => 13, 'tag' => -3), + "pingedMinimap" => array('type' => 13, 'tag' => -2), + "option" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPingEvent' +), +118 => new StructNode([ + "verb" => array('type' => 29, 'tag' => -2), + "arguments" => array('type' => 29, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\BroadcastCheatEvent' +), +119 => new StructNode([ + "alliance" => array('type' => 6, 'tag' => -2), + "control" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AllianceEvent' +), +120 => new StructNode([ + "unitTag" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UnitClickEvent' +), +121 => new StructNode([ + "unitTag" => array('type' => 6, 'tag' => -2), + "flags" => array('type' => 10, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\UnitHighlightEvent' +), +122 => new StructNode([ + "conversationId" => array('type' => 84, 'tag' => -2), + "replyId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerReplySelectedEvent' +), +123 => new OptionalNode(20), +124 => new StructNode([ + "gameUserId" => array('type' => 1, 'tag' => -6), + "observe" => array('type' => 24, 'tag' => -5), + "name" => array('type' => 9, 'tag' => -4), + "toonHandle" => array('type' => 123, 'tag' => -3), + "clanTag" => array('type' => 41, 'tag' => -2), + "clanLogo" => array('type' => 42, 'tag' => -1), +]), +125 => new ArrayNode( + new IntegerNode(5, 0), + 124 +), +126 => new IntegerNode(1, 0), +127 => new StructNode([ + "userInfos" => array('type' => 125, 'tag' => -2), + "method" => array('type' => 126, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HijackReplayGameEvent' +), +128 => new StructNode([ + "purchaseItemId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPurchasePanelSelectedPurchaseItemChangedEvent' +), +129 => new StructNode([ + "difficultyLevel" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerVictoryPanelPlayMissionAgainEvent' +), +130 => new ChoiceNode(new IntegerNode(3), [ + 0 => 91, + 1 => 13, + 2 => 6, + 3 => 84, + 4 => 30, + 5 => 6, +]), +131 => new StructNode([ + "controlId" => array('type' => 84, 'tag' => -3), + "eventType" => array('type' => 84, 'tag' => -2), + "eventData" => array('type' => 130, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerDialogControlEvent' +), +132 => new StructNode([ + "soundHash" => array('type' => 6, 'tag' => -2), + "length" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundLengthQueryEvent' +), +133 => new ArrayNode( + new IntegerNode(7, 0), + 6 +), +134 => new StructNode([ + "soundHash" => array('type' => 133, 'tag' => -2), + "length" => array('type' => 133, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\Entity\SoundLengthSync' +), +135 => new StructNode([ + "syncInfo" => array('type' => 134, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundLengthSyncEvent' +), +136 => new StructNode([ + "queryId" => array('type' => 79, 'tag' => -3), + "lengthMs" => array('type' => 6, 'tag' => -2), + "finishGameLoop" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimLengthQueryByNameEvent' +), +137 => new StructNode([ + "queryId" => array('type' => 79, 'tag' => -2), + "lengthMs" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimLengthQueryByPropsEvent' +), +138 => new StructNode([ + "animWaitQueryId" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerAnimOffsetEvent' +), +139 => new StructNode([ + "sound" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundOffsetEvent' +), +140 => new StructNode([ + "transmissionId" => array('type' => 84, 'tag' => -2), + "thread" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTransmissionOffsetEvent' +), +141 => new StructNode([ + "transmissionId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTransmissionCompleteEvent' +), +142 => new OptionalNode(80), +143 => new OptionalNode(79), +144 => new OptionalNode(112), +145 => new StructNode([ + "target" => array('type' => 142, 'tag' => -6), + "distance" => array('type' => 143, 'tag' => -5), + "pitch" => array('type' => 143, 'tag' => -4), + "yaw" => array('type' => 143, 'tag' => -3), + "reason" => array('type' => 144, 'tag' => -2), + "follow" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CameraUpdateEvent' +), +146 => new StructNode([ + "skipType" => array('type' => 126, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerConversationSkippedEvent' +), +147 => new IntegerNode(11, 0), +148 => new StructNode([ + "x" => array('type' => 147, 'tag' => -2), + "y" => array('type' => 147, 'tag' => -1), +], + 'Rogiel\StarReplay\Entity\Point' +), +149 => new StructNode([ + "button" => array('type' => 6, 'tag' => -5), + "down" => array('type' => 13, 'tag' => -4), + "posUI" => array('type' => 148, 'tag' => -3), + "posWorld" => array('type' => 93, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseClickedEvent' +), +150 => new StructNode([ + "posUI" => array('type' => 148, 'tag' => -3), + "posWorld" => array('type' => 93, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseMovedEvent' +), +151 => new StructNode([ + "achievementLink" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\AchievementAwardedEvent' +), +152 => new StructNode([ + "hotkey" => array('type' => 6, 'tag' => -2), + "down" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerHotkeyPressedEvent' +), +153 => new StructNode([ + "abilLink" => array('type' => 79, 'tag' => -3), + "abilCmdIndex" => array('type' => 2, 'tag' => -2), + "state" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerTargetModeUpdateEvent' +), +154 => new StructNode([ + "soundtrack" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerSoundtrackDoneEvent' +), +155 => new StructNode([ + "planetId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPlanetMissionSelectedEvent' +), +156 => new StructNode([ + "key" => array('type' => 112, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerKeyPressedEvent' +), +157 => new StructNode([ + "resources" => array('type' => 109, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestEvent' +), +158 => new StructNode([ + "fulfillRequestId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestFulfillEvent' +), +159 => new StructNode([ + "cancelRequestId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\ResourceRequestCancelEvent' +), +160 => new StructNode([ + "error" => array('type' => 84, 'tag' => -2), + "abil" => array('type' => 90, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCommandErrorEvent' +), +161 => new StructNode([ + "researchItemId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerResearchPanelSelectionChangedEvent' +), +162 => new StructNode([ + "mercenaryId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMercenaryPanelSelectionChangedEvent' +), +163 => new StructNode([ + "battleReportId" => array('type' => 84, 'tag' => -2), + "difficultyLevel" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerBattleReportPanelPlayMissionEvent' +), +164 => new StructNode([ + "battleReportId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerBattleReportPanelSelectionChangedEvent' +), +165 => new StructNode([ + "decrementSeconds" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\DecrementGameTimeRemainingEvent' +), +166 => new StructNode([ + "portraitId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPortraitLoadedEvent' +), +167 => new StructNode([ + "functionName" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMovieFunctionEvent' +), +168 => new StructNode([ + "result" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCustomDialogDismissedEvent' +), +169 => new StructNode([ + "gameMenuItemIndex" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerGameMenuItemSelectedEvent' +), +170 => new IntegerNode(16, -32768), +171 => new StructNode([ + "wheelSpin" => array('type' => 170, 'tag' => -2), + "flags" => array('type' => 112, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerMouseWheelEvent' +), +172 => new StructNode([ + "purchaseCategoryId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerPurchasePanelSelectedPurchaseCategoryChangedEvent' +), +173 => new StructNode([ + "button" => array('type' => 79, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerButtonPressedEvent' +), +174 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -2), + "bookmarkName" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneBookmarkFiredEvent' +), +175 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneEndSceneFiredEvent' +), +176 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -3), + "conversationLine" => array('type' => 20, 'tag' => -2), + "altConversationLine" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneConversationLineEvent' +), +177 => new StructNode([ + "cutsceneId" => array('type' => 84, 'tag' => -2), + "conversationLine" => array('type' => 20, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\TriggerCutsceneConversationLineMissingEvent' +), +178 => new StructNode([ + "leaveReason" => array('type' => 1, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameUserLeaveEvent' +), +179 => new StructNode([ + "observe" => array('type' => 24, 'tag' => -7), + "name" => array('type' => 9, 'tag' => -6), + "toonHandle" => array('type' => 123, 'tag' => -5), + "clanTag" => array('type' => 41, 'tag' => -4), + "clanLogo" => array('type' => 42, 'tag' => -3), + "hijack" => array('type' => 13, 'tag' => -2), + "hijackCloneGameUserId" => array('type' => 58, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\GameUserJoinEvent' +), +180 => new OptionalNode(96), +181 => new StructNode([ + "state" => array('type' => 24, 'tag' => -2), + "sequence" => array('type' => 180, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CommandManagerStateEvent' +), +182 => new StructNode([ + "target" => array('type' => 93, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdUpdateTargetPointEvent' +), +183 => new StructNode([ + "target" => array('type' => 94, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CmdUpdateTargetUnitEvent' +), +184 => new StructNode([ + "catalog" => array('type' => 10, 'tag' => -4), + "entry" => array('type' => 79, 'tag' => -3), + "field" => array('type' => 9, 'tag' => -2), + "value" => array('type' => 9, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\CatalogModifyEvent' +), +185 => new StructNode([ + "index" => array('type' => 6, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HeroTalentTreeSelectedEvent' +), +186 => new StructNode([ + "shown" => array('type' => 13, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Game\HeroTalentTreeSelectionPanelToggledEvent' +), +187 => new StructNode([ + "recipient" => array('type' => 12, 'tag' => -2), + "string" => array('type' => 30, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\ChatMessage' +), +188 => new StructNode([ + "recipient" => array('type' => 12, 'tag' => -2), + "point" => array('type' => 85, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\PingMessage' +), +189 => new StructNode([ + "progress" => array('type' => 84, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\LoadingProgressMessage' +), +190 => new StructNode([ + "status" => array('type' => 24, 'tag' => -1), +], + 'Rogiel\StarReplay\Event\Message\ReconnectNotifyMessage' +), +191 => new StructNode([ + "scoreValueMineralsCurrent" => array('type' => 84, 'tag' => 0), + "scoreValueVespeneCurrent" => array('type' => 84, 'tag' => 1), + "scoreValueMineralsCollectionRate" => array('type' => 84, 'tag' => 2), + "scoreValueVespeneCollectionRate" => array('type' => 84, 'tag' => 3), + "scoreValueWorkersActiveCount" => array('type' => 84, 'tag' => 4), + "scoreValueMineralsUsedInProgressArmy" => array('type' => 84, 'tag' => 5), + "scoreValueMineralsUsedInProgressEconomy" => array('type' => 84, 'tag' => 6), + "scoreValueMineralsUsedInProgressTechnology" => array('type' => 84, 'tag' => 7), + "scoreValueVespeneUsedInProgressArmy" => array('type' => 84, 'tag' => 8), + "scoreValueVespeneUsedInProgressEconomy" => array('type' => 84, 'tag' => 9), + "scoreValueVespeneUsedInProgressTechnology" => array('type' => 84, 'tag' => 10), + "scoreValueMineralsUsedCurrentArmy" => array('type' => 84, 'tag' => 11), + "scoreValueMineralsUsedCurrentEconomy" => array('type' => 84, 'tag' => 12), + "scoreValueMineralsUsedCurrentTechnology" => array('type' => 84, 'tag' => 13), + "scoreValueVespeneUsedCurrentArmy" => array('type' => 84, 'tag' => 14), + "scoreValueVespeneUsedCurrentEconomy" => array('type' => 84, 'tag' => 15), + "scoreValueVespeneUsedCurrentTechnology" => array('type' => 84, 'tag' => 16), + "scoreValueMineralsLostArmy" => array('type' => 84, 'tag' => 17), + "scoreValueMineralsLostEconomy" => array('type' => 84, 'tag' => 18), + "scoreValueMineralsLostTechnology" => array('type' => 84, 'tag' => 19), + "scoreValueVespeneLostArmy" => array('type' => 84, 'tag' => 20), + "scoreValueVespeneLostEconomy" => array('type' => 84, 'tag' => 21), + "scoreValueVespeneLostTechnology" => array('type' => 84, 'tag' => 22), + "scoreValueMineralsKilledArmy" => array('type' => 84, 'tag' => 23), + "scoreValueMineralsKilledEconomy" => array('type' => 84, 'tag' => 24), + "scoreValueMineralsKilledTechnology" => array('type' => 84, 'tag' => 25), + "scoreValueVespeneKilledArmy" => array('type' => 84, 'tag' => 26), + "scoreValueVespeneKilledEconomy" => array('type' => 84, 'tag' => 27), + "scoreValueVespeneKilledTechnology" => array('type' => 84, 'tag' => 28), + "scoreValueFoodUsed" => array('type' => 84, 'tag' => 29), + "scoreValueFoodMade" => array('type' => 84, 'tag' => 30), + "scoreValueMineralsUsedActiveForces" => array('type' => 84, 'tag' => 31), + "scoreValueVespeneUsedActiveForces" => array('type' => 84, 'tag' => 32), + "scoreValueMineralsFriendlyFireArmy" => array('type' => 84, 'tag' => 33), + "scoreValueMineralsFriendlyFireEconomy" => array('type' => 84, 'tag' => 34), + "scoreValueMineralsFriendlyFireTechnology" => array('type' => 84, 'tag' => 35), + "scoreValueVespeneFriendlyFireArmy" => array('type' => 84, 'tag' => 36), + "scoreValueVespeneFriendlyFireEconomy" => array('type' => 84, 'tag' => 37), + "scoreValueVespeneFriendlyFireTechnology" => array('type' => 84, 'tag' => 38), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerStats' +), +192 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "stats" => array('type' => 191, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerStatsEvent' +), +193 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "unitTypeName" => array('type' => 29, 'tag' => 2), + "controlPlayerId" => array('type' => 1, 'tag' => 3), + "upkeepPlayerId" => array('type' => 1, 'tag' => 4), + "x" => array('type' => 10, 'tag' => 5), + "y" => array('type' => 10, 'tag' => 6), +], + 'Rogiel\StarReplay\Event\Tracker\UnitInitEvent' +), +194 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "killerPlayerId" => array('type' => 58, 'tag' => 2), + "x" => array('type' => 10, 'tag' => 3), + "y" => array('type' => 10, 'tag' => 4), + "killerUnitTagIndex" => array('type' => 43, 'tag' => 5), + "killerUnitTagRecycle" => array('type' => 43, 'tag' => 6), +], + 'Rogiel\StarReplay\Event\Tracker\UnitDiedEvent' +), +195 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "controlPlayerId" => array('type' => 1, 'tag' => 2), + "upkeepPlayerId" => array('type' => 1, 'tag' => 3), +], + 'Rogiel\StarReplay\Event\Tracker\UnitOwnerChangeEvent' +), +196 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), + "unitTypeName" => array('type' => 29, 'tag' => 2), +], + 'Rogiel\StarReplay\Event\Tracker\UnitTypeChangeEvent' +), +197 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "upgradeTypeName" => array('type' => 29, 'tag' => 1), + "count" => array('type' => 84, 'tag' => 2), +], + 'Rogiel\StarReplay\Event\Tracker\UpgradeEvent' +), +198 => new StructNode([ + "unitTagIndex" => array('type' => 6, 'tag' => 0), + "unitTagRecycle" => array('type' => 6, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\UnitDoneEvent' +), +199 => new ArrayNode( + new IntegerNode(10, 0), + 84, + 'Rogiel\StarReplay\Event\Tracker\UnitPositions' + +), +200 => new StructNode([ + "firstUnitIndex" => array('type' => 6, 'tag' => 0), + "items" => array('type' => 199, 'tag' => 1), +], + 'Rogiel\StarReplay\Event\Tracker\UnitPositionsEvent' +), +201 => new StructNode([ + "playerId" => array('type' => 1, 'tag' => 0), + "type" => array('type' => 6, 'tag' => 1), + "userId" => array('type' => 43, 'tag' => 2), + "slotId" => array('type' => 43, 'tag' => 3), +], + 'Rogiel\StarReplay\Event\Tracker\PlayerSetupEvent' +), +] +); +Version44401::$GAME_EVENT_MAPPING = [ + 5 => 78, + 7 => 77, + 9 => 70, + 10 => 72, + 11 => 73, + 12 => 74, + 13 => 76, + 14 => 81, + 21 => 82, + 22 => 78, + 23 => 78, + 25 => 83, + 26 => 87, + 27 => 97, + 28 => 105, + 29 => 106, + 30 => 108, + 31 => 110, + 32 => 111, + 33 => 114, + 34 => 115, + 35 => 116, + 36 => 117, + 37 => 118, + 38 => 119, + 39 => 120, + 40 => 121, + 41 => 122, + 43 => 127, + 44 => 78, + 45 => 132, + 46 => 139, + 47 => 140, + 48 => 141, + 49 => 145, + 50 => 78, + 51 => 128, + 52 => 78, + 53 => 129, + 54 => 78, + 55 => 131, + 56 => 135, + 57 => 146, + 58 => 149, + 59 => 150, + 60 => 151, + 61 => 152, + 62 => 153, + 63 => 78, + 64 => 154, + 65 => 155, + 66 => 156, + 67 => 167, + 68 => 78, + 69 => 78, + 70 => 157, + 71 => 158, + 72 => 159, + 73 => 78, + 74 => 78, + 75 => 161, + 76 => 160, + 77 => 78, + 78 => 78, + 79 => 162, + 80 => 78, + 81 => 78, + 82 => 163, + 83 => 164, + 84 => 164, + 85 => 129, + 86 => 78, + 87 => 78, + 88 => 165, + 89 => 166, + 90 => 168, + 91 => 169, + 92 => 171, + 93 => 128, + 94 => 172, + 95 => 173, + 96 => 78, + 97 => 174, + 98 => 175, + 99 => 176, + 100 => 177, + 101 => 178, + 102 => 179, + 103 => 181, + 104 => 182, + 105 => 183, + 106 => 136, + 107 => 137, + 108 => 138, + 109 => 184, + 110 => 185, + 111 => 78, + 112 => 186, +]; +Version44401::$MESSAGE_EVENT_MAPPING = [ + 0 => 187, + 1 => 188, + 2 => 189, + 3 => 78, + 4 => 190, +]; +Version44401::$TRACKER_EVENT_MAPPING = [ + 0 => 192, + 1 => 193, + 2 => 194, + 3 => 195, + 4 => 196, + 5 => 197, + 6 => 193, + 7 => 198, + 8 => 200, + 9 => 201, +]; diff --git a/src/Version/Versions.php b/src/Version/Versions.php index e4c3c41..26d397d 100644 --- a/src/Version/Versions.php +++ b/src/Version/Versions.php @@ -61,9 +61,26 @@ class Versions { 34835 => 'Rogiel\StarReplay\Version\Version34835', 36442 => 'Rogiel\StarReplay\Version\Version36442', 38215 => 'Rogiel\StarReplay\Version\Version38215', + 38535 => 'Rogiel\StarReplay\Version\Version38535', + 38624 => 'Rogiel\StarReplay\Version\Version38624', 38749 => 'Rogiel\StarReplay\Version\Version38749', 38996 => 'Rogiel\StarReplay\Version\Version38996', - 39576 => 'Rogiel\StarReplay\Version\Version39576' + 39117 => 'Rogiel\StarReplay\Version\Version39117', + 39576 => 'Rogiel\StarReplay\Version\Version39576', + 39948 => 'Rogiel\StarReplay\Version\Version39948', + 40384 => 'Rogiel\StarReplay\Version\Version40384', + 40977 => 'Rogiel\StarReplay\Version\Version40977', + 41128 => 'Rogiel\StarReplay\Version\Version41128', + 41219 => 'Rogiel\StarReplay\Version\Version41219', + 41743 => 'Rogiel\StarReplay\Version\Version41743', + 41973 => 'Rogiel\StarReplay\Version\Version41973', + 42253 => 'Rogiel\StarReplay\Version\Version42253', + 42932 => 'Rogiel\StarReplay\Version\Version42932', + 43199 => 'Rogiel\StarReplay\Version\Version43199', + 43478 => 'Rogiel\StarReplay\Version\Version43478', + 44169 => 'Rogiel\StarReplay\Version\Version44169', + 44293 => 'Rogiel\StarReplay\Version\Version44293', + 44401 => 'Rogiel\StarReplay\Version\Version44401' ]; }