]> git.jsancho.org Git - lugaru.git/blob - Source/Objects/PersonType.hpp
Moved default scale and default damage tolerance to PersonType.
[lugaru.git] / Source / Objects / PersonType.hpp
1 /*
2 Copyright (C) 2016-2017 - Lugaru contributors (see AUTHORS file)
3
4 This file is part of Lugaru.
5
6 Lugaru is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 Lugaru is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef _PERSONTYPE_HPP_
21 #define _PERSONTYPE_HPP_
22
23 #include "Animation/Animation.hpp"
24 #include "Audio/Sounds.hpp"
25 #include "Math/XYZ.hpp"
26
27 enum person_type
28 {
29     rabbittype = 0,
30     wolftype = 1
31 };
32
33 class PersonType
34 {
35 public:
36     // head, body, arms, legs
37     XYZ proportions[4];
38     animation_type animRun;
39     animation_type animRunning;
40     animation_type animCrouch;
41     animation_type animStop;
42     animation_type animLanding;
43     animation_type animLandingHard;
44     animation_type animFightIdle;
45     animation_type animBounceIdle;
46     animation_type animTalkIdle;
47
48     sound_type soundsAttack[4];
49     sound_type soundsTalk[2];
50
51     std::string figureFileName;
52     std::string lowFigureFileName;
53     std::string clothesFileName;
54     std::string modelFileNames[7];
55     std::string lowModelFileName;
56     std::string modelClothesFileName;
57
58     std::vector<std::string> skins;
59
60     float power;
61     unsigned int defaultDamageTolerance;
62     float defaultScale;
63
64     GLubyte bloodText[512 * 512 * 3] = { 0 };
65
66     PersonType();
67     bool hasAnimTalkIdle();
68
69     static std::vector<PersonType> types;
70     static void Load();
71 };
72
73 #endif