162 lines
8.7 KiB
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"`
|
|
}
|