diff --git a/source/code/HelpGamepadState.cpp b/source/code/HelpGamepadState.cpp index caca5f5..25597cb 100644 --- a/source/code/HelpGamepadState.cpp +++ b/source/code/HelpGamepadState.cpp @@ -27,6 +27,14 @@ https://blockattack.net #include "MenuSystem.h" HelpGamepadState::HelpGamepadState() { + moveLabel.SetHolder(&globalData.spriteHolder->GetDataHolder()); + moveLabel.SetFontSize(30); + moveLabel.SetOutline(1, {128,128,128,255}); + moveLabel.SetText(_("Move cursor")); + pushLabel.SetHolder(&globalData.spriteHolder->GetDataHolder()); + pushLabel.SetFontSize(30); + pushLabel.SetOutline(1, {128,128,128,255}); + pushLabel.SetText(_("Push line")); } @@ -50,6 +58,15 @@ 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); + SDL_RenderDrawLine(target, 100, 210, globalData.xsize/2-480/2+130, 210); + SDL_RenderDrawLine(target, 100, 298, globalData.xsize/2-480/2+158, 298); + SDL_RenderDrawLine(target, 100, 210, 100, 400); + moveLabel.Draw(target, 100, 404, sago::SagoTextField::Alignment::center); + 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, 90, globalData.xsize/2+480/2-140, 90); + 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); } void HelpGamepadState::Update() { diff --git a/source/code/HelpGamepadState.hpp b/source/code/HelpGamepadState.hpp index 9545f7b..e39f558 100644 --- a/source/code/HelpGamepadState.hpp +++ b/source/code/HelpGamepadState.hpp @@ -41,6 +41,8 @@ public: private: bool isActive = true; + sago::SagoTextField moveLabel; + sago::SagoTextField pushLabel; private: }; diff --git a/source/code/sago/SagoTextField.cpp b/source/code/sago/SagoTextField.cpp index 6518899..2bb40f9 100644 --- a/source/code/sago/SagoTextField.cpp +++ b/source/code/sago/SagoTextField.cpp @@ -214,6 +214,9 @@ void SagoTextField::Draw(SDL_Renderer* target, int x, int y, Alignment alignment if (verticalAlignment == VerticalAlignment::center) { y -= texH/2; } + if (verticalAlignment == VerticalAlignment::bottom) { + y -= texH; + } SDL_Rect dstrect = { x, y, texW, texH }; if (data->outlineTexture) { int outlineTexW = 0; diff --git a/source/code/sago/SagoTextField.hpp b/source/code/sago/SagoTextField.hpp index f3af800..902ee16 100644 --- a/source/code/sago/SagoTextField.hpp +++ b/source/code/sago/SagoTextField.hpp @@ -97,7 +97,7 @@ public: */ void GetRenderedSize(const char* text, int* w = nullptr, int* h = nullptr); enum class Alignment { left = 0, right=1, center = 2 }; - enum class VerticalAlignment { top = 0, center = 1}; + enum class VerticalAlignment { top = 0, center = 1, bottom = 2}; void Draw(SDL_Renderer* target, int x, int y, Alignment alignment = Alignment::left, VerticalAlignment verticalAlignment = VerticalAlignment::top); /** * Updates the cache.