implement more substructs
This commit is contained in:
parent
15dab24125
commit
fcb6a82135
67
internal/packets/substructs/AASpellInfo.go
Normal file
67
internal/packets/substructs/AASpellInfo.go
Normal file
@ -0,0 +1,67 @@
|
||||
package substructs
|
||||
|
||||
import "eq2emu/internal/common"
|
||||
|
||||
// AASpellInfo client version 1193
|
||||
type AASpellInfo struct {
|
||||
ID uint32 `eq2:"int32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Icon2 uint16 `eq2:"int16"`
|
||||
IconType uint16 `eq2:"int16"`
|
||||
Version uint16 `eq2:"int16"`
|
||||
SubVersion uint16 `eq2:"int16"`
|
||||
Type uint8 `eq2:"int8"`
|
||||
ClassSkill uint32 `eq2:"int32"`
|
||||
MasterySkill uint32 `eq2:"int32"`
|
||||
MinClassSkillReq uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SpellTextColor uint32 `eq2:"int32"`
|
||||
Unknown605MJ3 uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
HealthReq uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
HealthUpkeep uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
PowerReq uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
PowerUpkeep uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ReqConcentration uint16 `eq2:"int16"`
|
||||
Unknown uint16 `eq2:"int16"`
|
||||
CastTime uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
Recovery uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
Recast float32 `eq2:"float"`
|
||||
Radius float32 `eq2:"float"`
|
||||
MaxAoeTargets uint16 `eq2:"int16"`
|
||||
FriendlySpell uint8 `eq2:"int8"`
|
||||
NumReagents uint8 `eq2:"int8"`
|
||||
ReagentArray []AASpellReagent `eq2:"array,arraysize=NumReagents"`
|
||||
NumEffects uint8 `eq2:"int8"`
|
||||
EffectArray []AASpellEffect `eq2:"array,arraysize=NumEffects"`
|
||||
DisplaySpellTier uint8 `eq2:"int8"`
|
||||
Unknown1 uint8 `eq2:"int8"`
|
||||
MinimumRange float32 `eq2:"float"`
|
||||
Range float32 `eq2:"float"`
|
||||
Duration1 uint32 `eq2:"int32"`
|
||||
Duration2 uint32 `eq2:"int32"`
|
||||
Unknown9 uint8 `eq2:"int8"`
|
||||
DurationFlag uint8 `eq2:"int8"`
|
||||
Target uint8 `eq2:"int8"`
|
||||
CanEffectRaid uint8 `eq2:"int8"`
|
||||
AffectOnlyGroupMembers uint8 `eq2:"int8"`
|
||||
GroupSpell uint8 `eq2:"int8"`
|
||||
Resistibility float32 `eq2:"float"`
|
||||
Unknown11 []uint8 `eq2:"int8,len=7"`
|
||||
HitBonus float32 `eq2:"float"`
|
||||
Unknown12 uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
Unknown605MJ6 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type AASpellReagent struct {
|
||||
Reagent common.EQ2String8 `eq2:"string8"`
|
||||
Consumed uint8 `eq2:"int8"`
|
||||
QtyRequired uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
type AASpellEffect struct {
|
||||
SubBulletFlag uint8 `eq2:"int8"`
|
||||
Effect common.EQ2String16 `eq2:"string16"`
|
||||
Percentage uint8 `eq2:"int8"`
|
||||
}
|
304
internal/packets/substructs/BaseItemDescription.go
Normal file
304
internal/packets/substructs/BaseItemDescription.go
Normal file
@ -0,0 +1,304 @@
|
||||
package substructs
|
||||
|
||||
import "eq2emu/internal/common"
|
||||
|
||||
// BaseItemDescription Version 1
|
||||
type BaseItemDescriptionV1 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String16 `eq2:"string16"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillRecommended uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
}
|
||||
|
||||
// BaseItemDescription Version 373
|
||||
type BaseItemDescriptionV373 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String16 `eq2:"string16"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillRecommended uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
}
|
||||
|
||||
// BaseItemDescription Version 546
|
||||
type BaseItemDescriptionV546 struct {
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BrokerItemID uint64 `eq2:"int64"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint32 `eq2:"int32"`
|
||||
Unknown81 []uint8 `eq2:"int8,len=15"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatV546 `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringV546 `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseItemDescription Version 1096
|
||||
type BaseItemDescriptionV1096 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BrokerItemID uint64 `eq2:"int64"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
ItemCRC int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint16 `eq2:"int16"`
|
||||
Flags2 uint16 `eq2:"int16"`
|
||||
Unknown81096 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatV1096 `eq2:"array,arraysize=StatCount"`
|
||||
StatUnknown uint8 `eq2:"int8"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringV1096 `eq2:"array,arraysize=StatStringCount"`
|
||||
Unknown19 uint16 `eq2:"int16"`
|
||||
Unknown20 uint16 `eq2:"int16"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseItemDescription Version 1188
|
||||
type BaseItemDescriptionV1188 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BrokerItemID uint64 `eq2:"int64"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
ItemCRC int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint16 `eq2:"int16"`
|
||||
Flags2 uint16 `eq2:"int16"`
|
||||
Unknown81188 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatV1188 `eq2:"array,arraysize=StatCount"`
|
||||
StatUnknown uint8 `eq2:"int8"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringV1188 `eq2:"array,arraysize=StatStringCount"`
|
||||
Unknown19 uint16 `eq2:"int16"`
|
||||
Unknown20 uint16 `eq2:"int16"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseItemDescription Version 1208
|
||||
type BaseItemDescriptionV1208 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BrokerItemID uint64 `eq2:"int64"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
ItemCRC int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint16 `eq2:"int16"`
|
||||
Flags2 uint16 `eq2:"int16"`
|
||||
Unknown81208 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatV1208 `eq2:"array,arraysize=StatCount"`
|
||||
StatUnknown uint8 `eq2:"int8"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringV1208 `eq2:"array,arraysize=StatStringCount"`
|
||||
Unknown19 uint16 `eq2:"int16"`
|
||||
Unknown20 uint16 `eq2:"int16"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseItemDescription Version 63119
|
||||
type BaseItemDescriptionV63119 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BrokerItemID uint64 `eq2:"int64"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
ItemCRC int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint16 `eq2:"int16"`
|
||||
Flags2 uint16 `eq2:"int16"`
|
||||
Unknown863119 []uint8 `eq2:"int8,len=17"`
|
||||
StatUnknown uint8 `eq2:"int8"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringV63119 `eq2:"array,arraysize=StatStringCount"`
|
||||
Unknown19 uint16 `eq2:"int16"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatV63119 `eq2:"array,arraysize=StatCount"`
|
||||
Unknown20 uint8 `eq2:"int8"`
|
||||
ModCount uint8 `eq2:"int8"`
|
||||
ModArray []BaseItemMod `eq2:"array,arraysize=ModCount"`
|
||||
Unknown21 []uint8 `eq2:"int8,len=4"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// Common nested structs for BaseItemDescription
|
||||
type BaseItemStat struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
Value int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type BaseItemStatV546 struct {
|
||||
StatType uint8 `eq2:"int8"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
Value int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type BaseItemStatV1096 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type BaseItemStatV1188 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
StatUnknown uint8 `eq2:"int8,ifequals=stat_type_%i"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
StatLevel uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type BaseItemStatV1208 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
StatUnknown uint8 `eq2:"int8,ifequals=stat_type_%i"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
StatLevel any `eq2:"int16,type2=int8,type2criteria=stat_name!>2"`
|
||||
}
|
||||
|
||||
type BaseItemStatV63119 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||
Value any `eq2:"float,type2=sint32,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
StatLevel any `eq2:"int16,type2=int8,type2criteria=stat_name!>2"`
|
||||
Value2 any `eq2:"float,type2=sint32,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
}
|
||||
|
||||
type BaseItemStatString struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
AdornmentFlag uint8 `eq2:"int8"`
|
||||
AdornmentArray []AdornmentUnknown `eq2:"array,arraysize=AdornmentFlag"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringV546 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringV1096 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
StatStringUnknown uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringV1188 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
StatStringUnknown uint8 `eq2:"int8"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringV1208 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
StatStringUnknown uint8 `eq2:"int8"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringV63119 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
StatStringUnknown uint8 `eq2:"int8"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type AdornmentUnknown struct {
|
||||
AdornmentUnknown uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type BaseItemClass struct {
|
||||
AdventureClass uint8 `eq2:"int8"`
|
||||
TradeskillClass uint8 `eq2:"int8"`
|
||||
Level uint16 `eq2:"int16"`
|
||||
}
|
||||
|
||||
type BaseItemMod struct {
|
||||
ModString common.EQ2String8 `eq2:"string8"`
|
||||
ModNeed uint8 `eq2:"int8"`
|
||||
ModHave uint8 `eq2:"int8,ifvariableset=header_info_mod_need_0"`
|
||||
ModUnknown []uint8 `eq2:"int8,len=2"`
|
||||
}
|
26
internal/packets/substructs/BaseItemDescriptionGeneric.go
Normal file
26
internal/packets/substructs/BaseItemDescriptionGeneric.go
Normal file
@ -0,0 +1,26 @@
|
||||
package substructs
|
||||
|
||||
import "eq2emu/internal/common"
|
||||
|
||||
// BaseItemDescriptionGeneric Version 373
|
||||
type BaseItemDescriptionGeneric struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String16 `eq2:"string16"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SkillRecommended uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
}
|
21
internal/packets/substructs/BaseItemDescriptionInspect.go
Normal file
21
internal/packets/substructs/BaseItemDescriptionInspect.go
Normal file
@ -0,0 +1,21 @@
|
||||
package substructs
|
||||
|
||||
import "eq2emu/internal/common"
|
||||
|
||||
// BaseItemDescriptionInspect Version 373
|
||||
type BaseItemDescriptionInspect struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String16 `eq2:"string16"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
Unknown []uint8 `eq2:"int8,len=9"`
|
||||
}
|
161
internal/packets/substructs/BaseMerchantItemDescription.go
Normal file
161
internal/packets/substructs/BaseMerchantItemDescription.go
Normal file
@ -0,0 +1,161 @@
|
||||
package substructs
|
||||
|
||||
import "eq2emu/internal/common"
|
||||
|
||||
// BaseMerchantItemDescription Version 1
|
||||
type BaseMerchantItemDescriptionV1 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
Adornment common.EQ2String16 `eq2:"string16"`
|
||||
Unknown3 uint32 `eq2:"int32"`
|
||||
FirstDesc common.EQ2String16 `eq2:"string16"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint32 `eq2:"int32"`
|
||||
Unknown81M []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseMerchantItemDescription Version 860
|
||||
type BaseMerchantItemDescriptionV860 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
Adornment common.EQ2String16 `eq2:"string16"`
|
||||
Unknown3 []uint32 `eq2:"int32,len=2"`
|
||||
AdornmentDesc common.EQ2String16 `eq2:"string16"`
|
||||
UnknownDesc common.EQ2String16 `eq2:"string16"`
|
||||
FirstDesc common.EQ2String16 `eq2:"string16"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint32 `eq2:"int32"`
|
||||
Unknown8860M []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatMerchant860 `eq2:"array,arraysize=StatCount"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseMerchantItemDescription Version 1096
|
||||
type BaseMerchantItemDescriptionV1096 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
ItemCRC int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint16 `eq2:"int16"`
|
||||
Flags2 uint16 `eq2:"int16"`
|
||||
Unknown81096M []uint8 `eq2:"int8,len=17"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatMerchant1096 `eq2:"array,arraysize=StatCount"`
|
||||
StatUnknown uint8 `eq2:"int8"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringMerchant1096 `eq2:"array,arraysize=StatStringCount"`
|
||||
Unknown19 uint16 `eq2:"int16"`
|
||||
Unknown20 uint16 `eq2:"int16"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// BaseMerchantItemDescription Version 63119
|
||||
type BaseMerchantItemDescriptionV63119 struct {
|
||||
CreatorFlag uint8 `eq2:"int8"`
|
||||
Creator common.EQ2String8 `eq2:"string8"`
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
ItemCRC int32 `eq2:"sint32"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
Flags uint16 `eq2:"int16"`
|
||||
Flags2 uint16 `eq2:"int16"`
|
||||
Unknown8 []uint8 `eq2:"int8,len=21"`
|
||||
StatCount uint8 `eq2:"int8"`
|
||||
StatArray []BaseItemStatMerchant63119 `eq2:"array,arraysize=StatCount"`
|
||||
StatUnknown uint8 `eq2:"int8"`
|
||||
StatStringCount uint8 `eq2:"int8"`
|
||||
StatStringArray []BaseItemStatStringMerchant63119 `eq2:"array,arraysize=StatStringCount"`
|
||||
Unknown19 uint16 `eq2:"int16"`
|
||||
Unknown20 uint16 `eq2:"int16"`
|
||||
Condition uint8 `eq2:"int8"`
|
||||
Weight uint32 `eq2:"int32"`
|
||||
SkillReq1 uint32 `eq2:"int32"`
|
||||
SkillReq2 uint32 `eq2:"int32"`
|
||||
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
ClassCount uint8 `eq2:"int8"`
|
||||
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||
SlotCount uint8 `eq2:"int8"`
|
||||
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||
FooterType uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
// Merchant-specific stat structs
|
||||
type BaseItemStatMerchant860 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
Value int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type BaseItemStatMerchant1096 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type BaseItemStatMerchant63119 struct {
|
||||
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||
Value any `eq2:"float,type2=sint32,type2criteria=stat_type!=6"`
|
||||
StatName common.EQ2String8 `eq2:"string8"`
|
||||
StatLevel any `eq2:"int16,type2=int8,type2criteria=stat_name!>2"`
|
||||
Value2 float32 `eq2:"float"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringMerchant1096 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
StatStringUnknown uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type BaseItemStatStringMerchant63119 struct {
|
||||
StatString common.EQ2String8 `eq2:"string8"`
|
||||
StatStringUnknown uint8 `eq2:"int8"`
|
||||
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||
}
|
193
internal/packets/substructs/GroupMember.go
Normal file
193
internal/packets/substructs/GroupMember.go
Normal file
@ -0,0 +1,193 @@
|
||||
package substructs
|
||||
|
||||
// GroupMember Version 1
|
||||
type GroupMemberV1 struct {
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Name []byte `eq2:"char,len=16"`
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
HPMax int32 `eq2:"sint32"`
|
||||
HPCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// GroupMember Version 373
|
||||
type GroupMemberV373 struct {
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Name []byte `eq2:"char,len=16"`
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
HPCurrent int32 `eq2:"sint32"`
|
||||
HPMax int32 `eq2:"sint32"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// GroupMember Version 546
|
||||
type GroupMemberV546 struct {
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Name []byte `eq2:"char,len=41"`
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
HPCurrent int32 `eq2:"sint32"`
|
||||
HPMax int32 `eq2:"sint32"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
Zone []byte `eq2:"char,len=60"`
|
||||
Instance uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// GroupMember Version 562
|
||||
type GroupMemberV562 struct {
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
HPCurrent int32 `eq2:"sint32"`
|
||||
HPMax int32 `eq2:"sint32"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
Name []byte `eq2:"char,len=41"`
|
||||
Zone []byte `eq2:"char,len=60"`
|
||||
Instance uint8 `eq2:"int8"`
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Unknown4 uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
CurseCount uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
}
|
||||
|
||||
// GroupMember Version 1188
|
||||
type GroupMemberV1188 struct {
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
HPCurrent int32 `eq2:"sint32"`
|
||||
HPMax int32 `eq2:"sint32"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
Name []byte `eq2:"char,len=41"`
|
||||
Zone []byte `eq2:"char,len=60"`
|
||||
Instance uint8 `eq2:"int8"`
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Unknown4 uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
CurseCount uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||
}
|
||||
|
||||
// GroupMember Version 57048
|
||||
type GroupMemberV57048 struct {
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
HPCurrent int64 `eq2:"sint64"`
|
||||
HPMax int64 `eq2:"sint64"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
Name []byte `eq2:"char,len=41"`
|
||||
Zone []byte `eq2:"char,len=60"`
|
||||
Instance uint8 `eq2:"int8"`
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Unknown4 uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
CurseCount uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||
}
|
||||
|
||||
// GroupMember Version 61532
|
||||
type GroupMemberV61532 struct {
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
HPCurrent int64 `eq2:"sint64"`
|
||||
HPCurrent2 int64 `eq2:"sint64"`
|
||||
HPMax int32 `eq2:"sint32"`
|
||||
HPMax2 int32 `eq2:"sint32"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
Name []byte `eq2:"char,len=41"`
|
||||
Zone []byte `eq2:"char,len=60"`
|
||||
Instance uint8 `eq2:"int8"`
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Unknown4 uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
CurseCount uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||
}
|
||||
|
||||
// GroupMember Version 63167
|
||||
type GroupMemberV63167 struct {
|
||||
SpawnID uint32 `eq2:"int32"`
|
||||
PetID uint32 `eq2:"int32"`
|
||||
HPCurrent int64 `eq2:"sint64"`
|
||||
HPMax int64 `eq2:"sint64"`
|
||||
PowerCurrent int32 `eq2:"sint32"`
|
||||
PowerMax int32 `eq2:"sint32"`
|
||||
LevelCurrent uint16 `eq2:"int16"`
|
||||
LevelMax uint16 `eq2:"int16"`
|
||||
Name []byte `eq2:"char,len=41"`
|
||||
Zone []byte `eq2:"char,len=60"`
|
||||
Instance uint8 `eq2:"int8"`
|
||||
ZoneStatus uint8 `eq2:"int8"`
|
||||
Unknown4 uint16 `eq2:"int16"`
|
||||
RaceID uint8 `eq2:"int8"`
|
||||
ClassID uint8 `eq2:"int8"`
|
||||
TraumaCount uint8 `eq2:"int8"`
|
||||
ArcaneCount uint8 `eq2:"int8"`
|
||||
NoxiousCount uint8 `eq2:"int8"`
|
||||
ElementalCount uint8 `eq2:"int8"`
|
||||
CurseCount uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||
}
|
20
internal/packets/substructs/InfoTemplate.go
Normal file
20
internal/packets/substructs/InfoTemplate.go
Normal file
@ -0,0 +1,20 @@
|
||||
package substructs
|
||||
|
||||
// InfoTemplate Version 63119
|
||||
type InfoTemplate struct {
|
||||
NumTabs uint16 `eq2:"int16"`
|
||||
TabTemplateArray []TabTemplate `eq2:"array,arraysize=NumTabs"`
|
||||
}
|
||||
|
||||
type TabTemplate struct {
|
||||
TabNumber uint16 `eq2:"int16"`
|
||||
TabUnknown1 uint32 `eq2:"int32"`
|
||||
TemplateSize uint16 `eq2:"int16"`
|
||||
TemplateArray []TemplateData `eq2:"array,arraysize=TemplateSize"`
|
||||
}
|
||||
|
||||
type TemplateData struct {
|
||||
TemplatePos uint16 `eq2:"int16"`
|
||||
TemplateUnknown3 uint16 `eq2:"int16"`
|
||||
TemplateID uint32 `eq2:"int32"`
|
||||
}
|
207
internal/packets/substructs/Item.go
Normal file
207
internal/packets/substructs/Item.go
Normal file
@ -0,0 +1,207 @@
|
||||
package substructs
|
||||
|
||||
// Item Version 1
|
||||
type ItemV1 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Count uint8 `eq2:"int8"`
|
||||
Unknown uint8 `eq2:"int8"`
|
||||
Level uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=81"`
|
||||
}
|
||||
|
||||
// Item Version 373
|
||||
type ItemV373 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
Count uint8 `eq2:"int8"`
|
||||
Level uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 562
|
||||
type ItemV562 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint8 `eq2:"int8"`
|
||||
Unknown4 uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 893
|
||||
type ItemV893 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3b uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint8 `eq2:"int8"`
|
||||
Unknown4 uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 1193
|
||||
type ItemV1193 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3b uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint8 `eq2:"int8"`
|
||||
Unknown4 uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=18"`
|
||||
}
|
||||
|
||||
// Item Version 1205
|
||||
type ItemV1205 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3b uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint8 `eq2:"int8"`
|
||||
Unknown4 uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 57048
|
||||
type ItemV57048 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3b uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint16 `eq2:"int16"`
|
||||
Unknown4b uint8 `eq2:"int8"`
|
||||
Unknown4c uint8 `eq2:"int8"`
|
||||
ItemLevel uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 57107
|
||||
type ItemV57107 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3b uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint16 `eq2:"int16"`
|
||||
Unknown4b uint8 `eq2:"int8"`
|
||||
Unknown4c uint8 `eq2:"int8"`
|
||||
ItemLevel uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
BrokerID uint64 `eq2:"int64"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 63119
|
||||
type ItemV63119 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3 uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint16 `eq2:"int16"`
|
||||
Unknown4b uint8 `eq2:"int8"`
|
||||
Unknown4c uint8 `eq2:"int8"`
|
||||
ItemLevel uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
EmptySlots uint8 `eq2:"int8"`
|
||||
Unknown52 uint8 `eq2:"int8"`
|
||||
Unknown53 uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
BrokerID uint64 `eq2:"int64"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
||||
|
||||
// Item Version 63214 (latest)
|
||||
type ItemV63214 struct {
|
||||
UniqueID uint32 `eq2:"int32"`
|
||||
BagID uint32 `eq2:"int32"`
|
||||
InvSlotID uint32 `eq2:"int32"`
|
||||
MenuType uint32 `eq2:"int32"`
|
||||
Unknown3 uint32 `eq2:"int32"`
|
||||
Index uint16 `eq2:"int16"`
|
||||
Icon uint16 `eq2:"int16"`
|
||||
SlotID uint8 `eq2:"int8"`
|
||||
Count uint16 `eq2:"int16"`
|
||||
Unknown4b uint8 `eq2:"int8"`
|
||||
Unknown4c uint8 `eq2:"int8"`
|
||||
ItemLevel uint8 `eq2:"int8"`
|
||||
Tier uint8 `eq2:"int8"`
|
||||
NumSlots uint8 `eq2:"int8"`
|
||||
EmptySlots uint8 `eq2:"int8"`
|
||||
Unknown52 uint8 `eq2:"int8"`
|
||||
ItemID int32 `eq2:"sint32"`
|
||||
BrokerID uint64 `eq2:"int64"`
|
||||
Name []byte `eq2:"char,len=64"`
|
||||
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||
}
|
59
internal/packets/substructs/ItemDescription.go
Normal file
59
internal/packets/substructs/ItemDescription.go
Normal file
@ -0,0 +1,59 @@
|
||||
package substructs
|
||||
|
||||
// ItemDescription Version 1
|
||||
type ItemDescriptionV1 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV1 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// ItemDescription Version 373
|
||||
type ItemDescriptionV373 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV373 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// ItemDescription Version 546
|
||||
type ItemDescriptionV546 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV546 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// ItemDescription Version 1096
|
||||
type ItemDescriptionV1096 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV1096 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// ItemDescription Version 1188
|
||||
type ItemDescriptionV1188 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV1188 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// ItemDescription Version 1208
|
||||
type ItemDescriptionV1208 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV1208 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// ItemDescription Version 63119
|
||||
type ItemDescriptionV63119 struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionV63119 `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
// WSExamineInfoHeader - referenced by ItemDescription structs
|
||||
// This struct definition needs to be provided based on the actual WS_ExamineInfoHeader definition
|
||||
type WSExamineInfoHeader struct {
|
||||
// Fields need to be defined based on actual WS_ExamineInfoHeader structure
|
||||
// Placeholder - replace with actual fields
|
||||
Unknown1 uint32 `eq2:"int32"`
|
||||
Unknown2 uint16 `eq2:"int16"`
|
||||
}
|
8
internal/packets/substructs/ItemDescriptionGeneric.go
Normal file
8
internal/packets/substructs/ItemDescriptionGeneric.go
Normal file
@ -0,0 +1,8 @@
|
||||
package substructs
|
||||
|
||||
// ItemDescriptionGeneric Version 373
|
||||
type ItemDescriptionGeneric struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionGeneric `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
8
internal/packets/substructs/ItemDescriptionInspect.go
Normal file
8
internal/packets/substructs/ItemDescriptionInspect.go
Normal file
@ -0,0 +1,8 @@
|
||||
package substructs
|
||||
|
||||
// ItemDescriptionInspect Version 373
|
||||
type ItemDescriptionInspect struct {
|
||||
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||
Info BaseItemDescriptionInspect `eq2:"substruct"`
|
||||
ItemType uint8 `eq2:"int8"`
|
||||
}
|
818
internal/packets/substructs/ItemFooter.go
Normal file
818
internal/packets/substructs/ItemFooter.go
Normal file
@ -0,0 +1,818 @@
|
||||
package substructs
|
||||
|
||||
import "eq2emu/internal/common"
|
||||
|
||||
// Supporting structs for nested arrays
|
||||
type EffectItem struct {
|
||||
SubBulletFlag uint8 `eq2:"int8"`
|
||||
Effect common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type EffectItemV546 struct {
|
||||
SubBulletFlag uint8 `eq2:"int8"`
|
||||
Effect common.EQ2String16 `eq2:"string16"`
|
||||
Percentage uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SetStatItem struct {
|
||||
SetStatType uint8 `eq2:"int8"`
|
||||
SetStatSubtype uint8 `eq2:"int8"`
|
||||
SetValue int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||
SetStatName common.EQ2String8 `eq2:"string8"`
|
||||
}
|
||||
|
||||
type SetStatItemV1188 struct {
|
||||
SetStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SetStatSubtype uint16 `eq2:"int16,oversized=127,oversizedbyte=127,ifnotequals=set_stat_type_%i"`
|
||||
SetValue any `eq2:"float,type2=sint16,type2criteria=set_stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
SetStatName common.EQ2String8 `eq2:"string8"`
|
||||
SetStatUnknown uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SetStatItemV63119 struct {
|
||||
SetStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
SetStatSubtype uint16 `eq2:"int16,oversized=127,oversizedbyte=127,ifnotequals=set_stat_type_%i"`
|
||||
SetValue any `eq2:"float,type2=sint32,type2criteria=set_stat_type!=6"`
|
||||
SetStatName common.EQ2String8 `eq2:"string8"`
|
||||
SetStatUnknown uint32 `eq2:"int32"`
|
||||
SetStatUnknownMJ uint16 `eq2:"int16"`
|
||||
}
|
||||
|
||||
type SetEffectItem struct {
|
||||
SetSubBulletFlag uint8 `eq2:"int8"`
|
||||
SetEffect common.EQ2String16 `eq2:"string16"`
|
||||
SetPercentage uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SetBonusItem struct {
|
||||
SetNumNeeded uint8 `eq2:"int8"`
|
||||
SetStatCount uint8 `eq2:"int8"`
|
||||
SetStatArray []SetStatItem `eq2:"array,arraysize=SetStatCount"`
|
||||
NumSetEffects uint8 `eq2:"int8"`
|
||||
SetEffectArray []SetEffectItem `eq2:"array,arraysize=NumSetEffects"`
|
||||
}
|
||||
|
||||
type SetBonusItemV1188 struct {
|
||||
SetBonusItemsNeeded uint8 `eq2:"int8"`
|
||||
SetBonusStatsCount uint8 `eq2:"int8"`
|
||||
SetBonusStatsArray []SetStatItemV1188 `eq2:"array,arraysize=SetBonusStatsCount"`
|
||||
SetBonusEffectsCount uint8 `eq2:"int8"`
|
||||
SetBonusEffectsArray []SetBonusEffectItem `eq2:"array,arraysize=SetBonusEffectsCount"`
|
||||
}
|
||||
|
||||
type SetBonusItemV63119 struct {
|
||||
SetBonusItemsNeeded uint8 `eq2:"int8"`
|
||||
SetBonusStatsCount uint8 `eq2:"int8"`
|
||||
SetBonusStatsArray []SetStatItemV63119 `eq2:"array,arraysize=SetBonusStatsCount"`
|
||||
SetBonusEffectsCount uint8 `eq2:"int8"`
|
||||
SetBonusEffectsArray []SetBonusEffectItem `eq2:"array,arraysize=SetBonusEffectsCount"`
|
||||
}
|
||||
|
||||
type SetBonusEffectItem struct {
|
||||
SetBonusEffectSubBulletFlag uint8 `eq2:"int8"`
|
||||
SetBonusEffectText common.EQ2String16 `eq2:"string16"`
|
||||
SetBonusEffectPercentage uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SetItemsItem struct {
|
||||
SetItemsUnknown1 uint8 `eq2:"int8"`
|
||||
SetItemsUnknown2 uint8 `eq2:"int8"`
|
||||
SetItemName common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type AdornItem struct {
|
||||
AdornSlot uint8 `eq2:"int8"`
|
||||
AdornUnknown uint32 `eq2:"int32"`
|
||||
AdornName common.EQ2String16 `eq2:"string16"`
|
||||
AdornTimeLeft float32 `eq2:"float"`
|
||||
}
|
||||
|
||||
type AdornItemV1188 struct {
|
||||
AdornUnknown1 uint8 `eq2:"int8"`
|
||||
AdornSlot uint8 `eq2:"int8"`
|
||||
AdornUnknown2 []uint8 `eq2:"int8,len=2"`
|
||||
AdornItemID uint32 `eq2:"int32"`
|
||||
AdornName common.EQ2String16 `eq2:"string16"`
|
||||
AdornTimeLeft float32 `eq2:"float"`
|
||||
AdornUnknown3 uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
type AdornItemV63119 struct {
|
||||
AdornSlot uint8 `eq2:"int8"`
|
||||
AdornUnknown1 uint8 `eq2:"int8"`
|
||||
AdornUnknown2 []uint8 `eq2:"int8,len=2"`
|
||||
AdornItemID uint32 `eq2:"int32"`
|
||||
AdornName common.EQ2String16 `eq2:"string16"`
|
||||
AdornTimeLeft float32 `eq2:"float"`
|
||||
AdornUnknown3 uint32 `eq2:"int32"`
|
||||
}
|
||||
|
||||
type AdornStatItem struct {
|
||||
AdornStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
AdornStatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=adorn_stat_type_%i_%i"`
|
||||
AdornValue any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
AdornStatName common.EQ2String8 `eq2:"string8"`
|
||||
AdornStatLevel uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type AdornStatItemV63119 struct {
|
||||
AdornStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||
AdornStatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=adorn_stat_type_%i_%i"`
|
||||
AdornValue any `eq2:"float,type2=sint32,type2criteria=adorn_stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||
AdornStatName common.EQ2String8 `eq2:"string8"`
|
||||
AdornStatLevel uint8 `eq2:"int8"`
|
||||
AdornStatUnknown1 []uint8 `eq2:"int8,len=5"`
|
||||
}
|
||||
|
||||
type AdornLevelItem struct {
|
||||
NumAdornStats uint32 `eq2:"int32"`
|
||||
AdornStatsArray []AdornStatItem `eq2:"array,arraysize=NumAdornStats"`
|
||||
}
|
||||
|
||||
type AdornLevelItemV63119 struct {
|
||||
NumAdornStats uint32 `eq2:"int32"`
|
||||
AdornStatsArray []AdornStatItemV63119 `eq2:"array,arraysize=NumAdornStats"`
|
||||
}
|
||||
|
||||
type TierlineItem struct {
|
||||
Addon common.EQ2String16 `eq2:"string16"`
|
||||
TierlineUnknown []uint8 `eq2:"int8,len=5"`
|
||||
}
|
||||
|
||||
// Version structs
|
||||
type SubstructItemFooterV1 struct {
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV373 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifflagnotset=loot"`
|
||||
EffectArray []EffectItem `eq2:"array,arraysize=NumEffects,ifflagnotset=loot"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV546 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifflagnotset=loot"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects,ifflagnotset=loot"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV562 struct {
|
||||
// NOTE: Parser needs enhancement for comma-separated conditions
|
||||
// Original: IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0"
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
StackSize uint8 `eq2:"int8"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||
DisplayCharges uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV860 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
StackSize uint8 `eq2:"int8"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||
FooterUnknown5 uint8 `eq2:"int8"`
|
||||
DisplayCharges uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV893 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint8 `eq2:"int8"`
|
||||
FooterUnknown3 uint8 `eq2:"int8"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||
FooterUnknown5 uint8 `eq2:"int8"`
|
||||
DisplayCharges uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV927 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint8 `eq2:"int8"`
|
||||
FooterUnknown3 uint8 `eq2:"int8"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||
FooterUnknown5 uint8 `eq2:"int8"`
|
||||
DisplayCharges uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV1027 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint8 `eq2:"int8"`
|
||||
FooterUnknown3 []uint8 `eq2:"int8,len=2"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
FooterUnknown4 []uint8 `eq2:"int8,len=4"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||
FooterUnknown5 []uint8 `eq2:"int8,len=2"`
|
||||
DisplayCharges uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV1096 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint8 `eq2:"int8"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
FooterUnknown3 uint8 `eq2:"int8"`
|
||||
FooterUnknown3A uint8 `eq2:"int8"`
|
||||
FooterUnknown3B uint8 `eq2:"int8"`
|
||||
FooterUnknown3C uint8 `eq2:"int8"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
StatusItem uint8 `eq2:"int8"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlagXXX uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItem `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV1188 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=6"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
FooterUnknown4A uint8 `eq2:"int8,ifvariableset=footer_footer_unknown4_0"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 []uint8 `eq2:"int8,len=3,ifvariableset=footer_set_name_0"`
|
||||
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6 uint8 `eq2:"int8"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV57048 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=6"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6 []uint8 `eq2:"int8,len=13"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV58571 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6 []uint8 `eq2:"int8,len=15"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknownVer58571 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV58617 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8"` // Note: XML comment indicates removing ifvariablenotset condition
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
Unknown58617_1_MJ uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6 []uint8 `eq2:"int8,len=17"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknownVer58617 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV60024 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
StatusItem uint8 `eq2:"int8"`
|
||||
Unknown60024A uint8 `eq2:"int8"`
|
||||
Unknown60024B []uint8 `eq2:"int8,len=4,ifvariableset=footer_unknown60024a_0"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6 []uint8 `eq2:"int8,len=18"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV60055 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Unknown60055ZA uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
Unknown60055Z uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownEmem1 uint8 `eq2:"int8"`
|
||||
UnknownEmem2 uint8 `eq2:"int8"`
|
||||
UnknownEmem3 uint8 `eq2:"int8"`
|
||||
UnknownEmem4 uint8 `eq2:"int8"`
|
||||
StatusItem uint32 `eq2:"int32"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6A uint8 `eq2:"int8"`
|
||||
FooterUnknown6B uint8 `eq2:"int8"`
|
||||
FooterUnknown6C uint8 `eq2:"int8"`
|
||||
FooterUnknown6D uint8 `eq2:"int8"`
|
||||
FooterUnknown6E uint8 `eq2:"int8"`
|
||||
FooterUnknown6F uint8 `eq2:"int8"`
|
||||
FooterUnknown6G uint8 `eq2:"int8"`
|
||||
FooterUnknown6H uint8 `eq2:"int8"`
|
||||
FooterUnknown6I uint8 `eq2:"int8"`
|
||||
FooterUnknown6J uint8 `eq2:"int8"`
|
||||
FooterUnknown6K uint8 `eq2:"int8"`
|
||||
FooterUnknown6L uint8 `eq2:"int8"`
|
||||
FooterUnknown6M uint8 `eq2:"int8"`
|
||||
FooterUnknown6N uint8 `eq2:"int8"`
|
||||
FooterUnknown6O uint8 `eq2:"int8"`
|
||||
FooterUnknown6 []uint8 `eq2:"int8,len=2"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV60174 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
FooterUnknown2 uint8 `eq2:"int8"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Unknown60055ZA uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
Unknown60055Z uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
StatusItem uint32 `eq2:"int32"`
|
||||
Unknown60024A uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6A uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
FooterUnknown6B []uint8 `eq2:"int8,len=21"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
}
|
||||
|
||||
type SubstructItemFooterV63119 struct {
|
||||
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||
Tierline uint8 `eq2:"int8"`
|
||||
TierlineArray []TierlineItem `eq2:"array,arraysize=Tierline"`
|
||||
RequiredClasses uint64 `eq2:"int64"`
|
||||
RequiredClasses2 uint64 `eq2:"int64"`
|
||||
RecommendedLevel uint8 `eq2:"int8"`
|
||||
RequiredLevel uint8 `eq2:"int8"`
|
||||
StackSize uint16 `eq2:"int16"`
|
||||
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||
FooterUnknown3MJ1 uint8 `eq2:"int8"`
|
||||
SetName common.EQ2String8 `eq2:"string8"`
|
||||
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetBonusListArray []SetBonusItemV63119 `eq2:"array,arraysize=SetBonusListCount"`
|
||||
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
AdornFlag uint8 `eq2:"int8"`
|
||||
AdornUnknown64A uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornUnknown64B uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||
AdornLevelArray []AdornLevelItemV63119 `eq2:"array,arraysize=NumAdornLevels"`
|
||||
FooterUnknown4 uint8 `eq2:"int8"`
|
||||
Unknown60055ZA uint8 `eq2:"int8,ifvariableset=foot_set_name_0"`
|
||||
Collectable uint8 `eq2:"int8"`
|
||||
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||
Unknown60055Z uint8 `eq2:"int8"`
|
||||
OffersQuest common.EQ2String8 `eq2:"string8"`
|
||||
PartOfQuest common.EQ2String8 `eq2:"string8"`
|
||||
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||
Charges uint8 `eq2:"int8"`
|
||||
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||
UnknownEmem1 []uint8 `eq2:"int8,len=4"`
|
||||
StatusItem uint32 `eq2:"int32"`
|
||||
Unknown60024B uint8 `eq2:"int8"`
|
||||
TransmutedFlag uint8 `eq2:"int8"`
|
||||
UnknownMJ38A uint8 `eq2:"int8"`
|
||||
UnknownMJ38B uint8 `eq2:"int8"`
|
||||
CraftingFlag uint8 `eq2:"int8"`
|
||||
UnknownMJ38D uint8 `eq2:"int8"`
|
||||
AdornCount uint8 `eq2:"int8"`
|
||||
AdornArray []AdornItemV63119 `eq2:"array,arraysize=AdornCount"`
|
||||
LockedFlag uint8 `eq2:"int8"`
|
||||
UnknownMJ38C uint8 `eq2:"int8"`
|
||||
AccountRestricted uint8 `eq2:"int8"`
|
||||
FooterUnknown6B []uint8 `eq2:"int8,len=7"`
|
||||
FooterUnknown6C uint32 `eq2:"int32,ifvariablenotset=footer_set_name_0"`
|
||||
FooterUnknown6D uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||
Name common.EQ2String8 `eq2:"string8"`
|
||||
Description common.EQ2String16 `eq2:"string16"`
|
||||
FooterUnknown7 uint8 `eq2:"int8"`
|
||||
}
|
12
internal/packets/substructs/ItemInfo.go
Normal file
12
internal/packets/substructs/ItemInfo.go
Normal file
@ -0,0 +1,12 @@
|
||||
package substructs
|
||||
|
||||
// ItemInfo Version 63119
|
||||
type ItemInfo struct {
|
||||
NumItems uint16 `eq2:"int16"`
|
||||
ItemsArray []ItemIndex `eq2:"array,arraysize=NumItems"`
|
||||
}
|
||||
|
||||
type ItemIndex struct {
|
||||
ItemIndex uint16 `eq2:"int16"`
|
||||
TabUnknown2 uint32 `eq2:"int32"`
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user