eq2go/internal/packets/substructs/BaseMerchantItemDescription.go

162 lines
8.7 KiB
Go

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"`
}