ff7tk  0.02
Toolkit for making FF7 Tools
FF7Text.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 
17 #include "FF7Text.h"
18 /*~~~~~~~~TEXT CLASS~~~~~~~~~*/
20 {
21  eng =QString::fromUtf8(" !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ÄÁÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü⌘°¢£Ù۶߮©™´¨≠ÆØ∞±≤≥¥µ∂ΣΠπ⌡ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl■▪‚„‰ÂÊËÁÈíîïìÓÔ ÒÙÛ \t ");
22  jap =QString::fromUtf8("バばビびブぶベべボぼガがギぎグぐゲげゴごザざジじズずゼぜゾぞダだヂぢヅづデでドどヴパぱピぴプぷペぺポぽ0123456789、。 ハはヒひフふヘへホほカかキきクくケけコこサさシしスすセせソそタたチちツつテてトとウうアあイいエえオおナなニにヌぬネねノのマまミみムむメめモもラらリりルるレれロろヤやユゆヨよワわンんヲをッっャゃュゅョょァぁィぃゥぅェぇォぉ!?『』.+ABCDEFGHIJKLMNOPQRSTUVWXYZ・*ー~⋯%/:&【】♥→αβ「」()-=¶¶¶⑬\n\n¶ ");
23  jap_fa=QString::fromUtf8("必殺技地獄火炎裁雷大怒斬鉄剣槍海衝聖審判転生改暗黒釜天崩壊零式自爆使放射臭息死宣告凶破晄撃画龍晴点睛超究武神覇癒風邪気封印吹烙星守護命鼓動福音掌打水面蹴乱闘合体疾迅明鏡止抜山蓋世血祭鎧袖一触者滅森羅万象装備器攻魔法召喚獣呼出持相手物確率弱投付与変化片方行決定分直前真似覚列後位置防御発回連続敵全即効果尾毒消金針乙女興奮剤鎮静能薬英雄榴弾右腕砂時計糸戦惑草牙南極冷結晶電鳥角有害質爪光月反巨目砲重力球空双野菜実兵単毛茶色髪¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶");
24  jap_fb=QString::fromUtf8("安香花会員蜂蜜館下着入先不子供屋商品景交換階模型部離場所仲間無制限殿様秘氷河図何材料雪上進事古代種鍵娘紙町住奥眠楽最初村雨釘陸吉揮叢雲軍異常通威父蛇矛青偃刀戟十字裏車円輪卍折鶴倶戴螺貝突銀玉正宗具甲烈属性吸収半減土高級状態縁闇睡石徐々的指混呪開始歩復盗小治理同速遅逃去視複味沈黙還倍数瀕取返人今差誰当拡散飛以外暴避振身中旋津波育機械擲炉新両本君洞内作警特殊板強穴隊族亡霊鎖足刃頭怪奇虫跳侍左首潜長親衛塔宝条像忍謎般見報充填完了銃元経験値終獲得名悲蛙操成費背切替割¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶");
25  jap_fc=QString::fromUtf8("由閉記憶選番街底忘都過艇路運搬船墓心港末宿西道艦家乗竜巻迷宮絶壁支社久件想秒予多落受組余系標起迫日勝形引現解除磁互口廃棄汚染液活令副隠主斉登温泉百段熱走急降奪響嵐移危戻遠吠軟骨言葉震叫噴舞狩粉失敗眼激盤逆鱗踏喰盾叩食凍退木吐線魅押潰曲翼教皇太陽界案挑援赤往殴意東北参知聞来仕別集信用思毎悪枯考然張好伍早各独配腐話帰永救感故売浮市加流約宇礼束母男年待宙立残俺少精士私険関倒休我許郷助要問係旧固荒稼良議導夢追説声任柱満未顔旅¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶");
26  jap_fd=QString::fromUtf8("友伝夜探対調民読占頼若学識業歳争苦織困答準恐認客務居他再幸役縮情豊夫近窟責建求迎貸期工算湿難保帯届凝笑向可遊襲申次国素題普密望官泣創術演輝買途浴老幼利門格原管牧炭彼房驚禁注整衆語証深層査渡号科欲店括坑酬緊研権書暇兄派造広川賛駅絡在党岸服捜姉敷胸刑谷痛岩至勢畑姿統略抹展示修酸製歓接障災室索扉傷録優基讐勇司境璧医怖狙協犯資設雇根億脱富躍純写病依到練順園総念維検朽圧補公働因朝浪祝恋郎勉春功耳恵緑美辺昇悩泊低酒影競二矢瞬希志¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶");
27  jap_fe=QString::fromUtf8("孫継団給抗違提断島栄油就僕存企比浸非応細承編排努締談趣埋営文夏個益損額区寒簡遣例肉博幻量昔臓負討悔膨飲妄越憎増枚皆愚療庫涙照冗壇坂訳抱薄義騒奴丈捕被概招劣較析繁殖耐論貴称千歴史募容噂壱胞鳴表雑職妹氏踊停罪甘健焼払侵頃愛便田舎孤晩清際領評課勤謝才偉誤価欠寄忙従五送周頑労植施販台度嫌諸習緒誘仮借輩席戒弟珍酔試騎霜鉱裕票券専祖惰偶怠罰熟牲燃犠快劇拠厄抵適程繰腹橋白処匹杯暑坊週秀看軽幕和平王姫庭観航横帳丘亭財律布規謀積刻陥類¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶");
28  init(0);
29 }
30 
31 void FF7TEXT::init(bool ja)
32 {//are we using latin or japanese chars?
33  if(ja){in_ja = 1;}
34  else{in_ja=0;}
35 }
36 
37 // the PC function is modified from Makou Reactor (thanks Myst6re)
38 QString FF7TEXT::toPC(QByteArray text)
39 {
40  int txt;
41  if((txt = text.indexOf('\xFF')) != -1){text.truncate(txt);}
42  QString String;
43  quint8 index;
44 
45  for(quint16 i=0 ; i<text.size() ; ++i)
46  {
47  index = (quint8)text.at(i);
48  if(index == 0xFF) break;
49  if(in_ja)
50  {
51  switch(index) {
52  case 0xFA:
53  ++i;
54  String += jap_fa[(quint8)text.at(i)];
55  break;
56  case 0xFB:
57  ++i;
58  String += jap_fb[(quint8)text.at(i)];
59  break;
60  case 0xFC:
61  ++i;
62  String += jap_fc[(quint8)text.at(i)];
63  break;
64  case 0xFD:
65  ++i;
66  String += jap_fd[(quint8)text.at(i)];
67  break;
68  case 0xFE:
69  ++i;
70  if((quint8)text.at(i) == 0xE2) i+=4;
71  String += jap_fe[(quint8)text.at(i)];
72  break;
73  default:
74  String.append(jap.at(index));
75  break;
76  }
77  }
78  else
79  {
80  switch(index) {
81  case 0xFA:case 0xFB:case 0xFC:case 0xFD:
82  ++i;
83  String += "¶";
84  break;
85  case 0xFE:
86  ++i;
87  if((quint8)text.at(i) == 0xE2) i+=4;
88  String += "¶";
89  break;
90  default:
91  String.append(eng.at(index));
92  break;
93  }
94  }
95  }
96  return String;
97 }
98 //This Convertor is Modified From Hyne (thanks Myst6re)
99 QByteArray FF7TEXT::toFF7(QString string)
100 {
101  QByteArray ff7str;
102  QChar comp;
103  int stringSize = string.size(), i, table;
104 
105  for(int c=0 ; c<stringSize ; ++c)
106  {
107  comp = string.at(c);
108  for(i=0 ; i<=0xff ; ++i)
109  {
110  if(QString::compare(comp, character(i,0))==0)
111  {
112  ff7str.append((char)i);
113  goto end;
114  }
115  }
116  if(in_ja)
117  {
118  for(table=1 ; table<7 ; ++table)
119  {
120  for(i=0 ; i<=0xff ; ++i)
121  {
122  if(QString::compare(comp, character(i, table))==0)
123  {
124  switch(table)
125  {
126  case 1:break;
127  case 2:ff7str.append('\xFA'); break;
128  case 3:ff7str.append('\xFB'); break;
129  case 4:ff7str.append('\xFC'); break;
130  case 5:ff7str.append('\xFD'); break;
131  case 6:ff7str.append('\xFE'); break;
132  }
133  ff7str.append((char)i);
134  goto end;
135  }
136  }
137  }
138  }
139  end:;
140  }
141  return ff7str;
142 }
143 
144 QString FF7TEXT::character(quint8 ord, quint8 table)
145 {
146  switch(table) {
147  case 1:return jap.at(ord);
148  case 2:return jap_fa.at(ord);
149  case 3:return jap_fb.at(ord);
150  case 4:return jap_fc.at(ord);
151  case 5:return jap_fd.at(ord);
152  case 6:return jap_fe.at(ord);
153  default:return eng.at(ord);
154  }
155 }
QByteArray toFF7(QString string)
convert pc string to ff7text
Definition: FF7Text.cpp:99
FF7TEXT()
Definition: FF7Text.cpp:19
void init(bool)
if TRUE toPC will return Japanese test
Definition: FF7Text.cpp:31
QString toPC(QByteArray text)
convert ff7text to pc string
Definition: FF7Text.cpp:38
QString eng
Definition: FF7Text.h:43
QString jap_fb
Definition: FF7Text.h:46
QString jap_fd
Definition: FF7Text.h:48
QString character(quint8 ord, quint8 table)
Definition: FF7Text.cpp:144
QString jap_fa
Definition: FF7Text.h:45
QString jap
Definition: FF7Text.h:44
QString jap_fc
Definition: FF7Text.h:47
bool in_ja
Definition: FF7Text.h:50
QString jap_fe
Definition: FF7Text.h:49