Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions gframe/client_field.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1050,7 +1050,7 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
return;
}
int oseq = pcard->overlayTarget->sequence;
int mseq = (sequence < MAX_LAYER_COUNT) ? sequence : (MAX_LAYER_COUNT - 1);
int mseq = myclamp(sequence, 0, MAX_LAYER_COUNT - 1);
if (pcard->overlayTarget->controler == 0) {
t->X = (matManager.vFieldMzone[0][oseq][0].Pos.X + matManager.vFieldMzone[0][oseq][1].Pos.X) / 2 - 0.12f + 0.06f * mseq;
t->Y = (matManager.vFieldMzone[0][oseq][0].Pos.Y + matManager.vFieldMzone[0][oseq][2].Pos.Y) / 2 + 0.05f;
Expand Down Expand Up @@ -1175,7 +1175,7 @@ bool ClientField::CheckSelectSum() {
int op1 = selected_cards[i]->opParam & 0xffff;
int op2 = selected_cards[i]->opParam >> 16;
int opmin = (op2 > 0 && op1 > op2) ? op2 : op1;
int opmax = op2 > op1 ? op2 : op1;
int opmax = std::max(op1, op2);
select_curval_l += opmin;
select_curval_h += opmax;
}
Expand All @@ -1198,7 +1198,7 @@ bool ClientField::CheckSelectSum() {
int op1, op2;
get_sum_params(sc->opParam, op1, op2);
int opmin = (op2 > 0 && op1 > op2) ? op2 : op1;
int opmax = op2 > op1 ? op2 : op1;
int opmax = std::max(op1, op2);
if (mm == -1 || opmin < mm)
mm = opmin;
if (mx == -1 || opmax < mx)
Expand Down
4 changes: 4 additions & 0 deletions gframe/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ template<size_t N, typename... TR>
inline int mysnprintf(char(&buf)[N], const char* fmt, TR... args) {
return std::snprintf(buf, N, fmt, args...);
}
template<typename T>
inline T myclamp(T v, T lo, T hi) {
return (v < lo) ? lo : (hi < v) ? hi : v;
}

inline FILE* mywfopen(const wchar_t* filename, const char* mode) {
FILE* fp{};
Expand Down
5 changes: 1 addition & 4 deletions gframe/deck_con.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1746,10 +1746,7 @@ void DeckBuilder::ShowBigCard(int code, float zoom) {
mainGame->gMutex.unlock();
}
void DeckBuilder::ZoomBigCard(irr::s32 centerx, irr::s32 centery) {
if(bigcard_zoom >= 4)
bigcard_zoom = 4;
if(bigcard_zoom <= 0.2f)
bigcard_zoom = 0.2f;
bigcard_zoom = myclamp(bigcard_zoom, 0.2f, 4.0f);
auto img = imageManager.GetBigPicture(bigcard_code, bigcard_zoom);
mainGame->imgBigCard->setImage(img);
auto size = img->getSize();
Expand Down
81 changes: 53 additions & 28 deletions gframe/event_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1934,6 +1934,26 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
return true;
break;
}
case CHECKBOX_SWAP_YES_NO_BUTTON: {
bool checked = mainGame->chkSwapYesNoButton->isChecked();
mainGame->gameConf.swap_yes_no_button = checked;
mainGame->SwapYesNoButtons(checked);
return true;
break;
}
case CHECKBOX_RESIZE_SELECT_WINDOW: {
mainGame->gameConf.resize_select_window = mainGame->chkResizeSelectWindow->isChecked();
mainGame->OnResize();
return true;
break;
}
case CHECKBOX_RESIZE_POPUP_MENU: {
bool checked = mainGame->chkResizePopupMenu->isChecked();
mainGame->gameConf.resize_popup_menu = checked ? mainGame->scrResizePopupMenu->getPos() : 0;
mainGame->ResizeCmdMenu();
return true;
break;
}
case CHECKBOX_LFLIST: {
mainGame->gameConf.use_lflist = mainGame->chkLFlist->isChecked() ? 1 : 0;
mainGame->cbLFlist->setEnabled(mainGame->gameConf.use_lflist);
Expand Down Expand Up @@ -1997,13 +2017,21 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
break;
}
case SCROLL_VOLUME: {
mainGame->gameConf.sound_volume = (double)mainGame->scrSoundVolume->getPos() / 100;
mainGame->gameConf.music_volume = (double)mainGame->scrMusicVolume->getPos() / 100;
mainGame->gameConf.sound_volume = mainGame->scrSoundVolume->getPos();
mainGame->gameConf.music_volume = mainGame->scrMusicVolume->getPos();
soundManager.SetSoundVolume(mainGame->gameConf.sound_volume);
soundManager.SetMusicVolume(mainGame->gameConf.music_volume);
return true;
break;
}
case SCROLL_RESIZE_POPUP_MENU: {
if(mainGame->chkResizePopupMenu->isChecked()) {
mainGame->gameConf.resize_popup_menu = mainGame->scrResizePopupMenu->getPos();
mainGame->ResizeCmdMenu();
}
return true;
break;
}
case SCROLL_TAB_HELPER: {
irr::core::rect<irr::s32> pos = mainGame->tabHelper->getRelativePosition();
mainGame->tabHelper->setRelativePosition(irr::core::recti(0, mainGame->scrTabHelper->getPos() * -1, pos.LowerRightCorner.X, pos.LowerRightCorner.Y));
Expand Down Expand Up @@ -2311,36 +2339,36 @@ void ClientField::ShowMenu(int flag, int x, int y) {
return;
}
menu_card = clicked_card;
int height = 1;
int offset = mainGame->gameConf.resize_popup_menu ? ((mainGame->yScale >= 0.666) ? 21 * mainGame->yScale : 14) : 21;
irr::s32 offset = 0;
irr::s32 height = mainGame->GetPopupMenuButtonHeight();
if(flag & COMMAND_ACTIVATE) {
mainGame->btnActivate->setVisible(true);
mainGame->btnActivate->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnActivate->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnActivate->setVisible(false);
if(flag & COMMAND_SUMMON) {
mainGame->btnSummon->setVisible(true);
mainGame->btnSummon->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnSummon->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnSummon->setVisible(false);
if(flag & COMMAND_SPSUMMON) {
mainGame->btnSPSummon->setVisible(true);
mainGame->btnSPSummon->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnSPSummon->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnSPSummon->setVisible(false);
if(flag & COMMAND_MSET) {
mainGame->btnMSet->setVisible(true);
mainGame->btnMSet->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnMSet->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnMSet->setVisible(false);
if(flag & COMMAND_SSET) {
if(!(clicked_card->type & TYPE_MONSTER))
mainGame->btnSSet->setText(dataManager.GetSysString(1153));
else
mainGame->btnSSet->setText(dataManager.GetSysString(1159));
mainGame->btnSSet->setVisible(true);
mainGame->btnSSet->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnSSet->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnSSet->setVisible(false);
if(flag & COMMAND_REPOS) {
if(clicked_card->position & POS_FACEDOWN)
Expand All @@ -2350,38 +2378,35 @@ void ClientField::ShowMenu(int flag, int x, int y) {
else
mainGame->btnRepos->setText(dataManager.GetSysString(1156));
mainGame->btnRepos->setVisible(true);
mainGame->btnRepos->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnRepos->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnRepos->setVisible(false);
if(flag & COMMAND_ATTACK) {
mainGame->btnAttack->setVisible(true);
mainGame->btnAttack->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnAttack->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnAttack->setVisible(false);
if(flag & COMMAND_LIST) {
mainGame->btnShowList->setVisible(true);
mainGame->btnShowList->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnShowList->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnShowList->setVisible(false);
if(flag & COMMAND_OPERATION) {
mainGame->btnOperation->setVisible(true);
mainGame->btnOperation->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnOperation->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnOperation->setVisible(false);
if(flag & COMMAND_RESET) {
mainGame->btnReset->setVisible(true);
mainGame->btnReset->setRelativePosition(irr::core::vector2di(1, height));
height += offset;
mainGame->btnReset->setRelativePosition(irr::core::vector2di(0, offset));
offset += height;
} else mainGame->btnReset->setVisible(false);
panel = mainGame->wCmdMenu;
mainGame->wCmdMenu->setVisible(true);
mainGame->btnBP->setEnabled(false);
mainGame->btnM2->setEnabled(false);
mainGame->btnEP->setEnabled(false);
if(mainGame->gameConf.resize_popup_menu)
mainGame->wCmdMenu->setRelativePosition(mainGame->Resize(x - 20, y - 20, x + 80, y - 20, 0, -height, 0, 0));
else
mainGame->wCmdMenu->setRelativePosition(mainGame->Resize(x, y, x, y, -20, -(20 + height), 80, -20));
mainGame->wCmdMenu->setRelativePosition(mainGame->Resize(x, y, x, y, -20, -(20 + offset), mainGame->GetPopupMenuButtonWidth() - 20, -20));
}
void ClientField::HideMenu() {
mainGame->wCmdMenu->setVisible(false);
Expand Down
Loading