package ls_structs import "eq2emu/internal/common" // LoginResponse for client version 1 type LoginResponseV1 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 uint16 `eq2:"int16"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 uint16 `eq2:"int16"` Unknown07 uint8 `eq2:"int8"` Unknown08 uint8 `eq2:"int8"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint8 `eq2:"int8"` Unknown11 uint32 `eq2:"int32"` Unknown12 uint8 `eq2:"int8"` } // LoginResponse for client version 546 type LoginResponseV546 struct { ReplyCode uint8 `eq2:"int8"` Unknown uint16 `eq2:"int16"` Unknown01 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown15 []uint8 `eq2:"int8,len=11"` Unknown02 uint8 `eq2:"int8"` } // LoginResponse for client version 561 type LoginResponseV561 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 []uint8 `eq2:"int8,len=22"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 []uint8 `eq2:"int8,len=7"` Unknown07 uint32 `eq2:"int32"` Unknown08 uint32 `eq2:"int32"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint32 `eq2:"int32"` } // LoginResponse for client version 1096 type LoginResponseV1096 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 []uint8 `eq2:"int8,len=22"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 []uint8 `eq2:"int8,len=7"` Unknown07 uint32 `eq2:"int32"` Unknown08 uint32 `eq2:"int32"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint32 `eq2:"int32"` } // LoginResponse for client version 1144 type LoginResponseV1144 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 []uint8 `eq2:"int8,len=22"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 []uint8 `eq2:"int8,len=15"` Unknown07 uint32 `eq2:"int32"` Unknown08 uint32 `eq2:"int32"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint32 `eq2:"int32"` } // LoginResponse for client version 1153 type LoginResponseV1153 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 []uint8 `eq2:"int8,len=22"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 []uint8 `eq2:"int8,len=7"` Unknown07 uint32 `eq2:"int32"` Unknown08 uint32 `eq2:"int32"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint32 `eq2:"int32"` Unknown11 uint32 `eq2:"int32"` } // LoginResponse for client version 1193 type LoginResponseV1193 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 []uint8 `eq2:"int8,len=22"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 []uint8 `eq2:"int8,len=7"` Unknown07 uint32 `eq2:"int32"` Unknown08 uint32 `eq2:"int32"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint32 `eq2:"int32"` Unknown11 uint32 `eq2:"int32"` Unknown12 uint16 `eq2:"int16"` } // ClassItems represents class-specific starting items type ClassItems struct { ClassID uint8 `eq2:"int8"` NumItems uint8 `eq2:"int8"` StartingItems []StartingItem `eq2:"array,arraysize=NumItems"` } // LoginResponse for client version 60100 - most complex version type LoginResponseV60100 struct { LoginResponse uint8 `eq2:"int8"` Unknown common.EQ2String16 `eq2:"string16"` ParentalControlFlag uint8 `eq2:"int8"` ParentalControlTimer uint32 `eq2:"int32"` Unknown2 []uint8 `eq2:"int8,len=8"` AccountID uint32 `eq2:"int32"` Unknown3 common.EQ2String16 `eq2:"string16"` ResetAppearance uint8 `eq2:"int8"` DoNotForceSoga uint8 `eq2:"int8"` Unknown4 uint8 `eq2:"int8"` Unknown5 uint16 `eq2:"int16"` Unknown6 []uint8 `eq2:"int8,len=5"` Unknown7 uint32 `eq2:"int32"` Unknown7a uint16 `eq2:"int16"` RaceUnknown uint8 `eq2:"int8"` Unknown8 []uint8 `eq2:"int8,len=3"` Unknown9 []uint8 `eq2:"int8,len=3"` Unknown10 uint8 `eq2:"int8"` NumClassItems uint8 `eq2:"int8,ifvariableset=Unknown10"` ClassItems []ClassItems `eq2:"array,arraysize=NumClassItems,ifvariableset=Unknown10"` UnknownArray2Size uint8 `eq2:"int8"` UnknownArray2 []UnknownArray2Item `eq2:"array,arraysize=UnknownArray2Size"` Unknown11 uint32 `eq2:"int32"` SubLevel uint32 `eq2:"int32"` RaceFlag uint32 `eq2:"int32"` ClassFlag uint32 `eq2:"int32"` Password common.EQ2String16 `eq2:"string16"` Username common.EQ2String16 `eq2:"string16"` Service common.EQ2String16 `eq2:"string16"` Unknown12 uint8 `eq2:"int8"` Lvl90NumClassItems uint8 `eq2:"int8,ifvariableset=Unknown12"` Lvl90ClassItems []ClassItems `eq2:"array,arraysize=Lvl90NumClassItems,ifvariableset=Unknown12"` Unknown13 uint8 `eq2:"int8"` TimeLockedNumClassItems uint8 `eq2:"int8,ifvariableset=Unknown13"` TimeLockedClassItems []ClassItems `eq2:"array,arraysize=TimeLockedNumClassItems,ifvariableset=Unknown13"` Unknown14 []uint8 `eq2:"int8,len=13"` } // LoginResponse for client version 57048 type LoginResponseV57048 struct { ReplyCode uint8 `eq2:"int8"` Unknown01 []uint8 `eq2:"int8,len=22"` Unknown02 uint8 `eq2:"int8"` Unknown03 int32 `eq2:"sint32"` Unknown04 int32 `eq2:"sint32"` Unknown05 int32 `eq2:"sint32"` AccountID uint32 `eq2:"int32"` Unknown06 []uint8 `eq2:"int8,len=7"` Unknown07 uint32 `eq2:"int32"` Unknown08 uint32 `eq2:"int32"` Unknown09 uint32 `eq2:"int32"` Unknown10 uint32 `eq2:"int32"` Unknown11 uint32 `eq2:"int32"` Unknown12 []uint32 `eq2:"int32,len=5"` }