mirror of
https://github.com/devZoGok/PlanetFleet.git
synced 2026-08-26 19:43:29 +00:00
refactored Projectile class
removed unused projectile classes and files
This commit is contained in:
@@ -0,0 +1,242 @@
|
||||
numberOfTypesOfWeapons = 2
|
||||
g = 2.2
|
||||
speed = {
|
||||
{
|
||||
{10,10,10,10,10,10,10,10,10,10,10}
|
||||
},
|
||||
{
|
||||
{10,10,10,10,10,10,10,10,10,10,10}
|
||||
},
|
||||
{
|
||||
{10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{5,5}
|
||||
},
|
||||
{
|
||||
{7,7,7,7,7}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{.05},
|
||||
{
|
||||
{.1, .1},
|
||||
{.1, .1}
|
||||
}
|
||||
}
|
||||
length = {
|
||||
{
|
||||
{1,1,1,1,1,1,1,1,1,1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1,1,1,1,1,1,1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1,1}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
{.5}
|
||||
},
|
||||
{
|
||||
{1,1},
|
||||
{1,1}
|
||||
},
|
||||
{}
|
||||
}
|
||||
scale = {
|
||||
{
|
||||
{1, 1, 1, .5, .5, .5, .5, .5, .5, .5, .5, .5, .5}
|
||||
},
|
||||
{
|
||||
{1, 1, 1, .23, .23, .23, .23, .23, .23, .23, .23, .23, .23}
|
||||
},
|
||||
{
|
||||
{.45, .45, .45, .45}
|
||||
},
|
||||
{
|
||||
{.5, .5, .5, .5}
|
||||
},
|
||||
{
|
||||
{.95, .95}
|
||||
},
|
||||
{
|
||||
{.6, .6, .6, .6, .6}
|
||||
}
|
||||
}
|
||||
pos = {
|
||||
{
|
||||
{
|
||||
{x = 0, y = 0, z = 1.05},
|
||||
{x = 0, y = 0, z = 1.05},
|
||||
{x = 0, y = 0, z = 1.05},
|
||||
{x = 0, y = 0, z = 1.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5},
|
||||
{x = 0, y = 0, z = 2.5}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{x = 0, y = 0, z = 0.79254},
|
||||
{x = 0, y = 0, z = 0.79254},
|
||||
{x = 0, y = 0, z = 0.79254},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723},
|
||||
{x = 0, y = 0, z = 0.17723}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{x = 0, y = 0, z = -0.36178},
|
||||
{x = 0, y = 0, z = -0.36178},
|
||||
{x = 0, y = 0, z = -0.36178},
|
||||
{x = 0, y = 0, z = -0.36178}
|
||||
},
|
||||
{x = 0, y = -3, z = 0}
|
||||
},
|
||||
{
|
||||
{
|
||||
{x = 0, y = 0, z = -0.30074},
|
||||
{x = 0, y = 0, z = -0.30074},
|
||||
{x = 0, y = 0, z = -0.30074},
|
||||
{x = 0, y = 0, z = -0.30074}
|
||||
},
|
||||
{x = 0, y = -2, z = 0}
|
||||
},
|
||||
{
|
||||
{
|
||||
{x = 0, y = 0, z = -0.62118},
|
||||
{x = 0, y = 0, z = -0.62118}
|
||||
},
|
||||
{
|
||||
{x = 0.24482, y = 1.14985, z = 1.32775},
|
||||
{x = 0.24482, y = 1.14985, z = 1.62698},
|
||||
{x = 0.24482, y = 1.14985, z = 1.88017},
|
||||
{x = -0.24482, y = 1.14985, z = 1.32775},
|
||||
{x = -0.24482, y = 1.14985, z = 1.62698},
|
||||
{x = -0.24482, y = 1.14985, z = 1.88017}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{x = 0, y = 0, z = -0.59117},
|
||||
{x = 0, y = 0, z = -0.59117},
|
||||
{x = 0, y = 0, z = -0.59117},
|
||||
{x = 0, y = 0, z = -0.59117},
|
||||
{x = 0, y = 0, z = -0.59117}
|
||||
},
|
||||
{{x = 0.17192, y = 0.57858, z = 0.64471}, {x = -0.17192, y = 0.57858, z = 0.64471}}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
{x = 0, y =-.3, z =-1.5}
|
||||
},
|
||||
{
|
||||
{
|
||||
{x = -.25, y =0, z =0},
|
||||
{x = .25, y =0, z =0}
|
||||
},
|
||||
{
|
||||
{x = -.25, y =0, z =0},
|
||||
{x = .25, y =0, z =0}
|
||||
}
|
||||
},
|
||||
{}
|
||||
}
|
||||
damage = {
|
||||
{
|
||||
{50, 50, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{50, 50, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{50,50,50,50},
|
||||
{50}
|
||||
},
|
||||
{
|
||||
{50,50,50,50},
|
||||
{50}
|
||||
},
|
||||
{
|
||||
{10,10},
|
||||
{}
|
||||
},
|
||||
{
|
||||
{10,10,10,10,10},
|
||||
{}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
{}
|
||||
},
|
||||
{
|
||||
{50,50},
|
||||
{50,50}
|
||||
},
|
||||
{}
|
||||
}
|
||||
projectileName = {
|
||||
{"shell"},
|
||||
{"shell"},
|
||||
{"shell"},
|
||||
{"shell"},
|
||||
{"shell","guidedMissile"},
|
||||
{"shell","guidedMissile"},
|
||||
{""},
|
||||
{""},
|
||||
{"torpedo"},
|
||||
{"missile","missile"},
|
||||
}
|
||||
meshPath = {
|
||||
{PATH .. "Models/Shell/shell.x"},
|
||||
{PATH .. "Models/Shell/shell.x"},
|
||||
{PATH .. "Models/Shell/shell.x", PATH .. "Models/Depth charge/depthCharge.x"},
|
||||
{PATH .. "Models/Shell/shell.x", PATH .. "Models/Depth charge/depthCharge.x"},
|
||||
{PATH .. "Models/Shell/shell.x", PATH .. "Models/Guided missile/guidedMissile.x"},
|
||||
{PATH .. "Models/Shell/shell.x", PATH .. "Models/Guided missile/guidedMissile.x"},
|
||||
{},
|
||||
{},
|
||||
{PATH .. "Models/Torpedo/torpedo.x"},
|
||||
{PATH .. "Models/Jets/aam.x", PATH .. "Models/Jets/awm.x"}
|
||||
}
|
||||
diffuseMapTextPath = {
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ set(STATES activeGameState.cpp inGameAppState.cpp guiAppState.cpp)
|
||||
set(UTIL util.cpp binds.h)
|
||||
set(GUI tooltip.cpp optionsButton.cpp exitButton.cpp consoleCommand.cpp)
|
||||
set(CORE gameManager.cpp defConfigs.cpp)
|
||||
set(PROJECTILES projectile.cpp guidedMissile.cpp depthCharge.cpp missile.cpp shell.cpp torpedo.cpp)
|
||||
set(PROJECTILES projectile.cpp)
|
||||
set(FX explosion.cpp)
|
||||
set(CONTENT player.cpp unit.cpp pathfinder.cpp map.cpp ${PROJECTILES} ${FX})
|
||||
set(GAME_SRC ${STATES} ${GUI} ${CORE} ${CONTENT} ${UTIL})
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
#include <model.h>
|
||||
|
||||
#include <stateManager.h>
|
||||
|
||||
#include "depthCharge.h"
|
||||
#include "inGameAppState.h"
|
||||
#include "util.h"
|
||||
|
||||
using namespace vb01;
|
||||
|
||||
namespace battleship{
|
||||
DepthCharge::DepthCharge(Unit *unit, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) :
|
||||
Projectile(unit, nullptr, pos, dir, left, up, id, weaponTypeId, weaponId) {
|
||||
speed = 0;
|
||||
initTime = getTime();
|
||||
}
|
||||
void DepthCharge::update(){
|
||||
//x=x0+vX+a*t*t/2
|
||||
//y=y0+vY-g*t*t/2
|
||||
float t = float(getTime() - initTime) / 1000;
|
||||
pos = initPos + dirVec * speed + Vector3(0, speed * t - .5 * g * t * t, 0);
|
||||
node->setPosition(pos);
|
||||
checkForCollision();
|
||||
}
|
||||
void DepthCharge::checkForCollision() {
|
||||
InGameAppState *inGameState = ((InGameAppState*)GameManager::getSingleton()->getStateManager()->getAppStateByType((int)AppStateType::IN_GAME_STATE));
|
||||
Node *collNode = nullptr;
|
||||
bool detonated = false;
|
||||
|
||||
if(pos.y < -10)
|
||||
detonated = true;
|
||||
|
||||
if(!detonated)
|
||||
for(Player *p : inGameState->getPlayers())
|
||||
for(Unit *u : p->getUnits()){
|
||||
if(u == unit) continue;
|
||||
|
||||
Vector3 p0 = u->getCorner(0);
|
||||
Vector3 p1 = u->getCorner(1);
|
||||
Vector3 p3 = u->getCorner(3);
|
||||
Vector3 p4 = u->getCorner(4);
|
||||
}
|
||||
|
||||
if(detonated)
|
||||
explode(collNode);
|
||||
}
|
||||
void DepthCharge::explode(Node *collNode) {
|
||||
Projectile::explode(collNode);
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef DEPTH_CHARGE_H
|
||||
#define DEPTH_CHARGE_H
|
||||
|
||||
#include "projectile.h"
|
||||
|
||||
namespace battleship{
|
||||
class DepthCharge : public Projectile {
|
||||
public:
|
||||
DepthCharge(Unit*, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, int, int, int);
|
||||
void update();
|
||||
private:
|
||||
s64 initTime;
|
||||
void explode(vb01::Node*);
|
||||
void checkForCollision();
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,51 +0,0 @@
|
||||
#include <model.h>
|
||||
|
||||
#include "guidedMissile.h"
|
||||
#include "unit.h"
|
||||
#include "guidedMissileData.h"
|
||||
#include "util.h"
|
||||
|
||||
using namespace vb01;
|
||||
using namespace std;
|
||||
|
||||
namespace battleship{
|
||||
GuidedMissile::GuidedMissile(Unit *unit, Vector3 pos, Vector3 target, Vector3 dirVec, Vector3 leftVec, Vector3 upVec, int id, int weaponTypeId, int weaponId) :
|
||||
Projectile(unit, nullptr, pos, dirVec, leftVec, upVec, id, weaponTypeId, weaponId) {
|
||||
speed = .05;
|
||||
|
||||
for (int i = 0; i < 180; i++)
|
||||
arcLength += speed * cos(turnAngle * i);
|
||||
|
||||
this->target = target;
|
||||
Vector3 targVec = Vector3(target.x - initPos.x, 0, target.z - initPos.z);
|
||||
b = targVec.getLength() / 2;
|
||||
x = -b;
|
||||
dirVec = Vector3(0,1,0);
|
||||
upVec = -targVec.norm();
|
||||
leftVec = Quaternion(PI / 2, dirVec) * dirVec;
|
||||
rayLength = 3;
|
||||
damage = 100;
|
||||
}
|
||||
|
||||
void GuidedMissile::update() {
|
||||
Projectile::update();
|
||||
updateVecs();
|
||||
node->setPosition(pos);
|
||||
checkForCollision();
|
||||
}
|
||||
|
||||
void GuidedMissile::updateVecs() {
|
||||
if(x < b){
|
||||
Vector3 targVec = Vector3(target.x - initPos.x, 0, target.z - initPos.z);
|
||||
pos = pos + targVec.norm() * speed;
|
||||
x += speed;
|
||||
pos.y = sqrt(1. - x * x / (b * b)) * a;
|
||||
float tanAngle = atan(-a*x/(b*b*sqrt(1.-x*x/(b*b))));
|
||||
Quaternion rotQuat = Quaternion(tanAngle, leftVec);
|
||||
Vector3 dirProj = (dirVec == Vector3::VEC_J ? upVec : Vector3(dirVec.x, 0, dirVec.z).norm());
|
||||
orientProjectile(rotQuat * targVec);
|
||||
}
|
||||
else
|
||||
pos.y -= speed;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef GUIDED_MISSILE_H
|
||||
#define GUIDED_MISSILE_H
|
||||
|
||||
#include "projectile.h"
|
||||
|
||||
namespace battleship{
|
||||
class GuidedMissile : public Projectile {
|
||||
public:
|
||||
GuidedMissile(Unit*, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, int, int, int);
|
||||
~GuidedMissile(){}
|
||||
void update();
|
||||
private:
|
||||
void updateVecs();
|
||||
bool firstPhase = true;
|
||||
float a = 4,b,x,turnAngle = 1,arcLength = 0.,maxHeight = 5;
|
||||
vb01::Vector3 target;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,27 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef GUIDED_MISSILE_DATA_H
|
||||
#define GUIDED_MISSILE_DATA_H
|
||||
|
||||
#include "projectileData.h"
|
||||
|
||||
namespace battleship{
|
||||
namespace projectileData {
|
||||
const vb01::Vector3 guidedMissilePos[unitData::numberOfUnits][6]{
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
vb01::Vector3(0.24482, 1.14985, 1.32775),
|
||||
vb01::Vector3(0.24482, 1.14985, 1.62698),
|
||||
vb01::Vector3(0.24482, 1.14985, 1.88017),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.32775),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.62698),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.88017)
|
||||
},
|
||||
{vb01::Vector3(0.17192, 0.57858, 0.64471), vb01::Vector3(-0.17192, 0.57858, 0.64471)}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
#include <util.h>
|
||||
#include <model.h>
|
||||
|
||||
#include "missile.h"
|
||||
|
||||
using namespace vb01;
|
||||
|
||||
namespace battleship{
|
||||
Missile::Missile(Unit *unit, Node *node, Vector3 target, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) :
|
||||
Projectile(unit, node, pos, dir, left, up, id, weaponTypeId, weaponId) {
|
||||
this->target = target;
|
||||
this->type = (MissileType)weaponId;
|
||||
this->initTime = getTime();
|
||||
}
|
||||
|
||||
void Missile::update() {
|
||||
Projectile::update();
|
||||
pos = pos + dirVec * speed;
|
||||
node->setPosition(pos);
|
||||
float angle = dirVec.getAngleBetween(target - pos);
|
||||
Vector3 axis = dirVec.cross(target - pos).norm();
|
||||
|
||||
if(rotationSpeed / 180 * PI < angle){
|
||||
Quaternion rotQuat = Quaternion(rotationSpeed / 180 * PI, axis);
|
||||
orientProjectile(rotQuat * dirVec);
|
||||
}
|
||||
|
||||
if(!exploded && getTime() - initTime > selfDistructTime)
|
||||
Projectile::explode(nullptr);
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef MISSILE_H
|
||||
#define MISSILE_H
|
||||
|
||||
#include "projectile.h"
|
||||
|
||||
namespace battleship{
|
||||
enum MissileType {AAM, AWM};
|
||||
|
||||
class Missile : public Projectile {
|
||||
public:
|
||||
Missile(Unit*, vb01::Node*, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, int, int, int);
|
||||
~Missile(){}
|
||||
void update();
|
||||
private:
|
||||
s64 initTime;
|
||||
int selfDistructTime = 10000;
|
||||
vb01::Vector3 target;
|
||||
float rotationSpeed = 5;
|
||||
MissileType type;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,24 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef MISSILEDATA_H
|
||||
#define MISSILEDATA_H
|
||||
|
||||
#include "unitData.h"
|
||||
#include "projectileData.h"
|
||||
|
||||
namespace battleship{
|
||||
namespace projectileData{
|
||||
const int selfDestructTime[unitData::numberOfUnits][13]{
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{10000,10000}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+75
-58
@@ -1,4 +1,5 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include <node.h>
|
||||
#include <model.h>
|
||||
#include <material.h>
|
||||
@@ -6,9 +7,10 @@
|
||||
#include <ray.h>
|
||||
|
||||
#include <stateManager.h>
|
||||
#include <luaManager.h>
|
||||
|
||||
#include "projectile.h"
|
||||
#include "projectileData.h"
|
||||
#include "defConfigs.h"
|
||||
#include "inGameAppState.h"
|
||||
#include "unit.h"
|
||||
#include "util.h"
|
||||
@@ -18,56 +20,80 @@ using namespace std;
|
||||
using namespace vb01;
|
||||
|
||||
namespace battleship{
|
||||
using namespace configData;
|
||||
using namespace configData;
|
||||
using namespace gameBase;
|
||||
|
||||
Projectile::Projectile(Unit *unit, Node *node, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) {
|
||||
this->unit=unit;
|
||||
this->id=id;
|
||||
this->weaponTypeId=weaponTypeId;
|
||||
this->unit = unit;
|
||||
this->id = id;
|
||||
this->weaponTypeId = weaponTypeId;
|
||||
this->pos = pos;
|
||||
initPos = pos;
|
||||
|
||||
dirVec = dir;
|
||||
leftVec = left;
|
||||
upVec = up;
|
||||
|
||||
this->rayLength=projectileData::length[id][weaponTypeId][weaponId];
|
||||
|
||||
GameManager *gm = GameManager::getSingleton();
|
||||
|
||||
if(!node){
|
||||
this->node = new Model((projectileData::meshPath[id][weaponTypeId]));
|
||||
Material *mat = new Material(Root::getSingleton()->getLibPath() + "texture");
|
||||
mat->addBoolUniform("lightingEnabled", false);
|
||||
string f[]{projectileData::diffuseMapTextPath[id][weaponTypeId]};
|
||||
Texture *diffuseTexture = new Texture(f, 1, false);
|
||||
mat->addTexUniform("textures[0]", diffuseTexture, true);
|
||||
this->node->setMaterial(mat);
|
||||
}
|
||||
|
||||
this->node->setPosition(pos);
|
||||
this->pos = pos;
|
||||
this->damage=projectileData::damage[id][weaponTypeId][weaponId];
|
||||
|
||||
initPos = pos;
|
||||
speed = projectileData::speed[id][weaponTypeId][weaponId];
|
||||
float angle = dirVec.getAngleBetween(Vector3(0, 0, -1));
|
||||
angle = Quaternion(angle, upVec) * Vector3(0, 0, -1) == dirVec ? angle : -angle;
|
||||
|
||||
string p1 = gm->getPath() + "Sounds/" + unitData::name[id] + "s/" + projectileData::name[id][weaponTypeId] + ".ogg";
|
||||
string p2 = gm->getPath() + "Sounds/Explosions/explosion03" + to_string(rand() % 4) + ".ogg";
|
||||
this->shotSfxBuffer = new sf::SoundBuffer();
|
||||
this->explosionSfxBuffer=new sf::SoundBuffer();
|
||||
|
||||
if(shotSfxBuffer->loadFromFile(p1.c_str())){
|
||||
shotSfx=new sf::Sound(*shotSfxBuffer);
|
||||
shotSfx->play();
|
||||
}
|
||||
|
||||
if(explosionSfxBuffer->loadFromFile(p2.c_str()))
|
||||
explosionSfx=new sf::Sound(*explosionSfxBuffer);
|
||||
initProperties(weaponId);
|
||||
initModel(node);
|
||||
initSound();
|
||||
}
|
||||
|
||||
Projectile::~Projectile(){
|
||||
}
|
||||
|
||||
void Projectile::initProperties(int weaponId){
|
||||
LuaManager *lm = LuaManager::getSingleton();
|
||||
string pathBase = GameManager::getSingleton()->getPath() + "Scripts/";
|
||||
lm->buildScript(vector<string>{pathBase + "defPaths.lua", pathBase + "unitData.lua", pathBase + "projectileData.lua"});
|
||||
|
||||
vector<Index> indices = vector<Index>{Index(id + 1), Index(weaponTypeId + 1), Index(weaponId + 1)};
|
||||
rayLength = lm->getFloatFromTable("rayLength", indices);
|
||||
damage = lm->getIntFromTable("damage", indices);
|
||||
speed = lm->getFloatFromTable("speed", indices);
|
||||
}
|
||||
|
||||
void Projectile::initModel(Node *node){
|
||||
if(!node){
|
||||
LuaManager *lm = LuaManager::getSingleton();
|
||||
vector<Index> indices = vector<Index>{Index(id + 1), Index(weaponTypeId + 1)};
|
||||
string meshPath = lm->getStringFromTable("meshPath", indices);
|
||||
this->node = new Model(meshPath);
|
||||
|
||||
Material *mat = new Material(Root::getSingleton()->getLibPath() + "texture");
|
||||
mat->addBoolUniform("lightingEnabled", false);
|
||||
|
||||
string diffTexPath = lm->getStringFromTable("diffuseMapTextPath", indices);
|
||||
string f[]{diffTexPath};
|
||||
Texture *diffuseTexture = new Texture(f, 1, false);
|
||||
mat->addTexUniform("textures[0]", diffuseTexture, true);
|
||||
|
||||
this->node->setMaterial(mat);
|
||||
}
|
||||
|
||||
this->node->setPosition(pos);
|
||||
}
|
||||
|
||||
void Projectile::initSound(){
|
||||
GameManager *gm = GameManager::getSingleton();
|
||||
LuaManager *lm = LuaManager::getSingleton();
|
||||
|
||||
string unitName = lm->getStringFromTable("name", vector<Index>{Index(id + 1)});
|
||||
string projectileName = lm->getStringFromTable("projectileName", vector<Index>{Index(id + 1), Index(weaponTypeId + 1)});
|
||||
string p1 = gm->getPath() + "Sounds/" + unitName + "s/" + projectileName + ".ogg";
|
||||
string p2 = gm->getPath() + "Sounds/Explosions/explosion03" + to_string(rand() % 4) + ".ogg";
|
||||
|
||||
shotSfxBuffer = new sf::SoundBuffer();
|
||||
explosionSfxBuffer = new sf::SoundBuffer();
|
||||
|
||||
if(shotSfxBuffer->loadFromFile(p1.c_str())){
|
||||
shotSfx = new sf::Sound(*shotSfxBuffer);
|
||||
shotSfx->play();
|
||||
}
|
||||
|
||||
if(explosionSfxBuffer->loadFromFile(p2.c_str()))
|
||||
explosionSfx = new sf::Sound(*explosionSfxBuffer);
|
||||
}
|
||||
|
||||
void Projectile::update() {
|
||||
if(unit->isDebuggable())
|
||||
@@ -81,7 +107,7 @@ namespace battleship{
|
||||
|
||||
void Projectile::explode(Node *collNode) {
|
||||
exploded = true;
|
||||
StateManager *stateManager = GameManager::getSingleton()->getStateManager();
|
||||
StateManager *stateManager = GameManager::getSingleton()->getStateManager();
|
||||
vector<Player*> players = ((InGameAppState*) stateManager->getAppStateByType((int)AppStateType::IN_GAME_STATE))->getPlayers();
|
||||
|
||||
for (Player *p : players) {
|
||||
@@ -90,30 +116,21 @@ namespace battleship{
|
||||
u->takeDamage(damage);
|
||||
}
|
||||
|
||||
InGameAppState *inGameState=((InGameAppState*)stateManager->getAppStateByType((int)AppStateType::IN_GAME_STATE));
|
||||
InGameAppState *inGameState = ((InGameAppState*)stateManager->getAppStateByType((int)AppStateType::IN_GAME_STATE));
|
||||
|
||||
if(id == 8)
|
||||
detonateTorpedo(inGameState,pos);
|
||||
else if(weaponTypeId==1&&(id==2||id==3))
|
||||
detonateDepthCharge(inGameState,pos);
|
||||
detonateTorpedo(inGameState, pos);
|
||||
else if(weaponTypeId == 1 && (id == 2 || id == 3))
|
||||
detonateDepthCharge(inGameState, pos);
|
||||
else
|
||||
detonate(inGameState,pos,-dirVec);
|
||||
detonate(inGameState, pos, -dirVec);
|
||||
}
|
||||
|
||||
void Projectile::debug(){
|
||||
}
|
||||
|
||||
void Projectile::orientProjectile(Vector3 orientVec){
|
||||
Vector3 orientVecProj = Vector3(orientVec.x, 0, orientVec.z).norm();
|
||||
float projAngle = orientVec.getAngleBetween(orientVecProj);
|
||||
float rotAngle = Vector3(0,0,-1).getAngleBetween(orientVecProj);
|
||||
rotAngle *= (orientVec.x<0?1:-1)/PI*180;
|
||||
projAngle*=(orientVec.y>0?1:-1)/PI*180;
|
||||
dirVec = orientVecProj;
|
||||
upVec = Vector3(0,1,0);
|
||||
leftVec = Quaternion(-PI/2, upVec) * dirVec;
|
||||
Quaternion rotQuat=Quaternion(projAngle/180*PI,leftVec);
|
||||
dirVec=rotQuat*dirVec;
|
||||
upVec=rotQuat*upVec;
|
||||
void Projectile::orientProjectile(Quaternion rot){
|
||||
node->setOrientation(rot);
|
||||
this->rot = rot;
|
||||
}
|
||||
}
|
||||
|
||||
+16
-10
@@ -3,15 +3,17 @@
|
||||
#define PROJECTILE_H
|
||||
|
||||
#include <SFML/Audio.hpp>
|
||||
|
||||
#include <vector.h>
|
||||
#include <quaternion.h>
|
||||
|
||||
#include "gameManager.h"
|
||||
#include "util.h"
|
||||
|
||||
namespace vb01{
|
||||
class Node;
|
||||
class Model;
|
||||
class Mesh;
|
||||
class Node;
|
||||
class Model;
|
||||
class Mesh;
|
||||
}
|
||||
|
||||
namespace battleship {
|
||||
@@ -23,23 +25,27 @@ namespace battleship {
|
||||
virtual ~Projectile();
|
||||
virtual void update();
|
||||
virtual void debug();
|
||||
void orientProjectile(vb01::Vector3);
|
||||
void orientProjectile(vb01::Quaternion);
|
||||
inline bool isExploded() {return exploded;}
|
||||
inline Unit* getUnit(){return unit;}
|
||||
private:
|
||||
void initProperties(int);
|
||||
void initModel(vb01::Node*);
|
||||
void initSound();
|
||||
protected:
|
||||
virtual void checkForCollision();
|
||||
void explode(vb01::Node*);
|
||||
|
||||
vb01::Model *node=nullptr;
|
||||
vb01::Model *node = nullptr;
|
||||
bool exploded = false;
|
||||
const float g = 2.2;
|
||||
float speed, angle, rayLength, scale;
|
||||
int damage,id,weaponTypeId;
|
||||
float speed, rayLength, scale;
|
||||
int damage, id, weaponTypeId;
|
||||
vb01::Vector3 initPos, pos, dirVec, leftVec, upVec;
|
||||
vb01::Quaternion rot;
|
||||
s64 lastUpdateTime = 0;
|
||||
Unit *unit;
|
||||
Unit *unit = nullptr;
|
||||
sf::SoundBuffer *shotSfxBuffer, *explosionSfxBuffer;
|
||||
sf::Sound *shotSfx=nullptr, *explosionSfx=nullptr;
|
||||
sf::Sound *shotSfx = nullptr, *explosionSfx = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,257 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef PROJECTILE_DATA_H
|
||||
#define PROJECTILE_DATA_H
|
||||
|
||||
#include "unitData.h"
|
||||
|
||||
/*
|
||||
0:戦艦
|
||||
1:駆逐艦
|
||||
2:巡洋艦
|
||||
3:航空母艦
|
||||
4:潜水艦
|
||||
5: 戦闘機
|
||||
6:巡航ミサイル
|
||||
*/
|
||||
|
||||
namespace battleship{
|
||||
namespace projectileData {
|
||||
using namespace configData;
|
||||
|
||||
const int numberOfTypesOfWeapons = 2;
|
||||
const float speed[unitData::numberOfUnits][numberOfTypesOfWeapons][13]{
|
||||
{
|
||||
{10,10,10,10,10,10,10,10,10,10,10}
|
||||
},
|
||||
{
|
||||
{10,10,10,10,10,10,10,10,10,10,10}
|
||||
},
|
||||
{
|
||||
{10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{5,5}
|
||||
},
|
||||
{
|
||||
{7,7,7,7,7},
|
||||
{}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{.05},
|
||||
{
|
||||
{.1, .1},
|
||||
{.1, .1}
|
||||
}
|
||||
};
|
||||
const float length[unitData::numberOfUnits][numberOfTypesOfWeapons][13]{
|
||||
{
|
||||
{1,1,1,1,1,1,1,1,1,1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1,1,1,1,1,1,1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1}
|
||||
},
|
||||
{
|
||||
{1,1}
|
||||
},
|
||||
{
|
||||
{1,1,1,1,1}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
{.5}
|
||||
},
|
||||
{
|
||||
{1,1},
|
||||
{1,1}
|
||||
},
|
||||
{}
|
||||
};
|
||||
const float scale[unitData::numberOfUnits][numberOfTypesOfWeapons][13]{
|
||||
{
|
||||
{1, 1, 1, .5, .5, .5, .5, .5, .5, .5, .5, .5, .5}
|
||||
},
|
||||
{
|
||||
{1, 1, 1, .23, .23, .23, .23, .23, .23, .23, .23, .23, .23}
|
||||
},
|
||||
{
|
||||
{.45, .45, .45, .45}
|
||||
},
|
||||
{
|
||||
{.5, .5, .5, .5}
|
||||
},
|
||||
{
|
||||
{.95, .95}
|
||||
},
|
||||
{
|
||||
{.6, .6, .6, .6, .6}
|
||||
}
|
||||
};
|
||||
const vb01::Vector3 pos[unitData::numberOfUnits][numberOfTypesOfWeapons][13]{
|
||||
{
|
||||
{
|
||||
vb01::Vector3(0, 0, 1.05),
|
||||
vb01::Vector3(0, 0, 1.05),
|
||||
vb01::Vector3(0, 0, 1.05),
|
||||
vb01::Vector3(0, 0, 1.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5),
|
||||
vb01::Vector3(0, 0, 2.5)
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
vb01::Vector3(0, 0, 0.79254),
|
||||
vb01::Vector3(0, 0, 0.79254),
|
||||
vb01::Vector3(0, 0, 0.79254),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723),
|
||||
vb01::Vector3(0, 0, 0.17723)
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.36178),
|
||||
vb01::Vector3(0, 0, -0.36178),
|
||||
vb01::Vector3(0, 0, -0.36178),
|
||||
vb01::Vector3(0, 0, -0.36178)
|
||||
},
|
||||
{vb01::Vector3(0, -3, 0)}
|
||||
},
|
||||
{
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.30074),
|
||||
vb01::Vector3(0, 0, -0.30074),
|
||||
vb01::Vector3(0, 0, -0.30074),
|
||||
vb01::Vector3(0, 0, -0.30074)
|
||||
},
|
||||
{vb01::Vector3(0, -2, 0)}
|
||||
},
|
||||
{
|
||||
{vb01::Vector3(0, 0, -0.62118), vb01::Vector3(0, 0, -0.62118)},
|
||||
{
|
||||
vb01::Vector3(0.24482, 1.14985, 1.32775),
|
||||
vb01::Vector3(0.24482, 1.14985, 1.62698),
|
||||
vb01::Vector3(0.24482, 1.14985, 1.88017),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.32775),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.62698),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.88017)
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.59117),
|
||||
vb01::Vector3(0, 0, -0.59117),
|
||||
vb01::Vector3(0, 0, -0.59117),
|
||||
vb01::Vector3(0, 0, -0.59117),
|
||||
vb01::Vector3(0, 0, -0.59117)
|
||||
},
|
||||
{vb01::Vector3(0.17192, 0.57858, 0.64471), vb01::Vector3(-0.17192, 0.57858, 0.64471)}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
{vb01::Vector3(0,-.3,-1.5)}
|
||||
},
|
||||
{
|
||||
{vb01::Vector3(-.25,0,0),vb01::Vector3(.25,0,0)},
|
||||
{vb01::Vector3(-.25,0,0),vb01::Vector3(.25,0,0)}
|
||||
},
|
||||
{}
|
||||
};
|
||||
const int damage[unitData::numberOfUnits][numberOfTypesOfWeapons][13]{
|
||||
{
|
||||
{50, 50, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{50, 50, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
|
||||
},
|
||||
{
|
||||
{50,50,50,50},
|
||||
{50}
|
||||
},
|
||||
{
|
||||
{50,50,50,50},
|
||||
{50}
|
||||
},
|
||||
{
|
||||
{10,10},
|
||||
{}
|
||||
},
|
||||
{
|
||||
{10,10,10,10,10},
|
||||
{}
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
{}
|
||||
},
|
||||
{
|
||||
{50,50},
|
||||
{50,50}
|
||||
},
|
||||
{}
|
||||
};
|
||||
const std::string name[unitData::numberOfUnits][numberOfTypesOfWeapons]{
|
||||
{"shell"},
|
||||
{"shell"},
|
||||
{"shell"},
|
||||
{"shell"},
|
||||
{"shell","guidedMissile"},
|
||||
{"shell","guidedMissile"},
|
||||
{""},
|
||||
{""},
|
||||
{"torpedo"},
|
||||
{"missile","missile"},
|
||||
};
|
||||
const std::string meshPath[unitData::numberOfUnits][numberOfTypesOfWeapons]{
|
||||
{GameManager::getSingleton()->getPath() + "Models/Shell/shell.x"},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Shell/shell.x"},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Shell/shell.x", GameManager::getSingleton()->getPath() + "Models/Depth charge/depthCharge.x"},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Shell/shell.x", GameManager::getSingleton()->getPath() + "Models/Depth charge/depthCharge.x"},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Shell/shell.x", GameManager::getSingleton()->getPath() + "Models/Guided missile/guidedMissile.x"},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Shell/shell.x", GameManager::getSingleton()->getPath() + "Models/Guided missile/guidedMissile.x"},
|
||||
{},
|
||||
{},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Torpedo/torpedo.x"},
|
||||
{GameManager::getSingleton()->getPath() + "Models/Jets/aam.x", GameManager::getSingleton()->getPath() + "Models/Jets/awm.x"},
|
||||
};
|
||||
const std::string diffuseMapTextPath[unitData::numberOfUnits][numberOfTypesOfWeapons]{
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,38 +0,0 @@
|
||||
#include <model.h>
|
||||
|
||||
#include "shell.h"
|
||||
#include "defConfigs.h"
|
||||
#include "projectileData.h"
|
||||
#include "util.h"
|
||||
#include "unit.h"
|
||||
|
||||
using namespace vb01;
|
||||
|
||||
namespace battleship{
|
||||
Shell::Shell(Unit *unit, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) : Projectile(unit, nullptr, pos, dir, left, up, id, weaponTypeId, weaponId) {
|
||||
this->speed = projectileData::speed[id][weaponTypeId][weaponId];
|
||||
node->setScale(Vector3(1, 1, 1) * projectileData::scale[id][weaponTypeId][weaponId]);
|
||||
initTime = getTime();
|
||||
}
|
||||
|
||||
void Shell::update() {
|
||||
//x=v*cos(a)*t
|
||||
//y=v*sin(a)*t+0.5(g*t^2)
|
||||
Projectile::update();
|
||||
Vector3 straightVec = Vector3(dirVec.x, 0, dirVec.z).norm();
|
||||
double time = double(getTime() - initTime) / 1000,
|
||||
offsetX = speed * cos(angle) * time,
|
||||
offsetY = speed * sin(angle) * time - .5 * (g * time * time);
|
||||
pos = initPos + straightVec * offsetX + Vector3(0, offsetY, 0);
|
||||
node->setPosition(pos);
|
||||
updateVecs(straightVec, time);
|
||||
checkForCollision();
|
||||
}
|
||||
|
||||
void Shell::updateVecs(Vector3 straightVec, float time) {
|
||||
// f'(t)=dy/dx=(v*sin(a)+g*t)/(v*cos(a))
|
||||
float tanAngle = -atan((speed * sin(angle) + g * time) / (speed * cos(angle)));
|
||||
Quaternion rotQuat = Quaternion(tanAngle, leftVec);
|
||||
dirVec = rotQuat*straightVec, upVec = rotQuat * Vector3(0, 1, 0);
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef SHELL_H
|
||||
#define SHELL_H
|
||||
|
||||
#include "gameManager.h"
|
||||
#include "projectile.h"
|
||||
|
||||
namespace battleship {
|
||||
class Shell : public Projectile {
|
||||
public:
|
||||
Shell(Unit*, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, int, int, int);
|
||||
~Shell(){}
|
||||
virtual void update();
|
||||
protected:
|
||||
s64 initTime;
|
||||
virtual void updateVecs(vb01::Vector3, float);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
#include <model.h>
|
||||
|
||||
#include "torpedo.h"
|
||||
|
||||
using namespace vb01;
|
||||
|
||||
namespace battleship{
|
||||
Torpedo::Torpedo(Unit *unit, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) :
|
||||
Projectile(unit, nullptr, pos, dir, left, up, id,weaponTypeId,weaponId) {this->damage = 50;}
|
||||
|
||||
void Torpedo::update() {
|
||||
Projectile::update();
|
||||
pos = pos + dirVec * speed;
|
||||
node->setPosition(pos);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef TORPEDO_H
|
||||
#define TORPEDO_H
|
||||
|
||||
#include "projectile.h"
|
||||
|
||||
namespace battleship{
|
||||
class Torpedo : public Projectile {
|
||||
public:
|
||||
Torpedo(Unit*, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, int, int, int);
|
||||
~Torpedo(){}
|
||||
void update();
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
-292
@@ -1,292 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef UNIT_DATA_H
|
||||
#define UNIT_DATA_H
|
||||
|
||||
#include <vector.h>
|
||||
|
||||
#include "defConfigs.h"
|
||||
|
||||
/*
|
||||
0:戦艦
|
||||
1:駆逐艦
|
||||
2:巡洋艦
|
||||
3:航空母艦
|
||||
4:潜水艦
|
||||
5: 戦闘機
|
||||
*/
|
||||
|
||||
|
||||
namespace battleship {
|
||||
namespace unitData {
|
||||
using namespace configData;
|
||||
|
||||
const int numberOfUnits = 11;
|
||||
enum class UNIT_TYPE {VESSEL, DESTROYER, CRUISER, AIRCRAFT_CARRIER, SUBMARINE, MISSILE_JET, DEMO_JET};
|
||||
const UNIT_TYPE unitType[numberOfUnits]{
|
||||
UNIT_TYPE::VESSEL, UNIT_TYPE::VESSEL,
|
||||
UNIT_TYPE::DESTROYER, UNIT_TYPE::DESTROYER,
|
||||
UNIT_TYPE::CRUISER, UNIT_TYPE::CRUISER,
|
||||
UNIT_TYPE::AIRCRAFT_CARRIER, UNIT_TYPE::AIRCRAFT_CARRIER,
|
||||
UNIT_TYPE::SUBMARINE,
|
||||
UNIT_TYPE::MISSILE_JET, UNIT_TYPE::DEMO_JET
|
||||
};
|
||||
const int health[numberOfUnits]{500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500};
|
||||
const float speed[numberOfUnits]{.025, .025, .05, .05, .1, .1, .1, .1, .1, .1, .15};
|
||||
const float destinationOffset[numberOfUnits]{.75, .75, 1, 1, .1, .1, .1, .1, .1, .5, .5};
|
||||
const float anglePrecision[numberOfUnits]{.1, .1, .1, .1, .1, .1, .1, .1, .1, 3,3};
|
||||
const int cost[numberOfUnits]{500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500};
|
||||
const float maxTurnAngle[numberOfUnits]{1, 1, .5, .5, 1, 1, .5, .5, 1, 2, 2};
|
||||
const float range[numberOfUnits]{15, 15, 14, 14, 13, 13, 12, 12,15,25};
|
||||
const vb01::Vector3 unitCornerPoints[numberOfUnits][8]{
|
||||
{
|
||||
vb01::Vector3(.9, -1, -6),
|
||||
vb01::Vector3(-.9, -1, -6),
|
||||
vb01::Vector3(-.9, -1, 5.8),
|
||||
vb01::Vector3(.9, -1, 5.8),
|
||||
vb01::Vector3(.9, 3.5, -6),
|
||||
vb01::Vector3(-.9, 3.5, -6),
|
||||
vb01::Vector3(-.9, 3.5, 5.8),
|
||||
vb01::Vector3(.9, 3.5, 5.8)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.5, -.5, -7.05),
|
||||
vb01::Vector3(-.5, -.5, -7.05),
|
||||
vb01::Vector3(-.5, -.5, 6.4),
|
||||
vb01::Vector3(.5, -.5, 6.4),
|
||||
vb01::Vector3(.5, 3, -7.05),
|
||||
vb01::Vector3(-.5, 3, -7.05),
|
||||
vb01::Vector3(-.5, 3, 6.4),
|
||||
vb01::Vector3(.5, 3, 6.4)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.5, -.5, -3.4),
|
||||
vb01::Vector3(-.5, -.5, -3.4),
|
||||
vb01::Vector3(-.5, -.5, 3.4),
|
||||
vb01::Vector3(.5, -.4, 3.4),
|
||||
vb01::Vector3(.5, 2.1, -3.4),
|
||||
vb01::Vector3(-.5, 2, -3.4),
|
||||
vb01::Vector3(-.5, 2, 3.4),
|
||||
vb01::Vector3(.5, 2, 3.4)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.5, -.25, -4.8),
|
||||
vb01::Vector3(-.5, -.25, -4.8),
|
||||
vb01::Vector3(-.5, -.25, 4.7),
|
||||
vb01::Vector3(.5, -.25, 4.7),
|
||||
vb01::Vector3(.5, .8, -4.8),
|
||||
vb01::Vector3(-.5, .8, -4.8),
|
||||
vb01::Vector3(-.5, .8, 4.7),
|
||||
vb01::Vector3(.5, .8, 4.7)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.7, -.3, -4),
|
||||
vb01::Vector3(-.7, -.3, -4),
|
||||
vb01::Vector3(-.7, -.3, 3.4),
|
||||
vb01::Vector3(.7, -.3, 3.4),
|
||||
vb01::Vector3(.7, 2.9, -4),
|
||||
vb01::Vector3(-.7, 2.9, -4),
|
||||
vb01::Vector3(-.7, 2.9, 3.4),
|
||||
vb01::Vector3(.7, 2.9, 3.4)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.5, -.5, -6.1),
|
||||
vb01::Vector3(-.5, -.5, -6.1),
|
||||
vb01::Vector3(-.5, -.5, 5.2),
|
||||
vb01::Vector3(.5, -.5, 5.2),
|
||||
vb01::Vector3(.5, 2.2, -6.1),
|
||||
vb01::Vector3(-.5, 2.2, -6.1),
|
||||
vb01::Vector3(-.5, 2.2, 5.2),
|
||||
vb01::Vector3(.5, 2.2, 5.2)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(2, -.5, -10),
|
||||
vb01::Vector3(-2, -.5, -10),
|
||||
vb01::Vector3(-2, -.5, 9),
|
||||
vb01::Vector3(2, -.5, 9),
|
||||
vb01::Vector3(2, 5.5, -10),
|
||||
vb01::Vector3(-2, 5.5, -10),
|
||||
vb01::Vector3(-2, 5.5, 9),
|
||||
vb01::Vector3(2, 5.5, 9)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(2, -1, -10),
|
||||
vb01::Vector3(-2, -1, -10),
|
||||
vb01::Vector3(-2, -1, 9),
|
||||
vb01::Vector3(2, -1, 9),
|
||||
vb01::Vector3(2, 4.5, -10),
|
||||
vb01::Vector3(-2, 4.5, -10),
|
||||
vb01::Vector3(-2, 4.5, 9),
|
||||
vb01::Vector3(2, 4.5, 9)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.25, -.5, -2),
|
||||
vb01::Vector3(-.25, -.5, -2),
|
||||
vb01::Vector3(-.25, -.5, 3),
|
||||
vb01::Vector3(.25, -.5, 3),
|
||||
vb01::Vector3(.25, .7, -2),
|
||||
vb01::Vector3(-.25, .7, -2),
|
||||
vb01::Vector3(-.25, .7, 3),
|
||||
vb01::Vector3(.25, .7, 3)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.6,-.1,-1.3),
|
||||
vb01::Vector3(-.6,-.1,-1.3),
|
||||
vb01::Vector3(-.6,-.1,.8),
|
||||
vb01::Vector3(.6,-.1,.8),
|
||||
vb01::Vector3(.6,.3,-1.3),
|
||||
vb01::Vector3(-.6,.3,-1.3),
|
||||
vb01::Vector3(-.6,.3,.8),
|
||||
vb01::Vector3(.6,.3,.8)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.5,-.1,-1.3),
|
||||
vb01::Vector3(-.5,-.1,-1.3),
|
||||
vb01::Vector3(-.5,-.1,.7),
|
||||
vb01::Vector3(.5,-.1,.7),
|
||||
vb01::Vector3(.5,.15,-1.3),
|
||||
vb01::Vector3(-.5,.15,-1.3),
|
||||
vb01::Vector3(-.5,.15,.7),
|
||||
vb01::Vector3(.5,.15,.7)
|
||||
}
|
||||
};
|
||||
const vb01::Vector3 unitCuboidDimensions[numberOfUnits][8]{
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1),
|
||||
vb01::Vector3(1, 1, 1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1),
|
||||
vb01::Vector3(.1, .1, .1)
|
||||
}
|
||||
};
|
||||
const float unitAxisLength[numberOfUnits]{8, 8,6,6,5, 5,8, 8, 7,2,2};
|
||||
const float lineOfSight[numberOfUnits]{5, 8, 4, 4, 3, 3, 6, 6, 3, 3, 8};
|
||||
const std::string name[numberOfUnits]{
|
||||
"Battleship", "Battleship",
|
||||
"Destroyer", "Destroyer",
|
||||
"Cruiser", "Cruiser",
|
||||
"Aircraft carrier", "Aircraft carrier",
|
||||
"Submarine",
|
||||
"Jet", "Jet"
|
||||
};
|
||||
const std::string meshPath[numberOfUnits]{
|
||||
"battleship00.vb", "battleship01.vb",
|
||||
"destroyer00.vb", "destroyer01.vb",
|
||||
"cruiser00.vb", "cruiser01.vb",
|
||||
"aircraftCarrier00.vb", "aircraftCarrier01.vb",
|
||||
"submarine.vb",
|
||||
"jet00.x", "jet01.x"
|
||||
};
|
||||
const std::string basePath[numberOfUnits]{
|
||||
GameManager::getSingleton()->getPath() + "Models/Battleships/", GameManager::getSingleton()->getPath() + "Models/Battleships/",
|
||||
GameManager::getSingleton()->getPath() + "Models/Destroyers/", GameManager::getSingleton()->getPath() + "Models/Destroyers/",
|
||||
GameManager::getSingleton()->getPath() + "Models/Cruisers/", GameManager::getSingleton()->getPath() + "Models/Cruisers/",
|
||||
GameManager::getSingleton()->getPath() + "Models/Aircraft carriers/", GameManager::getSingleton()->getPath() + "Models/Aircraft carriers/",
|
||||
GameManager::getSingleton()->getPath() + "Models/Submarines/",
|
||||
GameManager::getSingleton()->getPath() + "Models/Jets/", GameManager::getSingleton()->getPath() + "Models/Jets/"};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
-429
@@ -1,429 +0,0 @@
|
||||
#pragma once
|
||||
#ifndef VESSEL_DATA_H
|
||||
#define VESSEL_DATA_H
|
||||
|
||||
#include "unitData.h"
|
||||
|
||||
/*
|
||||
0:戦艦
|
||||
1:駆逐艦
|
||||
2:巡洋艦
|
||||
3:航空母艦
|
||||
4:潜水艦
|
||||
5: 戦闘機
|
||||
6:巡航ミサイル
|
||||
*/
|
||||
|
||||
namespace battleship{
|
||||
namespace unitData {
|
||||
enum InitDir{FORWARD,BACKWARD,LEFT,RIGHT};
|
||||
const int numberOfTurrets[numberOfUnits]{13, 13, 4, 4, 2, 5};
|
||||
const int maxNumTurrets=13;
|
||||
const InitDir initDirs[numberOfUnits][maxNumTurrets]{
|
||||
{FORWARD,FORWARD,BACKWARD,LEFT,LEFT,LEFT,LEFT,LEFT,RIGHT,RIGHT,RIGHT,RIGHT,RIGHT},
|
||||
{FORWARD,FORWARD,BACKWARD,LEFT,LEFT,LEFT,LEFT,LEFT,RIGHT,RIGHT,RIGHT,RIGHT,RIGHT},
|
||||
{FORWARD,FORWARD,BACKWARD,BACKWARD},
|
||||
{FORWARD,FORWARD,BACKWARD,BACKWARD},
|
||||
{FORWARD,BACKWARD},
|
||||
{FORWARD,FORWARD,FORWARD,BACKWARD,BACKWARD},
|
||||
};
|
||||
const std::string turretNames[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
"bigTurret00",
|
||||
"bigTurret00",
|
||||
"bigTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00",
|
||||
"smallTurret00"
|
||||
},
|
||||
{
|
||||
"bigTurret01",
|
||||
"bigTurret01",
|
||||
"bigTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01",
|
||||
"smallTurret01"
|
||||
},
|
||||
{"turret00", "turret00", "turret00", "turret00"},
|
||||
{"turret01", "turret01", "turret01", "turret01"},
|
||||
{"turret00", "turret00"},
|
||||
{"turret01", "turret01", "turret01", "turret01", "turret01"}
|
||||
};
|
||||
const vb01::Vector3 turretPos[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
vb01::Vector3(0, .77703, -3.24292),
|
||||
vb01::Vector3(0, 0.96741, -1.67253),
|
||||
vb01::Vector3(0, 0.77703, 3.29185),
|
||||
vb01::Vector3(0.90322, 0.78121, -0.17934),
|
||||
vb01::Vector3(0.90322, 0.78121, 0.42676),
|
||||
vb01::Vector3(0.90322, 0.78121, 1.03286),
|
||||
vb01::Vector3(0.90322, 0.78121, 1.63896),
|
||||
vb01::Vector3(0.90322, 0.78121, 2.24506),
|
||||
vb01::Vector3(-0.90322, 0.78121, -0.17934),
|
||||
vb01::Vector3(-0.90322, 0.78121, 0.42676),
|
||||
vb01::Vector3(-0.90322, 0.78121, 1.03286),
|
||||
vb01::Vector3(-0.90322, 0.78121, 1.63896),
|
||||
vb01::Vector3(-0.90322, 0.78121, 2.24506)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.70974, -2.73371),
|
||||
vb01::Vector3(0, 0.915258, -1.62768),
|
||||
vb01::Vector3(0, 0.70974, 3.33251),
|
||||
vb01::Vector3(0.58824, 0.76908, 0.30145),
|
||||
vb01::Vector3(0.58824, 0.98059, 0.58992),
|
||||
vb01::Vector3(0.58824, 0.76908, 0.8634),
|
||||
vb01::Vector3(0.58824, 0.98059, 1.13294),
|
||||
vb01::Vector3(0.58824, 0.76908, 1.40591),
|
||||
vb01::Vector3(-0.58824, 0.76908, 0.30145),
|
||||
vb01::Vector3(-0.58824, 0.98059, 0.58992),
|
||||
vb01::Vector3(-0.58824, 0.76908, 0.8634),
|
||||
vb01::Vector3(-0.58824, 0.98059, 1.13294),
|
||||
vb01::Vector3(-0.58824, 0.76908, 1.40591)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.04967, -2.08348),
|
||||
vb01::Vector3(0, 0.25291, -1.26886),
|
||||
vb01::Vector3(0, 0.25291, 1.61533),
|
||||
vb01::Vector3(0, 0.04967, 2.42996)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.53012, -2.92538),
|
||||
vb01::Vector3(0, 0.707, -2.45061),
|
||||
vb01::Vector3(0, 0.55879, 2.16916),
|
||||
vb01::Vector3(0, 0.3808, 2.72071)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.73788, -2.79825),
|
||||
vb01::Vector3(0, 0.73788, 2.79825)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.52632, -3.64706),
|
||||
vb01::Vector3(0, 0.71625, -2.81714),
|
||||
vb01::Vector3(0, 0.86667, -1.92772),
|
||||
vb01::Vector3(0, 0.7724, 2.53618),
|
||||
vb01::Vector3(0, 0.52632, 3.41345)
|
||||
}
|
||||
};
|
||||
const float turretAngleOffset[numberOfUnits][maxNumTurrets]{
|
||||
{0, 0, 180, -90, -90, -90, -90, -90, 90, 90, 90, 90, 90},
|
||||
{0, 0, 180, -90, -90, -90, -90, -90, 90, 90, 90, 90, 90},
|
||||
{0, 0, 180, 180},
|
||||
{0, 0, 180, 180},
|
||||
{0, 180},
|
||||
{0, 0, 0, 180, 180}
|
||||
};
|
||||
const float turretMaxAngle[numberOfUnits][maxNumTurrets]{
|
||||
{135, 135, 135, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45},
|
||||
{135, 135, 135, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45},
|
||||
{135, 135, 135, 135},
|
||||
{135, 135, 135, 135},
|
||||
{135, 135},
|
||||
{135, 135, 135, 135, 135}
|
||||
};
|
||||
const float turretRotationSpeed[numberOfUnits][maxNumTurrets]{
|
||||
{1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},
|
||||
{1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},
|
||||
{2, 2, 2, 2},
|
||||
{2, 2, 2, 2},
|
||||
{2, 2},
|
||||
{2, 2, 2, 2, 2}
|
||||
};
|
||||
const int turretDamage[numberOfUnits][maxNumTurrets]{
|
||||
{200, 200, 200, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50},
|
||||
{200, 200, 200, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50},
|
||||
{100, 100, 100, 100},
|
||||
{100, 100, 100, 100},
|
||||
{90, 90},
|
||||
{90, 90, 90, 90, 90}
|
||||
};
|
||||
const int turretRateOfFire[numberOfUnits][maxNumTurrets]{
|
||||
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000},
|
||||
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000},
|
||||
{800, 800, 800, 800},
|
||||
{800, 800, 800, 800},
|
||||
{500,500},
|
||||
{700,700,700,700,700}
|
||||
};
|
||||
const float turretAxisLength[numberOfUnits][maxNumTurrets]{
|
||||
{5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
|
||||
{5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
|
||||
{3, 3, 3, 3},
|
||||
{3, 3, 3, 3},
|
||||
{3, 3},
|
||||
{3, 3, 3, 3, 3},
|
||||
};
|
||||
const int numberOfMantlets[numberOfUnits][maxNumTurrets]{
|
||||
{3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
|
||||
{3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
|
||||
{2, 2, 2, 2},
|
||||
{2, 2, 2, 2},
|
||||
{1, 1},
|
||||
{3, 3, 3, 3, 3}
|
||||
};
|
||||
const std::string mantletNames[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
"bigMantlet00",
|
||||
"bigMantlet00",
|
||||
"bigMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00",
|
||||
"smallMantlet00"
|
||||
},
|
||||
{
|
||||
"bigMantlet01",
|
||||
"bigMantlet01",
|
||||
"bigMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01",
|
||||
"smallMantlet01"
|
||||
},
|
||||
{"mantlet00", "mantlet00", "mantlet00", "mantlet00"},
|
||||
{"mantlet01", "mantlet01", "mantlet01", "mantlet01"},
|
||||
{"mantlet00", "mantlet00"},
|
||||
{"mantlet01", "mantlet01", "mantlet01", "mantlet01", "mantlet01"}
|
||||
};
|
||||
const vb01::Vector3 mantletPos[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
vb01::Vector3(0, 0.19722f, -0.38441f),
|
||||
vb01::Vector3(0, 0.183f, -0.38876f),
|
||||
vb01::Vector3(0, 0.183f, -0.38876f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f),
|
||||
vb01::Vector3(0, 0.06484f, -0.08587f)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.111116, -0.335219),
|
||||
vb01::Vector3(0, 0.111116, -0.335219),
|
||||
vb01::Vector3(0, 0.111116, -0.335219),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749),
|
||||
vb01::Vector3(0, 0.025217, -0.071749)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.22782f, -0.12394f),
|
||||
vb01::Vector3(0, 0.22782f, -0.12394f),
|
||||
vb01::Vector3(0, 0.22782f, -0.12394f),
|
||||
vb01::Vector3(0, 0.22782f, -0.12394f)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.14613, -0.0217),
|
||||
vb01::Vector3(0, 0.14613, -0.0217),
|
||||
vb01::Vector3(0, 0.14613, -0.0217),
|
||||
vb01::Vector3(0, 0.14613, -0.0217)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.2842f, -0.1274f),
|
||||
vb01::Vector3(0, 0.2842f, -0.1274f)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0.09455, -0.19379),
|
||||
vb01::Vector3(0, 0.09455, -0.19379),
|
||||
vb01::Vector3(0, 0.09455, -0.19379),
|
||||
vb01::Vector3(0, 0.09455, -0.19379),
|
||||
vb01::Vector3(0, 0.09455, -0.19379)
|
||||
}
|
||||
};
|
||||
const float mantletPosSideOffset[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
0.23346f,
|
||||
0.23346f,
|
||||
0.23346f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f,
|
||||
0.04725f
|
||||
},
|
||||
{
|
||||
0.176833,
|
||||
0.176833,
|
||||
0.176833,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001,
|
||||
0.030001
|
||||
},
|
||||
{
|
||||
0.07673f,
|
||||
0.07673f,
|
||||
0.07673f,
|
||||
0.07673f
|
||||
},
|
||||
{
|
||||
0.08095,
|
||||
0.08095,
|
||||
0.08095,
|
||||
0.08095
|
||||
},
|
||||
{0, 0},
|
||||
{0.11829, 0.11829, 0.11829, 0.11829, 0.11829}
|
||||
};
|
||||
const float mantletMaxAngle[numberOfUnits][maxNumTurrets]{
|
||||
{45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45},
|
||||
{45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45},
|
||||
{40, 40, 40, 40},
|
||||
{40, 40, 40, 40},
|
||||
{40, 40},
|
||||
{40, 40, 40, 40, 40}
|
||||
};
|
||||
const vb01::Vector3 barrelPos[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.16689f),
|
||||
vb01::Vector3(0, 0, -0.16689f),
|
||||
vb01::Vector3(0, 0, -0.16689f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f),
|
||||
vb01::Vector3(0, 0, -0.1021f)},
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.246837),
|
||||
vb01::Vector3(0, 0, -0.246837),
|
||||
vb01::Vector3(0, 0, -0.246837),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993),
|
||||
vb01::Vector3(0, 0, -0.054993)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.12806f),
|
||||
vb01::Vector3(0, 0, -0.12806f),
|
||||
vb01::Vector3(0, 0, -0.12806f),
|
||||
vb01::Vector3(0, 0, -0.12806f)},
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.11048),
|
||||
vb01::Vector3(0, 0, -0.11048),
|
||||
vb01::Vector3(0, 0, -0.11048),
|
||||
vb01::Vector3(0, 0, -0.11048)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.23015f),
|
||||
vb01::Vector3(0, 0, -0.23015f)
|
||||
},
|
||||
{
|
||||
vb01::Vector3(0, 0, -0.14595),
|
||||
vb01::Vector3(0, 0, -0.14595),
|
||||
vb01::Vector3(0, 0, -0.14595),
|
||||
vb01::Vector3(0, 0, -0.14595),
|
||||
vb01::Vector3(0, 0, -0.14595)
|
||||
}
|
||||
};
|
||||
const std::string barrelNames[numberOfUnits][maxNumTurrets]{
|
||||
{
|
||||
"bigBarrel00",
|
||||
"bigBarrel00",
|
||||
"bigBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00",
|
||||
"smallBarrel00"
|
||||
},
|
||||
{
|
||||
"bigBarrel01",
|
||||
"bigBarrel01",
|
||||
"bigBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01",
|
||||
"smallBarrel01"
|
||||
},
|
||||
{"barrel00", "barrel00", "barrel00", "barrel00"},
|
||||
{"barrel01", "barrel01", "barrel01", "barrel01"},
|
||||
{"barrel00", "barrel00"},
|
||||
{"barrel01", "barrel01", "barrel01", "barrel01", "barrel01"}
|
||||
};
|
||||
const vb01::Vector3 guidedMissilePos[numberOfUnits][6]{
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
vb01::Vector3(0.24482, 1.14985, 1.32775),
|
||||
vb01::Vector3(0.24482, 1.14985, 1.62698),
|
||||
vb01::Vector3(0.24482, 1.14985, 1.88017),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.32775),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.62698),
|
||||
vb01::Vector3(-0.24482, 1.14985, 1.88017)
|
||||
},
|
||||
{vb01::Vector3(0.17192, 0.57858, 0.64471), vb01::Vector3(-0.17192, 0.57858, 0.64471)}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user