diff --git a/source/code/HelpCommon.cpp b/source/code/HelpCommon.cpp index 3f7a514..d2b63c9 100644 --- a/source/code/HelpCommon.cpp +++ b/source/code/HelpCommon.cpp @@ -78,7 +78,7 @@ extern sago::SagoSprite bExit; void HelpCommonState::Draw(SDL_Renderer* target) { - bExit.Draw(target, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset); + bExit.Draw(target, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset, &globalData.logicalResize); #if DEBUG static sago::SagoTextField mousePos; mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder()); @@ -112,9 +112,13 @@ void HelpCommonState::Update() { if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { bMouseUp = false; + int mousex; + int mousey; + globalData.logicalResize.PhysicalToLogical(globalData.mousex, globalData.mousey, mousex, mousey); + //The Score button: - if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousexglobalData.ysize-buttonOffset) && (globalData.mouseyglobalData.xsize-buttonOffset) && (mousexglobalData.ysize-buttonOffset) && (mouseyGetSprite("help_controller"); - gamepad.Draw(target, SDL_GetTicks(), globalData.xsize/2-480/2, 100); + gamepad.Draw(target, SDL_GetTicks(), globalData.xsize/2-480/2, 100, &globalData.logicalResize); SDL_SetRenderDrawColor(target, 0, 0, 0, SDL_ALPHA_OPAQUE); - SDL_RenderDrawLine(target, 100+OFFSETX, 210, globalData.xsize/2-480/2+130, 210); - SDL_RenderDrawLine(target, 100+OFFSETX, 298, globalData.xsize/2-480/2+158, 298); - SDL_RenderDrawLine(target, 100+OFFSETX, 210, 100+OFFSETX, 400); - moveLabel.Draw(target, 100+OFFSETX, 404, sago::SagoTextField::Alignment::center); + RenderDrawLine(target, 100+OFFSETX, 210, globalData.xsize/2-480/2+130, 210); + RenderDrawLine(target, 100+OFFSETX, 298, globalData.xsize/2-480/2+158, 298); + RenderDrawLine(target, 100+OFFSETX, 210, 100+OFFSETX, 400); + moveLabel.Draw(target, 100+OFFSETX, 404, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize); //Push lines - SDL_RenderDrawLine(target, globalData.xsize/2-480/2+140, 90, globalData.xsize/2-480/2+140, 105); - SDL_RenderDrawLine(target, globalData.xsize/2+480/2-140, 90, globalData.xsize/2+480/2-140, 105); - SDL_RenderDrawLine(target, globalData.xsize/2-480/2+140-38, 90, globalData.xsize/2+480/2-140+38, 90); - SDL_RenderDrawLine(target, globalData.xsize/2-480/2+140-38, 90, globalData.xsize/2-480/2+140-38, 110); - SDL_RenderDrawLine(target, globalData.xsize/2+480/2-140+38, 90, globalData.xsize/2+480/2-140+38, 110); - SDL_RenderDrawLine(target, globalData.xsize/2, 80, globalData.xsize/2, 90); - pushLabel.Draw(target, globalData.xsize/2, 80, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom); + RenderDrawLine(target, globalData.xsize/2-480/2+140, 90, globalData.xsize/2-480/2+140, 105); + RenderDrawLine(target, globalData.xsize/2+480/2-140, 90, globalData.xsize/2+480/2-140, 105); + RenderDrawLine(target, globalData.xsize/2-480/2+140-38, 90, globalData.xsize/2+480/2-140+38, 90); + RenderDrawLine(target, globalData.xsize/2-480/2+140-38, 90, globalData.xsize/2-480/2+140-38, 110); + RenderDrawLine(target, globalData.xsize/2+480/2-140+38, 90, globalData.xsize/2+480/2-140+38, 110); + RenderDrawLine(target, globalData.xsize/2, 80, globalData.xsize/2, 90); + pushLabel.Draw(target, globalData.xsize/2, 80, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom, &globalData.logicalResize); //Back lines - SDL_RenderDrawLine(target, 800+OFFSETX, 158, 800+OFFSETX, 207); - SDL_RenderDrawLine(target, 490+OFFSETX, 180, 800+OFFSETX, 180); - SDL_RenderDrawLine(target, 490+OFFSETX, 180, 490+OFFSETX, 195); - SDL_RenderDrawLine(target, 663+OFFSETX, 207, 800+OFFSETX, 207); - backLabel.Draw(target, 800+OFFSETX, 156, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom); - SDL_RenderDrawLine(target, 625+OFFSETX, 241, 900+OFFSETX, 241); - SDL_RenderDrawLine(target, 900+OFFSETX, 241, 900+OFFSETX, 400); - switchLabel.Draw(target, 900+OFFSETX, 404, sago::SagoTextField::Alignment::center); - confirmLabel.Draw(target, 900+OFFSETX, 404+30, sago::SagoTextField::Alignment::center); - supportedControllers.Draw(target, 10, 600); + RenderDrawLine(target, 800+OFFSETX, 158, 800+OFFSETX, 207); + RenderDrawLine(target, 490+OFFSETX, 180, 800+OFFSETX, 180); + RenderDrawLine(target, 490+OFFSETX, 180, 490+OFFSETX, 195); + RenderDrawLine(target, 663+OFFSETX, 207, 800+OFFSETX, 207); + backLabel.Draw(target, 800+OFFSETX, 156, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom, &globalData.logicalResize); + RenderDrawLine(target, 625+OFFSETX, 241, 900+OFFSETX, 241); + RenderDrawLine(target, 900+OFFSETX, 241, 900+OFFSETX, 400); + switchLabel.Draw(target, 900+OFFSETX, 404, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize); + confirmLabel.Draw(target, 900+OFFSETX, 404+30, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize); + supportedControllers.Draw(target, 10, 600, sago::SagoTextField::Alignment::left, &globalData.logicalResize); HelpCommonState::Draw(target); } diff --git a/source/code/sago/SagoTextBox.cpp b/source/code/sago/SagoTextBox.cpp index 8ad56fb..41a1c6e 100644 --- a/source/code/sago/SagoTextBox.cpp +++ b/source/code/sago/SagoTextBox.cpp @@ -177,14 +177,14 @@ void SagoTextBox::UpdateCache() { data->renderedText = data->text; } -void SagoTextBox::Draw(SDL_Renderer* target, int x, int y, SagoTextField::Alignment alignment ) { +void SagoTextBox::Draw(SDL_Renderer* target, int x, int y, SagoTextField::Alignment alignment, SagoLogicalResize* resize ) { if (data->text != data->renderedText) { UpdateCache(); } TTF_Font* font = data->tex->getFontPtr(data->fontName, data->fontSize); int lineSkip = TTF_FontLineSkip(font); for (size_t i = 0; i < data->lines.size(); ++i) { - data->lines[i].Draw(target, x, y+i*lineSkip, alignment); + data->lines[i].Draw(target, x, y+i*lineSkip, alignment, sago::SagoTextField::VerticalAlignment::top, resize); } } diff --git a/source/code/sago/SagoTextBox.hpp b/source/code/sago/SagoTextBox.hpp index 6882006..4532a4a 100644 --- a/source/code/sago/SagoTextBox.hpp +++ b/source/code/sago/SagoTextBox.hpp @@ -57,7 +57,7 @@ public: */ void SetMaxWidth(int width); const std::string& GetText() const; - void Draw(SDL_Renderer* target, int x, int y, SagoTextField::Alignment alignment = SagoTextField::Alignment::left); + void Draw(SDL_Renderer* target, int x, int y, SagoTextField::Alignment alignment = SagoTextField::Alignment::left, SagoLogicalResize* resize = nullptr); void UpdateCache(); private: void AppendLineToCache(const std::string& text);