-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCWeapon.h
87 lines (81 loc) · 2.18 KB
/
CWeapon.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*CWeapon class:
Implements weapons to Run3 game engine
started: 30.01.2010
finished: ?
By Fyodor Zagumennov aka Sgw32 Copyright(c) 2010
*/
#pragma once
#include <Ogre.h>
#include <vector>
#include <OIS/OIS.h>
#include "OgreConsole.h"
#include "SoundManager.h"
#include "Punch.h"
#include "Shockrifle.h"
#include "LaserMinigun.h"
#include "generic_lua_weapon.h"
#include <OgreNewt.h>
#include "CWeaponDef.h"
#define CWEAPON_DEBUG_AT_RELEASE
class CWeapon: public Singleton<CWeapon>
{
public:
CWeapon();
~CWeapon();
void init(Ogre::SceneManager *SceneMgr,OgreNewt::World* world,Camera* camera,SoundManager* soundMgr,SceneNode* mAttachNode,Ogre::Root* root,SoundManager* sound);
void parse(String name,String fname,String type,String script);
void addAmmo(unsigned int ammo,String name);
void addWeapon(String name);
bool canSelect(String name)
{
bool res =false;
if (name=="shockrifle")
{
LogManager::getSingleton().logMessage("Shockrifle!");
return true;
}
for (unsigned int j=0;j!=w_miniguns.size();j++)
{
if ((w_miniguns[j]->get_name()==name)&&(w_miniguns[j]->hasMinigun()))
{
return true;
}
}
return false;
}
void Move(const OIS::MouseEvent &arg,Ogre::Real time);
void MousePress(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
void MouseRelease(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
void Press(const OIS::KeyEvent &arg);
void Release(const OIS::KeyEvent &arg);
bool select(String name);
void hide_all();
void strip(String name);
void stripall();
void reload();
private:
std::vector <std::string> weapons_n;
std::vector <std::string> weapons_f;
std::vector <std::string> weapons_c;
std::vector <std::string> fstslot;
std::vector <std::string> sndslot;
int fstslot_c,sndslot_c;
std::vector<Punch*> w_punch;
std::vector<Shockrifle*> w_shockrifles;
std::vector<LaserMinigun*> w_miniguns;
std::vector<generic_lua_weapon*> w_generic;
Ogre::SceneManager* mSceneMgr;
SoundManager* soundmgr;
Ogre::Camera* mCamera;
OgreNewt::World* mWorld;
Ogre::SceneNode* pNode;
int i;
ConfigFile cf;
Root* root;
Punch* pweapon;
Shockrifle* shrifle;
LaserMinigun* minigun;
generic_lua_weapon* generic;
String cur_weapon;
bool initialized;
};