Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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 @@ -58,6 +58,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 const T& myclamp(const T& v, const T& lo, const T& hi) {
Comment thread
mercury233 marked this conversation as resolved.
Outdated
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