-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtorchlight2item.h
More file actions
98 lines (71 loc) · 2.46 KB
/
Copy pathtorchlight2item.h
File metadata and controls
98 lines (71 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef TORCHLIGHT2ITEM_H
#define TORCHLIGHT2ITEM_H
#include <QByteArray>
#include <QString>
#include <QList>
#include <QDir>
#include <effectstable.h>
struct SocketedItem
{
QString name;
QString effect;
};
class Torchlight2Item
{
public:
explicit Torchlight2Item(QByteArray itemBytes);
~Torchlight2Item();
QByteArray Bytes() const { return mItemBytes; }
QString Name() const { return mItemName; }
qint32 NumSockets() const { return mNumSockets; }
qint32 NumFilledSockets() const { return mNumFilledSockets; }
void ParseAdvancedItemDetails(QDir infiniteStashFolder);
void SetIndex(quint16 index);
qint16 Index();
qint32 GetItemNameEndPosition() const { return mItemNameEndPos; }
qint64 Get24ffBlockEndPos() const { return m24ffBlockEndPos; }
bool operator ==(const Torchlight2Item& other) const;
QList<SocketedItem> SocketedItems() { return mSocketedItems; }
QList<QString> MagicalEffects() { return mMagicalEffects; }
QList<QString> Enchantments() { return mEnchantments; }
qint32 PhysicalArmor() { return mPhysicalArmor; }
QList<QString> MagicalArmors() { return mMagicalArmors; }
//signals:
//public slots:
private:
static const QString ItemDetailsDatabase;
enum EffectType
{
GeneralEffectType,
MagicArmorEffectType,
EnchantmentEffectType
};
enum DamageType
{
PhysicalDamageType = 0,
MagicalDamageType = 1,
FireDamageType = 2,
IceDamageType = 3,
ElectricDamageType = 4,
PoisonDamageType = 5,
AllDamageTypes = 6
};
QByteArray mItemBytes;
qint64 mItemUniqueTypeId;
QString mItemName;
qint32 mNumSockets;
qint32 mNumFilledSockets;
qint32 mItemNameEndPos;
qint64 m24ffBlockEndPos;
qint32 mPhysicalArmor;
QList<QString> mMagicalArmors;
QList<SocketedItem> mSocketedItems;
QList<QString> mMagicalEffects;
QList<QString> mEnchantments;
void ParseItemDetails();
QString ParseName(qint32 nameStartPos, qint32& nameEndPos);
SocketedItem ParseSocketedItem(qint32 itemStartPos, EffectsTable* effectsTable, qint32& itemEndPos);
QString GetDamageTypeDescription(DamageType damageType);
EffectType ParseEffect(QString& effectDescription, qint32 effectStartPos, EffectsTable* effectsTable, qint32& effectEndPos);
};
#endif // TORCHLIGHT2ITEM_H