Commit 92176df0 authored by DailyShana's avatar DailyShana

extra pendulum count

parent f29d5d87
...@@ -58,6 +58,8 @@ void ClientField::Clear() { ...@@ -58,6 +58,8 @@ void ClientField::Clear() {
for(auto sit = overlay_cards.begin(); sit != overlay_cards.end(); ++sit) for(auto sit = overlay_cards.begin(); sit != overlay_cards.end(); ++sit)
delete *sit; delete *sit;
overlay_cards.clear(); overlay_cards.clear();
extra_p_count[0] = 0;
extra_p_count[1] = 0;
chains.clear(); chains.clear();
disabled_field = 0; disabled_field = 0;
deck_act = false; deck_act = false;
...@@ -194,6 +196,8 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se ...@@ -194,6 +196,8 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
extra[controler][0] = pcard; extra[controler][0] = pcard;
pcard->sequence = 0; pcard->sequence = 0;
} }
if ((pcard->type & TYPE_PENDULUM) && (pcard->position & POS_FACEUP))
extra_p_count[controler]++;
break; break;
} }
} }
...@@ -262,6 +266,8 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) { ...@@ -262,6 +266,8 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
extra[controler][i]->mTransform.setTranslation(extra[controler][i]->curPos); extra[controler][i]->mTransform.setTranslation(extra[controler][i]->curPos);
} }
extra[controler].erase(extra[controler].end() - 1); extra[controler].erase(extra[controler].end() - 1);
if ((pcard->type & TYPE_PENDULUM) && (pcard->position & POS_FACEUP))
extra_p_count[controler]--;
break; break;
} }
} }
...@@ -495,6 +501,7 @@ void ClientField::ReplaySwap() { ...@@ -495,6 +501,7 @@ void ClientField::ReplaySwap() {
std::swap(grave[0], grave[1]); std::swap(grave[0], grave[1]);
std::swap(remove[0], remove[1]); std::swap(remove[0], remove[1]);
std::swap(extra[0], extra[1]); std::swap(extra[0], extra[1]);
std::swap(extra_p_count[0], extra_p_count[1]);
for(int p = 0; p < 2; ++p) { for(int p = 0; p < 2; ++p) {
for(auto cit = deck[p].begin(); cit != deck[p].end(); ++cit) { for(auto cit = deck[p].begin(); cit != deck[p].end(); ++cit) {
(*cit)->controler = 1 - (*cit)->controler; (*cit)->controler = 1 - (*cit)->controler;
......
...@@ -40,6 +40,7 @@ public: ...@@ -40,6 +40,7 @@ public:
std::vector<int> activatable_descs; std::vector<int> activatable_descs;
std::vector<int> select_options; std::vector<int> select_options;
std::vector<ChainInfo> chains; std::vector<ChainInfo> chains;
int extra_p_count[2];
size_t selected_option; size_t selected_option;
ClientCard* attacker; ClientCard* attacker;
......
...@@ -182,8 +182,15 @@ const wchar_t* DataManager::GetCounterName(int code) { ...@@ -182,8 +182,15 @@ const wchar_t* DataManager::GetCounterName(int code) {
return unknown_string; return unknown_string;
return csit->second; return csit->second;
} }
const wchar_t* DataManager::GetNumString(int num) { const wchar_t* DataManager::GetNumString(int num, bool bracket) {
return numStrings[num]; if(!bracket)
return numStrings[num];
wchar_t* p = numBuffer;
*p++ = L'(';
BufferIO::CopyWStrRef(numStrings[num], p, 4);
*p = L')';
*++p = 0;
return numBuffer;
} }
const wchar_t* DataManager::FormatLocation(int location, int sequence) { const wchar_t* DataManager::FormatLocation(int location, int sequence) {
if(location == 0x8) { if(location == 0x8) {
......
...@@ -23,7 +23,7 @@ public: ...@@ -23,7 +23,7 @@ public:
const wchar_t* GetSysString(int code); const wchar_t* GetSysString(int code);
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, bool bracket = false);
const wchar_t* FormatLocation(int location, int sequence); const wchar_t* FormatLocation(int location, int sequence);
const wchar_t* FormatAttribute(int attribute); const wchar_t* FormatAttribute(int attribute);
const wchar_t* FormatRace(int race); const wchar_t* FormatRace(int race);
...@@ -36,6 +36,7 @@ public: ...@@ -36,6 +36,7 @@ public:
wchar_t* _sysStrings[2048]; wchar_t* _sysStrings[2048];
wchar_t numStrings[256][4]; wchar_t numStrings[256][4];
wchar_t numBuffer[6];
wchar_t attBuffer[128]; wchar_t attBuffer[128];
wchar_t racBuffer[128]; wchar_t racBuffer[128];
wchar_t tpBuffer[128]; wchar_t tpBuffer[128];
......
...@@ -423,8 +423,10 @@ void Game::DrawMisc() { ...@@ -423,8 +423,10 @@ void Game::DrawMisc() {
adFont->draw(pcard->rscstring, recti(464, 246, 496, 266), 0xffffffff, true, false, 0); adFont->draw(pcard->rscstring, recti(464, 246, 496, 266), 0xffffffff, true, false, 0);
} }
if(dField.extra[0].size()) { if(dField.extra[0].size()) {
numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(330, 562, 381, 552), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(320, 562, 371, 552), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(330, 563, 383, 553), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(320, 563, 373, 553), 0xffffff00, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra_p_count[0], true), recti(340, 562, 391, 552), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra_p_count[0], true), recti(340, 563, 393, 553), 0xffffff00, true, false, 0);
} }
if(dField.deck[0].size()) { if(dField.deck[0].size()) {
numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(907, 562, 1021, 552), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(907, 562, 1021, 552), 0xff000000, true, false, 0);
...@@ -439,8 +441,10 @@ void Game::DrawMisc() { ...@@ -439,8 +441,10 @@ void Game::DrawMisc() {
numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1015, 376, 959, 381), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1015, 376, 959, 381), 0xffffff00, true, false, 0);
} }
if(dField.extra[1].size()) { if(dField.extra[1].size()) {
numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(818, 207, 908, 232), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(808, 207, 898, 232), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(818, 208, 910, 233), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(808, 208, 900, 233), 0xffffff00, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra_p_count[1], true), recti(828, 207, 918, 232), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra_p_count[1], true), recti(828, 208, 920, 233), 0xffffff00, true, false, 0);
} }
if(dField.deck[1].size()) { if(dField.deck[1].size()) {
numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(465, 207, 481, 232), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(465, 207, 481, 232), 0xff000000, true, false, 0);
......
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