From dbf751cf8999137ba381e76581fd8a1e2142b4ee Mon Sep 17 00:00:00 2001 From: devZoGok Date: Mon, 31 Oct 2022 12:25:29 +0200 Subject: [PATCH] refactored Projectile class removed unused projectile classes and files --- Assets/Scripts/projectileData.lua | 242 +++++++++++++++++ CMakeLists.txt | 2 +- depthCharge.cpp | 50 ---- depthCharge.h | 19 -- guidedMissile.cpp | 51 ---- guidedMissile.h | 21 -- guidedMissileData.h | 27 -- missile.cpp | 31 --- missile.h | 24 -- missileData.h | 24 -- projectile.cpp | 133 +++++---- projectile.h | 26 +- projectileData.h | 257 ------------------ shell.cpp | 38 --- shell.h | 20 -- torpedo.cpp | 16 -- torpedo.h | 16 -- unitData.h | 292 -------------------- vesselData.h | 429 ------------------------------ 19 files changed, 334 insertions(+), 1384 deletions(-) create mode 100644 Assets/Scripts/projectileData.lua delete mode 100755 depthCharge.cpp delete mode 100755 depthCharge.h delete mode 100755 guidedMissile.cpp delete mode 100755 guidedMissile.h delete mode 100755 guidedMissileData.h delete mode 100755 missile.cpp delete mode 100755 missile.h delete mode 100755 missileData.h delete mode 100755 projectileData.h delete mode 100755 shell.cpp delete mode 100755 shell.h delete mode 100755 torpedo.cpp delete mode 100755 torpedo.h delete mode 100755 unitData.h delete mode 100755 vesselData.h diff --git a/Assets/Scripts/projectileData.lua b/Assets/Scripts/projectileData.lua new file mode 100644 index 0000000..26acd8e --- /dev/null +++ b/Assets/Scripts/projectileData.lua @@ -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 = { + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} +} diff --git a/CMakeLists.txt b/CMakeLists.txt index ab1f66b..c7e192e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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}) diff --git a/depthCharge.cpp b/depthCharge.cpp deleted file mode 100755 index 0f5d453..0000000 --- a/depthCharge.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include - -#include - -#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); - } -} diff --git a/depthCharge.h b/depthCharge.h deleted file mode 100755 index 3973491..0000000 --- a/depthCharge.h +++ /dev/null @@ -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 diff --git a/guidedMissile.cpp b/guidedMissile.cpp deleted file mode 100755 index 0b97f8a..0000000 --- a/guidedMissile.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include - -#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; - } -} diff --git a/guidedMissile.h b/guidedMissile.h deleted file mode 100755 index c334ea5..0000000 --- a/guidedMissile.h +++ /dev/null @@ -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 diff --git a/guidedMissileData.h b/guidedMissileData.h deleted file mode 100755 index bd92f53..0000000 --- a/guidedMissileData.h +++ /dev/null @@ -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 diff --git a/missile.cpp b/missile.cpp deleted file mode 100755 index bff4b28..0000000 --- a/missile.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -#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); - } -} diff --git a/missile.h b/missile.h deleted file mode 100755 index 6d04da4..0000000 --- a/missile.h +++ /dev/null @@ -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 diff --git a/missileData.h b/missileData.h deleted file mode 100755 index a877572..0000000 --- a/missileData.h +++ /dev/null @@ -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 - diff --git a/projectile.cpp b/projectile.cpp index fc39d61..f41bc5d 100755 --- a/projectile.cpp +++ b/projectile.cpp @@ -1,4 +1,5 @@ #include + #include #include #include @@ -6,9 +7,10 @@ #include #include +#include #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{pathBase + "defPaths.lua", pathBase + "unitData.lua", pathBase + "projectileData.lua"}); + + vector indices = vector{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 indices = vector{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(id + 1)}); + string projectileName = lm->getStringFromTable("projectileName", vector{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 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; } } diff --git a/projectile.h b/projectile.h index 14624cc..e66c7e8 100755 --- a/projectile.h +++ b/projectile.h @@ -3,15 +3,17 @@ #define PROJECTILE_H #include + #include +#include #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; }; } diff --git a/projectileData.h b/projectileData.h deleted file mode 100755 index e8f6153..0000000 --- a/projectileData.h +++ /dev/null @@ -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 diff --git a/shell.cpp b/shell.cpp deleted file mode 100755 index 103606d..0000000 --- a/shell.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include - -#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); - } -} diff --git a/shell.h b/shell.h deleted file mode 100755 index 8b605df..0000000 --- a/shell.h +++ /dev/null @@ -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 diff --git a/torpedo.cpp b/torpedo.cpp deleted file mode 100755 index 5d31a16..0000000 --- a/torpedo.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -#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); - } -} diff --git a/torpedo.h b/torpedo.h deleted file mode 100755 index b81f930..0000000 --- a/torpedo.h +++ /dev/null @@ -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 diff --git a/unitData.h b/unitData.h deleted file mode 100755 index 37e2d1d..0000000 --- a/unitData.h +++ /dev/null @@ -1,292 +0,0 @@ -#pragma once -#ifndef UNIT_DATA_H -#define UNIT_DATA_H - -#include - -#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 diff --git a/vesselData.h b/vesselData.h deleted file mode 100755 index 645ddea..0000000 --- a/vesselData.h +++ /dev/null @@ -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