Commit 96299d3a authored by argon.sun's avatar argon.sun

strings

parent e7e54820
...@@ -325,7 +325,7 @@ void ClientField::ShowSelectCard(bool buttonok) { ...@@ -325,7 +325,7 @@ void ClientField::ShowSelectCard(bool buttonok) {
mainGame->btnCardSelect[i]->setPressed(false); mainGame->btnCardSelect[i]->setPressed(false);
mainGame->btnCardSelect[i]->setVisible(true); mainGame->btnCardSelect[i]->setVisible(true);
if(mainGame->dInfo.curMsg != MSG_SORT_CHAIN && mainGame->dInfo.curMsg != MSG_SORT_CARD) { if(mainGame->dInfo.curMsg != MSG_SORT_CHAIN && mainGame->dInfo.curMsg != MSG_SORT_CARD) {
myswprintf(formatBuffer, L"%ls[%d]", DataManager::FormatLocation(selectable_cards[i]->location), selectable_cards[i]->sequence + 1); myswprintf(formatBuffer, L"%ls[%d]", mainGame->dataManager.FormatLocation(selectable_cards[i]->location), selectable_cards[i]->sequence + 1);
mainGame->stCardPos[i]->setText(formatBuffer); mainGame->stCardPos[i]->setText(formatBuffer);
mainGame->stCardPos[i]->setVisible(true);; mainGame->stCardPos[i]->setVisible(true);;
if(selectable_cards[i]->controler) if(selectable_cards[i]->controler)
...@@ -356,7 +356,7 @@ void ClientField::ShowSelectCard(bool buttonok) { ...@@ -356,7 +356,7 @@ void ClientField::ShowSelectCard(bool buttonok) {
mainGame->btnCardSelect[i]->setPressed(false); mainGame->btnCardSelect[i]->setPressed(false);
mainGame->btnCardSelect[i]->setVisible(true); mainGame->btnCardSelect[i]->setVisible(true);
if(mainGame->dInfo.curMsg != MSG_SORT_CHAIN && mainGame->dInfo.curMsg != MSG_SORT_CARD) { if(mainGame->dInfo.curMsg != MSG_SORT_CHAIN && mainGame->dInfo.curMsg != MSG_SORT_CARD) {
myswprintf(formatBuffer, L"%ls[%d]", DataManager::FormatLocation(selectable_cards[i]->location), selectable_cards[i]->sequence + 1); myswprintf(formatBuffer, L"%ls[%d]", mainGame->dataManager.FormatLocation(selectable_cards[i]->location), selectable_cards[i]->sequence + 1);
mainGame->stCardPos[i]->setText(formatBuffer); mainGame->stCardPos[i]->setText(formatBuffer);
mainGame->stCardPos[i]->setVisible(true); mainGame->stCardPos[i]->setVisible(true);
if(selectable_cards[i]->controler) if(selectable_cards[i]->controler)
......
#include "data_manager.h" #include "data_manager.h"
#include <stdio.h> #include <stdio.h>
namespace ygo { namespace ygo {
const wchar_t* DataManager::unknown_string = L"???"; const wchar_t* DataManager::unknown_string = L"???";
const wchar_t* DataManager::effect_strings[] = { const wchar_t* DataManager::effect_strings[] = {
L"魔陷破坏", L"怪兽破坏", L"卡片除外", L"送去墓地", L"返回手牌", L"返回卡组", L"手牌破坏", L"卡组破坏", L"魔陷破坏", L"怪兽破坏", L"卡片除外", L"送去墓地", L"返回手牌", L"返回卡组", L"手牌破坏", L"卡组破坏",
...@@ -11,9 +9,6 @@ const wchar_t* DataManager::effect_strings[] = { ...@@ -11,9 +9,6 @@ const wchar_t* DataManager::effect_strings[] = {
L"破坏耐性", L"效果耐性", L"指示物 ", L"幸运 ", L"融合相关", L"同调相关", L"超量相关", L"效果无效" L"破坏耐性", L"效果耐性", L"指示物 ", L"幸运 ", L"融合相关", L"同调相关", L"超量相关", L"效果无效"
}; };
wchar_t DataManager::strBuffer[2048]; wchar_t DataManager::strBuffer[2048];
wchar_t DataManager::attBuffer[128];
wchar_t DataManager::racBuffer[128];
wchar_t DataManager::tpBuffer[128];
bool DataManager::LoadDates(const char* file) { bool DataManager::LoadDates(const char* file) {
sqlite3* pDB; sqlite3* pDB;
...@@ -237,247 +232,67 @@ int DataManager::GetVal(const wchar_t* pstr) { ...@@ -237,247 +232,67 @@ int DataManager::GetVal(const wchar_t* pstr) {
} }
return ret; return ret;
} }
int DataManager::CopyStr(const wchar_t* src, wchar_t*& pstr, int maxlen) {
int l = 0;
while(src[l] && l < maxlen) {
pstr[l] = src[l];
l++;
}
pstr += l;
*pstr = 0;
return l;
}
const wchar_t* DataManager::FormatLocation(int location) { const wchar_t* DataManager::FormatLocation(int location) {
switch(location) { int filter = 1, i = 1000;
case LOCATION_DECK: while(filter != location) {
return L"卡组"; filter <<= 1;
case LOCATION_HAND: i++;
return L"手牌"; }
case LOCATION_MZONE: if(filter == location)
return L"怪兽区"; return GetSysString(i);
case LOCATION_SZONE: else
return L"魔法陷阱区"; return unknown_string;
case LOCATION_GRAVE:
return L"墓地";
case LOCATION_REMOVED:
return L"除外";
case LOCATION_EXTRA:
return L"额外";
case LOCATION_OVERLAY:
return L"叠放";
}
return unknown_string;
} }
const wchar_t* DataManager::FormatAttribute(int attribute) { const wchar_t* DataManager::FormatAttribute(int attribute) {
wchar_t* p = attBuffer; wchar_t* p = attBuffer;
if(attribute & ATTRIBUTE_EARTH) { int filter = 1, i = 1010;
wcscpy(p, L"地|"); for(; filter != 0x80; filter <<= 1, ++i) {
p += 2; if(attribute & filter) {
} CopyStr(GetSysString(i), p, 16);
if(attribute & ATTRIBUTE_WATER) { *p = L'|';
wcscpy(p, L"水|"); *++p = 0;
p += 2; }
}
if(attribute & ATTRIBUTE_FIRE) {
wcscpy(p, L"炎|");
p += 2;
}
if(attribute & ATTRIBUTE_WIND) {
wcscpy(p, L"风|");
p += 2;
}
if(attribute & ATTRIBUTE_LIGHT) {
wcscpy(p, L"光|");
p += 2;
}
if(attribute & ATTRIBUTE_DARK) {
wcscpy(p, L"暗|");
p += 2;
}
if(attribute & ATTRIBUTE_DEVINE) {
wcscpy(p, L"神|");
p += 2;
} }
if(p != attBuffer) if(p != attBuffer)
*(p - 1) = 0; *(p - 1) = 0;
else *p = 0;
return attBuffer; return attBuffer;
} }
const wchar_t* DataManager::FormatRace(int race) { const wchar_t* DataManager::FormatRace(int race) {
wchar_t* p = racBuffer; wchar_t* p = racBuffer;
if(race & RACE_WARRIOR) { int filter = 1, i = 1020;
wcscpy(p, L"战士族|"); for(; filter != 0x800000; filter <<= 1, ++i) {
p += 4; if(race & filter) {
} CopyStr(GetSysString(i), p, 16);
if(race & RACE_SPELLCASTER) { *p = L'|';
wcscpy(p, L"魔法使族|"); *++p = 0;
p += 5; }
}
if(race & RACE_FAIRY) {
wcscpy(p, L"天使族|");
p += 4;
}
if(race & RACE_FIEND) {
wcscpy(p, L"恶魔族|");
p += 4;
}
if(race & RACE_ZOMBIE) {
wcscpy(p, L"不死族|");
p += 4;
}
if(race & RACE_MACHINE) {
wcscpy(p, L"机械族|");
p += 4;
}
if(race & RACE_AQUA) {
wcscpy(p, L"水族|");
p += 3;
}
if(race & RACE_PYRO) {
wcscpy(p, L"炎族|");
p += 3;
}
if(race & RACE_ROCK) {
wcscpy(p, L"岩石族|");
p += 4;
}
if(race & RACE_WINDBEAST) {
wcscpy(p, L"鸟兽族|");
p += 4;
}
if(race & RACE_PLANT) {
wcscpy(p, L"植物族|");
p += 4;
}
if(race & RACE_INSECT) {
wcscpy(p, L"昆虫族|");
p += 4;
}
if(race & RACE_THUNDER) {
wcscpy(p, L"雷族|");
p += 3;
}
if(race & RACE_DRAGON) {
wcscpy(p, L"龙族|");
p += 3;
}
if(race & RACE_BEAST) {
wcscpy(p, L"兽族|");
p += 3;
}
if(race & RACE_BEASTWARRIOR) {
wcscpy(p, L"兽战士族|");
p += 5;
}
if(race & RACE_DINOSAUR) {
wcscpy(p, L"恐龙族|");
p += 4;
}
if(race & RACE_FISH) {
wcscpy(p, L"鱼族|");
p += 3;
}
if(race & RACE_SEASERPENT) {
wcscpy(p, L"海龙族|");
p += 4;
}
if(race & RACE_REPTILE) {
wcscpy(p, L"爬虫族|");
p += 4;
}
if(race & RACE_PSYCHO) {
wcscpy(p, L"念动力族|");
p += 5;
}
if(race & RACE_DEVINE) {
wcscpy(p, L"幻神兽族|");
p += 5;
} }
if(p != racBuffer) if(p != racBuffer)
*(p - 1) = 0; *(p - 1) = 0;
else *p = 0;
return racBuffer; return racBuffer;
} }
const wchar_t* DataManager::FormatType(int type) { const wchar_t* DataManager::FormatType(int type) {
wchar_t* p = tpBuffer; wchar_t* p = tpBuffer;
if(type & TYPE_MONSTER) { int filter = 1, i = 1050;
wcscpy(p, L"怪兽|"); for(; filter != 0x1000000; filter <<= 1, ++i) {
p += 3; if(type & filter) {
} CopyStr(GetSysString(i), p, 16);
if(type & TYPE_SPELL) { *p = L'|';
wcscpy(p, L"魔法|"); *++p = 0;
p += 3; }
}
if(type & TYPE_TRAP) {
wcscpy(p, L"陷阱|");
p += 3;
}
if(type & TYPE_NORMAL) {
wcscpy(p, L"通常|");
p += 3;
}
if(type & TYPE_EFFECT) {
wcscpy(p, L"效果|");
p += 3;
}
if(type & TYPE_FUSION) {
wcscpy(p, L"融合|");
p += 3;
}
if(type & TYPE_RITUAL) {
wcscpy(p, L"仪式|");
p += 3;
}
if(type & TYPE_SPIRIT) {
wcscpy(p, L"灵魂|");
p += 3;
}
if(type & TYPE_UNION) {
wcscpy(p, L"同盟|");
p += 3;
}
if(type & TYPE_DUAL) {
wcscpy(p, L"二重|");
p += 3;
}
if(type & TYPE_TUNER) {
wcscpy(p, L"调整|");
p += 3;
}
if(type & TYPE_SYNCHRO) {
wcscpy(p, L"同调|");
p += 3;
}
if(type & TYPE_TOKEN) {
wcscpy(p, L"衍生物|");
p += 4;
}
if(type & TYPE_QUICKPLAY) {
wcscpy(p, L"速攻|");
p += 3;
}
if(type & TYPE_CONTINUOUS) {
wcscpy(p, L"永续|");
p += 3;
}
if(type & TYPE_EQUIP) {
wcscpy(p, L"装备|");
p += 3;
}
if(type & TYPE_FIELD) {
wcscpy(p, L"场地|");
p += 3;
}
if(type & TYPE_COUNTER) {
wcscpy(p, L"反击|");
p += 3;
}
if(type & TYPE_FLIP) {
wcscpy(p, L"反转|");
p += 3;
}
if(type & TYPE_TOON) {
wcscpy(p, L"卡通|");
p += 3;
}
if(type & TYPE_XYZ) {
wcscpy(p, L"超量|");
p += 3;
} }
if(p != tpBuffer) if(p != tpBuffer)
*(p - 1) = 0; *(p - 1) = 0;
else *p = 0;
return tpBuffer; return tpBuffer;
} }
} }
...@@ -26,9 +26,14 @@ public: ...@@ -26,9 +26,14 @@ public:
const wchar_t* GetVictoryString(int code); const wchar_t* GetVictoryString(int code);
const wchar_t* GetCounterName(int code); const wchar_t* GetCounterName(int code);
const wchar_t* GetNumString(int num); const wchar_t* GetNumString(int num);
const wchar_t* FormatLocation(int location);
const wchar_t* FormatAttribute(int attribute);
const wchar_t* FormatRace(int race);
const wchar_t* FormatType(int type);
static int EncodeUTF8(const wchar_t * wsrc, char * str); static int EncodeUTF8(const wchar_t * wsrc, char * str);
static int DecodeUTF8(const char * src, wchar_t * wstr); static int DecodeUTF8(const char * src, wchar_t * wstr);
static int GetVal(const wchar_t* pstr); static int GetVal(const wchar_t* pstr);
static int CopyStr(const wchar_t* src, wchar_t*& pstr, int maxlen);
std::unordered_map<unsigned int, CardDataC> _datas; std::unordered_map<unsigned int, CardDataC> _datas;
std::unordered_map<unsigned int, CardString> _strings; std::unordered_map<unsigned int, CardString> _strings;
...@@ -36,17 +41,13 @@ public: ...@@ -36,17 +41,13 @@ public:
std::unordered_map<unsigned int, wchar_t*> _counterStrings; std::unordered_map<unsigned int, wchar_t*> _counterStrings;
std::unordered_map<unsigned int, wchar_t*> _victoryStrings; std::unordered_map<unsigned int, wchar_t*> _victoryStrings;
wchar_t numStrings[256][4]; wchar_t numStrings[256][4];
wchar_t attBuffer[128];
wchar_t racBuffer[128];
wchar_t tpBuffer[128];
static wchar_t strBuffer[2048]; static wchar_t strBuffer[2048];
static wchar_t attBuffer[128];
static wchar_t racBuffer[128];
static wchar_t tpBuffer[128];
static const wchar_t* unknown_string; static const wchar_t* unknown_string;
static const wchar_t* effect_strings[]; static const wchar_t* effect_strings[];
static const wchar_t* FormatLocation(int location);
static const wchar_t* FormatAttribute(int attribute);
static const wchar_t* FormatRace(int race);
static const wchar_t* FormatType(int type);
}; };
} }
......
...@@ -676,8 +676,8 @@ void Game::DrawDeckBd() { ...@@ -676,8 +676,8 @@ void Game::DrawDeckBd() {
myswprintf(textBuffer, L"%ls", dataManager.GetName(ptr->first)); myswprintf(textBuffer, L"%ls", dataManager.GetName(ptr->first));
textFont->draw(textBuffer, recti(859, 164 + i * 66, 955, 185 + i * 66), 0xff000000, false, false); textFont->draw(textBuffer, recti(859, 164 + i * 66, 955, 185 + i * 66), 0xff000000, false, false);
textFont->draw(textBuffer, recti(860, 165 + i * 66, 955, 185 + i * 66), 0xffffffff, false, false); textFont->draw(textBuffer, recti(860, 165 + i * 66, 955, 185 + i * 66), 0xffffffff, false, false);
myswprintf(textBuffer, L"%ls/%ls ★%d", DataManager::FormatAttribute(ptr->second.attribute), myswprintf(textBuffer, L"%ls/%ls ★%d", dataManager.FormatAttribute(ptr->second.attribute),
DataManager::FormatRace(ptr->second.race), ptr->second.level); dataManager.FormatRace(ptr->second.race), ptr->second.level);
textFont->draw(textBuffer, recti(859, 186 + i * 66, 955, 207 + i * 66), 0xff000000, false, false); textFont->draw(textBuffer, recti(859, 186 + i * 66, 955, 207 + i * 66), 0xff000000, false, false);
textFont->draw(textBuffer, recti(860, 187 + i * 66, 955, 207 + i * 66), 0xffffffff, false, false); textFont->draw(textBuffer, recti(860, 187 + i * 66, 955, 207 + i * 66), 0xffffffff, false, false);
if(ptr->second.attack < 0 && ptr->second.defence < 0) if(ptr->second.attack < 0 && ptr->second.defence < 0)
...@@ -693,7 +693,7 @@ void Game::DrawDeckBd() { ...@@ -693,7 +693,7 @@ void Game::DrawDeckBd() {
myswprintf(textBuffer, L"%ls", dataManager.GetName(ptr->first)); myswprintf(textBuffer, L"%ls", dataManager.GetName(ptr->first));
textFont->draw(textBuffer, recti(859, 164 + i * 66, 955, 185 + i * 66), 0xff000000, false, false); textFont->draw(textBuffer, recti(859, 164 + i * 66, 955, 185 + i * 66), 0xff000000, false, false);
textFont->draw(textBuffer, recti(860, 165 + i * 66, 955, 185 + i * 66), 0xffffffff, false, false); textFont->draw(textBuffer, recti(860, 165 + i * 66, 955, 185 + i * 66), 0xffffffff, false, false);
const wchar_t* ptype = DataManager::FormatType(ptr->second.type); const wchar_t* ptype = dataManager.FormatType(ptr->second.type);
textFont->draw(ptype, recti(859, 186 + i * 66, 955, 207 + i * 66), 0xff000000, false, false); textFont->draw(ptype, recti(859, 186 + i * 66, 955, 207 + i * 66), 0xff000000, false, false);
textFont->draw(ptype, recti(860, 187 + i * 66, 955, 207 + i * 66), 0xffffffff, false, false); textFont->draw(ptype, recti(860, 187 + i * 66, 955, 207 + i * 66), 0xffffffff, false, false);
} }
......
...@@ -793,7 +793,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -793,7 +793,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
else else
mainGame->btnCardSelect[i]->setImage(mainGame->imageManager.tCover); mainGame->btnCardSelect[i]->setImage(mainGame->imageManager.tCover);
mainGame->btnCardSelect[i]->setRelativePosition(rect<s32>(30 + i * 125, 55, 30 + 120 + i * 125, 225)); mainGame->btnCardSelect[i]->setRelativePosition(rect<s32>(30 + i * 125, 55, 30 + 120 + i * 125, 225));
myswprintf(formatBuffer, L"%ls[%d]", DataManager::FormatLocation(selectable_cards[i + pos]->location), myswprintf(formatBuffer, L"%ls[%d]", mainGame->dataManager.FormatLocation(selectable_cards[i + pos]->location),
selectable_cards[i + pos]->sequence + 1); selectable_cards[i + pos]->sequence + 1);
mainGame->stCardPos[i]->setText(formatBuffer); mainGame->stCardPos[i]->setText(formatBuffer);
if(selectable_cards[i + pos]->is_selected) if(selectable_cards[i + pos]->is_selected)
...@@ -895,7 +895,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -895,7 +895,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf(formatBuffer, L"%ls[%d]", mainGame->dataManager.GetName(mcard->code), mcard->code); myswprintf(formatBuffer, L"%ls[%d]", mainGame->dataManager.GetName(mcard->code), mcard->code);
mainGame->stName->setText(formatBuffer); mainGame->stName->setText(formatBuffer);
if(cd.type & TYPE_MONSTER) { if(cd.type & TYPE_MONSTER) {
myswprintf(formatBuffer, L"[%ls] %ls/%ls", DataManager::FormatType(cd.type), DataManager::FormatRace(cd.race), DataManager::FormatAttribute(cd.attribute)); myswprintf(formatBuffer, L"[%ls] %ls/%ls", mainGame->dataManager.FormatType(cd.type), mainGame->dataManager.FormatRace(cd.race), mainGame->dataManager.FormatAttribute(cd.attribute));
mainGame->stInfo->setText(formatBuffer); mainGame->stInfo->setText(formatBuffer);
formatBuffer[0] = L'['; formatBuffer[0] = L'[';
for(int i = 1; i <= cd.level; ++i) for(int i = 1; i <= cd.level; ++i)
...@@ -913,7 +913,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -913,7 +913,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame->stDataInfo->setText(formatBuffer); mainGame->stDataInfo->setText(formatBuffer);
mainGame->stText->setRelativePosition(irr::core::position2di(15, 83)); mainGame->stText->setRelativePosition(irr::core::position2di(15, 83));
} else { } else {
myswprintf(formatBuffer, L"[%ls]", DataManager::FormatType(cd.type)); myswprintf(formatBuffer, L"[%ls]", mainGame->dataManager.FormatType(cd.type));
mainGame->stInfo->setText(formatBuffer); mainGame->stInfo->setText(formatBuffer);
mainGame->stDataInfo->setText(L""); mainGame->stDataInfo->setText(L"");
mainGame->stText->setRelativePosition(irr::core::position2di(15, 60)); mainGame->stText->setRelativePosition(irr::core::position2di(15, 60));
...@@ -1376,7 +1376,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1376,7 +1376,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
myswprintf(formatBuffer, L"\n%ls/%ls", mcard->atkstring, mcard->defstring); myswprintf(formatBuffer, L"\n%ls/%ls", mcard->atkstring, mcard->defstring);
str.append(formatBuffer); str.append(formatBuffer);
myswprintf(formatBuffer, L"\n★%d %ls/%ls", (mcard->level ? mcard->level : mcard->rank), DataManager::FormatRace(mcard->race), DataManager::FormatAttribute(mcard->attribute)); myswprintf(formatBuffer, L"\n★%d %ls/%ls", (mcard->level ? mcard->level : mcard->rank), mainGame->dataManager.FormatRace(mcard->race), mainGame->dataManager.FormatAttribute(mcard->attribute));
str.append(formatBuffer); str.append(formatBuffer);
if(mcard->counters.size()) { if(mcard->counters.size()) {
for(std::map<int, int>::iterator ctit = mcard->counters.begin(); ctit != mcard->counters.end(); ++ctit) { for(std::map<int, int>::iterator ctit = mcard->counters.begin(); ctit != mcard->counters.end(); ++ctit) {
......
...@@ -271,14 +271,14 @@ bool Game::Initialize() { ...@@ -271,14 +271,14 @@ bool Game::Initialize() {
wANAttribute->setVisible(false); wANAttribute->setVisible(false);
for(int filter = 0x1, i = 0; i < 7; filter <<= 1, ++i) for(int filter = 0x1, i = 0; i < 7; filter <<= 1, ++i)
chkAttribute[i] = env->addCheckBox(false, rect<s32>(10 + (i % 4) * 80, 25 + (i / 4) * 25, 90 + (i % 4) * 80, 50 + (i / 4) * 25), chkAttribute[i] = env->addCheckBox(false, rect<s32>(10 + (i % 4) * 80, 25 + (i / 4) * 25, 90 + (i % 4) * 80, 50 + (i / 4) * 25),
wANAttribute, CHECK_ATTRIBUTE, DataManager::FormatAttribute(filter)); wANAttribute, CHECK_ATTRIBUTE, dataManager.FormatAttribute(filter));
//announce attribute //announce attribute
wANRace = env->addWindow(rect<s32>(480, 200, 850, 385), false, L"请选择要宣言的种族:"); wANRace = env->addWindow(rect<s32>(480, 200, 850, 385), false, L"请选择要宣言的种族:");
wANRace->getCloseButton()->setVisible(false); wANRace->getCloseButton()->setVisible(false);
wANRace->setVisible(false); wANRace->setVisible(false);
for(int filter = 0x1, i = 0; i < 22; filter <<= 1, ++i) for(int filter = 0x1, i = 0; i < 22; filter <<= 1, ++i)
chkRace[i] = env->addCheckBox(false, rect<s32>(10 + (i % 4) * 90, 25 + (i / 4) * 25, 100 + (i % 4) * 90, 50 + (i / 4) * 25), chkRace[i] = env->addCheckBox(false, rect<s32>(10 + (i % 4) * 90, 25 + (i / 4) * 25, 100 + (i % 4) * 90, 50 + (i / 4) * 25),
wANRace, CHECK_RACE, DataManager::FormatRace(filter)); wANRace, CHECK_RACE, dataManager.FormatRace(filter));
//selection hint //selection hint
stHintMsg = env->addStaticText(L"", rect<s32>(500, 60, 820, 90), true, false, 0, -1, false); stHintMsg = env->addStaticText(L"", rect<s32>(500, 60, 820, 90), true, false, 0, -1, false);
stHintMsg->setBackgroundColor(0xc0ffffff); stHintMsg->setBackgroundColor(0xc0ffffff);
...@@ -340,12 +340,12 @@ bool Game::Initialize() { ...@@ -340,12 +340,12 @@ bool Game::Initialize() {
cbAttribute = env->addComboBox(rect<s32>(60, 26, 190, 46), wFilter, -1); cbAttribute = env->addComboBox(rect<s32>(60, 26, 190, 46), wFilter, -1);
cbAttribute->addItem(L"(无)", 0); cbAttribute->addItem(L"(无)", 0);
for(int filter = 0x1; filter != 0x80; filter <<= 1) for(int filter = 0x1; filter != 0x80; filter <<= 1)
cbAttribute->addItem(DataManager::FormatAttribute(filter), filter); cbAttribute->addItem(dataManager.FormatAttribute(filter), filter);
env->addStaticText(L"种族:", rect<s32>(10, 51, 70, 71), false, false, wFilter); env->addStaticText(L"种族:", rect<s32>(10, 51, 70, 71), false, false, wFilter);
cbRace = env->addComboBox(rect<s32>(60, 49, 190, 69), wFilter, -1); cbRace = env->addComboBox(rect<s32>(60, 49, 190, 69), wFilter, -1);
cbRace->addItem(L"(无)", 0); cbRace->addItem(L"(无)", 0);
for(int filter = 0x1; filter != 0x400000; filter <<= 1) for(int filter = 0x1; filter != 0x400000; filter <<= 1)
cbRace->addItem(DataManager::FormatRace(filter), filter); cbRace->addItem(dataManager.FormatRace(filter), filter);
env->addStaticText(L"攻击:", rect<s32>(205, 28, 280, 48), false, false, wFilter); env->addStaticText(L"攻击:", rect<s32>(205, 28, 280, 48), false, false, wFilter);
ebAttack = env->addEditBox(L"", rect<s32>(260, 26, 340, 46), true, wFilter); ebAttack = env->addEditBox(L"", rect<s32>(260, 26, 340, 46), true, wFilter);
ebAttack->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); ebAttack->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
...@@ -617,7 +617,7 @@ void Game::ShowCardInfo(int code) { ...@@ -617,7 +617,7 @@ void Game::ShowCardInfo(int code) {
myswprintf(formatBuffer, L"%ls", dataManager.GetName(code)); myswprintf(formatBuffer, L"%ls", dataManager.GetName(code));
stName->setText(formatBuffer); stName->setText(formatBuffer);
if(cd.type & TYPE_MONSTER) { if(cd.type & TYPE_MONSTER) {
myswprintf(formatBuffer, L"[%ls] %ls/%ls", DataManager::FormatType(cd.type), DataManager::FormatRace(cd.race), DataManager::FormatAttribute(cd.attribute)); myswprintf(formatBuffer, L"[%ls] %ls/%ls", dataManager.FormatType(cd.type), dataManager.FormatRace(cd.race), dataManager.FormatAttribute(cd.attribute));
stInfo->setText(formatBuffer); stInfo->setText(formatBuffer);
formatBuffer[0] = L'['; formatBuffer[0] = L'[';
for(int i = 1; i <= cd.level; ++i) for(int i = 1; i <= cd.level; ++i)
...@@ -635,7 +635,7 @@ void Game::ShowCardInfo(int code) { ...@@ -635,7 +635,7 @@ void Game::ShowCardInfo(int code) {
stDataInfo->setText(formatBuffer); stDataInfo->setText(formatBuffer);
stText->setRelativePosition(irr::core::position2di(15, 83)); stText->setRelativePosition(irr::core::position2di(15, 83));
} else { } else {
myswprintf(formatBuffer, L"[%ls]", DataManager::FormatType(cd.type)); myswprintf(formatBuffer, L"[%ls]", dataManager.FormatType(cd.type));
stInfo->setText(formatBuffer); stInfo->setText(formatBuffer);
stDataInfo->setText(L""); stDataInfo->setText(L"");
stText->setRelativePosition(irr::core::position2di(15, 60)); stText->setRelativePosition(irr::core::position2di(15, 60));
......
...@@ -1160,7 +1160,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) { ...@@ -1160,7 +1160,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
break; break;
} }
case HINT_RACE: { case HINT_RACE: {
myswprintf(textBuffer, L"对方宣言了:[%ls]", DataManager::FormatRace(data)); myswprintf(textBuffer, L"对方宣言了:[%ls]", mainGame->dataManager.FormatRace(data));
mainGame->lstLog->addItem(textBuffer); mainGame->lstLog->addItem(textBuffer);
mainGame->logParam.push_back(0); mainGame->logParam.push_back(0);
mainGame->SetStaticText(mainGame->stACMessage, 310, mainGame->textFont, textBuffer); mainGame->SetStaticText(mainGame->stACMessage, 310, mainGame->textFont, textBuffer);
...@@ -1169,7 +1169,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) { ...@@ -1169,7 +1169,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
break; break;
} }
case HINT_ATTRIB: { case HINT_ATTRIB: {
myswprintf(textBuffer, L"对方宣言了:[%ls]", DataManager::FormatAttribute(data)); myswprintf(textBuffer, L"对方宣言了:[%ls]", mainGame->dataManager.FormatAttribute(data));
mainGame->lstLog->addItem(textBuffer); mainGame->lstLog->addItem(textBuffer);
mainGame->logParam.push_back(0); mainGame->logParam.push_back(0);
mainGame->SetStaticText(mainGame->stACMessage, 310, mainGame->textFont, textBuffer); mainGame->SetStaticText(mainGame->stACMessage, 310, mainGame->textFont, textBuffer);
...@@ -1477,7 +1477,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) { ...@@ -1477,7 +1477,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
if (pcard->code != code) if (pcard->code != code)
pcard->SetCode(code); pcard->SetCode(code);
NetManager::ReadInt8(pbuf); NetManager::ReadInt8(pbuf);
myswprintf(textBuffer, L"是否在[%ls]发动[%ls]的效果?", DataManager::FormatLocation(l), mainGame->dataManager.GetName(code)); myswprintf(textBuffer, L"是否在[%ls]发动[%ls]的效果?", mainGame->dataManager.FormatLocation(l), mainGame->dataManager.GetName(code));
mainGame->gMutex.Lock(); mainGame->gMutex.Lock();
mainGame->SetStaticText(mainGame->stQMessage, 310, mainGame->textFont, textBuffer); mainGame->SetStaticText(mainGame->stQMessage, 310, mainGame->textFont, textBuffer);
mainGame->PopupElement(mainGame->wQuery); mainGame->PopupElement(mainGame->wQuery);
...@@ -2551,7 +2551,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) { ...@@ -2551,7 +2551,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
} }
} else } else
mainGame->WaitFrameSignal(30); mainGame->WaitFrameSignal(30);
myswprintf(textBuffer, L"[%ls](%ls,%d)成为对象", mainGame->dataManager.GetName(pcard->code), DataManager::FormatLocation(l), s); myswprintf(textBuffer, L"[%ls](%ls,%d)成为对象", mainGame->dataManager.GetName(pcard->code), mainGame->dataManager.FormatLocation(l), s);
mainGame->lstLog->addItem(textBuffer); mainGame->lstLog->addItem(textBuffer);
mainGame->logParam.push_back(pcard->code); mainGame->logParam.push_back(pcard->code);
pcard->is_highlighting = false; pcard->is_highlighting = false;
......
...@@ -302,6 +302,7 @@ public: ...@@ -302,6 +302,7 @@ public:
#define RACE_REPTILE 0x80000 // #define RACE_REPTILE 0x80000 //
#define RACE_PSYCHO 0x100000 // #define RACE_PSYCHO 0x100000 //
#define RACE_DEVINE 0x200000 // #define RACE_DEVINE 0x200000 //
#define RACE_RESERVE 0x400000 //
//Reason //Reason
#define REASON_DESTROY 0x1 // #define REASON_DESTROY 0x1 //
#define REASON_RELEASE 0x2 // #define REASON_RELEASE 0x2 //
......
...@@ -71,6 +71,67 @@ ...@@ -71,6 +71,67 @@
!system 552 请选择硬币的正反面 !system 552 请选择硬币的正反面
!system 553 请选择骰子的结果 !system 553 请选择骰子的结果
!system 554 请选择一个种类 !system 554 请选择一个种类
!system 1000 卡组
!system 1001 手牌
!system 1002 怪兽区
!system 1003 魔法陷阱区
!system 1004 墓地
!system 1005 除外
!system 1006 额外
!system 1010
!system 1011
!system 1012
!system 1013
!system 1014
!system 1015
!system 1016
!system 1020 战士
!system 1021 魔法使
!system 1022 天使
!system 1023 恶魔
!system 1024 不死
!system 1025 机械
!system 1026
!system 1027
!system 1028 岩石
!system 1029 鸟兽
!system 1030 植物
!system 1031 昆虫
!system 1032
!system 1033
!system 1034
!system 1035 兽战士
!system 1036 恐龙
!system 1037
!system 1038 海龙
!system 1039 爬虫
!system 1040 念动力
!system 1041 幻神兽
!system 1042 创世神
!system 1050 怪兽
!system 1051 魔法
!system 1052 陷阱
!system 1053 ???
!system 1054 通常
!system 1055 效果
!system 1056 融合
!system 1057 仪式
!system 1058 陷阱怪兽
!system 1059 灵魂
!system 1060 同盟
!system 1061 二重
!system 1062 调整
!system 1063 同调
!system 1064 衍生物
!system 1065 ???
!system 1066 速攻
!system 1067 永续
!system 1068 装备
!system 1069 场地
!system 1070 反击
!system 1071 反转
!system 1072 卡通
!system 1073 超量
#vistory reason #vistory reason
!victory 0x1 LP变成0 !victory 0x1 LP变成0
!victory 0x2 没有卡可抽 !victory 0x2 没有卡可抽
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment