1 /************************************************************************************
2 
3 	AstroMenace
4 	Hardcore 3D space scroll-shooter with spaceship upgrade possibilities.
5 	Copyright (c) 2006-2019 Mikhail Kurinnoi, Viewizard
6 
7 
8 	AstroMenace is free software: you can redistribute it and/or modify
9 	it under the terms of the GNU General Public License as published by
10 	the Free Software Foundation, either version 3 of the License, or
11 	(at your option) any later version.
12 
13 	AstroMenace is distributed in the hope that it will be useful,
14 	but WITHOUT ANY WARRANTY; without even the implied warranty of
15 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 	GNU General Public License for more details.
17 
18 	You should have received a copy of the GNU General Public License
19 	along with AstroMenace. If not, see <https://www.gnu.org/licenses/>.
20 
21 
22 	Website: https://viewizard.com/
23 	Project: https://github.com/viewizard/astromenace
24 	E-mail: viewizard@viewizard.com
25 
26 *************************************************************************************/
27 
28 #ifndef GAME_WEAPONPANEL_H
29 #define GAME_WEAPONPANEL_H
30 
31 #include "../core/base.h"
32 
33 // NOTE switch to nested namespace definition (namespace A::B::C { ... }) (since C++17)
34 namespace viewizard {
35 namespace astromenace {
36 
37 class cSpaceShip;
38 
39 // do not use specific numbers here, since we use incrementation and decrementation
40 // with cast to int, see WeaponPanelViewNext() and WeaponPanelViewPrev()
41 enum eWeaponPanelView : int {
42 	hide = 0, // should be the first one
43 	slim,
44 	flat,
45 	full // should be the last one
46 };
47 
48 
49 // Draw in-game weapon panels (part of HUD).
50 void DrawWeaponPanels(std::weak_ptr<cSpaceShip> &SpaceShip);
51 // Find next weapon panel view (cycled).
52 void WeaponPanelViewNext(eWeaponPanelView &Value);
53 // Find previous weapon panel view (cycled).
54 void WeaponPanelViewPrev(eWeaponPanelView &Value);
55 
56 } // astromenace namespace
57 } // viewizard namespace
58 
59 #endif // GAME_WEAPONPANEL_H
60