git repos / blockattack-game

commit 48a58ded

Poul Sander · 2025-03-05 20:41
48a58ded72c0d5ba64efc7ea7bcf81a93928e3a7 patch · browse files
parent 931a61e9c4737c229f5b1359c1dfb87d8766f415

The How To screen is now resizeable

Changed files

M source/code/HelpHowtoState.cpp before
diff --git a/source/code/HelpHowtoState.cpp b/source/code/HelpHowtoState.cpp index f705ed6..87d9ca8 100644 --- a/source/code/HelpHowtoState.cpp +++ b/source/code/HelpHowtoState.cpp
@@ -48,9 +48,9 @@ static void RenderRowOfBricks(SDL_Renderer* target, const std::string& brickStr,
brickChar = brickChar + 'a' - 'A';
}
if (brickChar >= 'a' && brickChar <= 'g') {
- globalData.bricks[brickChar - 'a'].Draw(target, tick, x+i*50, y);
+ globalData.bricks[brickChar - 'a'].Draw(target, tick, x+i*50, y, &globalData.logicalResize);
if (bomb) {
- globalData.spriteHolder->GetSprite("block_bomb").Draw(target, tick, x+i*50, y);
+ globalData.spriteHolder->GetSprite("block_bomb").Draw(target, tick, x+i*50, y, &globalData.logicalResize);
}
}
}
@@ -131,6 +131,12 @@ HelpHowtoState::~HelpHowtoState() {
const double PI =3.141592653589793238463;
+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);
+}
+
static void DrawArrow(SDL_Renderer* target, int x1, int y1, int x2, int y2) {
double dx = x1-x2;
double dy = y1-y2;
@@ -140,33 +146,33 @@ static void DrawArrow(SDL_Renderer* target, int x1, int y1, int x2, int y2) {
double angle= PI/4.0;
double nx1 = dx * std::cos(angle) - dy * std::sin(angle) + x2;
double ny1 = dx * std::sin(angle) + dy * std::cos(angle) + y2;
- SDL_RenderDrawLine(target, x1, y1, x2, y2);
- SDL_RenderDrawLine(target, nx1, ny1, x2, y2);
+ RenderDrawLine(target, x1, y1, x2, y2);
+ RenderDrawLine(target, nx1, ny1, x2, y2);
nx1 = dx * std::cos(-angle) - dy * std::sin(-angle) + x2;
ny1 = dx * std::sin(-angle) + dy * std::cos(-angle) + y2;
- SDL_RenderDrawLine(target, nx1, ny1, x2, y2);
+ RenderDrawLine(target, nx1, ny1, x2, y2);
}
void HelpHowtoState::Draw(SDL_Renderer* target) {
DrawBackground(target);
SDL_SetRenderDrawColor(target, 0, 0, 0, SDL_ALPHA_OPAQUE);
RenderRowOfBricks(target, switchAnimation.brickStr, 50, 50);
- globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50+switchAnimation.cursorPos*50, 50);
- switchAnimationField.Draw(target, 50 +150+30, 50+25, sago::SagoTextField::Alignment::left, sago::SagoTextField::VerticalAlignment::center);
+ globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50+switchAnimation.cursorPos*50, 50, &globalData.logicalResize);
+ switchAnimationField.Draw(target, 50 +150+30, 50+25, sago::SagoTextField::Alignment::left, sago::SagoTextField::VerticalAlignment::center, &globalData.logicalResize);
RenderRowOfBricks(target, "adaa", 50, 150);
- globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50, 150);
+ globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50, 150, &globalData.logicalResize);
RenderRowOfBricks(target, "dAAA", 50+300, 150);
DrawArrow(target, 50+200+25, 150+25, 50+300-25, 150+25);
- clearRowfield.Draw(target, 600, 150+25, sago::SagoTextField::Alignment::left, sago::SagoTextField::VerticalAlignment::center);
- comboField.Draw(target, 50+175, 410, sago::SagoTextField::Alignment::center);
+ clearRowfield.Draw(target, 600, 150+25, sago::SagoTextField::Alignment::left, sago::SagoTextField::VerticalAlignment::center, &globalData.logicalResize);
+ comboField.Draw(target, 50+175, 410, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize);
MultiLineBlocks().addLine("ab").addLine("ba").addLine("ab").Render(target, 50, 250);
- globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50, 250+50);
+ globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50, 250+50, &globalData.logicalResize);
MultiLineBlocks().addLine("AB").addLine("AB").addLine("AB").Render(target, 50+200, 250);
DrawArrow(target, 175, 325, 225, 325);
MultiLineBlocks().addLine("a").addLine("b").addLine("e").Render(target, 50+400, 250);
globalData.spriteHolder->GetSprite("cursor").Draw(target, SDL_GetTicks(), 50+400, 250);
MultiLineBlocks().addLine(" ").addLine("b").addLine("ea").Render(target, 50+400+200, 250);
- dropField.Draw(target, 50+400+150, 410, sago::SagoTextField::Alignment::center);
+ dropField.Draw(target, 50+400+150, 410, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize);
DrawArrow(target, 575, 325, 625, 325);
DrawArrow(target, 475, 275, 525, 275);
DrawArrow(target, 525, 275, 525, 375);
@@ -181,7 +187,7 @@ void HelpHowtoState::Draw(SDL_Renderer* target) {
DrawArrow(target, 400, 600, 450, 600);
DrawArrow(target, 600, 600, 650, 600);
DrawArrow(target, 525, 525, 525, 675);
- chainField.Draw(target, 400, 710, sago::SagoTextField::Alignment::center);
+ chainField.Draw(target, 400, 710, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize);
HelpCommonState::Draw(target);
}