commit 4b21c89c
Resize the gamepad help screen
Changed files
| M | source/code/HelpCommon.cpp before |
| M | source/code/HelpGamepadState.cpp before |
| M | source/code/sago/SagoTextBox.cpp before |
| M | source/code/sago/SagoTextBox.hpp before |
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.mousex<globalData.xsize-buttonOffset+bExit.GetWidth())
- && (globalData.mousey>globalData.ysize-buttonOffset) && (globalData.mousey<globalData.ysize-buttonOffset+bExit.GetHeight())) {
+ if ((mousex>globalData.xsize-buttonOffset) && (mousex<globalData.xsize-buttonOffset+bExit.GetWidth())
+ && (mousey>globalData.ysize-buttonOffset) && (mousey<globalData.ysize-buttonOffset+bExit.GetHeight())) {
isActive = false;
}
diff --git a/source/code/HelpGamepadState.cpp b/source/code/HelpGamepadState.cpp
index e42afae..480a130 100644
--- a/source/code/HelpGamepadState.cpp
+++ b/source/code/HelpGamepadState.cpp
@@ -67,34 +67,40 @@ void HelpGamepadState::ProcessInput(const SDL_Event& event, bool& processed) {
#define OFFSETX (-512+globalData.xsize/2)
+static void RenderDrawLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2) {
+ globalData.logicalResize.LogicalToPhysical(&x1, &y1);
+ globalData.logicalResize.LogicalToPhysical(&x2, &y2);
+ SDL_RenderDrawLine(renderer, x1, y1, x2, y2);
+}
+
void HelpGamepadState::Draw(SDL_Renderer* target) {
DrawBackground(target);
const sago::SagoSprite& gamepad = globalData.spriteHolder->GetSprite("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);