diff --git a/Assets/Scripts/Gui/engineerCommands.lua b/Assets/Scripts/Gui/engineerCommands.lua index f7c8afd..311817a 100644 --- a/Assets/Scripts/Gui/engineerCommands.lua +++ b/Assets/Scripts/Gui/engineerCommands.lua @@ -10,7 +10,7 @@ gui = { imagePath = '', guiType = GuiType.BUTTON, buttonType = ButtonType.BUILD, - trigger = 75, + trigger = 76, structureId = 8 }, { @@ -30,7 +30,7 @@ gui = { imagePath = '', guiType = GuiType.BUTTON, buttonType = ButtonType.BUILD, - trigger = 75, + trigger = 77, structureId = 10 }, { @@ -50,7 +50,7 @@ gui = { imagePath = '', guiType = GuiType.BUTTON, buttonType = ButtonType.BUILD, - trigger = 80, + trigger = 68, structureId = 12 } } diff --git a/activeGameState.cpp b/activeGameState.cpp index 95e95a8..51301cb 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -199,12 +199,14 @@ namespace battleship{ Vector3 dragboxOrigin = dragboxNode->getPosition(), dragboxEnd = dragboxOrigin + dragboxSize; Vector2 pos = u->getScreenPos(); - if(!mainPlayer->getSelectedUnitsByClass(UnitClass::ENGINEER).empty()) - guiManager->readLuaScreenScript("engineerCommands.lua"); - else if(!mainPlayer->getSelectedUnitsByClass(UnitClass::LAND_FACTORY).empty()) - guiManager->readLuaScreenScript("landFactoryCommands.lua"); - else if(!mainPlayer->getSelectedUnitsByClass(UnitClass::NAVAL_FACTORY).empty()) - guiManager->readLuaScreenScript("navalFactoryCommands.lua"); + if(buttons.empty()){ + if(!mainPlayer->getSelectedUnitsByClass(UnitClass::ENGINEER).empty()) + guiManager->readLuaScreenScript("engineerCommands.lua"); + else if(!mainPlayer->getSelectedUnitsByClass(UnitClass::LAND_FACTORY).empty()) + guiManager->readLuaScreenScript("landFactoryCommands.lua"); + else if(!mainPlayer->getSelectedUnitsByClass(UnitClass::NAVAL_FACTORY).empty()) + guiManager->readLuaScreenScript("navalFactoryCommands.lua"); + } if(isSelectionBox && fabs(pos.x - dragboxOrigin.x) < .5 * dragboxSize.x && fabs(pos.y - dragboxOrigin.y) < .5 * dragboxSize.y){ if(!u->isSelected()){ diff --git a/gameObjectFrame.cpp b/gameObjectFrame.cpp index 4a9efa5..72f13a1 100644 --- a/gameObjectFrame.cpp +++ b/gameObjectFrame.cpp @@ -1,5 +1,4 @@ #include "gameObjectFrame.h" namespace battleship{ - } diff --git a/gameObjectFrame.h b/gameObjectFrame.h index 8c17d03..f9b5924 100644 --- a/gameObjectFrame.h +++ b/gameObjectFrame.h @@ -14,7 +14,7 @@ namespace battleship{ initModel(false); } ~GameObjectFrame(){} - void update(){GameObject::update();} + void destroy(){destroyModel();} Status status; }; diff --git a/gameObjectFrameController.cpp b/gameObjectFrameController.cpp index 2ca0fab..9862e76 100644 --- a/gameObjectFrameController.cpp +++ b/gameObjectFrameController.cpp @@ -52,10 +52,9 @@ namespace battleship{ //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); + s.placeAt(newPos); Map *map = Map::getSingleton(); MeshData meshData = map->getNodeParent()->getChild(0)->getMesh(0)->getMeshBase(); @@ -65,9 +64,9 @@ namespace battleship{ 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); + float diffX = fabs(s.getPos().x - verts[i].pos.x); + float diffY = fabs(s.getPos().y - verts[i].pos.y); + float diffZ = fabs(s.getPos().z - verts[i].pos.z); if(diffX < 0.5 * width && diffZ < 0.5 * length && diffY > unevenness){ unevenness = diffY; @@ -88,7 +87,7 @@ namespace battleship{ s.status = GameObjectFrame::PLACEABLE; } - Material *mat = model->getMaterial(); + Material *mat = s.getModel()->getMaterial(); mat->setVec4Uniform("diffuseColor", color); } @@ -123,9 +122,7 @@ namespace battleship{ } void GameObjectFrameController::removeGameObjectFrame(int i){ - Model *model = gameObjectFrames[i].getModel(); - model->getParent()->dettachChild(model); - delete model; + gameObjectFrames[i].destroy(); gameObjectFrames.erase(gameObjectFrames.begin() + i); } @@ -136,10 +133,7 @@ namespace battleship{ 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); - } + if(s.status != GameObjectFrame::PLACED) + s.orientAt(Quaternion(angle, Vector3::VEC_J) * s.getRot()); } }