ff7tk  0.02
Toolkit for making FF7 Tools
FF7Achievements.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // copyright 2013 - 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 
17 #include "FF7Achievements.h"
18 #include <QFile>
19 #include <QCoreApplication>
20 
22  QObject(parent)
23 {
24  Achievements = QByteArray("\x00\x00\x00\x00\x00\x00\x00\x00");
25 }
26 
27 bool FF7Achievements::openFile(QString fileName)
28 {
29  if(!fileName.isEmpty())
30  {
31  QFile data(fileName);
32  if(data.open(QIODevice::ReadOnly))
33  {
34  Achievements = data.readAll();
35  data.close();
36  }
37  else{return false;}
38  return true;
39  }
40  return false;
41 }
42 
43 bool FF7Achievements::saveFile(QString fileName)
44 {
45  if(!fileName.isEmpty())
46  {
47  QFile data(fileName);
48  if(data.open(QIODevice::WriteOnly))
49  {
50  data.seek(0);
51  data.write(Achievements.data(),8);
52  data.close();
53  }
54  else{return false;}
55  return true;
56  }
57  return false;
58 }
59 
60 bool FF7Achievements::achievmentUnlocked(int bit){return (Achievements.at(bit/8) &(1<< (7-(bit%8))));}
61 
62 void FF7Achievements::setAchievementUnlocked(int bit,bool unlocked)
63 {
64  char temp = Achievements.at(bit/8);
65  if(unlocked){ temp |= (1<< (7-(bit%8)));}
66  else{temp &= ~(1<< (7-(bit%8)));}
67  Achievements[bit/8]=temp;
68 }
69 
70 QString FF7Achievements::name(int bit)
71 {
72  switch(bit)
73  {
74  case 63: return qApp->translate("Achievement_Names","End of Part I"); break;
75  case 62: return qApp->translate("Achievement_Names","End of Part II"); break;
76  case 61: return qApp->translate("Achievement_Names","End of Game"); break;
77  case 60: return qApp->translate("Achievement_Names","Master Materia"); break;
78  case 59: return qApp->translate("Achievement_Names","Master of Gil"); break;
79  case 58: return qApp->translate("Achievement_Names","Top Level"); break;
80  case 57: return qApp->translate("Achievement_Names","Knights of the Round"); break;
81  case 56: return qApp->translate("Achievement_Names","Omnislash"); break;
82  case 55: return qApp->translate("Achievement_Names","Catastrophe"); break;
83  case 54: return qApp->translate("Achievement_Names","Chaos"); break;
84  case 53: return qApp->translate("Achievement_Names","Great Gospel"); break;
85  case 52: return qApp->translate("Achievement_Names","Highwind"); break;
86  case 51: return qApp->translate("Achievement_Names","Final Heaven"); break;
87  case 50: return qApp->translate("Achievement_Names","All Creation"); break;
88  case 49: return qApp->translate("Achievement_Names","Cosmo Memory"); break;
89  case 48: return qApp->translate("Achievement_Names","Slots"); break;
90  case 47: return qApp->translate("Achievement_Names","Bahamut Zero"); break;
91  case 46: return qApp->translate("Achievement_Names","Ultimate Weapon"); break;
92  case 45: return qApp->translate("Achievement_Names","Diamond Weapon"); break;
93  case 44: return qApp->translate("Achievement_Names","Ruby Weapon"); break;
94  case 43: return qApp->translate("Achievement_Names","Emerald Weapon"); break;
95  case 42: return qApp->translate("Achievement_Names","Vincent"); break;
96  case 41: return qApp->translate("Achievement_Names","Yuffie"); break;
97  case 40: return qApp->translate("Achievement_Names","Materia Overlord"); break;
98  case 39: return qApp->translate("Achievement_Names","Battle Square"); break;
99  case 38: return qApp->translate("Achievement_Names","Gold Chocobo"); break;
100  case 37: return qApp->translate("Achievement_Names","First Battle"); break;
101  case 36: return qApp->translate("Achievement_Names","Braver"); break;
102  case 35: return qApp->translate("Achievement_Names","Big Shot"); break;
103  case 34: return qApp->translate("Achievement_Names","Galian Beast"); break;
104  case 33: return qApp->translate("Achievement_Names","Healing Wind"); break;
105  case 32: return qApp->translate("Achievement_Names","Boost Jump"); break;
106  case 31: return qApp->translate("Achievement_Names","Beat Rush"); break;
107  case 30: return qApp->translate("Achievement_Names","Greased Lightning"); break;
108  case 29: return qApp->translate("Achievement_Names","Sled Fang"); break;
109  case 28: return qApp->translate("Achievement_Names","Dice"); break;
110  default: return QString(""); break;
111  }
112 }
bool saveFile(QString fileName="")
Attempt to save a file.
QString name(int bit)
Translate name for Achievement bit.
bool achievmentUnlocked(int bit)
is Achievement @ bit unlocked?
QByteArray Achievements
void setAchievementUnlocked(int bit, bool unlocked)
set Achievement @ bit to unlocked
bool openFile(QString fileName="")
Attempt to Open a file.
FF7Achievements(QObject *parent=0)
Create a new FF7 Achievements.