1 #include "missileWeaponData.h"
2
3 MissileWeaponData missile_data[MW_Count] =
4 {
5 // speed, turnrate, lifetime, color, homing_range
6 MissileWeaponData(200.0f, 10.f, 27.0f, sf::Color(255, 200, 0), 1200.0, "sfx/rlaunch.wav"),/*MW_Homing*/
7 MissileWeaponData(200.0f, 10.f, 27.0f, sf::Color(255, 100, 32), 500.0, "sfx/rlaunch.wav"),/*MW_Nuke*/
8 MissileWeaponData(100.0f, 0.f, 10.0f, sf::Color(255, 255, 255), 0.0, "missile_launch.wav"),/*MW_Mine, lifetime is used at time which the mine is ejecting from the ship*/
9 MissileWeaponData(200.0f, 10.f, 27.0f, sf::Color(100, 32, 255), 500.0, "sfx/rlaunch.wav"),/*MW_EMP*/
10 MissileWeaponData(500.0f, 0.f, 13.5f, sf::Color(200, 200, 200), 0.0, "sfx/hvli_fire.wav"),/*MW_HVLI*/
11 };
12
MissileWeaponData(float speed,float turnrate,float lifetime,sf::Color color,float homing_range,string fire_sound)13 MissileWeaponData::MissileWeaponData(float speed, float turnrate, float lifetime, sf::Color color, float homing_range, string fire_sound)
14 : speed(speed), turnrate(turnrate), lifetime(lifetime), color(color), homing_range(homing_range), fire_sound(fire_sound)
15 {
16 }
17
getDataFor(EMissileWeapons type)18 const MissileWeaponData& MissileWeaponData::getDataFor(EMissileWeapons type)
19 {
20 if (type == MW_None)
21 return missile_data[0];
22 return missile_data[type];
23 }
24
getMissileSizeString(EMissileSizes size)25 string getMissileSizeString(EMissileSizes size)
26 {
27 switch (size)
28 {
29 case MS_Small:
30 return "small";
31 case MS_Medium:
32 return "medium";
33 case MS_Large:
34 return "large";
35 default:
36 return "unknown size:" + size;
37 }
38 }
39
convertSizeToCategoryModifier(EMissileSizes size)40 const float MissileWeaponData::convertSizeToCategoryModifier(EMissileSizes size)
41 {
42 switch(size)
43 {
44 case MS_Small:
45 return 0.5;
46 case MS_Medium:
47 return 1.0;
48 case MS_Large:
49 return 2.0;
50 default:
51 return 1.0;
52 }
53 }
54
convertCategoryModifierToSize(float size)55 const EMissileSizes MissileWeaponData::convertCategoryModifierToSize(float size)
56 {
57 if (std::abs(size - 0.5) < 0.1)
58 return MS_Small;
59 if (std::abs(size - 1.0) < 0.1)
60 return MS_Medium;
61 if (std::abs(size - 2.0) < 0.1)
62 return MS_Large;
63 return MS_Medium;
64 }
65
66 #include "missileWeaponData.hpp"
67