| 54d2d583 |
sago007 |
2018-04-05 17:52 |
1 |
/* |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
2 |
=========================================================================== |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
3 |
blockattack - Block Attack - Rise of the Blocks |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
4 |
Copyright (C) 2005-2018 Poul Sander |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
5 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
6 |
This program is free software: you can redistribute it and/or modify |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
7 |
it under the terms of the GNU General Public License as published by |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
8 |
the Free Software Foundation, either version 2 of the License, or |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
9 |
(at your option) any later version. |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
10 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
11 |
This program is distributed in the hope that it will be useful, |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
14 |
GNU General Public License for more details. |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
15 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
16 |
You should have received a copy of the GNU General Public License |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
17 |
along with this program. If not, see http://www.gnu.org/licenses/ |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
18 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
19 |
Source information and contacts persons can be found at |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
20 |
https://blockattack.net |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
21 |
=========================================================================== |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
22 |
*/ |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
23 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
24 |
#include "HelpGamepadState.hpp" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
25 |
#include "global.hpp" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
26 |
#include "common.h" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
27 |
#include "MenuSystem.h" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
28 |
|
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
29 |
static void setHelpGamepadFont(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text){ |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
30 |
field.SetHolder(holder); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
31 |
field.SetFont("freeserif"); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
32 |
field.SetColor({255,255,255,255}); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
33 |
field.SetFontSize(30); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
34 |
field.SetOutline(1, {128,128,128,255}); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
35 |
field.SetText(text); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
36 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
37 |
|
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
38 |
HelpGamepadState::HelpGamepadState() { |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
39 |
setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), moveLabel, _("Move cursor")); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
40 |
setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), pushLabel, _("Push line")); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
41 |
setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), backLabel, _("Back (Menu)")); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
42 |
setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), switchLabel, _("Switch")); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
43 |
setHelpGamepadFont(&globalData.spriteHolder->GetDataHolder(), confirmLabel, _("Confirm")); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
44 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
45 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
46 |
HelpGamepadState::~HelpGamepadState() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
47 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
48 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
49 |
bool HelpGamepadState::IsActive() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
50 |
return isActive; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
51 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
52 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
53 |
void HelpGamepadState::ProcessInput(const SDL_Event& event, bool& processed) { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
54 |
UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
55 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
56 |
if (isConfirmEvent(event) || isEscapeEvent(event)) { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
57 |
isActive = false; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
58 |
processed = true; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
59 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
60 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
61 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
62 |
void HelpGamepadState::Draw(SDL_Renderer* target) { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
63 |
DrawBackground(target); |
| a5421912 |
sago007 |
2018-04-07 14:13 |
64 |
const sago::SagoSprite& gamepad = globalData.spriteHolder->GetSprite("help_controller"); |
| a5421912 |
sago007 |
2018-04-07 14:13 |
65 |
gamepad.Draw(target, SDL_GetTicks(), globalData.xsize/2-480/2, 100); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
66 |
SDL_RenderDrawLine(target, 100, 210, globalData.xsize/2-480/2+130, 210); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
67 |
SDL_RenderDrawLine(target, 100, 298, globalData.xsize/2-480/2+158, 298); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
68 |
SDL_RenderDrawLine(target, 100, 210, 100, 400); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
69 |
moveLabel.Draw(target, 100, 404, sago::SagoTextField::Alignment::center); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
70 |
SDL_RenderDrawLine(target, globalData.xsize/2-480/2+140, 90, globalData.xsize/2-480/2+140, 105); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
71 |
SDL_RenderDrawLine(target, globalData.xsize/2+480/2-140, 90, globalData.xsize/2+480/2-140, 105); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
72 |
SDL_RenderDrawLine(target, globalData.xsize/2-480/2+140, 90, globalData.xsize/2+480/2-140, 90); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
73 |
SDL_RenderDrawLine(target, globalData.xsize/2, 80, globalData.xsize/2, 90); |
| 492b2753 |
sago007 |
2018-04-07 14:37 |
74 |
pushLabel.Draw(target, globalData.xsize/2, 80, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
75 |
SDL_RenderDrawLine(target, 625, 168, 800, 168); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
76 |
SDL_RenderDrawLine(target, 800, 158, 800, 168); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
77 |
backLabel.Draw(target, 800, 156, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
78 |
SDL_RenderDrawLine(target, 625, 241, 900, 241); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
79 |
SDL_RenderDrawLine(target, 663, 207, 900, 207); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
80 |
SDL_RenderDrawLine(target, 900, 207, 900, 400); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
81 |
switchLabel.Draw(target, 900, 404, sago::SagoTextField::Alignment::center); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
82 |
confirmLabel.Draw(target, 900, 404+30, sago::SagoTextField::Alignment::center); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
83 |
#if DEBUG |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
84 |
static sago::SagoTextField mousePos; |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
85 |
mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder()); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
86 |
mousePos.SetFontSize(16); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
87 |
mousePos.SetOutline(1, {128,128,128,255}); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
88 |
mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey)); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
89 |
mousePos.Draw(target, 0,0); |
| 79d765a2 |
sago007 |
2018-04-07 17:35 |
90 |
#endif |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
91 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
92 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
93 |
void HelpGamepadState::Update() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
94 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
95 |
} |