summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-06-08 04:23:06 (GMT)
committer jacob1 <jfu614@gmail.com>2013-06-08 04:23:06 (GMT)
commita1f9da2d0cedd4733102f1c1831cab5b51955ac2 (patch)
treeef63821023901cb401b7f97fe0a54872c4d5275d /src
parent69961956bfae1529e6c451c57804b0d2aa93f422 (diff)
downloadpowder-a1f9da2d0cedd4733102f1c1831cab5b51955ac2.zip
powder-a1f9da2d0cedd4733102f1c1831cab5b51955ac2.tar.gz
fix tpt.selectedl not changing sometimes when using the element search or sample tool. Assume that new saves will get the auto-vote, so set that too.
Diffstat (limited to 'src')
-rw-r--r--src/gui/elementsearch/ElementSearchActivity.cpp16
-rw-r--r--src/gui/elementsearch/ElementSearchActivity.h6
-rw-r--r--src/gui/game/GameController.cpp14
-rw-r--r--src/gui/game/GameController.h1
-rw-r--r--src/gui/game/GameView.cpp7
5 files changed, 24 insertions, 20 deletions
diff --git a/src/gui/elementsearch/ElementSearchActivity.cpp b/src/gui/elementsearch/ElementSearchActivity.cpp
index 624f0ff..2a277db 100644
--- a/src/gui/elementsearch/ElementSearchActivity.cpp
+++ b/src/gui/elementsearch/ElementSearchActivity.cpp
@@ -5,7 +5,7 @@
#include "gui/interface/Keys.h"
#include "gui/game/Tool.h"
#include "gui/Style.h"
-#include "gui/game/GameModel.h"
+#include "gui/game/GameController.h"
class ElementSearchActivity::ToolAction: public ui::ButtonAction
{
@@ -21,9 +21,9 @@ public:
}
};
-ElementSearchActivity::ElementSearchActivity(GameModel * gameModel, std::vector<Tool*> tools) :
+ElementSearchActivity::ElementSearchActivity(GameController * gameController, std::vector<Tool*> tools) :
WindowActivity(ui::Point(-1, -1), ui::Point(236, 302)),
- gameModel(gameModel),
+ gameController(gameController),
tools(tools),
firstResult(NULL)
{
@@ -121,15 +121,15 @@ void ElementSearchActivity::searchTools(std::string query)
tempButton->Appearance.BackgroundInactive = ui::Colour(tool->colRed, tool->colGreen, tool->colBlue);
tempButton->SetActionCallback(new ToolAction(this, tool));
- if(gameModel->GetActiveTool(0) == tool)
+ if(gameController->GetActiveTool(0) == tool)
{
tempButton->SetSelectionState(0); //Primary
}
- else if(gameModel->GetActiveTool(1) == tool)
+ else if(gameController->GetActiveTool(1) == tool)
{
tempButton->SetSelectionState(1); //Secondary
}
- else if(gameModel->GetActiveTool(2) == tool)
+ else if(gameController->GetActiveTool(2) == tool)
{
tempButton->SetSelectionState(2); //Tertiary
}
@@ -152,7 +152,7 @@ void ElementSearchActivity::searchTools(std::string query)
void ElementSearchActivity::SetActiveTool(int selectionState, Tool * tool)
{
- gameModel->SetActiveTool(selectionState, tool);
+ gameController->SetActiveTool(selectionState, tool);
Exit();
}
@@ -170,7 +170,7 @@ void ElementSearchActivity::OnKeyPress(int key, Uint16 character, bool shift, bo
if(key == KEY_ENTER || key == KEY_RETURN)
{
if(firstResult)
- gameModel->SetActiveTool(0, firstResult);
+ gameController->SetActiveTool(0, firstResult);
Exit();
}
if(key == KEY_ESCAPE)
diff --git a/src/gui/elementsearch/ElementSearchActivity.h b/src/gui/elementsearch/ElementSearchActivity.h
index dec37e5..74bb898 100644
--- a/src/gui/elementsearch/ElementSearchActivity.h
+++ b/src/gui/elementsearch/ElementSearchActivity.h
@@ -10,11 +10,11 @@
class Tool;
-class GameModel;
+class GameController;
class ElementSearchActivity: public WindowActivity {
Tool * firstResult;
- GameModel * gameModel;
+ GameController * gameController;
std::vector<Tool*> tools;
ui::Textbox * searchField;
std::vector<ToolButton*> toolButtons;
@@ -22,7 +22,7 @@ class ElementSearchActivity: public WindowActivity {
public:
class ToolAction;
Tool * GetFirstResult() { return firstResult; }
- ElementSearchActivity(GameModel * gameModel, std::vector<Tool*> tools);
+ ElementSearchActivity(GameController * gameController, std::vector<Tool*> tools);
void SetActiveTool(int selectionState, Tool * tool);
virtual ~ElementSearchActivity();
virtual void OnDraw();
diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp
index 6ae9ae2..b873360 100644
--- a/src/gui/game/GameController.cpp
+++ b/src/gui/game/GameController.cpp
@@ -965,12 +965,7 @@ void GameController::SetActiveMenu(int menuID)
if(menuID == SC_DECO)
gameModel->SetColourSelectorVisibility(true);
else
- {
gameModel->SetColourSelectorVisibility(false);
- ActiveToolChanged(0, gameModel->GetActiveTool(0));
- ActiveToolChanged(1, gameModel->GetActiveTool(1));
- ActiveToolChanged(2, gameModel->GetActiveTool(2));
- }
}
std::vector<Menu*> GameController::GetMenuList()
@@ -983,6 +978,11 @@ void GameController::ActiveToolChanged(int toolSelection, Tool *tool)
commandInterface->OnActiveToolChanged(toolSelection, tool);
}
+Tool * GameController::GetActiveTool(int selection)
+{
+ return gameModel->GetActiveTool(selection);
+}
+
void GameController::SetActiveTool(int toolSelection, Tool * tool)
{
gameModel->SetActiveTool(toolSelection, tool);
@@ -1126,7 +1126,7 @@ void GameController::OpenElementSearch()
}
vector<Tool*> hiddenTools = gameModel->GetUnlistedTools();
toolList.insert(toolList.end(), hiddenTools.begin(), hiddenTools.end());
- new ElementSearchActivity(gameModel, toolList);
+ new ElementSearchActivity(this, toolList);
}
void GameController::OpenColourPicker()
@@ -1210,6 +1210,8 @@ void GameController::OpenSaveWindow()
virtual ~SaveUploadedCallback() {};
virtual void SaveUploaded(SaveInfo save)
{
+ save.SetVote(1);
+ save.SetVotesUp(1);
c->LoadSave(&save);
}
};
diff --git a/src/gui/game/GameController.h b/src/gui/game/GameController.h
index 32755df..09a3713 100644
--- a/src/gui/game/GameController.h
+++ b/src/gui/game/GameController.h
@@ -100,6 +100,7 @@ public:
bool GetDebugHUD();
void SetActiveMenu(int menuID);
std::vector<Menu*> GetMenuList();
+ Tool * GetActiveTool(int selection);
void SetActiveTool(int toolSelection, Tool * tool);
void ActiveToolChanged(int toolSelection, Tool *tool);
void SetActiveColourPreset(int preset);
diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp
index 08387e7..735728f 100644
--- a/src/gui/game/GameView.cpp
+++ b/src/gui/game/GameView.cpp
@@ -617,7 +617,6 @@ void GameView::NotifyActiveToolsChanged(GameModel * sender)
if(sender->GetActiveTool(0) == tool)
{
toolButtons[i]->SetSelectionState(0); //Primary
- c->ActiveToolChanged(0, tool);
if (tool->GetIdentifier().find("DEFAULT_UI_WIND") != tool->GetIdentifier().npos)
windTool = true;
else
@@ -626,18 +625,20 @@ void GameView::NotifyActiveToolsChanged(GameModel * sender)
else if(sender->GetActiveTool(1) == tool)
{
toolButtons[i]->SetSelectionState(1); //Secondary
- c->ActiveToolChanged(1, tool);
}
else if(sender->GetActiveTool(2) == tool)
{
toolButtons[i]->SetSelectionState(2); //Tertiary
- c->ActiveToolChanged(2, tool);
}
else
{
toolButtons[i]->SetSelectionState(-1);
}
}
+ //need to do this for all tools every time just in case it wasn't caught if you weren't in the menu a tool was changed to
+ c->ActiveToolChanged(0, sender->GetActiveTool(0));
+ c->ActiveToolChanged(1, sender->GetActiveTool(1));
+ c->ActiveToolChanged(2, sender->GetActiveTool(2));
}
void GameView::NotifyLastToolChanged(GameModel * sender)