Giter Site home page Giter Site logo

hots_battlelobby's Introduction

HOTS battlelobby

Structure of "replay.server.battlelobby" for Heroes of the storm replay. All others file can be found at https://github.com/Blizzard/heroprotocol

Visualization for last version (array of Byte is byte aligned):

  record[:0 + 0]
    Attributes: record[:0 + 0]
      m_cacheFileNames: array [:6 + 0] of array [:10 + 0] of Byte
      m_cacheHandles: array [:6 + 0] of record[:0 + 0]
          m_FileType: array [:0 + 4] of Byte
          m_Realm: array [:0 + 4] of Byte
          m_SHA256Hash: array [:0 + 32] of Byte
        end
      EnabledAttributes: array [:9 + 0] of record[:0 + 0]
          Namespace: Integer(:32 + 0)
          AttrId: Integer(:32 + 0)
          SupportedValues: array [:12 + 0] of record[:0 + 0]
              ValueName: array [:0 + 32] of bit
              first: Optional:1 of (record[:0 + 0]
                  f32: Optional:1 of (Integer(:32 + 0))
                  NewField6: Integer(:6 + 0)
                  word: Integer(:16 + 0)
                end)
              second: Optional:1 of (record[:0 + 0]
                  f32: Optional:1 of (Integer(:32 + 0))
                  NewField6: Integer(:6 + 0)
                  word: Integer(:16 + 0)
                end)
              f70: Optional:1 of (record[:0 + 0]
                  NewField6: Integer(:6 + 0)
                  NewField32: Integer(:32 + 0)
                  NewField16: Integer(:16 + 0)
                  NewField16: Integer(:16 + 0)
                end)
              f1: Boolean:1
              f1: Boolean:1
              f1: Boolean:1
            end
          EnabledWithAttribs: Optional:1 of (record[:0 + 0]
              NewField25: array [:0 + 25] of bit
              AttribsValues: array [:5 + 0] of record[:0 + 0]
                  NewField5: array [:0 + 5] of bit
                  Namespace: Integer(:32 + 0)
                  AttrId: Integer(:32 + 0)
                  Values: array [:12 + 0] of array [:0 + 32] of bit
                end
            end)
          _end: record[:0 + 0]
            NewField5: array [:0 + 5] of bit
            NewField5: array [:0 + 5] of bit
            NewField5: array [:0 + 5] of bit
            NewField: array [:0 + 32] of bit
            a170: array [:8 + 0] of record[:0 + 0]
                b5: array [:0 + 5] of bit
                b165: array [:0 + 165] of bit
                b15: array [:0 + 15] of bit
              end
            NewField: record[:0 + 0]
              b11: array [:0 + 11] of bit
              f1: Boolean:1
              b9: array [:0 + 9] of bit
            end
          end
        end
    end
    PlayerSelectedAttributes: record[:0 + 0]
      NewField: array [:0 + 30] of bit
      NewField: Integer(:16 + 0)
      NewField: array [:0 + 81] of bit
      Attributes: array [:9 + 0] of record[:0 + 0]
          Namespace: Integer(:32 + 0)
          AttrId: Integer(:32 + 0)
          Values: case (:8 + 0) of
            GlobalValue(0): record[:0 + 0]
              ValueIndex: array [:0 + 11] of bit
              IsSet: Boolean:1
            end
            ByPlayerValue(1): array [:5 + 0] of record[:0 + 0]
                ValueIndex: array [:0 + 11] of bit
                IsSet: Boolean:1
              end
          end
        end
    end
    Locales: record[:0 + 0]
      s2mv: array [:6 + 0] of record[:0 + 0]
          m_FileType: array [:0 + 4] of Byte
          m_Realm: array [:0 + 4] of Byte
          m_SHA256Hash: array [:0 + 32] of Byte
        end
      Langs: array [:5 + 0] of record[:0 + 0]
          Lang: array [:0 + 32] of bit
          s2ml: array [:6 + 0] of record[:0 + 0]
              m_FileType: array [:0 + 4] of Byte
              m_Realm: array [:0 + 4] of Byte
              m_SHA256Hash: array [:0 + 32] of Byte
            end
        end
      fil: array [:0 + 128] of bit
      UsedMods: array [:5 + 0] of record[:0 + 0]
          ModId: record[:0 + 0]
            id: Integer(:32 + 0)
            ofs: Integer(:32 + 0)
          end
          Priority: array [:0 + 4] of bit
        end
    end
    ModParams: array [:7 + 0] of record[:0 + 0]
        ModId: record[:0 + 0]
          id: Integer(:32 + 0)
          ofs: Integer(:32 + 0)
        end
        n16: Integer(:16 + 0)
        n16: Integer(:16 + 0)
        n24: Integer(:24 + 0)
        n7: Integer(:7 + 0)
        n15: Integer(:15 + 0)
        f2: array [:0 + 2] of bit
        fil: array [:0 + 74] of bit
        s2mv: array [:6 + 0] of record[:0 + 0]
            m_FileType: array [:0 + 4] of Byte
            m_Realm: array [:0 + 4] of Byte
            m_SHA256Hash: array [:0 + 32] of Byte
          end
        flag: Boolean:1
        m_stringToon: record[:0 + 0]
          m_region: Integer(:8 + 0)
          m_programId: array [:0 + 32] of bit
          m_realm: Integer(:32 + 0)
          m_globalName: array [:7 + 2] of Byte
        end
        m_toon: record[:0 + 0]
          m_region: Integer(:8 + 0)
          m_programId: array [:0 + 32] of bit
          m_realm: Integer(:32 + 0)
          m_id: Integer(:64 + 0)
        end
        trttt: record[:0 + 0]
          b32: Optional:1 of (array [:0 + 32] of bit)
          b23: Optional:1 of (array [:0 + 23] of bit)
          b1: Boolean:1
          b32: Optional:1 of (array [:0 + 32] of bit)
          b3: array [:0 + 3] of bit
          b30: Integer(:30 + 0)
          b3: array [:0 + 3] of bit
        end
        filler: record[:0 + 0]
          word: array [:0 + 16] of bit
          b8: array [:0 + 8] of bit
          b8: array [:0 + 8] of bit
          b34: array [:0 + 34] of bit
          f54: Optional:1 of (array [:0 + 54] of bit)
          b1: Boolean:1
          b5: array [:0 + 5] of bit
          b5: array [:0 + 5] of bit
          b5: array [:0 + 5] of bit
        end
        bbbb: record[:0 + 0]
          ModId: record[:0 + 0]
            id: Integer(:32 + 0)
            ofs: Integer(:32 + 0)
          end
          n32: Integer(:32 + 0)
          f: Boolean:1
          n21: Integer(:21 + 0)
          CAFEBABE: Integer(:32 + 0)
        end
        fil28: Integer(:28 + 0)
        fil: array [:0 + 36] of bit
        hero: Optional:1 of (record[:0 + 0]
            b11: array [:0 + 11] of bit
            a93: array [:4 + 0] of record[:0 + 0]
                num: Integer(:6 + 0)
                b32: Integer(:32 + 0)
                b16: Integer(:16 + 0)
                b16: Integer(:16 + 0)
                b23: Integer(:23 + 0)
              end
            b4: array [:0 + 4] of bit
            a8*5: case (:4 + 0) of
              None(0): array [:0 + 0] of bit
              None(1): array [:0 + 0] of bit
              None(2): array [:0 + 0] of bit
              None(3): array [:0 + 0] of bit
              None(4): array [:0 + 0] of bit
              Data(5): record[:0 + 0]
                b40: array [:0 + 40] of bit
                b16: array [:0 + 16] of bit
                b79: array [:0 + 79] of bit
                b160: array [:0 + 160] of bit
                b105: array [:0 + 105] of bit
              end
            end
            a23: array [:7 + 0] of array [:0 + 23] of bit
            b11: array [:0 + 11] of bit
            bb: Optional:1 of (record[:0 + 0]
                b38: array [:0 + 38] of bit
                b16: Integer(:16 + 0)
                b16: Integer(:16 + 0)
              end)
            b1: Boolean:1
            hero: array [:5 + 0] of array [:0 + 32] of bit
            b23: array [:0 + 23] of bit
          end)
        ModDependencies: array [:6 + 0] of record[:0 + 0]
            id: Integer(:32 + 0)
            ofs: Integer(:32 + 0)
          end
        fil: array [:0 + 32] of bit
      end
    s2mh: array [:6 + 0] of record[:0 + 0]
        m_FileType: array [:0 + 4] of Byte
        m_Realm: array [:0 + 4] of Byte
        m_SHA256Hash: array [:0 + 32] of Byte
      end
    skins: array [:16 + 0] of array [:0 + 64] of bit
    hasSkins: array [:32 + 0] of array [:0 + 256] of bit
    InitData: record[:0 + 0]
      m_disabledHeroList: array [:8 + 0] of array [:0 + 32] of bit
      m_randomSeed: Integer(:32 + 0)
      unk: Integer(:32 + 0)
    end
    playersInfo: array [:5 + 0] of record[:0 + 0]
        m_Unk1: record[:0 + 0]
          m_Unk1: array [:0 + 32] of bit
          m_SlotId: Integer(:5 + 0)
          m_toon: record[:0 + 0]
            m_region: Integer(:8 + 0)
            m_programId: array [:0 + 32] of bit
            m_realm: Integer(:32 + 0)
            m_id: Integer(:64 + 0)
          end
          m_Name: record[:0 + 0]
            m_stringToon: record[:0 + 0]
              m_region: Integer(:8 + 0)
              m_programId: array [:0 + 32] of bit
              m_realm: Integer(:32 + 0)
              m_globalName: array [:7 + 2] of Byte
            end
            m_Flags: Boolean:1
          end
          m_Unk4: array [:0 + 2] of bit
          m_SecName: Optional:1 of (record[:0 + 0]
              m_Unk1: array [:0 + 2] of bit
              m_stringToon: record[:0 + 0]
                m_region: Integer(:8 + 0)
                m_programId: array [:0 + 32] of bit
                m_realm: Integer(:32 + 0)
                m_globalName: array [:7 + 2] of Byte
              end
              m_Flags: Boolean:1
            end)
        end
        m_Unk2: array [:0 + 198] of bit
        m_Unk3: Optional:1 of (array [:0 + 64] of bit)
        m_Unk4: record[:0 + 0]
          m_UnkFlags: array [:0 + 4] of bit
          m_build: Integer(:32 + 0)
          m_Skins: case (:1 + 0) of
            m_Skins(0): record[:0 + 0]
              m_Skins: array [:12 + 0] of bit
              unk: Boolean:1
            end
            none(1): array [:0 + 0] of bit
          end
          m_hasSilencePenalty: Boolean:1
          unk2: Boolean:1
          m_hasVoiceSilencePenalty: Boolean:1
          m_isBlizzardStaff: Boolean:1
        end
        m_PartyInfo: Optional:1 of (array [:0 + 64] of bit)
        m_TagInfo: Optional:1 of (array [:7 + 0] of Byte)
        m_PlayerLevel: Integer(:32 + 0)
        m_hasActiveBoost: Boolean:1
      end
    _end: record[:0 + 0]
      sss: array [:0 + 64] of bit
      m_toon: case (:1 + 0) of
        filler(0): array [:0 + 16] of bit
        m_toon(1): record[:0 + 0]
          m_region: Integer(:8 + 0)
          m_programId: array [:0 + 32] of bit
          m_realm: Integer(:32 + 0)
          m_ammId: array [:0 + 32] of bit
          unk: array [:0 + 32] of bit
        end
      end
      b87: array [:0 + 87] of bit
      a38: array [:4 + 1] of array [:0 + 38] of bit
      unk: Boolean:1
      Neut: array [:4 + 1] of array [:0 + 32] of bit
      Hero: array [:5 + 0] of record[:0 + 0]
          b32: Integer(:32 + 0)
          HeroIcon: array [:11 + 0] of record[:0 + 0]
              Hero: array [:0 + 32] of bit
              ICON: array [:0 + 32] of bit
              b32: Integer(:32 + 0)
            end
          b11: array [:0 + 11] of bit
        end
      CSTM: array [:6 + 0] of array [:0 + 32] of bit
      a48: array [:5 + 0] of record[:0 + 0]
          b32: Integer(:32 + 0)
          b16: array [:0 + 16] of bit
        end
      b23: array [:0 + 23] of bit
      b32: array [:0 + 32] of bit
      _end_filler: array [:0 + 10] of bit
      b32: array [:0 + 32] of bit
      AllHeroes: array [:10 + 0] of record[:0 + 0]
          Name: array [:0 + 32] of bit
          b5: array [:0 + 5] of bit
          b128: array [:0 + 128] of bit
        end
      NewField: array [:0 + 2] of bit
    end
  end

hots_battlelobby's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.