git repos / blockattack-game

blame: source/code/HelpCommon.cpp

normal view · raw

465d2e3f sago007 2020-06-28 08:40 1
/*
465d2e3f sago007 2020-06-28 08:40 2
===========================================================================
465d2e3f sago007 2020-06-28 08:40 3
blockattack - Block Attack - Rise of the Blocks
465d2e3f sago007 2020-06-28 08:40 4
Copyright (C) 2005-2020 Poul Sander
465d2e3f sago007 2020-06-28 08:40 5
465d2e3f sago007 2020-06-28 08:40 6
This program is free software: you can redistribute it and/or modify
465d2e3f sago007 2020-06-28 08:40 7
it under the terms of the GNU General Public License as published by
465d2e3f sago007 2020-06-28 08:40 8
the Free Software Foundation, either version 2 of the License, or
465d2e3f sago007 2020-06-28 08:40 9
(at your option) any later version.
465d2e3f sago007 2020-06-28 08:40 10
465d2e3f sago007 2020-06-28 08:40 11
This program is distributed in the hope that it will be useful,
465d2e3f sago007 2020-06-28 08:40 12
but WITHOUT ANY WARRANTY; without even the implied warranty of
465d2e3f sago007 2020-06-28 08:40 13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
465d2e3f sago007 2020-06-28 08:40 14
GNU General Public License for more details.
465d2e3f sago007 2020-06-28 08:40 15
465d2e3f sago007 2020-06-28 08:40 16
You should have received a copy of the GNU General Public License
465d2e3f sago007 2020-06-28 08:40 17
along with this program.  If not, see http://www.gnu.org/licenses/
465d2e3f sago007 2020-06-28 08:40 18
465d2e3f sago007 2020-06-28 08:40 19
Source information and contacts persons can be found at
465d2e3f sago007 2020-06-28 08:40 20
https://blockattack.net
465d2e3f sago007 2020-06-28 08:40 21
===========================================================================
465d2e3f sago007 2020-06-28 08:40 22
*/
465d2e3f sago007 2020-06-28 08:40 23
465d2e3f sago007 2020-06-28 08:40 24
#include "HelpCommon.hpp"
ec3f09de Poul Sander 2022-01-29 14:33 25
#include "MenuSystem.h"
ec3f09de Poul Sander 2022-01-29 14:33 26
#include "global.hpp"
465d2e3f sago007 2020-06-28 08:40 27
465d2e3f sago007 2020-06-28 08:40 28
465d2e3f sago007 2020-06-28 08:40 29
465d2e3f sago007 2020-06-28 08:40 30
template<typename T> void setHelp30FontTemplate(const sago::SagoDataHolder* holder, T& field, const char* text) {
465d2e3f sago007 2020-06-28 08:40 31
	field.SetHolder(holder);
465d2e3f sago007 2020-06-28 08:40 32
	field.SetFont("freeserif");
465d2e3f sago007 2020-06-28 08:40 33
	field.SetColor({255,255,255,255});
465d2e3f sago007 2020-06-28 08:40 34
	field.SetFontSize(30);
465d2e3f sago007 2020-06-28 08:40 35
	field.SetOutline(2, {0,0,0,255});
465d2e3f sago007 2020-06-28 08:40 36
	field.SetText(text);
465d2e3f sago007 2020-06-28 08:40 37
}
465d2e3f sago007 2020-06-28 08:40 38
465d2e3f sago007 2020-06-28 08:40 39
void setHelp30Font(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) {
465d2e3f sago007 2020-06-28 08:40 40
	setHelp30FontTemplate(holder, field, text);
465d2e3f sago007 2020-06-28 08:40 41
}
465d2e3f sago007 2020-06-28 08:40 42
465d2e3f sago007 2020-06-28 08:40 43
void setHelp30Font(const sago::SagoDataHolder* holder, sago::SagoTextBox& field, const char* text) {
465d2e3f sago007 2020-06-28 08:40 44
	setHelp30FontTemplate(holder, field, text);
465d2e3f sago007 2020-06-28 08:40 45
}
46404443 sago007 2020-06-28 08:53 46
46404443 sago007 2020-06-28 08:53 47
void setHelpBoxFont(const sago::SagoDataHolder* holder, sago::SagoTextBox& field, const char* text) {
46404443 sago007 2020-06-28 08:53 48
	field.SetHolder(holder);
46404443 sago007 2020-06-28 08:53 49
	field.SetFont("freeserif");
46404443 sago007 2020-06-28 08:53 50
	field.SetColor({255,255,255,255});
46404443 sago007 2020-06-28 08:53 51
	field.SetColor({0,0,0,255});
46404443 sago007 2020-06-28 08:53 52
	field.SetFontSize(20);
46404443 sago007 2020-06-28 08:53 53
	field.SetOutline(0, {0,0,0,255});
46404443 sago007 2020-06-28 08:53 54
	field.SetText(text);
46404443 sago007 2020-06-28 08:53 55
}
ec3f09de Poul Sander 2022-01-29 14:33 56
dfebdcd4 Poul Sander 2022-01-30 18:12 57
void setHelp30FontThinOutline(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) {
dfebdcd4 Poul Sander 2022-01-30 18:12 58
	setHelp30Font(holder,field, text);
dfebdcd4 Poul Sander 2022-01-30 18:12 59
	field.SetOutline(1, {128,128,128,255});
dfebdcd4 Poul Sander 2022-01-30 18:12 60
}
dfebdcd4 Poul Sander 2022-01-30 18:12 61
ec3f09de Poul Sander 2022-01-29 14:33 62
HelpCommonState::HelpCommonState() {
ec3f09de Poul Sander 2022-01-29 14:33 63
}
ec3f09de Poul Sander 2022-01-29 14:33 64
ec3f09de Poul Sander 2022-01-29 14:33 65
HelpCommonState::~HelpCommonState() {
ec3f09de Poul Sander 2022-01-29 14:33 66
}
ec3f09de Poul Sander 2022-01-29 14:33 67
ec3f09de Poul Sander 2022-01-29 14:33 68
bool HelpCommonState::IsActive() {
ec3f09de Poul Sander 2022-01-29 14:33 69
	return isActive;
ec3f09de Poul Sander 2022-01-29 14:33 70
}
ec3f09de Poul Sander 2022-01-29 14:33 71
ec3f09de Poul Sander 2022-01-29 14:33 72
void HelpCommonState::ProcessInput(const SDL_Event& event, bool& processed) {
ec3f09de Poul Sander 2022-01-29 14:33 73
ec3f09de Poul Sander 2022-01-29 14:33 74
	UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey);
ec3f09de Poul Sander 2022-01-29 14:33 75
ec3f09de Poul Sander 2022-01-29 14:33 76
	if (isConfirmEvent(event) || isEscapeEvent(event)) {
ec3f09de Poul Sander 2022-01-29 14:33 77
		isActive = false;
ec3f09de Poul Sander 2022-01-29 14:33 78
		processed = true;
ec3f09de Poul Sander 2022-01-29 14:33 79
	}
ec3f09de Poul Sander 2022-01-29 14:33 80
}
ec3f09de Poul Sander 2022-01-29 14:33 81
ec3f09de Poul Sander 2022-01-29 14:33 82
extern sago::SagoSprite bExit;
ec3f09de Poul Sander 2022-01-29 14:33 83
ec3f09de Poul Sander 2022-01-29 14:33 84
ec3f09de Poul Sander 2022-01-29 14:33 85
void HelpCommonState::Draw(SDL_Renderer* target) {
ec3f09de Poul Sander 2022-01-29 14:33 86
	bExit.Draw(target, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset);
ec3f09de Poul Sander 2022-01-29 14:33 87
#if DEBUG
ec3f09de Poul Sander 2022-01-29 14:33 88
	static sago::SagoTextField mousePos;
ec3f09de Poul Sander 2022-01-29 14:33 89
	mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder());
ec3f09de Poul Sander 2022-01-29 14:33 90
	mousePos.SetFontSize(16);
ec3f09de Poul Sander 2022-01-29 14:33 91
	mousePos.SetOutline(1, {128,128,128,255});
ec3f09de Poul Sander 2022-01-29 14:33 92
	mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey));
ec3f09de Poul Sander 2022-01-29 14:33 93
	mousePos.Draw(target, 0,0);
ec3f09de Poul Sander 2022-01-29 14:33 94
#endif
ec3f09de Poul Sander 2022-01-29 14:33 95
}
ec3f09de Poul Sander 2022-01-29 14:33 96
ec3f09de Poul Sander 2022-01-29 14:33 97
ec3f09de Poul Sander 2022-01-29 14:33 98
void HelpCommonState::Update() {
ec3f09de Poul Sander 2022-01-29 14:33 99
	// If the mouse button is released, make bMouseUp equal true
ec3f09de Poul Sander 2022-01-29 14:33 100
	if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) {
ec3f09de Poul Sander 2022-01-29 14:33 101
		bMouseUp=true;
ec3f09de Poul Sander 2022-01-29 14:33 102
	}
ec3f09de Poul Sander 2022-01-29 14:33 103
ec3f09de Poul Sander 2022-01-29 14:33 104
	if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) {
ec3f09de Poul Sander 2022-01-29 14:33 105
		bMouseUp = false;
ec3f09de Poul Sander 2022-01-29 14:33 106
ec3f09de Poul Sander 2022-01-29 14:33 107
		//The Score button:
ec3f09de Poul Sander 2022-01-29 14:33 108
		if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousex<globalData.xsize-buttonOffset+bExit.GetWidth())
ec3f09de Poul Sander 2022-01-29 14:33 109
		        && (globalData.mousey>globalData.ysize-buttonOffset) && (globalData.mousey<globalData.ysize-buttonOffset+bExit.GetHeight())) {
ec3f09de Poul Sander 2022-01-29 14:33 110
			isActive = false;
ec3f09de Poul Sander 2022-01-29 14:33 111
		}
ec3f09de Poul Sander 2022-01-29 14:33 112
ec3f09de Poul Sander 2022-01-29 14:33 113
	}
ec3f09de Poul Sander 2022-01-29 14:33 114
}