ff7tk  0.02
Toolkit for making FF7 Tools
FF7Item.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // copyright 2012 -2016 Chris Rizzitello <sithlord48@gmail.com> //
3 // //
4 // This file is part of FF7tk //
5 // //
6 // FF7tk is free software: you can redistribute it and/or modify //
7 // it under the terms of the GNU General Public License as published by //
8 // the Free Software Foundation, either version 3 of the License, or //
9 // (at your option) any later version. //
10 // //
11 // FF7tk is distributed in the hope that it will be useful, //
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
14 // GNU General Public License for more details. //
15 /****************************************************************************/
16 #include "FF7Item.h"
17 #include <QCoreApplication>
18 
19 QString FF7Item::name(int i){return qApp->translate("Items",Items[i].name.toLocal8Bit());}
20 QString FF7Item::desc(int i){return qApp->translate("Item_desc",Items[i].desc.toLocal8Bit());}
21 qint8 FF7Item::type(int i){return Items[i].type;}
22 QImage FF7Item::image(int i){return QImage(Items[i].imageString);}
23 QIcon FF7Item::icon(int i){return QIcon(QPixmap::fromImage(image(i)));}
24 qint8 FF7Item::materiaSlots(int i){return Items[i].mslots;}
25 qint8 FF7Item::linkedSlots(int i){return Items[i].linked;}
26 qint8 FF7Item::materiaGrowthRate(int i){return Items[i].mgrowth;}
27 qint8 FF7Item::statHP(int i){return Items[i].hp;}
28 qint8 FF7Item::statMP(int i){return Items[i].mp;}
29 qint8 FF7Item::statSTR(int i){return Items[i].str;}
30 qint8 FF7Item::statVIT(int i){return Items[i].vit;}
31 qint8 FF7Item::statDEX(int i){return Items[i].dex;}
32 qint8 FF7Item::statLCK(int i){return Items[i].lck;}
33 qint8 FF7Item::statMAG(int i){return Items[i].mag;}
34 qint8 FF7Item::statSPI(int i){return Items[i].spi;}
35 QImage FF7Item::imageMateriaSlotNoGrowth(void){return QImage(QString(":/items/m_no_grow_slot"));}
36 QImage FF7Item::imageMateriaSlot(void){return QImage(QString(":/items/m_grow_slot"));}
37 QImage FF7Item::imageMateriaLink(void){return QImage(QString(":/items/mlink"));}
39 qint8 FF7Item::elementFire(int i){return Items[i].e_fire;}
40 qint8 FF7Item::elementCold(int i){return Items[i].e_cold;}
42 qint8 FF7Item::elementEarth(int i){return Items[i].e_earth;}
43 qint8 FF7Item::elementWind(int i){return Items[i].e_wind;}
44 qint8 FF7Item::elementWater(int i){return Items[i].e_water;}
45 qint8 FF7Item::elementGravity(int i){return Items[i].e_gravity;}
46 qint8 FF7Item::elementHoly(int i){return Items[i].e_holy;}
47 qint8 FF7Item::elementPoison(int i){return Items[i].e_poison;}
48 qint8 FF7Item::elementCut(int i){return Items[i].e_cut;}
49 qint8 FF7Item::elementShoot(int i){return Items[i].e_shoot;}
50 qint8 FF7Item::elementPunch(int i){return Items[i].e_punch;}
51 qint8 FF7Item::elementHit(int i){return Items[i].e_hit;}
52 //Status Functions
53 qint8 FF7Item::statusDeath(int i){return Items[i].s_death;}
54 qint8 FF7Item::statusSlowNumb(int i){return Items[i].s_slow_numb;}
56 qint8 FF7Item::statusParalysis(int i){return Items[i].s_paralysis;}
57 qint8 FF7Item::statusPetrify(int i){return Items[i].s_petrify;}
58 qint8 FF7Item::statusSilence(int i){return Items[i].s_silence;}
59 qint8 FF7Item::statusSleep(int i){return Items[i].s_sleep;}
60 qint8 FF7Item::statusConfusion(int i){return Items[i].s_confusion;}
61 qint8 FF7Item::statusBerserk(int i){return Items[i].s_berserk;}
62 qint8 FF7Item::statusFrog(int i){return Items[i].s_frog;}
63 qint8 FF7Item::statusMini(int i){return Items[i].s_mini;}
64 qint8 FF7Item::statusPoison(int i){return Items[i].s_poison;}
65 qint8 FF7Item::statusFury(int i){return Items[i].s_fury;}
66 qint8 FF7Item::statusSadness(int i){return Items[i].s_sadness;}
67 qint8 FF7Item::statusDarkness(int i){return Items[i].s_darkness;}
68 qint8 FF7Item::statusHaste(int i){return Items[i].s_haste;}
69 qint8 FF7Item::statusSlow(int i){return Items[i].s_slow;}
70 qint8 FF7Item::statusStop(int i){return Items[i].s_stop;}
71 qint8 FF7Item::statusBarrier(int i){return Items[i].s_barrier;}
73 qint8 FF7Item::statusReflect(int i){return Items[i].s_reflect;}
74 qint8 FF7Item::statusShield(int i){return Items[i].s_sheild;}
75 qint8 FF7Item::statusRegen(int i){return Items[i].s_regen;}
76 qint8 FF7Item::statusResist(int i){return Items[i].s_resist;}
78 {
79  return QString("QPushButton:enabled{border: 0px;border-radius:16px;background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.814, fx:0.5, fy:0.5, stop:0 rgba(0, 1, 0, 255), stop:0.079096 rgba(77, 77, 77, 255), stop:0.152542 rgba(11, 28, 19, 255), stop:0.429379 rgba(37, 37, 37, 255), stop:0.514124 rgba(200, 195, 194, 255), stop:0.576271 rgba(153, 152, 152, 255), stop:0.655367 rgba(185, 181, 179, 255), stop:0.677966 rgba(37, 37, 37, 0));}QPushButton:hover{}");
80 }
82 {
83  return QString("QPushButton:enabled{border: 0px;border-radius:16px;background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.814, fx:0.5, fy:0.5, stop:0 rgba(0, 1, 0, 255), stop:0.429379 rgba(37, 37, 37, 255), stop:0.514124 rgba(200, 195, 194, 255), stop:0.576271 rgba(153, 152, 152, 255), stop:0.655367 rgba(185, 181, 179, 255), stop:0.677966 rgba(37, 37, 37, 0));}QPushButton:hover{}");
84 }
86 {
87  return QString("QLabel:enabled{background-color: qlineargradient(spread:reflect, x1:0.5, y1:0.5, x2:0.5, y2:0, stop:0.0225989 rgba(37, 37, 37, 255), stop:0.231638 rgba(153, 152, 152, 255), stop:0.389831 rgba(200, 195, 194, 255), stop:0.502825 rgba(138, 137, 137, 255), stop:0.621469 rgba(200, 195, 194, 255), stop:0.768362 rgba(138, 137, 137, 255), stop:0.932584 rgba(37, 37, 37, 0));}");
88 }
89 
90 quint16 FF7Item::itemDecode( quint16 itemraw )
91 {//see FF7Save::itemDecode for full comments
92  quint16 item;
93  #ifdef Q_BYTE_ORDER
94  #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
95  item = itemraw;
96  #elif Q_BYTE_ORDER == Q_BIG_ENDIAN
97  item = ((itemraw & 0xFF) << 8) | ((itemraw >> 8) & 0xFF);
98  #else
99  int one = 1;
100  if (*(char *)&one){item = itemraw;}
101  else {item = ((itemraw & 0xFF) << 8) | ((itemraw >> 8) & 0xFF);}
102  #endif
103  #else
104  int one = 1;
105  if (*(char *)&one){item = itemraw;}
106  else {item = ((itemraw & 0xFF) << 8) | ((itemraw >> 8) & 0xFF);}
107  #endif
108 
109  return item;
110 }
111 quint16 FF7Item::itemEncode( quint16 id, quint8 qty )
112 {//see FF7Save::itemEncode for full comments
113  quint16 item,itemraw;
114  #ifdef Q_BYTE_ORDER
115  #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
116  item = ((qty << 9) & 0xFE00) | (id & 0x1FF);
117  itemraw = item;
118  #elif Q_BYTE_ORDER == Q_BIG_ENDIAN
119  item = ((qty << 9) & 0xFE00) | (id & 0x1FF);
120  itemraw = ((item & 0xFF) << 8) | ((item >> 8) & 0xFF);
121  #else
122  int one = 1;
123  if (*(char *)&one)
124  {
125  item = ((qty << 9) & 0xFE00) | (id & 0x1FF);
126  itemraw = item;
127  }
128  else
129  {
130  item = ((qty << 9) & 0xFE00) | (id & 0x1FF);
131  itemraw = ((item & 0xFF) << 8) | ((item >> 8) & 0xFF);
132  }
133  #endif
134  #else
135  int one = 1;
136  if (*(char *)&one)
137  {
138  item = ((qty << 9) & 0xFE00) | (id & 0x1FF);
139  itemraw = item;
140  }
141  else
142  {
143  item = ((qty << 9) & 0xFE00) | (id & 0x1FF);
144  itemraw = ((item & 0xFF) << 8) | ((item >> 8) & 0xFF);
145  }
146  #endif
147 
148  return itemraw;
149 }
150 
151 quint16 FF7Item::itemId(quint16 item)
152 {
153  quint16 new_item = itemDecode(item);
154  quint16 id = (new_item & 0x1FF);
155  return id;
156 }
157 quint8 FF7Item::itemQty(quint16 item)
158 {
159  quint16 new_item = itemDecode(item);
160  quint8 qty;
161  qty = (new_item & 0xFE00) >> 9;
162  return qty;
163 }
qint8 statusRegen(int id)
regen status effect of an item
Definition: FF7Item.cpp:75
qint8 elementCut(int id)
cut elemental effect of an item
Definition: FF7Item.cpp:48
qint8 elementHoly(int id)
ho;y elemental effect of an item
Definition: FF7Item.cpp:46
qint8 spi
Definition: FF7Item.h:40
qint8 s_petrify
Definition: FF7Item.h:75
qint8 statDEX(int id)
change to dexterity when equipped
Definition: FF7Item.cpp:31
qint8 statMP(int id)
change to MP when equipped
Definition: FF7Item.cpp:28
qint8 s_slow
Definition: FF7Item.h:87
qint8 e_earth
Definition: FF7Item.h:53
qint8 s_paralysis
Definition: FF7Item.h:74
qint8 hp
Definition: FF7Item.h:33
QString styleMateriaSlot(void)
QStyle of a normal materia slot for use on a QPushButton.
Definition: FF7Item.cpp:81
qint8 statusDeathSentence(int id)
death sentence status effect of an item
Definition: FF7Item.cpp:55
qint8 s_d_sentence
Definition: FF7Item.h:73
qint8 statusMagicBarrier(int id)
magic barrier status effect of an item
Definition: FF7Item.cpp:72
qint8 elementRestoration(int id)
restoration elemental effect of an item
Definition: FF7Item.cpp:38
qint8 s_slow_numb
Definition: FF7Item.h:72
qint8 statusBerserk(int id)
berserk status effect of an item
Definition: FF7Item.cpp:61
QImage imageMateriaLink(void)
Image of a materia link.
Definition: FF7Item.cpp:37
qint8 s_frog
Definition: FF7Item.h:80
qint8 s_silence
Definition: FF7Item.h:76
qint8 materiaGrowthRate(int id)
ap multiplier for an item
Definition: FF7Item.cpp:26
qint8 statusDeath(int id)
death status effect of an item
Definition: FF7Item.cpp:53
qint8 statusMini(int id)
mini status effect of an item
Definition: FF7Item.cpp:63
qint8 e_cold
Definition: FF7Item.h:51
QString styleMateriaSlotNoGrowth(void)
QStyle of a no growth materia slot for use on a QPushButton.
Definition: FF7Item.cpp:77
qint8 e_punch
Definition: FF7Item.h:61
qint8 e_cut
Definition: FF7Item.h:59
qint8 str
Definition: FF7Item.h:35
qint8 statusSlow(int id)
slow status effect of an item
Definition: FF7Item.cpp:69
qint8 statusDarkness(int id)
darkness status effect of an item
Definition: FF7Item.cpp:67
qint8 s_sadness
Definition: FF7Item.h:84
qint8 statusStop(int id)
stop status effect of an item
Definition: FF7Item.cpp:70
qint8 s_reflect
Definition: FF7Item.h:91
qint8 lck
Definition: FF7Item.h:38
qint8 e_gravity
Definition: FF7Item.h:56
qint8 s_sheild
Definition: FF7Item.h:92
QImage imageMateriaSlot(void)
Image of a normal materia slot.
Definition: FF7Item.cpp:36
qint8 type(int id)
get an items type
Definition: FF7Item.cpp:21
qint8 elementWind(int id)
wind elemental effect of an item
Definition: FF7Item.cpp:43
QString desc(int id)
get an items description
Definition: FF7Item.cpp:20
qint8 statSTR(int id)
change to strength when equipped
Definition: FF7Item.cpp:29
qint8 statusPoison(int id)
poison status effect of an item
Definition: FF7Item.cpp:64
qint8 s_darkness
Definition: FF7Item.h:85
qint8 statusSadness(int id)
sadness status effect of an item
Definition: FF7Item.cpp:66
QImage image(int id)
get an items picture as qimage
Definition: FF7Item.cpp:22
qint8 e_wind
Definition: FF7Item.h:54
qint8 s_regen
Definition: FF7Item.h:93
qint8 s_fury
Definition: FF7Item.h:83
qint8 s_sleep
Definition: FF7Item.h:77
qint8 statusShield(int id)
shield status effect of an item
Definition: FF7Item.cpp:74
qint8 vit
Definition: FF7Item.h:36
qint8 e_holy
Definition: FF7Item.h:57
qint8 e_hit
Definition: FF7Item.h:62
qint8 elementHit(int id)
hit elemental effect of an item
Definition: FF7Item.cpp:51
quint8 itemQty(quint16 item)
get item id from item
Definition: FF7Item.cpp:157
qint8 s_barrier
Definition: FF7Item.h:89
qint8 s_haste
Definition: FF7Item.h:86
qint8 elementFire(int id)
fire elemental effect of an item
Definition: FF7Item.cpp:39
qint8 s_death
Definition: FF7Item.h:71
qint8 statusFrog(int id)
frog status effect of an item
Definition: FF7Item.cpp:62
qint8 statusPetrify(int id)
petrify status effect of an item
Definition: FF7Item.cpp:57
qint8 s_poison
Definition: FF7Item.h:82
qint8 e_fire
Definition: FF7Item.h:50
qint8 e_lightning
Definition: FF7Item.h:52
qint8 elementGravity(int id)
gravity elemental effect of an item
Definition: FF7Item.cpp:45
qint8 s_stop
Definition: FF7Item.h:88
qint8 statLCK(int id)
change to luck when equipped
Definition: FF7Item.cpp:32
quint16 itemDecode(quint16 itemraw)
Decode rawitem to quint16.
Definition: FF7Item.cpp:90
qint8 e_poison
Definition: FF7Item.h:58
qint8 statusReflect(int id)
reflect status effect of an item
Definition: FF7Item.cpp:73
qint8 e_water
Definition: FF7Item.h:55
qint8 statusBarrier(int id)
barrier status effect of an item
Definition: FF7Item.cpp:71
qint8 e_restoration
Definition: FF7Item.h:49
qint8 elementWater(int id)
water elemental effect of an item
Definition: FF7Item.cpp:44
QString name(int id)
get an items name
Definition: FF7Item.cpp:19
qint8 elementPoison(int id)
poison elemental effect of an item
Definition: FF7Item.cpp:47
qint8 e_shoot
Definition: FF7Item.h:60
qint8 statusSleep(int id)
sleep status effect of an item
Definition: FF7Item.cpp:59
quint16 itemId(quint16 item)
get item id from item
Definition: FF7Item.cpp:151
quint16 itemEncode(quint16 id, quint8 qty)
Encode quint16 in to a rawitem.
Definition: FF7Item.cpp:111
static ITEM Items[]
Itemdata for all items in Final Fantasy 7.
Definition: FF7Item.h:592
qint8 elementEarth(int id)
earth elemental effect of an item
Definition: FF7Item.cpp:42
qint8 statusFury(int id)
fury status effect of an item
Definition: FF7Item.cpp:65
qint8 s_confusion
Definition: FF7Item.h:78
qint8 mslots
Definition: FF7Item.h:31
qint8 statusResist(int id)
resist status effect of an item
Definition: FF7Item.cpp:76
QImage imageMateriaSlotNoGrowth(void)
Image of a no growth materia slot.
Definition: FF7Item.cpp:35
qint8 type
Definition: FF7Item.h:28
QString styleMateriaLink(void)
QStyle of a materia link for use on a QLabel.
Definition: FF7Item.cpp:85
qint8 mp
Definition: FF7Item.h:34
qint8 statusSlowNumb(int id)
slow numb status effect of an item
Definition: FF7Item.cpp:54
qint8 statusParalysis(int id)
paralysis status effect of an item
Definition: FF7Item.cpp:56
qint8 statusSilence(int id)
silence status effect of an item
Definition: FF7Item.cpp:58
qint8 elementShoot(int id)
shoot elemental effect of an item
Definition: FF7Item.cpp:49
qint8 statHP(int id)
change to HP when equipped
Definition: FF7Item.cpp:27
qint8 statVIT(int id)
change to vitality when equipped
Definition: FF7Item.cpp:30
qint8 elementCold(int id)
cold elemental effect of an item
Definition: FF7Item.cpp:40
qint8 statusConfusion(int id)
confusion status effect of an item
Definition: FF7Item.cpp:60
QIcon icon(int id)
get an items picture as qicon
Definition: FF7Item.cpp:23
qint8 s_berserk
Definition: FF7Item.h:79
qint8 statusHaste(int id)
haste status effect of an item
Definition: FF7Item.cpp:68
qint8 materiaSlots(int id)
total number of materia slots in item
Definition: FF7Item.cpp:24
qint8 dex
Definition: FF7Item.h:37
qint8 linkedSlots(int id)
total number materia links in item
Definition: FF7Item.cpp:25
qint8 s_m_barrier
Definition: FF7Item.h:90
qint8 mgrowth
Definition: FF7Item.h:30
qint8 elementLightning(int id)
lightning elemental effect of an item
Definition: FF7Item.cpp:41
qint8 s_resist
Definition: FF7Item.h:94
qint8 s_mini
Definition: FF7Item.h:81
qint8 statSPI(int id)
change to spirit when equipped
Definition: FF7Item.cpp:34
qint8 linked
Definition: FF7Item.h:32
qint8 elementPunch(int id)
punch elemental effect of an item
Definition: FF7Item.cpp:50
qint8 mag
Definition: FF7Item.h:39
qint8 statMAG(int id)
change to magic when equipped
Definition: FF7Item.cpp:33