Commit 9f111e37 authored by fallenstardust's avatar fallenstardust

整理完善保存设置

parent 85633e90
......@@ -1044,7 +1044,7 @@ void Game::ShowElement(irr::gui::IGUIElement * win, int autoframe) {
FadingUnit fu;
fu.fadingSize = win->getRelativePosition();
for(auto fit = fadingList.begin(); fit != fadingList.end(); ++fit)
if(win == fit->guiFading)
if(win == fit->guiFading && win != wOptions) // the size of wOptions is always setted by ClientField::ShowSelectOption before showing it
fu.fadingSize = fit->fadingSize;
irr::core::position2di center = fu.fadingSize.getCenter();
fu.fadingDiff.X = fu.fadingSize.getWidth() / 10;
......@@ -1338,68 +1338,6 @@ void Game::DrawDeckBd() {
textFont->draw(textBuffer, recti(905 * mainGame->xScale, (209 + i * 66) * mainGame->yScale, 1000 * mainGame->xScale, (229 + i * 66) * mainGame->yScale), 0xffffffff, false, false);
}
}
#else
for(size_t i = 0; i < 7 && i + mainGame->scrFilter->getPos() < deckBuilder.results.size(); ++i) {
code_pointer ptr = deckBuilder.results[i + mainGame->scrFilter->getPos()];
if(deckBuilder.hovered_pos == 4 && deckBuilder.hovered_seq == (int)i)
driver->draw2DRectangle(0x80000000, recti(806, 164 + i * 66, 1019, 230 + i * 66));
DrawThumb(ptr, position2di(810, 165 + i * 66), deckBuilder.filterList);
if(ptr->second.type & TYPE_MONSTER) {
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(860, 165 + i * 66, 955, 185 + i * 66), 0xffffffff, false, false);
if(!(ptr->second.type & TYPE_LINK)) {
wchar_t* form = L"\u2605";
if(ptr->second.type & TYPE_XYZ) form = L"\u2606";
myswprintf(textBuffer, L"%ls/%ls %ls%d", dataManager.FormatAttribute(ptr->second.attribute), dataManager.FormatRace(ptr->second.race), form, ptr->second.level);
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);
if(ptr->second.attack < 0 && ptr->second.defense < 0)
myswprintf(textBuffer, L"?/?");
else if(ptr->second.attack < 0)
myswprintf(textBuffer, L"?/%d", ptr->second.defense);
else if(ptr->second.defense < 0)
myswprintf(textBuffer, L"%d/?", ptr->second.attack);
else myswprintf(textBuffer, L"%d/%d", ptr->second.attack, ptr->second.defense);
} else {
myswprintf(textBuffer, L"%ls/%ls LINK-%d", dataManager.FormatAttribute(ptr->second.attribute), 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(860, 187 + i * 66, 955, 207 + i * 66), 0xffffffff, false, false);
if(ptr->second.attack < 0)
myswprintf(textBuffer, L"?/-");
else myswprintf(textBuffer, L"%d/-", ptr->second.attack);
}
if(ptr->second.type & TYPE_PENDULUM) {
wchar_t scaleBuffer[16];
myswprintf(scaleBuffer, L" %d/%d", ptr->second.lscale, ptr->second.rscale);
wcscat(textBuffer, scaleBuffer);
}
if((ptr->second.ot & 0x3) == 1)
wcscat(textBuffer, L" [OCG]");
else if((ptr->second.ot & 0x3) == 2)
wcscat(textBuffer, L" [TCG]");
else if((ptr->second.ot & 0x7) == 4)
wcscat(textBuffer, L" [Custom]");
textFont->draw(textBuffer, recti(859, 208 + i * 66, 955, 229 + i * 66), 0xff000000, false, false);
textFont->draw(textBuffer, recti(860, 209 + i * 66, 955, 229 + i * 66), 0xffffffff, false, false);
} else {
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(860, 165 + i * 66, 955, 185 + i * 66), 0xffffffff, false, false);
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(860, 187 + i * 66, 955, 207 + i * 66), 0xffffffff, false, false);
textBuffer[0] = 0;
if((ptr->second.ot & 0x3) == 1)
wcscat(textBuffer, L"[OCG]");
else if((ptr->second.ot & 0x3) == 2)
wcscat(textBuffer, L"[TCG]");
else if((ptr->second.ot & 0x7) == 4)
wcscat(textBuffer, L"[Custom]");
textFont->draw(textBuffer, recti(859, 208 + i * 66, 955, 229 + i * 66), 0xff000000, false, false);
textFont->draw(textBuffer, recti(860, 209 + i * 66, 955, 229 + i * 66), 0xffffffff, false, false);
}
}
#endif
if(deckBuilder.is_draging) {
DrawThumb(deckBuilder.draging_pointer, position2di(deckBuilder.dragx - 22, deckBuilder.dragy - 32), deckBuilder.filterList);
......
......@@ -1429,12 +1429,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break;
if(event.MouseInput.isLeftPressed())
break;
s32 x = event.MouseInput.X;
s32 y = event.MouseInput.Y;
irr::core::position2di pos(x, y);
irr::gui::IGUIElement* root = mainGame->env->getRootGUIElement();
if(root->getElementFromPoint(pos) == mainGame->btnCancelOrFinish)
mainGame->chkHideHintButton->setChecked(true);
if(mainGame->gameConf.control_mode == 1 && event.MouseInput.X > 300) {
mainGame->ignore_chain = event.MouseInput.isRightPressed();
mainGame->always_chain = false;
......@@ -1813,9 +1807,9 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
return true;
break;
}
case CHECKBOX_QUICK_ANIMATION: {
mainGame->gameConf.quick_animation = mainGame->chkQuickAnimation->isChecked() ? 1 : 0;
}
// case CHECKBOX_QUICK_ANIMATION: {
// mainGame->gameConf.quick_animation = mainGame->chkQuickAnimation->isChecked() ? 1 : 0;
// }
}
break;
}
......
......@@ -433,40 +433,37 @@ bool Game::Initialize() {
irr::gui::IGUITab* tabHelper = wInfos->addTab(dataManager.GetSysString(1298));
int posX = 20 * xScale;
int posY = 20 * yScale;
chkMAutoPos = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 25 * yScale), tabHelper, -1, dataManager.GetSysString(1274));
chkMAutoPos = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 30 * yScale), tabHelper, -1, dataManager.GetSysString(1274));
chkMAutoPos->setChecked(gameConf.chkMAutoPos != 0);
posY += 60;
chkSTAutoPos = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 25 * yScale), tabHelper, -1, dataManager.GetSysString(1278));
chkSTAutoPos = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 30 * yScale), tabHelper, -1, dataManager.GetSysString(1278));
chkSTAutoPos->setChecked(gameConf.chkSTAutoPos != 0);
posY += 60;
chkRandomPos = env->addCheckBox(false, rect<s32>(posX + 20 * xScale, posY, posX + (20 + 260) * xScale, posY + 25 * yScale), tabHelper, -1, dataManager.GetSysString(1275));
chkRandomPos = env->addCheckBox(false, rect<s32>(posX + 20 * xScale, posY, posX + (20 + 260) * xScale, posY + 30 * yScale), tabHelper, -1, dataManager.GetSysString(1275));
chkRandomPos->setChecked(gameConf.chkRandomPos != 0);
posY += 60;
chkAutoChain = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 25 * yScale), tabHelper, -1, dataManager.GetSysString(1276));
chkAutoChain = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 30 * yScale), tabHelper, -1, dataManager.GetSysString(1276));
chkAutoChain->setChecked(gameConf.chkAutoChain != 0);
posY += 60;
chkWaitChain = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 25 * yScale), tabHelper, -1, dataManager.GetSysString(1277));
chkWaitChain = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 30 * yScale), tabHelper, -1, dataManager.GetSysString(1277));
chkWaitChain->setChecked(gameConf.chkWaitChain != 0);
posY += 60;
chkQuickAnimation = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 25 * yScale), tabHelper, CHECKBOX_QUICK_ANIMATION, dataManager.GetSysString(1299));
chkQuickAnimation = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 30 * yScale), tabHelper, CHECKBOX_QUICK_ANIMATION, dataManager.GetSysString(1299));
chkQuickAnimation->setChecked(gameConf.quick_animation != 0);
//system
irr::gui::IGUITab* tabSystem = wInfos->addTab(dataManager.GetSysString(1273));
posY = 20 * xScale;
chkIgnore1 = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25 * yScale), tabSystem, CHECKBOX_DISABLE_CHAT, dataManager.GetSysString(1290));
chkIgnore1 = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 30 * yScale), tabSystem, CHECKBOX_DISABLE_CHAT, dataManager.GetSysString(1290));
chkIgnore1->setChecked(gameConf.chkIgnore1 != 0);
posY += 60;
chkIgnore2 = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25 * yScale), tabSystem, -1, dataManager.GetSysString(1291));
chkIgnore2 = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 30 * yScale), tabSystem, -1, dataManager.GetSysString(1291));
chkIgnore2->setChecked(gameConf.chkIgnore2 != 0);
posY += 60;
chkHideSetname = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25 * yScale), tabSystem, -1, dataManager.GetSysString(1354));
chkHideSetname = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 30 * yScale), tabSystem, -1, dataManager.GetSysString(1354));
chkHideSetname->setChecked(gameConf.chkHideSetname != 0);
posY += 60;
chkIgnoreDeckChanges = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 25 * yScale), tabSystem, -1, dataManager.GetSysString(1357));
chkIgnoreDeckChanges = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260 * xScale, posY + 30 * yScale), tabSystem, -1, dataManager.GetSysString(1357));
chkIgnoreDeckChanges->setChecked(gameConf.chkIgnoreDeckChanges != 0);
posY += 60;
chkAutoSearch = env->addCheckBox(false, rect<s32>(posX, posY, posX + 225 * xScale, posY + 25 * yScale), tabSystem, CHECKBOX_AUTO_SEARCH, dataManager.GetSysString(1358));
chkAutoSearch->setChecked(gameConf.auto_search_limit >= 0);
//
wHand = env->addWindow(rect<s32>(500 * xScale, 450 * yScale, 825 * xScale, 605 * yScale), false, L"");
wHand->getCloseButton()->setVisible(false);
......@@ -1363,24 +1360,25 @@ void Game::LoadConfig() {
gameConf.lasthost[0] = 0;
gameConf.lastport[0] = 0;
gameConf.roompass[0] = 0;
//settings
//helper
gameConf.chkMAutoPos = android::getIntSetting(appMain, "chkMAutoPos", 0);
gameConf.chkSTAutoPos = android::getIntSetting(appMain, "chkSTAutoPos", 0);
gameConf.chkRandomPos = android::getIntSetting(appMain, "chkRandomPos", 0);
gameConf.chkAutoChain = android::getIntSetting(appMain, "chkAutoChain", 0);
gameConf.chkWaitChain = android::getIntSetting(appMain, "chkWaitChain", 0);
gameConf.quick_animation = android::getIntSetting(appMain, "quick_animation", 0);
//system
gameConf.chkIgnore1 = android::getIntSetting(appMain, "chkIgnore1", 0);
gameConf.chkIgnore2 = android::getIntSetting(appMain, "chkIgnore2", 0);
gameConf.chkHideSetname = android::getIntSetting(appMain, "chkHideSetname", 0);
gameConf.control_mode = android::getIntSetting(appMain, "control_mode", 0);
gameConf.draw_field_spell = android::getIntSetting(appMain, "draw_field_spell", 1);
gameConf.separate_clear_button = android::getIntSetting(appMain, "separate_clear_button", 1);
gameConf.auto_search_limit = android::getIntSetting(appMain, "auto_search_limit", 1);
gameConf.chkIgnoreDeckChanges = android::getIntSetting(appMain, "chkIgnoreDeckChanges", 0);
gameConf.defaultOT = android::getIntSetting(appMain, "defaultOT", 1);
gameConf.auto_search_limit = 1;
//TEST BOT MODE
gameConf.enable_bot_mode = 1;
gameConf.quick_animation = 0;
}
void Game::SaveConfig() {
......@@ -1388,66 +1386,58 @@ void Game::SaveConfig() {
//BufferIO::EncodeUTF8(gameConf.lastdeck, linebuf);
//android::setLastDeck(appMain, linebuf);
int cur;
//helper
cur = chkMAutoPos->isChecked()?1:0;
if(cur != gameConf.chkMAutoPos){
gameConf.chkMAutoPos = cur;
android::saveIntSetting(appMain, "chkMAutoPos", gameConf.chkMAutoPos);
}
cur = chkSTAutoPos->isChecked()?1:0;
if(cur != gameConf.chkSTAutoPos){
gameConf.chkSTAutoPos = cur;
android::saveIntSetting(appMain, "chkSTAutoPos", gameConf.chkSTAutoPos);
}
cur = chkRandomPos->isChecked()?1:0;
if(cur != gameConf.chkRandomPos){
gameConf.chkRandomPos = cur;
android::saveIntSetting(appMain, "chkRandomPos", gameConf.chkRandomPos);
}
cur = chkAutoChain->isChecked()?1:0;
if(cur != gameConf.chkAutoChain){
gameConf.chkAutoChain = cur;
android::saveIntSetting(appMain, "chkAutoChain", gameConf.chkAutoChain);
}
cur = chkWaitChain->isChecked()?1:0;
if(cur != gameConf.chkWaitChain){
gameConf.chkWaitChain = cur;
android::saveIntSetting(appMain, "chkWaitChain", gameConf.chkWaitChain);
}
cur = chkQuickAnimation->isChecked()?1:0;
if(cur != gameConf.quick_animation){
gameConf.quick_animation = cur;
android::saveIntSetting(appMain, "quick_animation", gameConf.quick_animation);
}
//system
cur = chkIgnore1->isChecked()?1:0;
if(cur != gameConf.chkIgnore1){
gameConf.chkIgnore1 = cur;
android::saveIntSetting(appMain, "chkIgnore1", gameConf.chkIgnore1);
}
cur = chkIgnore2->isChecked()?1:0;
if(cur != gameConf.chkIgnore2){
gameConf.chkIgnore2 = cur;
android::saveIntSetting(appMain, "chkIgnore2", gameConf.chkIgnore2);
}
cur = chkHideSetname->isChecked()?1:0;
if(cur != gameConf.chkHideSetname){
gameConf.chkHideSetname = cur;
android::saveIntSetting(appMain, "chkHideSetname", gameConf.chkHideSetname);
}
cur = chkIgnoreDeckChanges->isChecked()?1:0;
if(cur != gameConf.chkIgnoreDeckChanges){
gameConf.chkIgnoreDeckChanges = cur;
android::saveIntSetting(appMain, "chkIgnoreDeckChanges", gameConf.chkIgnoreDeckChanges);
}
cur = chkAutoSearch->isChecked()?0:-1;
if(cur != gameConf.auto_search_limit){
gameConf.auto_search_limit = cur;
android::saveIntSetting(appMain, "auto_search_limit", gameConf.auto_search_limit);
}
cur = chkQuickAnimation->isChecked()?1:0;
if(cur != gameConf.quick_animation){
gameConf.quick_animation = cur;
android::saveIntSetting(appMain, "quick_animation", gameConf.quick_animation);
}
//gameConf.defaultOT = defaultOT->isChecked()?1:0;
// android::saveIntSetting(appMain, "defaultOT", gameConf.defaultOT);
......@@ -1494,7 +1484,7 @@ void Game::ShowCardInfo(int code) {
myswprintf(formatBuffer, L"[%ls] %ls/%ls", dataManager.FormatType(cd.type), dataManager.FormatRace(cd.race), dataManager.FormatAttribute(cd.attribute));
stInfo->setText(formatBuffer);
if(!(cd.type & TYPE_LINK)) {
wchar_t* form = L"\u2605";
const wchar_t* form = L"\u2605";
if(cd.type & TYPE_XYZ) form = L"\u2606";
myswprintf(formatBuffer, L"[%ls%d] ", form, cd.level);
wchar_t adBuffer[16];
......
......@@ -22,22 +22,8 @@
<pre>
更新:
1.更新ygo内核;
2.增加AI按难易度随机加入功能;
3.新卡SHVA+CT15+VJ+EP18+18SP;
4.新增AI卡组;
5.OCG2018.10禁卡表;
6.TCG2018.9禁卡表
修复:
1.关键词输入数字无法搜索「No.」的问题;
2.部分机型打开残局闪退的问题;
3.难以点击残局开始按钮的问题;
4.效果重置按钮为空的问题;
5.无法宣言风属性的问题;
优化:
1.属性、种族宣言时的易误触的问题;
2.增加适配机型;
3.更新适配功能开关说明;
4.放大单卡操作按钮;
2.系统设定中支持加速模式;
3.新卡SR07+VJ;
</pre>
</body>
</html>
\ No newline at end of file
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