| 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 |
|
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
24 |
#include "HelpCommon.hpp" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
25 |
#include "HelpGamepadState.hpp" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
26 |
#include "global.hpp" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
27 |
#include "common.h" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
28 |
#include "MenuSystem.h" |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
29 |
#include "gamecontroller.h" |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
30 |
|
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
31 |
static std::string getLabelForSupportedControllerNames() { |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
32 |
std::string s = _("Only SDL2 compatible controllers are supported!\nSupported controllers: "); |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
33 |
for (size_t i = 0 ; i<GetSupportedControllerNames().size(); ++i ) { |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
34 |
if (i != 0) { |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
35 |
s+= ", "; |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
36 |
} |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
37 |
s+= GetSupportedControllerNames().at(i); |
| bf4572f8 |
sago007 |
2018-04-10 22:25 |
38 |
} |
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
39 |
return s; |
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
40 |
} |
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
41 |
|
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
42 |
|
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
43 |
HelpGamepadState::HelpGamepadState() { |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
44 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), moveLabel, _("Move cursor")); |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
45 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), pushLabel, _("Push line")); |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
46 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), backLabel, _("Back (Menu)")); |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
47 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), switchLabel, _("Switch")); |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
48 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), confirmLabel, _("Confirm")); |
| 8c5c4f5a |
Poul Sander |
2020-06-27 13:06 |
49 |
std::string s = getLabelForSupportedControllerNames(); |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
50 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), supportedControllers, s.c_str()); |
| fd7693a1 |
sago007 |
2018-04-16 19:10 |
51 |
supportedControllers.SetMaxWidth(740); |
| ceac8bf4 |
sago007 |
2018-04-07 17:41 |
52 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
53 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
54 |
HelpGamepadState::~HelpGamepadState() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
55 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
56 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
57 |
void HelpGamepadState::ProcessInput(const SDL_Event& event, bool& processed) { |
| 016b3bf0 |
Poul Sander |
2023-11-15 17:58 |
58 |
if (GameControllerIsConnectionEvent(event)) { |
| db84be96 |
sago007 |
2020-06-27 22:07 |
59 |
UnInitGameControllers(); |
| db84be96 |
sago007 |
2020-06-27 22:07 |
60 |
InitGameControllers(); |
| db84be96 |
sago007 |
2020-06-27 22:07 |
61 |
std::string s = getLabelForSupportedControllerNames(); |
| 465d2e3f |
sago007 |
2020-06-28 08:40 |
62 |
setHelp30Font(&globalData.spriteHolder->GetDataHolder(), supportedControllers, s.c_str()); |
| 409492c9 |
sago007 |
2020-06-27 22:22 |
63 |
processed = true; |
| db84be96 |
sago007 |
2020-06-27 22:07 |
64 |
} |
| ec3f09de |
Poul Sander |
2022-01-29 14:33 |
65 |
HelpCommonState::ProcessInput(event, processed); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
66 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
67 |
|
| 8b1ee612 |
Poul Sander |
2019-04-24 17:45 |
68 |
#define OFFSETX (-512+globalData.xsize/2) |
| 8b1ee612 |
Poul Sander |
2019-04-24 17:45 |
69 |
|
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
70 |
static void RenderDrawLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2) { |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
71 |
globalData.logicalResize.LogicalToPhysical(&x1, &y1); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
72 |
globalData.logicalResize.LogicalToPhysical(&x2, &y2); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
73 |
SDL_RenderDrawLine(renderer, x1, y1, x2, y2); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
74 |
} |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
75 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
76 |
void HelpGamepadState::Draw(SDL_Renderer* target) { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
77 |
DrawBackground(target); |
| a5421912 |
sago007 |
2018-04-07 14:13 |
78 |
const sago::SagoSprite& gamepad = globalData.spriteHolder->GetSprite("help_controller"); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
79 |
gamepad.Draw(target, SDL_GetTicks(), globalData.xsize/2-480/2, 100, &globalData.logicalResize); |
| 855544ea |
Poul Sander |
2021-10-06 20:05 |
80 |
SDL_SetRenderDrawColor(target, 0, 0, 0, SDL_ALPHA_OPAQUE); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
81 |
RenderDrawLine(target, 100+OFFSETX, 210, globalData.xsize/2-480/2+130, 210); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
82 |
RenderDrawLine(target, 100+OFFSETX, 298, globalData.xsize/2-480/2+158, 298); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
83 |
RenderDrawLine(target, 100+OFFSETX, 210, 100+OFFSETX, 400); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
84 |
moveLabel.Draw(target, 100+OFFSETX, 404, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize); |
| 7b16a3a8 |
sago007 |
2018-06-30 13:03 |
85 |
//Push lines |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
86 |
RenderDrawLine(target, globalData.xsize/2-480/2+140, 90, globalData.xsize/2-480/2+140, 105); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
87 |
RenderDrawLine(target, globalData.xsize/2+480/2-140, 90, globalData.xsize/2+480/2-140, 105); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
88 |
RenderDrawLine(target, globalData.xsize/2-480/2+140-38, 90, globalData.xsize/2+480/2-140+38, 90); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
89 |
RenderDrawLine(target, globalData.xsize/2-480/2+140-38, 90, globalData.xsize/2-480/2+140-38, 110); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
90 |
RenderDrawLine(target, globalData.xsize/2+480/2-140+38, 90, globalData.xsize/2+480/2-140+38, 110); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
91 |
RenderDrawLine(target, globalData.xsize/2, 80, globalData.xsize/2, 90); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
92 |
pushLabel.Draw(target, globalData.xsize/2, 80, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom, &globalData.logicalResize); |
| 7b16a3a8 |
sago007 |
2018-06-30 13:03 |
93 |
//Back lines |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
94 |
RenderDrawLine(target, 800+OFFSETX, 158, 800+OFFSETX, 207); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
95 |
RenderDrawLine(target, 490+OFFSETX, 180, 800+OFFSETX, 180); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
96 |
RenderDrawLine(target, 490+OFFSETX, 180, 490+OFFSETX, 195); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
97 |
RenderDrawLine(target, 663+OFFSETX, 207, 800+OFFSETX, 207); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
98 |
backLabel.Draw(target, 800+OFFSETX, 156, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::bottom, &globalData.logicalResize); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
99 |
RenderDrawLine(target, 625+OFFSETX, 241, 900+OFFSETX, 241); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
100 |
RenderDrawLine(target, 900+OFFSETX, 241, 900+OFFSETX, 400); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
101 |
switchLabel.Draw(target, 900+OFFSETX, 404, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
102 |
confirmLabel.Draw(target, 900+OFFSETX, 404+30, sago::SagoTextField::Alignment::center, sago::SagoTextField::VerticalAlignment::top, &globalData.logicalResize); |
| 4b21c89c |
Poul Sander |
2025-03-04 20:33 |
103 |
supportedControllers.Draw(target, 10, 600, sago::SagoTextField::Alignment::left, &globalData.logicalResize); |
| ec3f09de |
Poul Sander |
2022-01-29 14:33 |
104 |
HelpCommonState::Draw(target); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
105 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
106 |
|
|
|
1970-01-01 00:00 |
107 |
|