From 056ccdd08aea44256cbb777556855fd9403b9509 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 30 Sep 2023 14:36:17 +0300 Subject: [PATCH 1/9] added new resources --- activeGameState.cpp | 33 +++++++++++++++++++++++---------- activeGameState.h | 4 ++-- player.h | 11 ++++++++++- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/activeGameState.cpp b/activeGameState.cpp index 6a8dd7e..ece512d 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -43,7 +43,12 @@ namespace battleship{ mainPlayer = Map::getSingleton()->getPlayer(playerId); initDragbox(); - initDepthText(); + + refinedsText = initText(Vector2(0, 100)); + wealthText = initText(Vector2(0, 200)); + researchText = initText(Vector2(0, 300)); + textNode = initText(Vector2(0, 400)); + depth = 1; } ActiveGameState::~ActiveGameState() { @@ -65,33 +70,41 @@ namespace battleship{ root->getGuiNode()->attachChild(dragboxNode); } - void ActiveGameState::initDepthText(){ - Root *root = Root::getSingleton(); - Text *t = new Text(GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", L"depth: "); - - Material *tm = new Material(root->getLibPath() + "text"); + Node* ActiveGameState::initText(Vector2 pos){ + Material *tm = new Material(Root::getSingleton()->getLibPath() + "text"); tm->addBoolUniform("texturingEnabled", false); tm->addVec4Uniform("diffuseColor", Vector4(1, 1, 1, 1)); + + Text *t = new Text(GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", L""); t->setMaterial(tm); - textNode = new Node(Vector3(0, 100, 0)); - textNode->addText(t); + Node *node = new Node(Vector3(pos.x, pos.y, 0)); + node->addText(t); - depth = 1; + return node; } void ActiveGameState::onAttached() { AbstractAppState::onAttached(); Root::getSingleton()->getGuiNode()->attachChild(textNode); + Root::getSingleton()->getGuiNode()->attachChild(refinedsText); + Root::getSingleton()->getGuiNode()->attachChild(wealthText); + Root::getSingleton()->getGuiNode()->attachChild(researchText); } void ActiveGameState::onDettached() { AbstractAppState::onDettached(); - Root::getSingleton()->getGuiNode()->attachChild(textNode); + Root::getSingleton()->getGuiNode()->dettachChild(textNode); + Root::getSingleton()->getGuiNode()->dettachChild(refinedsText); + Root::getSingleton()->getGuiNode()->dettachChild(wealthText); + Root::getSingleton()->getGuiNode()->dettachChild(researchText); } void ActiveGameState::update() { textNode->getText(0)->setText(L"Depth: " + to_wstring(depth)); + refinedsText->getText(0)->setText(L"Refineds: " + to_wstring(mainPlayer->getRefineds())); + wealthText->getText(0)->setText(L"Wealth: " + to_wstring(mainPlayer->getWealth())); + researchText->getText(0)->setText(L"Research: " + to_wstring(mainPlayer->getResearch())); if (isSelectionBox) updateSelectionBox(); diff --git a/activeGameState.h b/activeGameState.h index 2db8e28..447dc69 100755 --- a/activeGameState.h +++ b/activeGameState.h @@ -30,7 +30,7 @@ namespace battleship{ inline std::vector& getUnitGroup(int i){return unitGroups[i];} private: void initDragbox(); - void initDepthText(); + vb01::Node* initText(vb01::Vector2); void deselectUnits(); void renderUnits(); void updateSelectionBox(); @@ -43,7 +43,7 @@ namespace battleship{ GuiAppState *guiState; Player *mainPlayer; vb01::Quad *dragbox = nullptr; - vb01::Node *dragboxNode = nullptr, *textNode = nullptr; + vb01::Node *dragboxNode = nullptr, *textNode = nullptr, *refinedsText = nullptr, *wealthText = nullptr, *researchText = nullptr; vb01::Vector2 clickPoint; std::vector unitScreenPosVec; std::vector unitLightNodes; diff --git a/player.h b/player.h index 215e613..932372d 100755 --- a/player.h +++ b/player.h @@ -31,8 +31,17 @@ namespace battleship{ inline int getFaction(){return faction;} inline int getSide(){return side;} inline vb01::Vector3 getSpawnPoint(){return spawnPoint;} + inline int getRefineds(){return refineds;} + inline void setRefineds(int ref){this->refineds = ref;} + inline void addRefineds(int ref){this->refineds += ref;} + inline int getWealth(){return wealth;} + inline void setWealth(int w){this->wealth = w;} + inline void addWealth(int w){this->wealth += w;} + inline int getResearch(){return research;} + inline void setResearch(int r){this->research = r;} + inline void addResearch(int r){this->research += r;} private: - int credits, faction, difficulty,side,id; + int refineds = 0, wealth = 0, research = 0, faction, difficulty,side,id; std::vector units, selectedUnits; vb01::Vector3 spawnPoint; }; From 92168151cea87a3e480b2969da43d5d67962a403 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 30 Sep 2023 16:12:29 +0300 Subject: [PATCH 2/9] refactored console --- CMakeLists.txt | 5 ++-- abstractCommand.cpp | 34 +++++++++++++++++++++ abstractCommand.h | 22 ++++++++++++++ addUnitCommand.cpp | 59 ++++++++++++++++++++++++++++++++++++ addUnitCommand.h | 25 ++++++++++++++++ console.cpp | 19 ++++++++++++ console.h | 13 ++++++++ consoleCommand.cpp | 73 --------------------------------------------- consoleCommand.h | 23 -------------- inGameAppState.cpp | 6 ++-- 10 files changed, 178 insertions(+), 101 deletions(-) create mode 100644 abstractCommand.cpp create mode 100644 abstractCommand.h create mode 100644 addUnitCommand.cpp create mode 100644 addUnitCommand.h create mode 100755 console.cpp create mode 100755 console.h delete mode 100755 consoleCommand.cpp delete mode 100755 consoleCommand.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ae7005..5fbbd57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,14 +12,15 @@ set(UNIT_BUTTONS unitButton.cpp buildButton.cpp) set(OPTIONS_BUTTONS optionsButton.cpp tabButton.cpp okButton.cpp defaultsButton.cpp) set(IN_GAME_APP_STATE_BUTTONS mainMenuButton.cpp) set(MAP_EDITOR_BUTTONS mapEditorButton.cpp newMapButton.cpp loadMapButton.cpp exportButton.cpp) -set(BUTTONS singlePlayerButton.cpp exitButton.cpp backButton.cpp consoleCommand.cpp playButton.cpp ${OPTIONS_BUTTONS} ${IN_GAME_APP_STATE_BUTTONS} ${MAP_EDITOR_BUTTONS} ${UNIT_BUTTONS}) +set(BUTTONS singlePlayerButton.cpp exitButton.cpp backButton.cpp playButton.cpp ${OPTIONS_BUTTONS} ${IN_GAME_APP_STATE_BUTTONS} ${MAP_EDITOR_BUTTONS} ${UNIT_BUTTONS}) set(LISTBOXES skyboxTextureListbox.cpp landTextureListbox.cpp unitListbox.cpp) set(GUI tooltip.cpp concreteGuiManager.cpp ${BUTTONS} ${LISTBOXES}) set(STATES activeGameState.cpp inGameAppState.cpp guiAppState.cpp mapEditorAppState.cpp) set(UTIL util.cpp binds.h) set(CONTROLLERS unitFrameController.cpp cameraController.cpp) -set(CORE gameManager.cpp defConfigs.cpp ${CONTROLLERS}) +set(CONSOLE console.cpp abstractCommand.cpp addUnitCommand.cpp) +set(CORE gameManager.cpp defConfigs.cpp ${CONSOLE} ${CONTROLLERS}) set(PROJECTILES projectile.cpp) set(FX explosion.cpp) set(VEHICLES vehicle.cpp engineer.cpp) diff --git a/abstractCommand.cpp b/abstractCommand.cpp new file mode 100644 index 0000000..5807c62 --- /dev/null +++ b/abstractCommand.cpp @@ -0,0 +1,34 @@ +#include "abstractCommand.h" + +#include +#include + +namespace battleship{ + using namespace std; + + vector AbstractCommand::explodeString(string commandStr){ + vector spaceIds; + vector fullCommand; + + for(int i = 0; i < commandStr.length(); i++) + if(commandStr[i] == ' ') + spaceIds.push_back(i); + + fullCommand.push_back(commandStr.substr(0, spaceIds[0])); + + for(int i = 0; i < spaceIds.size(); i++){ + bool lastSpace = (i == spaceIds.size() - 1); + string argument = commandStr.substr(spaceIds[i] + 1, lastSpace ? string::npos : spaceIds[i + 1] - spaceIds[i] - 1); + fullCommand.push_back(argument); + } + + return fullCommand; + } + + void AbstractCommand::handle(){ + if(cmdStr.find(" ") == -1) + return; + + arguments = explodeString(cmdStr); + } +} diff --git a/abstractCommand.h b/abstractCommand.h new file mode 100644 index 0000000..b02f6eb --- /dev/null +++ b/abstractCommand.h @@ -0,0 +1,22 @@ +#ifndef ABSTRACT_COMMAND_H +#define ABSTRACT_COMMAND_H + +#include +#include + +namespace battleship{ + class AbstractCommand{ + protected: + AbstractCommand(std::string str) : cmdStr(str){} + virtual void execute(){} + virtual void validate(){} + virtual void handle(); + + std::string cmdStr; + std::vector arguments; + private: + std::vector explodeString(std::string); + }; +} + +#endif diff --git a/addUnitCommand.cpp b/addUnitCommand.cpp new file mode 100644 index 0000000..7bc87c3 --- /dev/null +++ b/addUnitCommand.cpp @@ -0,0 +1,59 @@ +#include +#include + +#include "addUnitCommand.h" +#include "console.h" +#include "addUnitCommand.h" +#include "inGameAppState.h" +#include "player.h" +#include "unitFactory.h" + +namespace battleship{ + using namespace gameBase; + using namespace vb01; + + void AddUnitCommand::validate(){ + if(!(arguments.size() == 2 || arguments.size() == 5 || arguments.size() == 9)) + return; + + playerId = atoi(arguments[0].c_str()); + + if(playerId != 0 && playerId != 1) + return; + + unitId = atoi(arguments[1].c_str()); + + if(!(0 <= unitId && unitId <= (int)generateView()["numUnits"])) + return; + + if(arguments.size() >= 5){ + float x = atoi(arguments[2].c_str()); + float y = atoi(arguments[3].c_str()); + float z = atoi(arguments[4].c_str()); + pos = Vector3(x, y, z); + } + else if(2 < arguments.size() && arguments.size() < 5) + return; + + if(arguments.size() == 9){ + float w = atoi(arguments[5].c_str()); + float x = atoi(arguments[6].c_str()); + float y = atoi(arguments[7].c_str()); + float z = atoi(arguments[8].c_str()); + rot = Quaternion(w, x, y, z); + } + else if(5 < arguments.size() && arguments.size() < 9) + return; + } + + void AddUnitCommand::addUnit(){ + Player* player = Map::getSingleton()->getPlayer(playerId); + player->addUnit(UnitFactory::createUnit(player, unitId, pos, rot)); + } + + void AddUnitCommand::execute(){ + AbstractCommand::handle(); + validate(); + addUnit(); + } +} diff --git a/addUnitCommand.h b/addUnitCommand.h new file mode 100644 index 0000000..a0d5429 --- /dev/null +++ b/addUnitCommand.h @@ -0,0 +1,25 @@ +#ifndef ADD_UNIT_COMMAND_H +#define ADD_UNIT_COMMAND_H + +#include "abstractCommand.h" + +#include +#include + +namespace battleship{ + class AddUnitCommand : public AbstractCommand{ + public: + AddUnitCommand(std::string argsStr) : AbstractCommand(argsStr){} + void validate(); + void execute(); + private: + int playerId, unitId; + bool posEnabled, rotEnabled; + vb01::Vector3 pos = vb01::Vector3::VEC_ZERO; + vb01::Quaternion rot = vb01::Quaternion::QUAT_W; + + void addUnit(); + }; +} + +#endif diff --git a/console.cpp b/console.cpp new file mode 100755 index 0000000..370324d --- /dev/null +++ b/console.cpp @@ -0,0 +1,19 @@ +#include "console.h" +#include "addUnitCommand.h" + +using namespace std; + +namespace battleship{ + void Console::execute(string cmdStr) { + int space = cmdStr.find(" "); + string cmdName, argsStr; + + if(space != -1){ + cmdName = cmdStr.substr(0, space); + argsStr = cmdStr.substr(space + 1, string::npos); + } + + if(cmdName == "add-unit") + AddUnitCommand(argsStr).execute(); + } +} diff --git a/console.h b/console.h new file mode 100755 index 0000000..9675c27 --- /dev/null +++ b/console.h @@ -0,0 +1,13 @@ +#ifndef CONSOLE_COMMAND_H +#define CONSOLE_COMMAND_H + +#include + +namespace battleship{ + class Console{ + public: + static void execute(std::string); + }; +} + +#endif diff --git a/consoleCommand.cpp b/consoleCommand.cpp deleted file mode 100755 index 178d7c6..0000000 --- a/consoleCommand.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include -#include -#include - -#include -#include - -#include "consoleCommand.h" -#include "inGameAppState.h" -#include "player.h" -#include "unitFactory.h" - -using namespace std; -using namespace vb01; -using namespace vb01Gui; -using namespace gameBase; - -namespace battleship{ - void ConsoleCommand::execute(string commandStr) { - vector fullCommand; - parse(commandStr, fullCommand); - - if (fullCommand[0] == "add-unit") { - validateAddUnitArguments(fullCommand); - Vector3 pos = Vector3::VEC_ZERO; - Quaternion rot = Quaternion::QUAT_W; - - if(fullCommand.size() == 6) - pos = Vector3(atof(fullCommand[3].c_str()), atof(fullCommand[4].c_str()), atof(fullCommand[5].c_str())); - - executeAddUnit(atoi(fullCommand[1].c_str()), atoi(fullCommand[2].c_str()), pos, rot); - } - } - - void ConsoleCommand::parse(string commandStr, vector &fullCommand){ - vector spaceIds; - - for(int i = 0; i < commandStr.length(); i++) - if(commandStr[i] == ' ') - spaceIds.push_back(i); - - fullCommand.push_back(commandStr.substr(0, spaceIds[0])); - - for(int i = 0; i < spaceIds.size(); i++){ - bool lastSpace = (i == spaceIds.size() - 1); - string argument = commandStr.substr(spaceIds[i] + 1, lastSpace ? string::npos : spaceIds[i + 1] - spaceIds[i] - 1); - fullCommand.push_back(argument); - } - } - - //TODO implement rotation argument - void ConsoleCommand::validateAddUnitArguments(vector &fullCommand){ - //addUnit [ ] - if(fullCommand.size() != 3 || fullCommand.size() != 6) - return; - - int playerId = atoi(fullCommand[1].c_str()); - - if(playerId != 0 && playerId != 1) - return; - - int unitId = atoi(fullCommand[2].c_str()); - - if(!(0 <= unitId && unitId <= (int)generateView()["numUnits"])) - return; - } - - void ConsoleCommand::executeAddUnit(int playerId, int unitId, Vector3 pos, Quaternion rot) { - Player* player = Map::getSingleton()->getPlayer(playerId); - player->addUnit(UnitFactory::createUnit(player, unitId, pos, rot)); - } -} diff --git a/consoleCommand.h b/consoleCommand.h deleted file mode 100755 index 03f712b..0000000 --- a/consoleCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once -#ifndef CONSOLE_COMMAND_H -#define CONSOLE_COMMAND_H - -#include -#include - -#include -#include - -namespace battleship{ - class ConsoleCommand{ - public: - static void execute(std::string); - private: - static void parse(std::string, std::vector&); - static void validateAddUnitArguments(std::vector&); - static void executeAddUnit(int, int, vb01::Vector3, vb01::Quaternion); - static void validateDebugUnitsArguments(); - }; -} - -#endif diff --git a/inGameAppState.cpp b/inGameAppState.cpp index 188bf82..9680334 100755 --- a/inGameAppState.cpp +++ b/inGameAppState.cpp @@ -11,7 +11,7 @@ #include "defConfigs.h" #include "inGameAppState.h" -#include "consoleCommand.h" +#include "console.h" #include "unitFrameController.h" #include "concreteGuiManager.h" #include "vessel.h" @@ -36,13 +36,13 @@ namespace battleship{ ConcreteGuiManager::getSingleton()->readLuaScreenScript("console.lua"); } - InGameAppState::ConsoleButton::ConsoleButton::ConsoleCommandEntryButton::ConsoleCommandEntryButton(Textbox *t, Listbox *l, Vector2 pos, Vector2 size, string name) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) { + InGameAppState::ConsoleButton::ConsoleButton::ConsoleCommandEntryButton::ConsoleCommandEntryButton(Textbox *t, Listbox *l, Vector2 pos, Vector2 size, string name) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", 257, true) { textbox = t; listbox = l; } void InGameAppState::ConsoleButton::ConsoleButton::ConsoleCommandEntryButton::onClick() { - ConsoleCommand::execute(wstringToString(textbox->getText())); + Console::execute(wstringToString(textbox->getText())); } InGameAppState::InGameAppState(vector difficultyLevels, vector factions, string mapName) : AbstractAppState( From d62c5105cd5fbf5b26001f05bd2512e371464459 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 30 Sep 2023 16:27:39 +0300 Subject: [PATCH 3/9] implemented add-resource command --- CMakeLists.txt | 2 +- addResourceCommand.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++ addResourceCommand.h | 19 ++++++++++++++++++ console.cpp | 3 +++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 addResourceCommand.cpp create mode 100644 addResourceCommand.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fbbd57..8e7e208 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ set(GUI tooltip.cpp concreteGuiManager.cpp ${BUTTONS} ${LISTBOXES}) set(STATES activeGameState.cpp inGameAppState.cpp guiAppState.cpp mapEditorAppState.cpp) set(UTIL util.cpp binds.h) set(CONTROLLERS unitFrameController.cpp cameraController.cpp) -set(CONSOLE console.cpp abstractCommand.cpp addUnitCommand.cpp) +set(CONSOLE console.cpp abstractCommand.cpp addUnitCommand.cpp addResourceCommand.cpp) set(CORE gameManager.cpp defConfigs.cpp ${CONSOLE} ${CONTROLLERS}) set(PROJECTILES projectile.cpp) set(FX explosion.cpp) diff --git a/addResourceCommand.cpp b/addResourceCommand.cpp new file mode 100644 index 0000000..a0f4c37 --- /dev/null +++ b/addResourceCommand.cpp @@ -0,0 +1,44 @@ +#include "addResourceCommand.h" +#include "map.h" +#include "player.h" + +namespace battleship{ + void AddResourceCommand::validate(){ + if(arguments.size() != 3) + return; + + playerId = atoi(arguments[0].c_str()); + + if(playerId != 0 && playerId != 1) + return; + + resourceId = atoi(arguments[1].c_str()); + + if(!(0 <= resourceId && resourceId <= 2)) + return; + + resourceAmmount = atoi(arguments[2].c_str()); + } + + void AddResourceCommand::addResource(){ + Player *player = Map::getSingleton()->getPlayer(playerId); + + switch(resourceId){ + case 0: + player->addRefineds(resourceAmmount); + break; + case 1: + player->addWealth(resourceAmmount); + break; + case 2: + player->addResearch(resourceAmmount); + break; + } + } + + void AddResourceCommand::execute(){ + AbstractCommand::handle(); + validate(); + addResource(); + } +} diff --git a/addResourceCommand.h b/addResourceCommand.h new file mode 100644 index 0000000..b5c55bb --- /dev/null +++ b/addResourceCommand.h @@ -0,0 +1,19 @@ +#ifndef ADD_RESOURCE_COMMAND_H +#define ADD_RESOURCE_COMMAND_H + +#include "abstractCommand.h" + +namespace battleship{ + class AddResourceCommand : public AbstractCommand{ + public: + AddResourceCommand(std::string argsStr) : AbstractCommand(argsStr){} + void execute(); + private: + void validate(); + void addResource(); + + int playerId, resourceId, resourceAmmount; + }; +} + +#endif diff --git a/console.cpp b/console.cpp index 370324d..421a745 100755 --- a/console.cpp +++ b/console.cpp @@ -1,5 +1,6 @@ #include "console.h" #include "addUnitCommand.h" +#include "addResourceCommand.h" using namespace std; @@ -15,5 +16,7 @@ namespace battleship{ if(cmdName == "add-unit") AddUnitCommand(argsStr).execute(); + else if(cmdName == "add-resource") + AddResourceCommand(argsStr).execute(); } } From 1f82b1dfd9d9d1aac94df8c59d72434dd62b2966 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sun, 1 Oct 2023 17:20:56 +0300 Subject: [PATCH 4/9] factored out common Unit, Projectile and GameObjectFrame behaviour into GameObject classes --- CMakeLists.txt | 4 +- activeGameState.cpp | 26 +-- buildButton.cpp | 9 +- gameObject.cpp | 70 ++++++++ gameObject.h | 53 ++++++ gameObjectFrameController.cpp | 148 ++++++++++++++++ ...ontroller.h => gameObjectFrameController.h | 34 ++-- inGameAppState.cpp | 6 +- mapEditorAppState.cpp | 12 +- projectile.cpp | 2 +- projectile.h | 7 +- resourceDeposit.cpp | 0 resourceDeposit.h | 0 unit.cpp | 63 ++----- unit.h | 35 +--- unitFrameController.cpp | 158 ------------------ unitListbox.cpp | 10 +- vehicle.cpp | 6 +- 18 files changed, 348 insertions(+), 295 deletions(-) create mode 100644 gameObject.cpp create mode 100644 gameObject.h create mode 100644 gameObjectFrameController.cpp rename unitFrameController.h => gameObjectFrameController.h (54%) create mode 100644 resourceDeposit.cpp create mode 100644 resourceDeposit.h delete mode 100644 unitFrameController.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e7e208..701f2bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,14 +18,14 @@ set(GUI tooltip.cpp concreteGuiManager.cpp ${BUTTONS} ${LISTBOXES}) set(STATES activeGameState.cpp inGameAppState.cpp guiAppState.cpp mapEditorAppState.cpp) set(UTIL util.cpp binds.h) -set(CONTROLLERS unitFrameController.cpp cameraController.cpp) +set(CONTROLLERS gameObjectFrameController.cpp cameraController.cpp) set(CONSOLE console.cpp abstractCommand.cpp addUnitCommand.cpp addResourceCommand.cpp) set(CORE gameManager.cpp defConfigs.cpp ${CONSOLE} ${CONTROLLERS}) set(PROJECTILES projectile.cpp) set(FX explosion.cpp) set(VEHICLES vehicle.cpp engineer.cpp) set(UNITS unitFactory.cpp unit.cpp structure.cpp ${VEHICLES}) -set(CONTENT player.cpp pathfinder.cpp map.cpp ${UNITS} ${PROJECTILES} ${FX}) +set(CONTENT player.cpp pathfinder.cpp map.cpp gameObject.cpp resourceDeposit.cpp ${UNITS} ${PROJECTILES} ${FX}) set(GAME_SRC ${STATES} ${GUI} ${CORE} ${CONTENT} ${UTIL}) set(SFML_DIR external/SFML) diff --git a/activeGameState.cpp b/activeGameState.cpp index ece512d..c0943cf 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -20,7 +20,7 @@ #include "structure.h" #include "util.h" #include "tooltip.h" -#include "unitFrameController.h" +#include "gameObjectFrameController.h" #include "cameraController.h" #include "concreteGuiManager.h" @@ -118,7 +118,7 @@ namespace battleship{ if(!camCtr->isLookingAround()) camCtr->updateCameraPosition(); - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); if(ufCtr->isPlacingFrames()) ufCtr->update(); @@ -126,8 +126,8 @@ namespace battleship{ void ActiveGameState::deselectUnits(){ mainPlayer->deselectUnits(); - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); - ufCtr->removeUnitFrames(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); + ufCtr->removeGameObjectFrames(); ufCtr->setPlacingFrames(false); ConcreteGuiManager::getSingleton()->removeAllGuiElements(); @@ -288,11 +288,11 @@ namespace battleship{ std::map::iterator it = unitData.find(node); Unit *unit = nullptr; - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); if(ufCtr->isPlacingFrames()){ - Model *model = ufCtr->getUnitFrame(0).model; - unit = new Structure(mainPlayer, ufCtr->getUnitFrame(0).id, model->getPosition(), model->getOrientation()); + GameObjectFrameController::GameObjectFrame goFr= ufCtr->getGameObjectFrame(0); + unit = new Structure(mainPlayer, goFr.getId(), goFr.getModel()->getPosition(), goFr.getModel()->getOrientation()); mainPlayer->addUnit(unit); } @@ -338,7 +338,7 @@ namespace battleship{ void ActiveGameState::onAction(int bind, bool isPressed) { GameManager *gm = GameManager::getSingleton(); InGameAppState *inGameState = (InGameAppState*) gm->getStateManager()->getAppStateByType((int)AppStateType::IN_GAME_STATE); - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); switch((Bind)bind){ case Bind::DRAG_BOX: @@ -359,7 +359,7 @@ namespace battleship{ type = Order::TYPE::BUILD; ufCtr->setPlacingFrames(false); ufCtr->setRotatingFrames(false); - ufCtr->removeUnitFrames(); + ufCtr->removeGameObjectFrames(); } issueOrder(type, shiftPressed); @@ -405,7 +405,7 @@ namespace battleship{ { shiftPressed = isPressed; - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); ufCtr->setPaintSelecting(shiftPressed); if(isPressed){ @@ -463,7 +463,7 @@ namespace battleship{ break; case Bind::DESELECT_STRUCTURE: - ufCtr->removeUnitFrames(); + ufCtr->removeGameObjectFrames(); ufCtr->setPlacingFrames(false); break; } @@ -471,7 +471,7 @@ namespace battleship{ void ActiveGameState::onAnalog(int bind, float strength) { CameraController *camCtr = CameraController::getSingleton(); - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); switch((Bind)bind){ case Bind::LOOK_UP: @@ -488,7 +488,7 @@ namespace battleship{ if(camCtr->isLookingAround()) CameraController::getSingleton()->orientCamera(Vector3(0, 1, 0), strength); else if(ufCtr->isPlacingFrames() && ufCtr->isRotatingFrames()) - ufCtr->rotateUnitFrames(100 * strength); + ufCtr->rotateGameObjectFrames(100 * strength); break; } diff --git a/buildButton.cpp b/buildButton.cpp index b5f93cc..c0cf149 100644 --- a/buildButton.cpp +++ b/buildButton.cpp @@ -1,7 +1,7 @@ #include "buildButton.h" #include "gameManager.h" #include "unit.h" -#include "unitFrameController.h" +#include "gameObjectFrameController.h" #include @@ -17,11 +17,8 @@ namespace battleship{ } void BuildButton::onClick(){ - sol::state_view SOL_LUA_STATE = generateView(); - string modelPath = (string)SOL_LUA_STATE["basePath"][structureId + 1] + (string)SOL_LUA_STATE["meshPath"][structureId + 1]; - - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); - ufCtr->addUnitFrame(UnitFrameController::UnitFrame(modelPath, structureId, (int)UnitType::LAND)); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); + ufCtr->addGameObjectFrame(GameObjectFrameController::GameObjectFrame(structureId, (int)UnitType::LAND)); ufCtr->setPlacingFrames(true); } } diff --git a/gameObject.cpp b/gameObject.cpp new file mode 100644 index 0000000..5506bd1 --- /dev/null +++ b/gameObject.cpp @@ -0,0 +1,70 @@ +#include "gameObject.h" +#include "gameManager.h" +#include "defConfigs.h" + +#include + +#include + +#include + +namespace battleship{ + using namespace std; + using namespace vb01; + using namespace gameBase; + using namespace configData; + + void GameObject::update(){ + } + + void GameObject::placeAt(Vector3 p) { + model->setPosition(p); + pos = p; + } + + void GameObject::orientAt(Quaternion rotQuat){ + model->setOrientation(rotQuat); + rot = rotQuat; + } + + void GameObject::initProperties(){ + } + + void GameObject::destroyModel(){ + Root::getSingleton()->getRootNode()->dettachChild(model); + delete model; + } + + void GameObject::initModel(bool textured){ + sol::state_view SOL_LUA_STATE = generateView(); + string basePath = SOL_LUA_STATE["basePath"][id + 1]; + string meshPath = SOL_LUA_STATE["meshPath"][id + 1]; + + model = new Model(basePath + meshPath); + Root *root = Root::getSingleton(); + string libPath = root->getLibPath(); + + Material *mat = new Material(libPath + "texture"); + + if(textured){ + string f[]{GameManager::getSingleton()->getPath() + configData::DEFAULT_TEXTURE}; + Texture *diffuseTexture = new Texture(f, 1, false); + mat->addBoolUniform("texturingEnabled", true); + mat->addBoolUniform("lightingEnabled", false); + mat->addTexUniform("textures[0]", diffuseTexture, true); + } + else{ + mat->addBoolUniform("texturingEnabled", false); + mat->addBoolUniform("lightingEnabled", false); + mat->addVec4Uniform("diffuseColor", Vector4::VEC_ZERO); + model->setWireframe(true); + } + + model->setMaterial(mat); + root->getRootNode()->attachChild(model); + } + + void GameObject::destroySound(){} + + void GameObject::initSound(){} +} diff --git a/gameObject.h b/gameObject.h new file mode 100644 index 0000000..cc3c21c --- /dev/null +++ b/gameObject.h @@ -0,0 +1,53 @@ +#ifndef GAME_OBJECT_H +#define GAME_OBJECT_H + +#include +#include +#include + +namespace battleship{ + class Player; + + class GameObject{ + public: + GameObject(int i, Player *pl, vb01::Vector3 vec, vb01::Quaternion quat) : id(i), player(pl), pos(vec), rot(quat){} + ~GameObject(){} + virtual void update(); + virtual void toggleSelection(bool sel){selected = sel;} + void placeAt(vb01::Vector3); + void orientAt(vb01::Quaternion); + inline vb01::Vector3 getCorner(int i){return corners[i];} + inline bool isSelected(){return selected;} + inline bool isSelectable(){return selectable;} + inline bool isDebuggable(){return debugging;} + inline vb01::Vector3 getPos() {return pos;} + inline vb01::Quaternion getRot(){return rot;} + inline float getWidth() {return width;} + inline float getHeight() {return height;} + inline float getLength() {return length;} + inline vb01::Model* getModel() {return model;} + inline Player* getPlayer(){return player;} + inline void toggleDebugging(bool d){this->debugging=d;} + inline vb01::Vector3 getDirVec() {return dirVec;} + inline vb01::Vector3 getLeftVec() {return leftVec;} + inline vb01::Vector3 getUpVec() {return upVec;} + inline int getId() {return id;} + private: + protected: + virtual void initProperties(); + virtual void destroyModel(); + virtual void initModel(bool = true); + virtual void destroySound(); + virtual void initSound(); + + int id; + Player *player; + vb01::Model *model = nullptr; + vb01::Vector3 pos = vb01::Vector3(0, 0, 0), upVec = vb01::Vector3(0, 1, 0), dirVec = vb01::Vector3(0, 0, 1), leftVec = vb01::Vector3(1, 0, 0), corners[8]; + vb01::Quaternion rot; + bool selected = false, selectable, debugging = false; + float width, height, length; + }; +} + +#endif diff --git a/gameObjectFrameController.cpp b/gameObjectFrameController.cpp new file mode 100644 index 0000000..ffc3002 --- /dev/null +++ b/gameObjectFrameController.cpp @@ -0,0 +1,148 @@ +#include + +#include "unitFrameController.h" +#include "unit.h" +#include "util.h" +#include "map.h" + +#include +#include +#include +#include +#include +#include + +#include + +namespace battleship{ + using namespace std; + using namespace vb01; + using namespace gameBase; + + static GameObjectFrameController *gameObjectFrameController = nullptr; + + GameObjectFrameController::GameObjectFrame::GameObjectFrame(int i, int t, Vector3 pos, Quaternion rot) : GameObject(i, nullptr, pos, rot), type(t) { + initModel(false); + } + + GameObjectFrameController* GameObjectFrameController::getSingleton(){ + if(!gameObjectFrameController) + gameObjectFrameController = new GameObjectFrameController(); + + return gameObjectFrameController; + } + + void GameObjectFrameController::paintSelect(Vector3 rowEnd, float width, float length){ + Vector3 rowDir = rowEnd - paintSelectRowStart; + float lenRow = rowDir.getLength(); + float hypothenuse = sqrt(width * width + length * length); + int numStructsInRow = int(lenRow / hypothenuse); + + while(gameObjectFrames.size() > numStructsInRow) + removeGameObjectFrame(gameObjectFrames.size() - 1); + + if(gameObjectFrames.size() < numStructsInRow){ + int structureId = gameObjectFrames[0].getId(); + Vector3 buildDir = rowDir; + + if(gameObjectFrames.size() > 1) + buildDir = gameObjectFrames[1].getModel()->getPosition() - gameObjectFrames[0].getModel()->getPosition(); + + Vector3 pos = paintSelectRowStart + buildDir.norm() * hypothenuse * gameObjectFrames.size(); + addGameObjectFrame(GameObjectFrame(structureId, (int)UnitType::LAND, pos)); + } + } + + //TODO implement terrain evenness check + void GameObjectFrameController::placeGameObjectFrame(int id, Vector3 newPos, float width, float length){ + GameObjectFrame &s = gameObjectFrames[id]; + Model *model = s.getModel(); + + if(!rotatingStructure) + model->setPosition(newPos); + + Map *map = Map::getSingleton(); + MeshData meshData = map->getNodeParent()->getChild(0)->getMesh(0)->getMeshBase(); + MeshData::Vertex *verts = meshData.vertices; + int numVerts = 3 * meshData.numTris; + + float maxUnevenness = generateView()["maxUnevenness"], unevenness = 0; + + for(int i = 0; i < numVerts; i++){ + float diffX = fabs(model->getPosition().x - verts[i].pos.x); + float diffY = fabs(model->getPosition().y - verts[i].pos.y); + float diffZ = fabs(model->getPosition().z - verts[i].pos.z); + + if(diffX < 0.5 * width && diffZ < 0.5 * length && diffY > unevenness){ + unevenness = diffY; + + if(unevenness > maxUnevenness) + break; + } + } + + Vector4 color; + + if(unevenness > maxUnevenness){ + color = Vector4(1, 0, 0, 1); + s.status = GameObjectFrame::NOT_PLACEABLE; + } + else{ + color = Vector4(0, 1, 0, 1); + s.status = GameObjectFrame::PLACEABLE; + } + + Material *mat = model->getMaterial(); + mat->setVec4Uniform("diffuseColor", color); + } + + void GameObjectFrameController::update(){ + Vector3 startPos = Root::getSingleton()->getCamera()->getPosition(); + vector results; + Ray::retrieveCollisions(startPos, (screenToSpace(getCursorPos()) - startPos).norm(), Map::getSingleton()->getNodeParent()->getChild(0), results); + Ray::sortResults(results); + if(results.empty()) return; + + Vector3 newPos, rowEnd; + sol::state_view SOL_LUA_STATE = generateView(); + sol::table unitTable = SOL_LUA_STATE["unitCornerPoints"][gameObjectFrames[0].getId() + 1]; + float width = (float)unitTable[1]["x"] - (float)unitTable[2]["x"]; + float length = (float)unitTable[4]["z"] - (float)unitTable[1]["z"]; + + if(paintSelecting) + paintSelect(results[0].pos, width, length); + else if(!(paintSelecting || rotatingStructure)) + newPos = results[0].pos; + + for(int i = 0; i < gameObjectFrames.size(); i++){ + if(paintSelecting){ + float hypothenuse = sqrt(width * width + length * length); + Vector3 dir = (results[0].pos - paintSelectRowStart).norm(); + newPos = paintSelectRowStart + dir * hypothenuse * i; + } + + placeGameObjectFrame(i, newPos, width, length); + } + } + + void GameObjectFrameController::removeGameObjectFrame(int i){ + Model *model = gameObjectFrames[i].getModel(); + model->getParent()->dettachChild(model); + delete model; + gameObjectFrames.erase(gameObjectFrames.begin() + i); + } + + void GameObjectFrameController::removeGameObjectFrames(){ + while(gameObjectFrames.size() > 0) + removeGameObjectFrame(0); + } + + void GameObjectFrameController::rotateGameObjectFrames(float angle){ + for(GameObjectFrame &s : gameObjectFrames) + if(s.status != GameObjectFrame::PLACED){ + Model *model = s.getModel(); + Quaternion rot = model->getOrientation(); + model->setOrientation(Quaternion(angle, Vector3::VEC_J) * rot); + } + } +} diff --git a/unitFrameController.h b/gameObjectFrameController.h similarity index 54% rename from unitFrameController.h rename to gameObjectFrameController.h index 1c889b9..ae1cad1 100644 --- a/unitFrameController.h +++ b/gameObjectFrameController.h @@ -7,33 +7,33 @@ #include #include +#include "gameObject.h" + namespace vb01{ class Model; } namespace battleship{ - class UnitFrameController{ + class GameObjectFrameController{ public: - struct UnitFrame{ + struct GameObjectFrame : public GameObject{ enum Status{PLACEABLE, NOT_PLACEABLE, PLACED}; - UnitFrame(std::string, int, int, vb01::Vector3 = vb01::Vector3::VEC_ZERO, vb01::Quaternion = vb01::Quaternion::QUAT_W); - ~UnitFrame(){} - void update(); + GameObjectFrame(int, int, vb01::Vector3 = vb01::Vector3::VEC_ZERO, vb01::Quaternion = vb01::Quaternion::QUAT_W); + ~GameObjectFrame(){} - vb01::Model *model; - int id, type; + int type; Status status; }; - static UnitFrameController* getSingleton(); + static GameObjectFrameController* getSingleton(); void update(); - void removeUnitFrame(int); - void removeUnitFrames(); - void rotateUnitFrames(float); - inline int getNumUnitFrames(){return unitFrames.size();} - inline void addUnitFrame(UnitFrame u){unitFrames.push_back(u);} - inline UnitFrame& getUnitFrame(int i){return unitFrames[i];} + void removeGameObjectFrame(int); + void removeGameObjectFrames(); + void rotateGameObjectFrames(float); + inline int getNumGameObjectFrames(){return gameObjectFrames.size();} + inline void addGameObjectFrame(GameObjectFrame u){gameObjectFrames.push_back(u);} + inline GameObjectFrame& getGameObjectFrame(int i){return gameObjectFrames[i];} inline bool isPlacingFrames(){return placingStructures;} inline void setPlacingFrames(bool ps){placingStructures = ps;} inline bool isPaintSelecting(){return paintSelecting;} @@ -42,11 +42,11 @@ namespace battleship{ inline void setRotatingFrames(bool rs){rotatingStructure = rs;} inline void setPaintSelectRowStart(vb01::Vector3 st){paintSelectRowStart = st;} private: - UnitFrameController(){} + GameObjectFrameController(){} void paintSelect(vb01::Vector3, float, float); - void placeUnitFrame(int, vb01::Vector3, float, float); + void placeGameObjectFrame(int, vb01::Vector3, float, float); - std::vector unitFrames; + std::vector gameObjectFrames; vb01::Vector3 paintSelectRowStart, rowDir; bool placingStructures = false, paintSelecting = false, rotatingStructure = false; }; diff --git a/inGameAppState.cpp b/inGameAppState.cpp index 9680334..219dca5 100755 --- a/inGameAppState.cpp +++ b/inGameAppState.cpp @@ -12,7 +12,7 @@ #include "defConfigs.h" #include "inGameAppState.h" #include "console.h" -#include "unitFrameController.h" +#include "gameObjectFrameController.h" #include "concreteGuiManager.h" #include "vessel.h" @@ -124,14 +124,14 @@ namespace battleship{ for(Player *p : Map::getSingleton()->getPlayers()) for(Unit *u : p->getUnits()) - u->reinitUnit(); + u->reinit(); } } void InGameAppState::onAction(int bind, bool isPressed) { switch((Bind)bind){ case Bind::TOGGLE_MAIN_MENU: - if(isPressed && !UnitFrameController::getSingleton()->isPlacingFrames()) + if(isPressed && !GameObjectFrameController::getSingleton()->isPlacingFrames()) toggleMainMenu(); break; } diff --git a/mapEditorAppState.cpp b/mapEditorAppState.cpp index cb2b27d..cbb1aa7 100644 --- a/mapEditorAppState.cpp +++ b/mapEditorAppState.cpp @@ -2,7 +2,7 @@ #include "gameManager.h" #include "defConfigs.h" #include "cameraController.h" -#include "unitFrameController.h" +#include "gameObjectFrameController.h" #include "player.h" #include "map.h" #include "mesh.h" @@ -545,7 +545,7 @@ namespace battleship{ if(!(camCtr->isLookingAround() || mapEditor->isPushing())) camCtr->updateCameraPosition(); - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); if(ufCtr->isPlacingFrames()) ufCtr->update(); @@ -578,21 +578,21 @@ namespace battleship{ void MapEditorAppState::onDettached(){} void MapEditorAppState::onAction(int bind, bool isPressed){ - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); switch((Bind)bind){ case Bind::LOOK_AROUND: if(ufCtr->isPlacingFrames()){ Player *player = Map::getSingleton()->getPlayer(0); - UnitFrameController::UnitFrame &frame = ufCtr->getUnitFrame(0); - player->addUnit(new Unit(player, frame.id, frame.model->getPosition(), frame.model->getOrientation())); + GameObjectFrameController::GameObjectFrame &frame = ufCtr->getGameObjectFrame(0); + player->addUnit(new Unit(player, frame.getId(), frame.getModel()->getPosition(), frame.getModel()->getOrientation())); } else CameraController::getSingleton()->setLookingAround(isPressed); break; case Bind::DESELECT_STRUCTURE: - ufCtr->removeUnitFrames(); + ufCtr->removeGameObjectFrames(); ufCtr->setPlacingFrames(false); break; case Bind::INCREASE_RADIUS: diff --git a/projectile.cpp b/projectile.cpp index 539f9ea..04d4e23 100755 --- a/projectile.cpp +++ b/projectile.cpp @@ -23,7 +23,7 @@ namespace battleship{ 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) { + Projectile::Projectile(Unit *unit, Node *node, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) : GameObject(id, unit->getPlayer(), pos, Quaternion::QUAT_W){ this->unit = unit; this->id = id; this->weaponTypeId = weaponTypeId; diff --git a/projectile.h b/projectile.h index e66c7e8..9f4bcf0 100755 --- a/projectile.h +++ b/projectile.h @@ -1,4 +1,3 @@ -#pragma once #ifndef PROJECTILE_H #define PROJECTILE_H @@ -8,6 +7,7 @@ #include #include "gameManager.h" +#include "gameObject.h" #include "util.h" namespace vb01{ @@ -19,7 +19,7 @@ namespace vb01{ namespace battleship { class Unit; - class Projectile { + class Projectile : public GameObject{ public: Projectile(Unit*, vb01::Node*, vb01::Vector3, vb01::Vector3, vb01::Vector3, vb01::Vector3, int, int, int); virtual ~Projectile(); @@ -40,8 +40,7 @@ namespace battleship { bool exploded = false; float speed, rayLength, scale; int damage, id, weaponTypeId; - vb01::Vector3 initPos, pos, dirVec, leftVec, upVec; - vb01::Quaternion rot; + vb01::Vector3 initPos; s64 lastUpdateTime = 0; Unit *unit = nullptr; sf::SoundBuffer *shotSfxBuffer, *explosionSfxBuffer; diff --git a/resourceDeposit.cpp b/resourceDeposit.cpp new file mode 100644 index 0000000..e69de29 diff --git a/resourceDeposit.h b/resourceDeposit.h new file mode 100644 index 0000000..e69de29 diff --git a/unit.cpp b/unit.cpp index a8cfaf2..0d9b959 100755 --- a/unit.cpp +++ b/unit.cpp @@ -22,22 +22,28 @@ using namespace gameBase; using namespace std; namespace battleship{ - Unit::Unit(Player *player, int id, Vector3 pos, Quaternion rot) { + Unit::Unit(Player *player, int id, Vector3 pos, Quaternion rot) : GameObject(id, player, pos, rot){ this->id = id; this->player = player; - initProperties(); - initModel(); - initSound(); - initUnitStats(); - placeUnit(pos); - orientUnit(rot); + init(); + + hpBackgroundNode = createBar(lenHpBar, Vector4(0, 0, 0, 1)); + hpForegroundNode = createBar(lenHpBar, Vector4(0, 1, 0, 1)); } //TODO complete implementation Unit::~Unit() { } + void Unit::init(){ + initProperties(); + initModel(); + initSound(); + placeAt(pos); + orientAt(rot); + } + void Unit::initProperties(){ sol::state_view SOL_LUA_STATE = generateView(); health = SOL_LUA_STATE["health"][id + 1]; @@ -60,31 +66,6 @@ namespace battleship{ length = corners[3].z - corners[0].z; } - void Unit::destroyModel(){ - Root::getSingleton()->getRootNode()->dettachChild(model); - delete model; - } - - void Unit::initModel(){ - sol::state_view SOL_LUA_STATE = generateView(); - string basePath = SOL_LUA_STATE["basePath"][id + 1]; - string meshPath = SOL_LUA_STATE["meshPath"][id + 1]; - - model = new Model(basePath + meshPath); - Root *root = Root::getSingleton(); - string libPath = root->getLibPath(); - - Material *mat = new Material(libPath + "texture"); - string f[]{GameManager::getSingleton()->getPath() + configData::DEFAULT_TEXTURE}; - Texture *diffuseTexture = new Texture(f, 1, false); - mat->addBoolUniform("texturingEnabled", true); - mat->addBoolUniform("lightingEnabled", false); - mat->addTexUniform("textures[0]", diffuseTexture, true); - - model->setMaterial(mat); - root->getRootNode()->attachChild(model); - } - void Unit::destroySound(){ selectionSfx->stop(); delete selectionSfx; @@ -101,14 +82,14 @@ namespace battleship{ selectionSfx = new sf::Sound(*selectionSfxBuffer); } - void Unit::reinitUnit(){ + void Unit::reinit(){ destroySound(); destroyModel(); initModel(); initSound(); initProperties(); - placeUnit(pos); - orientUnit(rot); + placeAt(pos); + orientAt(rot); } Node* Unit::createBar(float initLen, Vector4 color){ @@ -129,8 +110,6 @@ namespace battleship{ } void Unit::initUnitStats(){ - hpBackgroundNode = createBar(lenHpBar, Vector4(0, 0, 0, 1)); - hpForegroundNode = createBar(lenHpBar, Vector4(0, 1, 0, 1)); } void Unit::update() { @@ -213,16 +192,6 @@ namespace battleship{ removeOrder(orders.size() - 1); } - void Unit::placeUnit(Vector3 p) { - model->setPosition(p); - pos = p; - } - - void Unit::orientUnit(Quaternion rotQuat){ - model->setOrientation(rotQuat); - rot = rotQuat; - } - std::vector Unit::getProjectiles(){ std::vector projectiles; InGameAppState *inGameState = ((InGameAppState*)GameManager::getSingleton()->getStateManager()->getAppStateByType((int)AppStateType::IN_GAME_STATE)); diff --git a/unit.h b/unit.h index cc6f9ac..05252d0 100755 --- a/unit.h +++ b/unit.h @@ -1,5 +1,3 @@ -#pragma once -#include "external/vb01/quaternion.h" #ifndef UNIT_H #define UNIT_H @@ -11,6 +9,7 @@ #include #include "gameManager.h" +#include "gameObject.h" #include "projectile.h" namespace vb01{ @@ -47,7 +46,7 @@ namespace battleship{ enum class UnitClass {VESSEL, ENGINEER, SAMPLE_BUILDING}; enum class UnitType {UNDERWATER, SEA_LEVEL, HOVER, LAND, AIR, NONE = -1}; - class Unit { + class Unit : public GameObject{ public: Unit(Player*, int, vb01::Vector3, vb01::Quaternion); ~Unit(); @@ -56,38 +55,23 @@ namespace battleship{ virtual void halt(); void toggleSelection(bool); void setOrder(Order); - void placeUnit(vb01::Vector3); - void orientUnit(vb01::Quaternion); void addProjectile(Projectile*); std::vector getProjectiles(); virtual void addOrder(Order); - virtual void reinitUnit(); + virtual void reinit(); inline vb01::Vector3 getCorner(int i){return corners[i];} - inline bool isSelected(){return selected;} - inline bool isSelectable(){return selectable;} - inline bool isDebuggable(){return debugging;} inline bool isWorking(){return working;} inline vb01::Vector2 getScreenPos(){return screenPos;} - inline vb01::Vector3 getPos() {return pos;} inline vb01::Vector3* getPosPtr() {return &pos;} - inline vb01::Quaternion getRot(){return rot;} inline float getLineOfSight() {return lineOfSight;} - inline float getWidth() {return width;} - inline float getHeight() {return height;} - inline float getLength() {return length;} inline vb01::Model* getNode() {return model;} - inline Player* getPlayer(){return player;} inline UnitType getType() {return type;} inline UnitClass getUnitClass() {return unitClass;} - inline void toggleDebugging(bool d){this->debugging=d;} inline void takeDamage(int damage) {health -= damage;} - inline int getId() {return id;} inline int getPlayerId() {return playerId;} - inline vb01::Vector3 getDirVec() {return dirVec;} - inline vb01::Vector3 getLeftVec() {return leftVec;} - inline vb01::Vector3 getUpVec() {return upVec;} private: void updateScreenCoordinates(); + void init(); inline bool canDisplayOrderLine(){return vb01::getTime() - orderLineDispTime < orderVecDispLength;} const int orderVecDispLength = 2000; @@ -95,24 +79,19 @@ namespace battleship{ sf::Sound *selectionSfx = nullptr; vb01::Node *hpBackgroundNode = nullptr, *hpForegroundNode = nullptr; protected: - Player *player; UnitClass unitClass; UnitType type; vb01::Vector2 screenPos; std::vector orders; - vb01::Vector3 pos = vb01::Vector3(0, 0, 0), upVec = vb01::Vector3(0, 1, 0), dirVec = vb01::Vector3(0, 0, 1), leftVec = vb01::Vector3(1, 0, 0), corners[8]; - vb01::Quaternion rot = vb01::Quaternion::QUAT_W; + vb01::Vector3 corners[8]; int health, maxHealth, cost, id, playerId, lenHpBar = 200; s64 orderLineDispTime = 0; - vb01::Model *model; - bool selected = false, selectable, debugging = false, working = true; - float lineOfSight, range, width, height, length; + bool working = true; + float lineOfSight, range; void removeOrder(int); void displayUnitStats(vb01::Node*, vb01::Node*, int, int, vb01::Vector2 = vb01::Vector2::VEC_ZERO); virtual void initProperties(); - virtual void destroyModel(); - virtual void initModel(); virtual void destroySound(); virtual void initSound(); virtual void initUnitStats(); diff --git a/unitFrameController.cpp b/unitFrameController.cpp deleted file mode 100644 index 060c3c8..0000000 --- a/unitFrameController.cpp +++ /dev/null @@ -1,158 +0,0 @@ -#include - -#include "unitFrameController.h" -#include "unit.h" -#include "util.h" -#include "map.h" - -#include -#include -#include -#include -#include -#include - -#include - -namespace battleship{ - using namespace std; - using namespace vb01; - using namespace gameBase; - - static UnitFrameController *unitFrameController = nullptr; - - UnitFrameController::UnitFrame::UnitFrame(string modelPath, int i, int t, Vector3 pos, Quaternion rot) : id(i), type(t) { - Root *root = Root::getSingleton(); - Material *mat = new Material(root->getLibPath() + "texture"); - mat->addBoolUniform("texturingEnabled", false); - mat->addBoolUniform("lightingEnabled", false); - mat->addVec4Uniform("diffuseColor", Vector4::VEC_ZERO); - - model = new Model(modelPath); - model->setWireframe(true); - model->setMaterial(mat); - model->setPosition(pos); - model->setOrientation(rot); - root->getRootNode()->attachChild(model); - } - - UnitFrameController* UnitFrameController::getSingleton(){ - if(!unitFrameController) - unitFrameController = new UnitFrameController(); - - return unitFrameController; - } - - void UnitFrameController::paintSelect(Vector3 rowEnd, float width, float length){ - Vector3 rowDir = rowEnd - paintSelectRowStart; - float lenRow = rowDir.getLength(); - float hypothenuse = sqrt(width * width + length * length); - int numStructsInRow = int(lenRow / hypothenuse); - - while(unitFrames.size() > numStructsInRow) - removeUnitFrame(unitFrames.size() - 1); - - if(unitFrames.size() < numStructsInRow){ - int structureId = unitFrames[0].id; - sol::state_view SOL_LUA_STATE = generateView(); - string modelPath = (string)SOL_LUA_STATE["basePath"][structureId + 1] + (string)SOL_LUA_STATE["meshPath"][structureId + 1]; - Vector3 buildDir = rowDir; - - if(unitFrames.size() > 1) - buildDir = unitFrames[1].model->getPosition() - unitFrames[0].model->getPosition(); - - Vector3 pos = paintSelectRowStart + buildDir.norm() * hypothenuse * unitFrames.size(); - addUnitFrame(UnitFrame(modelPath, structureId, (int)UnitType::LAND, pos)); - } - } - - //TODO implement terrain evenness check - void UnitFrameController::placeUnitFrame(int id, Vector3 newPos, float width, float length){ - UnitFrame &s = unitFrames[id]; - - if(!rotatingStructure) - s.model->setPosition(newPos); - - Map *map = Map::getSingleton(); - MeshData meshData = map->getNodeParent()->getChild(0)->getMesh(0)->getMeshBase(); - MeshData::Vertex *verts = meshData.vertices; - int numVerts = 3 * meshData.numTris; - - float maxUnevenness = generateView()["maxUnevenness"], unevenness = 0; - - for(int i = 0; i < numVerts; i++){ - float diffX = fabs(s.model->getPosition().x - verts[i].pos.x); - float diffY = fabs(s.model->getPosition().y - verts[i].pos.y); - float diffZ = fabs(s.model->getPosition().z - verts[i].pos.z); - - if(diffX < 0.5 * width && diffZ < 0.5 * length && diffY > unevenness){ - unevenness = diffY; - - if(unevenness > maxUnevenness) - break; - } - } - - Vector4 color; - - if(unevenness > maxUnevenness){ - color = Vector4(1, 0, 0, 1); - s.status = UnitFrame::NOT_PLACEABLE; - } - else{ - color = Vector4(0, 1, 0, 1); - s.status = UnitFrame::PLACEABLE; - } - - Material *mat = s.model->getMaterial(); - mat->setVec4Uniform("diffuseColor", color); - } - - void UnitFrameController::update(){ - Vector3 startPos = Root::getSingleton()->getCamera()->getPosition(); - vector results; - Ray::retrieveCollisions(startPos, (screenToSpace(getCursorPos()) - startPos).norm(), Map::getSingleton()->getNodeParent()->getChild(0), results); - Ray::sortResults(results); - if(results.empty()) return; - - Vector3 newPos, rowEnd; - sol::state_view SOL_LUA_STATE = generateView(); - sol::table unitTable = SOL_LUA_STATE["unitCornerPoints"][unitFrames[0].id + 1]; - float width = (float)unitTable[1]["x"] - (float)unitTable[2]["x"]; - float length = (float)unitTable[4]["z"] - (float)unitTable[1]["z"]; - - if(paintSelecting) - paintSelect(results[0].pos, width, length); - else if(!(paintSelecting || rotatingStructure)) - newPos = results[0].pos; - - for(int i = 0; i < unitFrames.size(); i++){ - if(paintSelecting){ - float hypothenuse = sqrt(width * width + length * length); - Vector3 dir = (results[0].pos - paintSelectRowStart).norm(); - newPos = paintSelectRowStart + dir * hypothenuse * i; - } - - placeUnitFrame(i, newPos, width, length); - } - } - - void UnitFrameController::removeUnitFrame(int i){ - unitFrames[i].model->getParent()->dettachChild(unitFrames[i].model); - delete unitFrames[i].model; - unitFrames.erase(unitFrames.begin() + i); - } - - void UnitFrameController::removeUnitFrames(){ - while(unitFrames.size() > 0) - removeUnitFrame(0); - } - - void UnitFrameController::rotateUnitFrames(float angle){ - for(UnitFrame &s : unitFrames) - if(s.status != UnitFrame::PLACED){ - Quaternion rot = s.model->getOrientation(); - s.model->setOrientation(Quaternion(angle, Vector3::VEC_J) * rot); - } - } -} diff --git a/unitListbox.cpp b/unitListbox.cpp index 12cb823..80d31d2 100644 --- a/unitListbox.cpp +++ b/unitListbox.cpp @@ -2,7 +2,7 @@ #include "unitListbox.h" #include "unit.h" -#include "unitFrameController.h" +#include "gameObjectFrameController.h" namespace battleship{ using namespace std; @@ -14,13 +14,9 @@ namespace battleship{ } void UnitListbox::onClose(){ - UnitFrameController *ufCtr = UnitFrameController::getSingleton(); - int id = selectedOption; - sol::state_view SOL_LUA_STATE = generateView(); - string modelPath = (string)SOL_LUA_STATE["basePath"][id + 1] + (string)SOL_LUA_STATE["meshPath"][id + 1]; - ufCtr->addUnitFrame(UnitFrameController::UnitFrame(modelPath, id, (int)UnitType::LAND)); - + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); + ufCtr->addGameObjectFrame(GameObjectFrameController::GameObjectFrame(id, (int)UnitType::LAND)); ufCtr->setPlacingFrames(true); } } diff --git a/vehicle.cpp b/vehicle.cpp index 4bcaa33..1dc2f7f 100644 --- a/vehicle.cpp +++ b/vehicle.cpp @@ -60,7 +60,7 @@ namespace battleship{ break; } - placeUnit(pos + dir * speed); + placeAt(pos + dir * speed); } void Vehicle::initProperties(){ @@ -122,12 +122,12 @@ namespace battleship{ Ray::sortResults(res); if(!res.empty()){ - placeUnit(res[0].pos); + placeAt(res[0].pos); float angle = upVec.getAngleBetween(res[0].norm); Vector3 axis = upVec.cross(res[0].norm).norm(); Quaternion rotQuat = Quaternion(angle, axis); - orientUnit(rotQuat * rot); + orientAt(rotQuat * rot); } */ } From cf9ac6199e50e09d3873a5bb849a52d5b447bd13 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 7 Oct 2023 12:43:08 +0300 Subject: [PATCH 5/9] factored out GameObjectFrame refactored GameObject/Unit- Factory class --- CMakeLists.txt | 4 ++-- activeGameState.cpp | 2 +- addUnitCommand.cpp | 4 ++-- buildButton.cpp | 2 +- gameObjectFactory.cpp | 37 +++++++++++++++++++++++++++++++++++ gameObjectFactory.h | 23 ++++++++++++++++++++++ gameObjectFrame.cpp | 5 +++++ gameObjectFrame.h | 24 +++++++++++++++++++++++ gameObjectFrameController.cpp | 8 ++------ gameObjectFrameController.h | 16 +++------------ map.cpp | 4 ++-- mapEditorAppState.cpp | 2 +- unitFactory.cpp | 32 ------------------------------ unitFactory.h | 18 ----------------- unitListbox.cpp | 3 +-- 15 files changed, 104 insertions(+), 80 deletions(-) create mode 100644 gameObjectFactory.cpp create mode 100644 gameObjectFactory.h create mode 100644 gameObjectFrame.cpp create mode 100644 gameObjectFrame.h delete mode 100644 unitFactory.cpp delete mode 100644 unitFactory.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 701f2bf..a2f6e14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,8 +24,8 @@ set(CORE gameManager.cpp defConfigs.cpp ${CONSOLE} ${CONTROLLERS}) set(PROJECTILES projectile.cpp) set(FX explosion.cpp) set(VEHICLES vehicle.cpp engineer.cpp) -set(UNITS unitFactory.cpp unit.cpp structure.cpp ${VEHICLES}) -set(CONTENT player.cpp pathfinder.cpp map.cpp gameObject.cpp resourceDeposit.cpp ${UNITS} ${PROJECTILES} ${FX}) +set(UNITS gameObjectFactory.cpp unit.cpp structure.cpp ${VEHICLES}) +set(CONTENT player.cpp pathfinder.cpp map.cpp gameObject.cpp gameObjectFrame.h resourceDeposit.cpp ${UNITS} ${PROJECTILES} ${FX}) set(GAME_SRC ${STATES} ${GUI} ${CORE} ${CONTENT} ${UTIL}) set(SFML_DIR external/SFML) diff --git a/activeGameState.cpp b/activeGameState.cpp index c0943cf..1c0ad9e 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -291,7 +291,7 @@ namespace battleship{ GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); if(ufCtr->isPlacingFrames()){ - GameObjectFrameController::GameObjectFrame goFr= ufCtr->getGameObjectFrame(0); + GameObjectFrame goFr = ufCtr->getGameObjectFrame(0); unit = new Structure(mainPlayer, goFr.getId(), goFr.getModel()->getPosition(), goFr.getModel()->getOrientation()); mainPlayer->addUnit(unit); } diff --git a/addUnitCommand.cpp b/addUnitCommand.cpp index 7bc87c3..4095f51 100644 --- a/addUnitCommand.cpp +++ b/addUnitCommand.cpp @@ -6,7 +6,7 @@ #include "addUnitCommand.h" #include "inGameAppState.h" #include "player.h" -#include "unitFactory.h" +#include "gameObjectFactory.h" namespace battleship{ using namespace gameBase; @@ -48,7 +48,7 @@ namespace battleship{ void AddUnitCommand::addUnit(){ Player* player = Map::getSingleton()->getPlayer(playerId); - player->addUnit(UnitFactory::createUnit(player, unitId, pos, rot)); + player->addUnit(GameObjectFactory::createUnit(player, unitId, pos, rot)); } void AddUnitCommand::execute(){ diff --git a/buildButton.cpp b/buildButton.cpp index c0cf149..6be65e7 100644 --- a/buildButton.cpp +++ b/buildButton.cpp @@ -18,7 +18,7 @@ namespace battleship{ void BuildButton::onClick(){ GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); - ufCtr->addGameObjectFrame(GameObjectFrameController::GameObjectFrame(structureId, (int)UnitType::LAND)); + ufCtr->addGameObjectFrame(GameObjectFrame(structureId, GameObjectFrame::UNIT)); ufCtr->setPlacingFrames(true); } } diff --git a/gameObjectFactory.cpp b/gameObjectFactory.cpp new file mode 100644 index 0000000..36e3f6f --- /dev/null +++ b/gameObjectFactory.cpp @@ -0,0 +1,37 @@ +#include "gameObjectFactory.h" +#include "player.h" +#include "vehicle.h" +#include "engineer.h" +#include "projectile.h" +#include "resourceDeposit.h" +#include "defConfigs.h" + +#include + +#include + +namespace battleship{ + using namespace std; + using namespace vb01; + using namespace gameBase; + + Unit* GameObjectFactory::createUnit(Player *player, int id, Vector3 pos, Quaternion rot){ + sol::state_view SOL_LUA_STATE = generateView(); + int unitClass = SOL_LUA_STATE["unitClass"][id + 1]; + + switch((UnitClass)unitClass){ + case UnitClass::ENGINEER: + return new Engineer(player, id, pos, rot); + default: + return new Vehicle(player, id, pos, rot); + } + } + + Projectile* createProjectile(Unit*, int, vb01::Vector3, vb01::Quaternion){ + return nullptr; + } + + ResourceDeposit* createResourceDeposit(int, vb01::Vector3, vb01::Quaternion){ + return nullptr; + } +} diff --git a/gameObjectFactory.h b/gameObjectFactory.h new file mode 100644 index 0000000..e5183ee --- /dev/null +++ b/gameObjectFactory.h @@ -0,0 +1,23 @@ +#ifndef GAME_OBJECT_FACTORY_H +#define GAME_OBJECT_FACTORY_H + +#include +#include + +namespace battleship{ + class Unit; + class Projectile; + class ResourceDeposit; + class Player; + + class GameObjectFactory{ + public: + enum GameObjectType{UNIT, PROJECTILE, RESOURCE_DEPOSIT}; + static Unit* createUnit(Player*, int, vb01::Vector3, vb01::Quaternion); + static Projectile* createProjectile(Player*, Unit*, int, vb01::Vector3, vb01::Quaternion); + static ResourceDeposit* createResourceDeposit(int, vb01::Vector3, vb01::Quaternion); + private: + }; +} + +#endif diff --git a/gameObjectFrame.cpp b/gameObjectFrame.cpp new file mode 100644 index 0000000..4a9efa5 --- /dev/null +++ b/gameObjectFrame.cpp @@ -0,0 +1,5 @@ +#include "gameObjectFrame.h" + +namespace battleship{ + +} diff --git a/gameObjectFrame.h b/gameObjectFrame.h new file mode 100644 index 0000000..ba0f866 --- /dev/null +++ b/gameObjectFrame.h @@ -0,0 +1,24 @@ +#ifndef GAME_OBJECT_FRAME_H +#define GAME_OBJECT_FRAME_H + +#include "gameObject.h" + +#include +#include + +namespace battleship{ + struct GameObjectFrame : public GameObject{ + enum Status{PLACEABLE, NOT_PLACEABLE, PLACED}; + enum Type {UNIT, RESOURCE_DEPOSIT}; + + GameObjectFrame(int i, Type t, vb01::Vector3 pos = vb01::Vector3::VEC_ZERO, vb01::Quaternion rot = vb01::Quaternion::QUAT_W) : GameObject(i, nullptr, pos, rot), type(t) { + initModel(false); + } + ~GameObjectFrame(){} + + Type type; + Status status; + }; +} + +#endif diff --git a/gameObjectFrameController.cpp b/gameObjectFrameController.cpp index ffc3002..8100cf0 100644 --- a/gameObjectFrameController.cpp +++ b/gameObjectFrameController.cpp @@ -1,6 +1,6 @@ #include -#include "unitFrameController.h" +#include "gameObjectFrameController.h" #include "unit.h" #include "util.h" #include "map.h" @@ -21,10 +21,6 @@ namespace battleship{ static GameObjectFrameController *gameObjectFrameController = nullptr; - GameObjectFrameController::GameObjectFrame::GameObjectFrame(int i, int t, Vector3 pos, Quaternion rot) : GameObject(i, nullptr, pos, rot), type(t) { - initModel(false); - } - GameObjectFrameController* GameObjectFrameController::getSingleton(){ if(!gameObjectFrameController) gameObjectFrameController = new GameObjectFrameController(); @@ -49,7 +45,7 @@ namespace battleship{ buildDir = gameObjectFrames[1].getModel()->getPosition() - gameObjectFrames[0].getModel()->getPosition(); Vector3 pos = paintSelectRowStart + buildDir.norm() * hypothenuse * gameObjectFrames.size(); - addGameObjectFrame(GameObjectFrame(structureId, (int)UnitType::LAND, pos)); + addGameObjectFrame(GameObjectFrame(structureId, GameObjectFrame::UNIT, pos)); } } diff --git a/gameObjectFrameController.h b/gameObjectFrameController.h index ae1cad1..799d692 100644 --- a/gameObjectFrameController.h +++ b/gameObjectFrameController.h @@ -1,5 +1,5 @@ -#ifndef UNIT_FRAME_CONTROLLER_H -#define UNIT_FRAME_CONTROLLER_H +#ifndef GAME_OBJECT_FRAME_CONTROLLER_H +#define GAME_OBJECT_FRAME_CONTROLLER_H #include #include @@ -7,7 +7,7 @@ #include #include -#include "gameObject.h" +#include "gameObjectFrame.h" namespace vb01{ class Model; @@ -16,16 +16,6 @@ namespace vb01{ namespace battleship{ class GameObjectFrameController{ public: - struct GameObjectFrame : public GameObject{ - enum Status{PLACEABLE, NOT_PLACEABLE, PLACED}; - - GameObjectFrame(int, int, vb01::Vector3 = vb01::Vector3::VEC_ZERO, vb01::Quaternion = vb01::Quaternion::QUAT_W); - ~GameObjectFrame(){} - - int type; - Status status; - }; - static GameObjectFrameController* getSingleton(); void update(); void removeGameObjectFrame(int); diff --git a/map.cpp b/map.cpp index 7b30da2..8ed0c58 100755 --- a/map.cpp +++ b/map.cpp @@ -8,7 +8,7 @@ #include "map.h" #include "player.h" -#include "unitFactory.h" +#include "gameObjectFactory.h" #include "pathfinder.h" #include "gameManager.h" #include "defConfigs.h" @@ -149,7 +149,7 @@ namespace battleship{ int id = unitTable["id"]; - players[i]->addUnit(UnitFactory::createUnit(players[i], id, pos, rot)); + players[i]->addUnit(GameObjectFactory::createUnit(players[i], id, pos, rot)); } } } diff --git a/mapEditorAppState.cpp b/mapEditorAppState.cpp index cbb1aa7..a46e5fe 100644 --- a/mapEditorAppState.cpp +++ b/mapEditorAppState.cpp @@ -584,7 +584,7 @@ namespace battleship{ case Bind::LOOK_AROUND: if(ufCtr->isPlacingFrames()){ Player *player = Map::getSingleton()->getPlayer(0); - GameObjectFrameController::GameObjectFrame &frame = ufCtr->getGameObjectFrame(0); + GameObjectFrame &frame = ufCtr->getGameObjectFrame(0); player->addUnit(new Unit(player, frame.getId(), frame.getModel()->getPosition(), frame.getModel()->getOrientation())); } else diff --git a/unitFactory.cpp b/unitFactory.cpp deleted file mode 100644 index 57facaf..0000000 --- a/unitFactory.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "unitFactory.h" -#include "player.h" -#include "vehicle.h" -#include "engineer.h" -#include "defConfigs.h" - -#include - -#include - -namespace battleship{ - using namespace std; - using namespace vb01; - using namespace gameBase; - - Unit* UnitFactory::createUnit(Player *player, int id, Vector3 pos, Quaternion rot){ - sol::state_view SOL_LUA_STATE = generateView(); - int unitClass = SOL_LUA_STATE["unitClass"][id + 1]; - Unit *unit = nullptr; - - switch((UnitClass)unitClass){ - case UnitClass::ENGINEER: - unit = new Engineer(player, id, pos, rot); - break; - default: - unit = new Vehicle(player, id, pos, rot); - break; - } - - return unit; - } -} diff --git a/unitFactory.h b/unitFactory.h deleted file mode 100644 index 79b3524..0000000 --- a/unitFactory.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef UNIT_FACTORY_H -#define UNIT_FACTORY_H - -#include -#include - -namespace battleship{ - class Unit; - class Player; - - class UnitFactory{ - public: - static Unit* createUnit(Player*, int, vb01::Vector3, vb01::Quaternion); - private: - }; -} - -#endif diff --git a/unitListbox.cpp b/unitListbox.cpp index 80d31d2..cc3abcc 100644 --- a/unitListbox.cpp +++ b/unitListbox.cpp @@ -14,9 +14,8 @@ namespace battleship{ } void UnitListbox::onClose(){ - int id = selectedOption; GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); - ufCtr->addGameObjectFrame(GameObjectFrameController::GameObjectFrame(id, (int)UnitType::LAND)); + ufCtr->addGameObjectFrame(GameObjectFrame(selectedOption, GameObjectFrame::UNIT)); ufCtr->setPlacingFrames(true); } } From 3696158e785f18a5f017e914bad46ef116459d65 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 7 Oct 2023 16:36:37 +0300 Subject: [PATCH 6/9] refactored unit, projectile and resource deposit data scripts with coresponding namespaces --- Assets/Scripts/Gui/main.lua | 14 +- Assets/Scripts/Gui/mapEditor.lua | 17 +- Assets/Scripts/projectileData.lua | 484 +++++++++++++------------- Assets/Scripts/resourceData.lua | 13 + Assets/Scripts/unitData.lua | 550 +++++++++++++++--------------- CMakeLists.txt | 2 +- addUnitCommand.cpp | 2 +- buildButton.cpp | 4 +- concreteGuiManager.cpp | 35 +- concreteGuiManager.h | 5 +- defConfigs.h | 1 + gameObject.cpp | 13 +- gameObject.h | 6 +- gameObjectFactory.cpp | 2 +- gameObjectFrame.h | 4 +- gameObjectFrameController.cpp | 5 +- gameObjectListbox.cpp | 21 ++ gameObjectListbox.h | 16 + projectile.cpp | 8 +- unit.cpp | 6 +- unitListbox.cpp | 21 -- unitListbox.h | 15 - 22 files changed, 648 insertions(+), 596 deletions(-) create mode 100644 Assets/Scripts/resourceData.lua create mode 100644 gameObjectListbox.cpp create mode 100644 gameObjectListbox.h delete mode 100644 unitListbox.cpp delete mode 100644 unitListbox.h diff --git a/Assets/Scripts/Gui/main.lua b/Assets/Scripts/Gui/main.lua index 3436c20..4494797 100644 --- a/Assets/Scripts/Gui/main.lua +++ b/Assets/Scripts/Gui/main.lua @@ -30,10 +30,12 @@ ListboxType = { CONTROLS = 0, RESOLUTION = 1, MAPS = 2, - UNITS = 3, - SKYBOX_TEXTURES = 4, - LAND_TEXTURES = 5, - CPU_DIFFICULTIES = 6, - FACTIONS = 7, - CONSOLE = 8 + VEHICLES = 3, + STRUCTURES = 4, + RESOURCE_DEPOSITS = 5, + SKYBOX_TEXTURES = 6, + LAND_TEXTURES = 7, + CPU_DIFFICULTIES = 8, + FACTIONS = 9, + CONSOLE = 10 } diff --git a/Assets/Scripts/Gui/mapEditor.lua b/Assets/Scripts/Gui/mapEditor.lua index 07161aa..a462588 100644 --- a/Assets/Scripts/Gui/mapEditor.lua +++ b/Assets/Scripts/Gui/mapEditor.lua @@ -1,4 +1,4 @@ -numGui = 5 +numGui = 6 Size = {x = 140, y = 20} startX = 100 @@ -14,29 +14,34 @@ gui = { pos = {x = startX + Size.x + 10, y = 400}, size = Size, guiType = GuiType.LISTBOX, - listboxType = ListboxType.UNITS, - vehicles = true, + listboxType = ListboxType.VEHICLES, numMaxDisplay = 5 }, { pos = {x = startX + 2 * (Size.x + 10), y = 400}, size = Size, guiType = GuiType.LISTBOX, - listboxType = ListboxType.UNITS, - vehicles = false, + listboxType = ListboxType.STRUCTURES, numMaxDisplay = 5 }, { pos = {x = startX + 3 * (Size.x + 10), y = 400}, size = Size, guiType = GuiType.LISTBOX, - listboxType = ListboxType.SKYBOX_TEXTURES, + listboxType = ListboxType.RESOURCE_DEPOSITS, numMaxDisplay = 5 }, { pos = {x = startX + 4 * (Size.x + 10), y = 400}, size = Size, guiType = GuiType.LISTBOX, + listboxType = ListboxType.SKYBOX_TEXTURES, + numMaxDisplay = 5 + }, + { + pos = {x = startX + 5 * (Size.x + 10), y = 400}, + size = Size, + guiType = GuiType.LISTBOX, listboxType = ListboxType.LAND_TEXTURES, numMaxDisplay = 5 } diff --git a/Assets/Scripts/projectileData.lua b/Assets/Scripts/projectileData.lua index 26acd8e..0301ded 100644 --- a/Assets/Scripts/projectileData.lua +++ b/Assets/Scripts/projectileData.lua @@ -1,242 +1,244 @@ -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 = { - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {} +projectiles = { + 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/Assets/Scripts/resourceData.lua b/Assets/Scripts/resourceData.lua new file mode 100644 index 0000000..d32b225 --- /dev/null +++ b/Assets/Scripts/resourceData.lua @@ -0,0 +1,13 @@ +resources = { + num = 1, + + meshPath = { + "resource.xml" + }, + name = { + "Resource", + }, + basePath = { + PATH .. 'Models/Resources/' + } +} diff --git a/Assets/Scripts/unitData.lua b/Assets/Scripts/unitData.lua index eff811b..dd8e518 100644 --- a/Assets/Scripts/unitData.lua +++ b/Assets/Scripts/unitData.lua @@ -1,278 +1,280 @@ -numUnits = 4 +UnitClass = {VESSEL = 0, ENGINEER = 1, SAMPLE_STRUCTURE = 2} +UnitType = {UNDERWATER = 0, SEA_LEVEL = 1, HOVER = 2, LAND = 3, AIR = 4} -UnitClass = {VESSEL = 0, ENGINEER = 1, SAMPLE_STRUCTURE = 2}; - -UnitType = {UNDERWATER = 0, SEA_LEVEL = 1, HOVER = 2, LAND = 3, AIR = 4}; - -unitClass = { - UnitClass.VESSEL, UnitClass.VESSEL, - UnitClass.ENGINEER, UnitClass.SAMPLE_STRUCTURE -}; - -unitType = { - UnitType.HOVER, UnitType.SEA_LEVEL, - UnitType.LAND, UnitType.HOVER -} - -isVehicle = { - true, true, true, false -}; - -health = {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500} -cost = {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500} -range = {15, 15, 14, 14, 13, 13, 12, 12, 15, 25} - -unitCornerPoints = { - { - {x = .9, y = -1, z = -6}, - {x = -.9, y = -1, z = -6}, - {x = -.9, y = -1, z = 5.8}, - {x = .9, y = -1, z = 5.8}, - {x = .9, y = 3.5, z = -6}, - {x = -.9, y = 3.5, z = -6}, - {x = -.9, y = 3.5, z = 5.8}, - {x = .9, y = 3.5, z = 5.8} - }, - { - {x = .5, y = -.5, z = -7.05}, - {x = -.5, y = -.5, z = -7.05}, - {x = -.5, y = -.5, z = 6.4}, - {x = .5, y = -.5, z = 6.4}, - {x = .5, y = 3, z = -7.05}, - {x = -.5, y = 3, z = -7.05}, - {x = -.5, y = 3, z = 6.4}, - {x = .5, y = 3, z = 6.4} - }, - { - {x = .5, y = -.5, z = -3.4}, - {x = -.5, y = -.5, z = -3.4}, - {x = -.5, y = -.5, z = 3.4}, - {x = .5, y = -.4, z = 3.4}, - {x = .5, y = 2.1, z = -3.4}, - {x = -.5, y = 2, z = -3.4}, - {x = -.5, y = 2, z = 3.4}, - {x = .5, y = 2, z = 3.4} - }, - { - {x = 1, y = -.25, z = -1}, - {x = -1, y = -.25, z = -1}, - {x = -1, y = -.25, z = 1}, - {x = 1, y = -.25, z = 1}, - {x = 1, y = .8, z = -1}, - {x = -1, y = .8, z = -1}, - {x = -1, y = .8, z = 1}, - {x = 1, y = .8, z = 1} - }, - { - {x = .7, y = -.3, z = -4}, - {x = -.7, y = -.3, z = -4}, - {x = -.7, y = -.3, z = 3.4}, - {x = .7, y = -.3, z = 3.4}, - {x = .7, y = 2.9, z = -4}, - {x = -.7, y = 2.9, z = -4}, - {x = -.7, y = 2.9, z = 3.4}, - {x = .7, y = 2.9, z = 3.4} - }, - { - {x = .5, y = -.5, z = -6.1}, - {x = -.5, y = -.5, z = -6.1}, - {x = -.5, y = -.5, z = 5.2}, - {x = .5, y = -.5, z = 5.2}, - {x = .5, y = 2.2, z = -6.1}, - {x = -.5, y = 2.2, z = -6.1}, - {x = -.5, y = 2.2, z = 5.2}, - {x = .5, y = 2.2, z = 5.2} - }, - { - {x = 2, y = -.5, z = -10}, - {x = -2, y = -.5, z = -10}, - {x = -2, y = -.5, z = 9}, - {x = 2, y = -.5, z = 9}, - {x = 2, y = 5.5, z = -10}, - {x = -2, y = 5.5, z = -10}, - {x = -2, y = 5.5, z = 9}, - {x = 2, y = 5.5, z = 9} - }, - { - {x = 2, y = -1, z = -10}, - {x = -2, y = -1, z = -10}, - {x = -2, y = -1, z = 9}, - {x = 2, y = -1, z = 9}, - {x = 2, y = 4.5, z = -10}, - {x = -2, y = 4.5, z = -10}, - {x = -2, y = 4.5, z = 9}, - {x = 2, y = 4.5, z = 9} - }, - { - {x = .25, y = -.5, z = -2}, - {x = -.25, y = -.5, z = -2}, - {x = -.25, y = -.5, z = 3}, - {x = .25, y = -.5, z = 3}, - {x = .25, y = .7, z = -2}, - {x = -.25, y = .7, z = -2}, - {x = -.25, y = .7, z = 3}, - {x = .25, y = .7, z = 3} - }, - { - {x = .6, y =-.1, z =-1.3}, - {x = -.6, y =-.1, z =-1.3}, - {x = -.6, y =-.1, z =.8}, - {x = .6, y =-.1, z =.8}, - {x = .6, y =.3, z =-1.3}, - {x = -.6, y =.3, z =-1.3}, - {x = -.6, y =.3, z =.8}, - {x = .6, y =.3, z =.8} - }, - { - {x = .5, y =-.1, z =-1.3}, - {x = -.5, y =-.1, z =-1.3}, - {x = -.5, y =-.1, z =.7}, - {x = .5, y =-.1, z =.7}, - {x = .5, y =.15, z =-1.3}, - {x = -.5, y =.15, z =-1.3}, - {x = -.5, y =.15, z =.7}, - {x = .5, y =.15, z =.7} - } -}; -unitCuboidDimensions = { - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1}, - {x = 1, y = 1, z = 1} - }, - { - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1} - }, - { - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1} - }, - { - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1}, - {x = .1, y = .1, z = .1} - } -}; - -unitAxisLength = {8, 8, 6, 6, 5, 5, 8, 8, 7, 2, 2} -lineOfSight = {5, 8, 4, 4, 3, 3, 6, 6, 3, 3, 8} -name = { - "Battleship", "Battleship", - "Battleship", "Sample", - "Cruiser", "Cruiser", - "Aircraft carrier", "Aircraft carrier", - "Submarine", - "Jet", "Jet" -} -meshPath = { - "battleship00.xml", "battleship00.xml", - "battleship00.xml", "sample.xml", - "cruiser00.xml", "cruiser01.xml", - "aircraftCarrier00.xml", "aircraftCarrier01.xml", - "submarine.xml", - "jet00.xml", "jet01.xml" -} modelPrefix = "Models/" vehiclePrefix = modelPrefix .. "Units/Vehicles/" structurePrefix = modelPrefix .. "Units/Structures/" -basePath = { - PATH .. vehiclePrefix .. "Battleships/", PATH .. vehiclePrefix .. "Battleships/", - PATH .. vehiclePrefix .. "Battleships/", PATH .. structurePrefix .. "Sample/", - PATH .. vehiclePrefix .. "Cruisers/", PATH .. vehiclePrefix .. "Cruisers/", - PATH .. vehiclePrefix .. "Aircraft carriers/", PATH .. vehiclePrefix .. "Aircraft carriers/", - PATH .. vehiclePrefix .. "Submarines/", - PATH .. vehiclePrefix .. "Jets/", PATH .. vehiclePrefix .. "Jets/" -}; + +units = { + num = 4, + + unitClass = { + UnitClass.VESSEL, UnitClass.VESSEL, + UnitClass.ENGINEER, UnitClass.SAMPLE_STRUCTURE + }, + + unitType = { + UnitType.HOVER, UnitType.SEA_LEVEL, + UnitType.LAND, UnitType.HOVER + }, + + isVehicle = { + true, true, true, false + }, + + health = {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}, + cost = {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}, + range = {15, 15, 14, 14, 13, 13, 12, 12, 15, 25}, + + unitCornerPoints = { + { + {x = .9, y = -1, z = -6}, + {x = -.9, y = -1, z = -6}, + {x = -.9, y = -1, z = 5.8}, + {x = .9, y = -1, z = 5.8}, + {x = .9, y = 3.5, z = -6}, + {x = -.9, y = 3.5, z = -6}, + {x = -.9, y = 3.5, z = 5.8}, + {x = .9, y = 3.5, z = 5.8} + }, + { + {x = .5, y = -.5, z = -7.05}, + {x = -.5, y = -.5, z = -7.05}, + {x = -.5, y = -.5, z = 6.4}, + {x = .5, y = -.5, z = 6.4}, + {x = .5, y = 3, z = -7.05}, + {x = -.5, y = 3, z = -7.05}, + {x = -.5, y = 3, z = 6.4}, + {x = .5, y = 3, z = 6.4} + }, + { + {x = .5, y = -.5, z = -3.4}, + {x = -.5, y = -.5, z = -3.4}, + {x = -.5, y = -.5, z = 3.4}, + {x = .5, y = -.4, z = 3.4}, + {x = .5, y = 2.1, z = -3.4}, + {x = -.5, y = 2, z = -3.4}, + {x = -.5, y = 2, z = 3.4}, + {x = .5, y = 2, z = 3.4} + }, + { + {x = 1, y = -.25, z = -1}, + {x = -1, y = -.25, z = -1}, + {x = -1, y = -.25, z = 1}, + {x = 1, y = -.25, z = 1}, + {x = 1, y = .8, z = -1}, + {x = -1, y = .8, z = -1}, + {x = -1, y = .8, z = 1}, + {x = 1, y = .8, z = 1} + }, + { + {x = .7, y = -.3, z = -4}, + {x = -.7, y = -.3, z = -4}, + {x = -.7, y = -.3, z = 3.4}, + {x = .7, y = -.3, z = 3.4}, + {x = .7, y = 2.9, z = -4}, + {x = -.7, y = 2.9, z = -4}, + {x = -.7, y = 2.9, z = 3.4}, + {x = .7, y = 2.9, z = 3.4} + }, + { + {x = .5, y = -.5, z = -6.1}, + {x = -.5, y = -.5, z = -6.1}, + {x = -.5, y = -.5, z = 5.2}, + {x = .5, y = -.5, z = 5.2}, + {x = .5, y = 2.2, z = -6.1}, + {x = -.5, y = 2.2, z = -6.1}, + {x = -.5, y = 2.2, z = 5.2}, + {x = .5, y = 2.2, z = 5.2} + }, + { + {x = 2, y = -.5, z = -10}, + {x = -2, y = -.5, z = -10}, + {x = -2, y = -.5, z = 9}, + {x = 2, y = -.5, z = 9}, + {x = 2, y = 5.5, z = -10}, + {x = -2, y = 5.5, z = -10}, + {x = -2, y = 5.5, z = 9}, + {x = 2, y = 5.5, z = 9} + }, + { + {x = 2, y = -1, z = -10}, + {x = -2, y = -1, z = -10}, + {x = -2, y = -1, z = 9}, + {x = 2, y = -1, z = 9}, + {x = 2, y = 4.5, z = -10}, + {x = -2, y = 4.5, z = -10}, + {x = -2, y = 4.5, z = 9}, + {x = 2, y = 4.5, z = 9} + }, + { + {x = .25, y = -.5, z = -2}, + {x = -.25, y = -.5, z = -2}, + {x = -.25, y = -.5, z = 3}, + {x = .25, y = -.5, z = 3}, + {x = .25, y = .7, z = -2}, + {x = -.25, y = .7, z = -2}, + {x = -.25, y = .7, z = 3}, + {x = .25, y = .7, z = 3} + }, + { + {x = .6, y =-.1, z =-1.3}, + {x = -.6, y =-.1, z =-1.3}, + {x = -.6, y =-.1, z =.8}, + {x = .6, y =-.1, z =.8}, + {x = .6, y =.3, z =-1.3}, + {x = -.6, y =.3, z =-1.3}, + {x = -.6, y =.3, z =.8}, + {x = .6, y =.3, z =.8} + }, + { + {x = .5, y =-.1, z =-1.3}, + {x = -.5, y =-.1, z =-1.3}, + {x = -.5, y =-.1, z =.7}, + {x = .5, y =-.1, z =.7}, + {x = .5, y =.15, z =-1.3}, + {x = -.5, y =.15, z =-1.3}, + {x = -.5, y =.15, z =.7}, + {x = .5, y =.15, z =.7} + } + }, + unitCuboidDimensions = { + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, + {x = 1, y = 1, z = 1} + }, + { + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1} + }, + { + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1} + }, + { + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1}, + {x = .1, y = .1, z = .1} + } + }, + + unitAxisLength = {8, 8, 6, 6, 5, 5, 8, 8, 7, 2, 2}, + lineOfSight = {5, 8, 4, 4, 3, 3, 6, 6, 3, 3, 8}, + name = { + "Battleship", "Battleship", + "Battleship", "Sample", + "Cruiser", "Cruiser", + "Aircraft carrier", "Aircraft carrier", + "Submarine", + "Jet", "Jet" + }, + meshPath = { + "battleship00.xml", "battleship00.xml", + "battleship00.xml", "sample.xml", + "cruiser00.xml", "cruiser01.xml", + "aircraftCarrier00.xml", "aircraftCarrier01.xml", + "submarine.xml", + "jet00.xml", "jet01.xml" + }, + basePath = { + PATH .. vehiclePrefix .. "Battleships/", PATH .. vehiclePrefix .. "Battleships/", + PATH .. vehiclePrefix .. "Battleships/", PATH .. structurePrefix .. "Sample/", + PATH .. vehiclePrefix .. "Cruisers/", PATH .. vehiclePrefix .. "Cruisers/", + PATH .. vehiclePrefix .. "Aircraft carriers/", PATH .. vehiclePrefix .. "Aircraft carriers/", + PATH .. vehiclePrefix .. "Submarines/", + PATH .. vehiclePrefix .. "Jets/", PATH .. vehiclePrefix .. "Jets/" + } +} diff --git a/CMakeLists.txt b/CMakeLists.txt index a2f6e14..8c565ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ set(OPTIONS_BUTTONS optionsButton.cpp tabButton.cpp okButton.cpp defaultsButton. set(IN_GAME_APP_STATE_BUTTONS mainMenuButton.cpp) set(MAP_EDITOR_BUTTONS mapEditorButton.cpp newMapButton.cpp loadMapButton.cpp exportButton.cpp) set(BUTTONS singlePlayerButton.cpp exitButton.cpp backButton.cpp playButton.cpp ${OPTIONS_BUTTONS} ${IN_GAME_APP_STATE_BUTTONS} ${MAP_EDITOR_BUTTONS} ${UNIT_BUTTONS}) -set(LISTBOXES skyboxTextureListbox.cpp landTextureListbox.cpp unitListbox.cpp) +set(LISTBOXES skyboxTextureListbox.cpp landTextureListbox.cpp gameObjectListbox.cpp) set(GUI tooltip.cpp concreteGuiManager.cpp ${BUTTONS} ${LISTBOXES}) set(STATES activeGameState.cpp inGameAppState.cpp guiAppState.cpp mapEditorAppState.cpp) diff --git a/addUnitCommand.cpp b/addUnitCommand.cpp index 4095f51..f225ba8 100644 --- a/addUnitCommand.cpp +++ b/addUnitCommand.cpp @@ -23,7 +23,7 @@ namespace battleship{ unitId = atoi(arguments[1].c_str()); - if(!(0 <= unitId && unitId <= (int)generateView()["numUnits"])) + if(!(0 <= unitId && unitId <= (int)generateView()["units"]["num"])) return; if(arguments.size() >= 5){ diff --git a/buildButton.cpp b/buildButton.cpp index 6be65e7..e36c9ec 100644 --- a/buildButton.cpp +++ b/buildButton.cpp @@ -1,6 +1,6 @@ #include "buildButton.h" #include "gameManager.h" -#include "unit.h" +#include "gameObject.h" #include "gameObjectFrameController.h" #include @@ -18,7 +18,7 @@ namespace battleship{ void BuildButton::onClick(){ GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); - ufCtr->addGameObjectFrame(GameObjectFrame(structureId, GameObjectFrame::UNIT)); + ufCtr->addGameObjectFrame(GameObjectFrame(structureId, GameObject::Type::UNIT)); ufCtr->setPlacingFrames(true); } } diff --git a/concreteGuiManager.cpp b/concreteGuiManager.cpp index bec5f96..bddb542 100644 --- a/concreteGuiManager.cpp +++ b/concreteGuiManager.cpp @@ -15,7 +15,7 @@ #include "exportButton.h" #include "skyboxTextureListbox.h" #include "landTextureListbox.h" -#include "unitListbox.h" +#include "gameObjectListbox.h" #include "playButton.h" #include "inGameAppState.h" #include "mainMenuButton.h" @@ -166,6 +166,9 @@ namespace battleship{ return button; } + Listbox* ConcreteGuiManager::parseGameObjectListbox(){ + } + Listbox* ConcreteGuiManager::parseListbox(int guiId){ sol::state_view SOL_LUA_STATE = generateView(); sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1]; @@ -220,23 +223,31 @@ namespace battleship{ listbox = new Listbox(pos, size, lines, maxDisplay, fontPath, closable); break; - case UNITS:{ - string path = GameManager::getSingleton()->getPath(); - bool vehicles = guiTable["vehicles"]; - int numUnits = SOL_LUA_STATE["numUnits"]; + case VEHICLES: + case STRUCTURES: + case RESOURCE_DEPOSITS:{ + bool resources = (listboxType == RESOURCE_DEPOSITS); + sol::table gameObjTable = SOL_LUA_STATE[resources ? "resources" : "units"]; + int numGameObjs = gameObjTable["num"]; + + for(int i = 0; i < numGameObjs; i++){ + bool canAdd = true; - for(int i = 0; i < numUnits; i++){ - bool v = SOL_LUA_STATE["isVehicle"][i + 1]; + if(!resources){ + bool vehicles = (listboxType == VEHICLES); + bool v = gameObjTable["isVehicle"][i + 1]; + canAdd = (v == vehicles); + } - if(v == vehicles) - lines.push_back(SOL_LUA_STATE["name"][i + 1]); + if(canAdd) + lines.push_back(gameObjTable["name"][i + 1]); } - + numLines = lines.size(); closable = true; maxDisplay = (numLines > numMaxDisplay ? numMaxDisplay : numLines); - - listbox = new UnitListbox(pos, size, lines, maxDisplay, fontPath); + + listbox = new GameObjectListbox(!resources, pos, size, lines, maxDisplay, fontPath); break; } case SKYBOX_TEXTURES: diff --git a/concreteGuiManager.h b/concreteGuiManager.h index 606413f..b0339ee 100644 --- a/concreteGuiManager.h +++ b/concreteGuiManager.h @@ -38,7 +38,9 @@ namespace battleship{ CONTROLS, RESOLUTION, MAPS, - UNITS, + VEHICLES, + STRUCTURES, + RESOURCE_DEPOSITS, SKYBOX_TEXTURES, LAND_TEXTURES, CPU_DIFFICULTIES, @@ -60,6 +62,7 @@ namespace battleship{ private: ConcreteGuiManager(){} vb01Gui::Button* parseButton(int); + vb01Gui::Listbox* parseGameObjectListbox(); vb01Gui::Listbox* parseListbox(int); vb01Gui::Checkbox* parseCheckbox(int); vb01Gui::Slider* parseSlider(int); diff --git a/defConfigs.h b/defConfigs.h index c16ebdf..12fb1bd 100755 --- a/defConfigs.h +++ b/defConfigs.h @@ -39,6 +39,7 @@ namespace battleship{ "Scripts/unitData.lua", "Scripts/vehicleData.lua", "Scripts/structureData.lua", + "Scripts/resourceData.lua", "Scripts/player.lua" }; diff --git a/gameObject.cpp b/gameObject.cpp index 5506bd1..b31676f 100644 --- a/gameObject.cpp +++ b/gameObject.cpp @@ -36,7 +36,7 @@ namespace battleship{ } void GameObject::initModel(bool textured){ - sol::state_view SOL_LUA_STATE = generateView(); + sol::table SOL_LUA_STATE = generateView()[GameObject::getGameObjTableName()]; string basePath = SOL_LUA_STATE["basePath"][id + 1]; string meshPath = SOL_LUA_STATE["meshPath"][id + 1]; @@ -67,4 +67,15 @@ namespace battleship{ void GameObject::destroySound(){} void GameObject::initSound(){} + + string GameObject::getGameObjTableName(){ + switch(type){ + case GameObject::Type::UNIT: + return "units"; + case GameObject::Type::PROJECTILE: + return "projectiles"; + case GameObject::Type::RESOURCE_DEPOSIT: + return "resources"; + } + } } diff --git a/gameObject.h b/gameObject.h index cc3c21c..598921d 100644 --- a/gameObject.h +++ b/gameObject.h @@ -10,12 +10,15 @@ namespace battleship{ class GameObject{ public: - GameObject(int i, Player *pl, vb01::Vector3 vec, vb01::Quaternion quat) : id(i), player(pl), pos(vec), rot(quat){} + enum class Type{UNIT, PROJECTILE, RESOURCE_DEPOSIT}; + + GameObject(Type t, int i, Player *pl, vb01::Vector3 vec, vb01::Quaternion quat) : type(t), id(i), player(pl), pos(vec), rot(quat){} ~GameObject(){} virtual void update(); virtual void toggleSelection(bool sel){selected = sel;} void placeAt(vb01::Vector3); void orientAt(vb01::Quaternion); + std::string getGameObjTableName(); inline vb01::Vector3 getCorner(int i){return corners[i];} inline bool isSelected(){return selected;} inline bool isSelectable(){return selectable;} @@ -40,6 +43,7 @@ namespace battleship{ virtual void destroySound(); virtual void initSound(); + Type type; int id; Player *player; vb01::Model *model = nullptr; diff --git a/gameObjectFactory.cpp b/gameObjectFactory.cpp index 36e3f6f..74c2fb5 100644 --- a/gameObjectFactory.cpp +++ b/gameObjectFactory.cpp @@ -17,7 +17,7 @@ namespace battleship{ Unit* GameObjectFactory::createUnit(Player *player, int id, Vector3 pos, Quaternion rot){ sol::state_view SOL_LUA_STATE = generateView(); - int unitClass = SOL_LUA_STATE["unitClass"][id + 1]; + int unitClass = SOL_LUA_STATE["units"]["unitClass"][id + 1]; switch((UnitClass)unitClass){ case UnitClass::ENGINEER: diff --git a/gameObjectFrame.h b/gameObjectFrame.h index ba0f866..5140920 100644 --- a/gameObjectFrame.h +++ b/gameObjectFrame.h @@ -9,14 +9,12 @@ namespace battleship{ struct GameObjectFrame : public GameObject{ enum Status{PLACEABLE, NOT_PLACEABLE, PLACED}; - enum Type {UNIT, RESOURCE_DEPOSIT}; - GameObjectFrame(int i, Type t, vb01::Vector3 pos = vb01::Vector3::VEC_ZERO, vb01::Quaternion rot = vb01::Quaternion::QUAT_W) : GameObject(i, nullptr, pos, rot), type(t) { + GameObjectFrame(int i, GameObject::Type t, vb01::Vector3 pos = vb01::Vector3::VEC_ZERO, vb01::Quaternion rot = vb01::Quaternion::QUAT_W) : GameObject(t, i, nullptr, pos, rot) { initModel(false); } ~GameObjectFrame(){} - Type type; Status status; }; } diff --git a/gameObjectFrameController.cpp b/gameObjectFrameController.cpp index 8100cf0..90de7f0 100644 --- a/gameObjectFrameController.cpp +++ b/gameObjectFrameController.cpp @@ -45,7 +45,7 @@ namespace battleship{ buildDir = gameObjectFrames[1].getModel()->getPosition() - gameObjectFrames[0].getModel()->getPosition(); Vector3 pos = paintSelectRowStart + buildDir.norm() * hypothenuse * gameObjectFrames.size(); - addGameObjectFrame(GameObjectFrame(structureId, GameObjectFrame::UNIT, pos)); + addGameObjectFrame(GameObjectFrame(structureId, GameObject::Type::UNIT, pos)); } } @@ -100,8 +100,7 @@ namespace battleship{ if(results.empty()) return; Vector3 newPos, rowEnd; - sol::state_view SOL_LUA_STATE = generateView(); - sol::table unitTable = SOL_LUA_STATE["unitCornerPoints"][gameObjectFrames[0].getId() + 1]; + sol::table unitTable = generateView()[gameObjectFrames[0].getGameObjTableName()]["unitCornerPoints"][gameObjectFrames[0].getId() + 1]; float width = (float)unitTable[1]["x"] - (float)unitTable[2]["x"]; float length = (float)unitTable[4]["z"] - (float)unitTable[1]["z"]; diff --git a/gameObjectListbox.cpp b/gameObjectListbox.cpp new file mode 100644 index 0000000..7c9fca8 --- /dev/null +++ b/gameObjectListbox.cpp @@ -0,0 +1,21 @@ +#include + +#include "gameObject.h" +#include "gameObjectListbox.h" +#include "gameObjectFrameController.h" + +namespace battleship{ + using namespace std; + using namespace vb01; + using namespace vb01Gui; + using namespace gameBase; + + GameObjectListbox::GameObjectListbox(bool ul, Vector2 pos, Vector2 size, vector lines, int maxDisplay, string fontPath) : Listbox(pos, size, lines, maxDisplay, fontPath), unitListbox(ul) {} + + void GameObjectListbox::onClose(){ + GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); + GameObject::Type type = (unitListbox ? GameObject::Type::UNIT : GameObject::Type::RESOURCE_DEPOSIT); + ufCtr->addGameObjectFrame(GameObjectFrame(selectedOption, type)); + ufCtr->setPlacingFrames(true); + } +} diff --git a/gameObjectListbox.h b/gameObjectListbox.h new file mode 100644 index 0000000..0d7967f --- /dev/null +++ b/gameObjectListbox.h @@ -0,0 +1,16 @@ +#ifndef UNIT_LISTBOX_H +#define UNIT_LISTBOX_H + +#include + +namespace battleship{ + class GameObjectListbox : public vb01Gui::Listbox{ + public: + GameObjectListbox(bool, vb01::Vector2, vb01::Vector2, std::vector, int, std::string); + void onClose(); + private: + bool unitListbox; + }; +} + +#endif diff --git a/projectile.cpp b/projectile.cpp index 04d4e23..47b3ccf 100755 --- a/projectile.cpp +++ b/projectile.cpp @@ -23,7 +23,7 @@ namespace battleship{ 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) : GameObject(id, unit->getPlayer(), pos, Quaternion::QUAT_W){ + Projectile::Projectile(Unit *unit, Node *node, Vector3 pos, Vector3 dir, Vector3 left, Vector3 up, int id, int weaponTypeId, int weaponId) : GameObject(GameObject::Type::PROJECTILE, id, unit->getPlayer(), pos, Quaternion::QUAT_W){ this->unit = unit; this->id = id; this->weaponTypeId = weaponTypeId; @@ -43,7 +43,7 @@ namespace battleship{ } void Projectile::initProperties(int weaponId){ - sol::state_view SOL_LUA_STATE = generateView(); + sol::table SOL_LUA_STATE = generateView()[GameObject::getGameObjTableName()]; rayLength = SOL_LUA_STATE["rayLength"][id + 1][weaponTypeId + 1][weaponId + 1]; damage = SOL_LUA_STATE["damage"][id + 1][weaponTypeId + 1][weaponId + 1]; speed = SOL_LUA_STATE["speed"][id + 1][weaponTypeId + 1][weaponId + 1]; @@ -51,7 +51,7 @@ namespace battleship{ void Projectile::initModel(Node *node){ if(!node){ - sol::state_view SOL_LUA_STATE = generateView(); + sol::table SOL_LUA_STATE = generateView()[GameObject::getGameObjTableName()]; string meshPath = SOL_LUA_STATE["meshPath"][id + 1][weaponTypeId + 1]; this->node = new Model(meshPath); @@ -72,7 +72,7 @@ namespace battleship{ void Projectile::initSound(){ GameManager *gm = GameManager::getSingleton(); - sol::state_view SOL_LUA_STATE = generateView(); + sol::table SOL_LUA_STATE = generateView()[GameObject::getGameObjTableName()]; string unitName = SOL_LUA_STATE["name"][id + 1]; string projectileName = SOL_LUA_STATE["projectileName"][id + 1][weaponTypeId + 1]; string p1 = gm->getPath() + "Sounds/" + unitName + "s/" + projectileName + ".ogg"; diff --git a/unit.cpp b/unit.cpp index 0d9b959..18368ec 100755 --- a/unit.cpp +++ b/unit.cpp @@ -22,7 +22,7 @@ using namespace gameBase; using namespace std; namespace battleship{ - Unit::Unit(Player *player, int id, Vector3 pos, Quaternion rot) : GameObject(id, player, pos, rot){ + Unit::Unit(Player *player, int id, Vector3 pos, Quaternion rot) : GameObject(GameObject::Type::UNIT, id, player, pos, rot){ this->id = id; this->player = player; @@ -45,7 +45,7 @@ namespace battleship{ } void Unit::initProperties(){ - sol::state_view SOL_LUA_STATE = generateView(); + sol::table SOL_LUA_STATE = generateView()[GameObject::getGameObjTableName()]; health = SOL_LUA_STATE["health"][id + 1]; maxHealth = health; @@ -73,7 +73,7 @@ namespace battleship{ } void Unit::initSound(){ - sol::state_view SOL_LUA_STATE = generateView(); + sol::table SOL_LUA_STATE = generateView()[GameObject::getGameObjTableName()]; string name = SOL_LUA_STATE["name"][id + 1]; selectionSfxBuffer = new sf::SoundBuffer(); string p = GameManager::getSingleton()->getPath() + "Sounds/" + name + "s/selection.ogg"; diff --git a/unitListbox.cpp b/unitListbox.cpp deleted file mode 100644 index cc3abcc..0000000 --- a/unitListbox.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -#include "unitListbox.h" -#include "unit.h" -#include "gameObjectFrameController.h" - -namespace battleship{ - using namespace std; - using namespace vb01; - using namespace vb01Gui; - using namespace gameBase; - - UnitListbox::UnitListbox(Vector2 pos, Vector2 size, vector lines, int maxDisplay, string fontPath) : Listbox(pos, size, lines, maxDisplay, fontPath){ - } - - void UnitListbox::onClose(){ - GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton(); - ufCtr->addGameObjectFrame(GameObjectFrame(selectedOption, GameObjectFrame::UNIT)); - ufCtr->setPlacingFrames(true); - } -} diff --git a/unitListbox.h b/unitListbox.h deleted file mode 100644 index ab66a7f..0000000 --- a/unitListbox.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef UNIT_LISTBOX_H -#define UNIT_LISTBOX_H - -#include - -namespace battleship{ - class UnitListbox : public vb01Gui::Listbox{ - public: - UnitListbox(vb01::Vector2, vb01::Vector2, std::vector, int, std::string); - void onClose(); - private: - }; -} - -#endif From 9fcccb498da954155c5df6d43fe601a1144ed3ea Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 7 Oct 2023 17:29:27 +0300 Subject: [PATCH 7/9] placeable resource deposits in the map editor --- Assets/Scripts/resourceData.lua | 12 ++++++++++++ gameObject.h | 1 + gameObjectFactory.cpp | 6 +++--- gameObjectFactory.h | 2 +- mapEditorAppState.cpp | 15 +++++++++++++-- resourceDeposit.cpp | 14 ++++++++++++++ resourceDeposit.h | 15 +++++++++++++++ 7 files changed, 59 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/resourceData.lua b/Assets/Scripts/resourceData.lua index d32b225..c129964 100644 --- a/Assets/Scripts/resourceData.lua +++ b/Assets/Scripts/resourceData.lua @@ -9,5 +9,17 @@ resources = { }, basePath = { PATH .. 'Models/Resources/' + }, + unitCornerPoints = { + { + {x = .9, y = -1, z = -6}, + {x = -.9, y = -1, z = -6}, + {x = -.9, y = -1, z = 5.8}, + {x = .9, y = -1, z = 5.8}, + {x = .9, y = 3.5, z = -6}, + {x = -.9, y = 3.5, z = -6}, + {x = -.9, y = 3.5, z = 5.8}, + {x = .9, y = 3.5, z = 5.8} + } } } diff --git a/gameObject.h b/gameObject.h index 598921d..668baa1 100644 --- a/gameObject.h +++ b/gameObject.h @@ -35,6 +35,7 @@ namespace battleship{ inline vb01::Vector3 getLeftVec() {return leftVec;} inline vb01::Vector3 getUpVec() {return upVec;} inline int getId() {return id;} + inline Type getType(){return type;} private: protected: virtual void initProperties(); diff --git a/gameObjectFactory.cpp b/gameObjectFactory.cpp index 74c2fb5..ccbf7a2 100644 --- a/gameObjectFactory.cpp +++ b/gameObjectFactory.cpp @@ -27,11 +27,11 @@ namespace battleship{ } } - Projectile* createProjectile(Unit*, int, vb01::Vector3, vb01::Quaternion){ + Projectile* GameObjectFactory::createProjectile(Unit *unti, int id, Vector3 pos, Quaternion rot){ return nullptr; } - ResourceDeposit* createResourceDeposit(int, vb01::Vector3, vb01::Quaternion){ - return nullptr; + ResourceDeposit* GameObjectFactory::createResourceDeposit(int id, Vector3 pos, Quaternion rot){ + return new ResourceDeposit(id, pos, rot); } } diff --git a/gameObjectFactory.h b/gameObjectFactory.h index e5183ee..d4ba61a 100644 --- a/gameObjectFactory.h +++ b/gameObjectFactory.h @@ -14,7 +14,7 @@ namespace battleship{ public: enum GameObjectType{UNIT, PROJECTILE, RESOURCE_DEPOSIT}; static Unit* createUnit(Player*, int, vb01::Vector3, vb01::Quaternion); - static Projectile* createProjectile(Player*, Unit*, int, vb01::Vector3, vb01::Quaternion); + static Projectile* createProjectile(Unit*, int, vb01::Vector3, vb01::Quaternion); static ResourceDeposit* createResourceDeposit(int, vb01::Vector3, vb01::Quaternion); private: }; diff --git a/mapEditorAppState.cpp b/mapEditorAppState.cpp index a46e5fe..b1712a1 100644 --- a/mapEditorAppState.cpp +++ b/mapEditorAppState.cpp @@ -2,6 +2,7 @@ #include "gameManager.h" #include "defConfigs.h" #include "cameraController.h" +#include "gameObjectFactory.h" #include "gameObjectFrameController.h" #include "player.h" #include "map.h" @@ -56,6 +57,7 @@ namespace battleship{ AssetManager *assetManager = AssetManager::getSingleton(); assetManager->load(basePath + "Models/Units/", true); + assetManager->load(basePath + "Models/Resources/", true); assetManager->load(basePath + DEFAULT_TEXTURE); } @@ -583,9 +585,18 @@ namespace battleship{ switch((Bind)bind){ case Bind::LOOK_AROUND: if(ufCtr->isPlacingFrames()){ - Player *player = Map::getSingleton()->getPlayer(0); + Map *map = Map::getSingleton(); + Player *player = map->getPlayer(0); GameObjectFrame &frame = ufCtr->getGameObjectFrame(0); - player->addUnit(new Unit(player, frame.getId(), frame.getModel()->getPosition(), frame.getModel()->getOrientation())); + Model *model = frame.getModel(); + Vector3 pos = model->getPosition(); + Quaternion rot = model->getOrientation(); + + if(frame.getType() == GameObject::Type::RESOURCE_DEPOSIT){ + ResourceDeposit *dep = GameObjectFactory::createResourceDeposit(frame.getId(), pos, rot); + } + else + player->addUnit(GameObjectFactory::createUnit(player, frame.getId(), pos, rot)); } else CameraController::getSingleton()->setLookingAround(isPressed); diff --git a/resourceDeposit.cpp b/resourceDeposit.cpp index e69de29..563e6af 100644 --- a/resourceDeposit.cpp +++ b/resourceDeposit.cpp @@ -0,0 +1,14 @@ +#include "resourceDeposit.h" + +namespace battleship{ + using namespace vb01; + + ResourceDeposit::ResourceDeposit(int id, Vector3 pos, Quaternion rot) : GameObject(GameObject::Type::RESOURCE_DEPOSIT, id, nullptr, pos, rot){ + initModel(); + placeAt(pos); + orientAt(rot); + } + + void ResourceDeposit::update(){ + } +} diff --git a/resourceDeposit.h b/resourceDeposit.h index e69de29..5881834 100644 --- a/resourceDeposit.h +++ b/resourceDeposit.h @@ -0,0 +1,15 @@ +#ifndef RESOURCE_DEPOSIT_H +#define RESOURCE_DEPOSIT_H + +#include "gameObject.h" + +namespace battleship{ + class ResourceDeposit : public GameObject{ + public: + ResourceDeposit(int, vb01::Vector3, vb01::Quaternion); + void update(); + private: + }; +} + +#endif From b58d31465928c463c346f0802378cc7636aac098 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 7 Oct 2023 18:41:07 +0300 Subject: [PATCH 8/9] saving and loading resource deposits --- map.cpp | 18 ++++++++++++++++++ map.h | 4 ++++ mapEditorAppState.cpp | 23 ++++++++++++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/map.cpp b/map.cpp index 8ed0c58..1f591c7 100755 --- a/map.cpp +++ b/map.cpp @@ -8,6 +8,7 @@ #include "map.h" #include "player.h" +#include "gameObject.h" #include "gameObjectFactory.h" #include "pathfinder.h" #include "gameManager.h" @@ -133,6 +134,23 @@ namespace battleship{ string playerInd = "players"; for(int i = 0; i < numPlayers; i++){ + if(i == 0){ + int numNpcObjs = SOL_LUA_STATE[mapTable][playerInd][i + 1]["numNpcGameObjs"]; + + for(int j = 0; j < numNpcObjs; j++){ + sol::table npcObjTable = SOL_LUA_STATE[mapTable][playerInd][i + 1]["npcGameObjs"][j + 1]; + int id = npcObjTable["id"]; + + sol::table posTable = npcObjTable["pos"]; + Vector3 pos = Vector3(posTable["x"], posTable["y"], posTable["z"]); + + sol::table rotTable = npcObjTable["rot"]; + Quaternion rot = Quaternion(rotTable["w"], rotTable["x"], rotTable["y"], rotTable["z"]); + + addNpcGameObject((GameObject*)GameObjectFactory::createResourceDeposit(id, pos, rot)); + } + } + //int spawnPointId = SOL_LUA_STATE[mapTable]["spawnPointInd"][i + 1][spawnPointId]; int numUnits = SOL_LUA_STATE[mapTable][playerInd][i + 1]["numUnits"]; diff --git a/map.h b/map.h index f83bc2e..dd91ca5 100755 --- a/map.h +++ b/map.h @@ -16,6 +16,7 @@ namespace vb01{ namespace battleship{ class Player; + class GameObject; struct Cell; class Map { @@ -58,6 +59,8 @@ namespace battleship{ inline vb01::Vector3 getSpawnPoint(int i){return spawnPoints[i];} inline void addSpawnPoint(vb01::Vector3 sp){spawnPoints.push_back(sp);} inline std::vector& getCells(){return cells;} + inline void addNpcGameObject(GameObject *obj){npcGameObjects.push_back(obj);} + inline std::vector getNpcGameObjects(){return npcGameObjects;} private: std::string mapTable = "map"; vb01::Node *terrainNode = nullptr, *cellNode = nullptr; @@ -67,6 +70,7 @@ namespace battleship{ std::vector spawnPoints; std::vector players; std::vector cells; + std::vector npcGameObjects; Map(){} void preprareScene(); diff --git a/mapEditorAppState.cpp b/mapEditorAppState.cpp index b1712a1..c74ec88 100644 --- a/mapEditorAppState.cpp +++ b/mapEditorAppState.cpp @@ -415,7 +415,27 @@ namespace battleship{ mapScript += "},\nplayers = {\n"; for(int i = 0; i < map->getNumPlayers(); i++){ - mapScript += "{\nspawnPoint = 0,\n"; + mapScript += "{\n"; + + if(i > 0) + mapScript += "spawnPoint = 0,\n"; + else{ + vector npcGameObjs = map->getNpcGameObjects(); + mapScript += "numNpcGameObjs = " + to_string(npcGameObjs.size()) + ",\n"; + mapScript += "npcGameObjs = {\n"; + + for(GameObject *npcGameObj : npcGameObjs){ + Vector3 pos = npcGameObj->getPos(); + string posStr = "x = " + to_string(pos.x) + ", y = " + to_string(pos.y) + ", z = " + to_string(pos.z); + + Quaternion rot = npcGameObj->getRot(); + string rotStr = "w = " + to_string(rot.w) + ", x = " + to_string(rot.x) + ", y = " + to_string(rot.y) + ", z = " + to_string(rot.z); + + mapScript += "{id = " + to_string(npcGameObj->getId()) + ", pos = {" + posStr + "}, rot = {" + rotStr + "}},\n"; + } + + mapScript += "},\n"; + } int numUnits = map->getPlayer(i)->getNumberOfUnits(); mapScript += "numUnits = " + to_string(numUnits) + ",\n"; @@ -594,6 +614,7 @@ namespace battleship{ if(frame.getType() == GameObject::Type::RESOURCE_DEPOSIT){ ResourceDeposit *dep = GameObjectFactory::createResourceDeposit(frame.getId(), pos, rot); + map->addNpcGameObject((GameObject*)dep); } else player->addUnit(GameObjectFactory::createUnit(player, frame.getId(), pos, rot)); From e8432da24e722b33ebf008a53a84f2632b91279b Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sun, 8 Oct 2023 11:51:31 +0300 Subject: [PATCH 9/9] added missing files --- Assets/Models/Resources/resource.blend | Bin 0 -> 944752 bytes Assets/Models/Resources/resource.blend1 | Bin 0 -> 937756 bytes Assets/Models/Resources/resource.xml | 1800 +++++++++++++++++++++++ 3 files changed, 1800 insertions(+) create mode 100644 Assets/Models/Resources/resource.blend create mode 100644 Assets/Models/Resources/resource.blend1 create mode 100644 Assets/Models/Resources/resource.xml diff --git a/Assets/Models/Resources/resource.blend b/Assets/Models/Resources/resource.blend new file mode 100644 index 0000000000000000000000000000000000000000..6f570fd9577bd24fd39db3046bb1aabb9ab1c938 GIT binary patch literal 944752 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

xg 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 literal 0 HcmV?d00001 diff --git a/Assets/Models/Resources/resource.blend1 b/Assets/Models/Resources/resource.blend1 new file mode 100644 index 0000000000000000000000000000000000000000..c3a413a2df2b648b2ac97eefafb569d62cb36559 GIT binary patch literal 937756 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file