]> git.jsancho.org Git - lugaru.git/blob - Source/Objects/Weapons.hpp
Removed unused defines, changed method names case
[lugaru.git] / Source / Objects / Weapons.hpp
1 /*
2 Copyright (C) 2003, 2010 - Wolfire Games
3 Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
4
5 This file is part of Lugaru.
6
7 Lugaru is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 Lugaru is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #ifndef _WEAPONS_HPP_
22 #define _WEAPONS_HPP_
23
24 #include "Animation/Skeleton.hpp"
25 #include "Environment/Terrain.hpp"
26 #include "Graphic/gamegl.hpp"
27 #include "Graphic/Models.hpp"
28 #include "Graphic/Sprite.hpp"
29 #include "Graphic/Texture.hpp"
30 #include "Math/XYZ.hpp"
31 #include "Objects/Person.hpp"
32
33 #include <cmath>
34
35 #define knife 1
36 #define sword 2
37 #define staff 3
38
39 class Weapon
40 {
41 public:
42     Weapon(int type, int owner);
43
44     static void Load();
45
46     void draw();
47     void doStuff(int);
48
49     int getType() {
50         return type;
51     }
52     void setType(int);
53
54     void drop(XYZ velocity, XYZ tipvelocity, bool sethitsomething = true);
55     void thrown(XYZ velocity, bool sethitsomething = true);
56
57     int owner;
58     XYZ position;
59     XYZ tippoint;
60     XYZ velocity;
61     XYZ tipvelocity;
62     bool missed;
63     bool hitsomething;
64     float freetime;
65     bool firstfree;
66     bool physics;
67
68     float damage;
69     int bloody;
70     float blooddrip;
71     float blooddripdelay;
72
73     float rotation1;
74     float rotation2;
75     float rotation3;
76     float bigrotation;
77     float bigtilt;
78     float bigtilt2;
79     float smallrotation;
80     float smallrotation2;
81
82 private:
83     static Model throwingknifemodel;
84     static Texture knifetextureptr;
85     static Texture lightbloodknifetextureptr;
86     static Texture bloodknifetextureptr;
87
88     static Model swordmodel;
89     static Texture swordtextureptr;
90     static Texture lightbloodswordtextureptr;
91     static Texture bloodswordtextureptr;
92
93     static Model staffmodel;
94     static Texture stafftextureptr;
95
96     int type;
97
98     XYZ oldtippoint;
99     XYZ oldposition;
100     int oldowner;
101     bool onfire;
102     float flamedelay;
103     float mass;
104     float tipmass;
105     float length;
106     float drawhowmany;
107
108     XYZ lastdrawnposition;
109     XYZ lastdrawntippoint;
110     float lastdrawnrotation1;
111     float lastdrawnrotation2;
112     float lastdrawnrotation3;
113     float lastdrawnbigrotation;
114     float lastdrawnbigtilt;
115     float lastdrawnbigtilt2;
116     float lastdrawnsmallrotation;
117     float lastdrawnsmallrotation2;
118     int lastdrawnanim;
119 };
120
121 class Weapons : public std::vector<Weapon>
122 {
123 public:
124     Weapons();
125
126     int Draw();
127     void DoStuff();
128 };
129
130 extern Weapons weapons;
131 #endif