-
Notifications
You must be signed in to change notification settings - Fork 1
/
LaserMachineGun.h
64 lines (50 loc) · 2.32 KB
/
LaserMachineGun.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
Copyright (C) 2011-2012 Alican Sekerefe
TeamTwo is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
TeamTwo is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Contact: projectteamtwo@gmail.com
*/
#ifndef LASERMACHINEGUN_H
#define LASERMACHINEGUN_H
/*
LaserMachineGun class
This class is responsible for creating and managing
visual parts of the laser machine gun object
and create bullets for the gun.
This class inherits the main attributes of the Weapon
class.
*/
#include "Weapon.h"
class LaserMachineGun: public Weapon
{
public:
//constructor of the class. takes the ownerid of the gun, team and a
//boolean which indicates the local ownership.
LaserMachineGun(int ownerID,unsigned char team,bool local);
//creates a bullet object on the scene and returns it. this method
//requires Ogre::SceneManager and DynamicsWorld object for visualizing
//the bullet object. In addition, it also requires the bullet's origin
//and its orientation
Bullet* createBullet(SceneManager* sceneManager,OgreBulletDynamics::DynamicsWorld* dynamics, Ogre::Vector3 position, Ogre::Quaternion orientation);
//shortcut for CreateBullet method. as the difference, this method
//does not require the position of the bullet; it uses the bullet
//origin of the laser machine gun
Bullet* createBullet(SceneManager* sceneManager,OgreBulletDynamics::DynamicsWorld* dynamics, Ogre::Quaternion orientation);
//creates the visual parts of the weapon. takes Ogre::SceneManager and the
//Ogre::Node of the player who uses it.
void createVisual(SceneManager* sceneManager,SceneNode* playerNode);
//changes the color/team of the weapon
void changeColor(unsigned char color);
private:
//initializes the variables
void initialize();
};
#endif /* LASERMACHINEGUN_H */