summaryrefslogtreecommitdiff
path: root/src/gui/game/GameView.cpp
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-07-18 19:40:32 (GMT)
committer jacob1 <jfu614@gmail.com>2013-07-18 19:40:32 (GMT)
commitf56a2f60008adb1328f841aa67cc27beb0a3d271 (patch)
tree38f7239b1b22f1d60173095d41216226a412a4e7 /src/gui/game/GameView.cpp
parentcc887995c0881d728e13fbdfe0757e0fa256bce0 (diff)
downloadpowder-f56a2f60008adb1328f841aa67cc27beb0a3d271.zip
powder-f56a2f60008adb1328f841aa67cc27beb0a3d271.tar.gz
add back replace mode and specific delete. Activated with insert key / delete key, use ctrl+alt click to select what to use for the checks
Diffstat (limited to 'src/gui/game/GameView.cpp')
-rw-r--r--src/gui/game/GameView.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp
index 5bbcb3a..3f47c98 100644
--- a/src/gui/game/GameView.cpp
+++ b/src/gui/game/GameView.cpp
@@ -518,7 +518,9 @@ public:
void ActionCallback(ui::Button * sender_)
{
ToolButton *sender = (ToolButton*)sender_;
- if(sender->GetSelectionState() >= 0 && sender->GetSelectionState() <= 2)
+ if (v->CtrlBehaviour() && v->AltBehaviour() && !v->ShiftBehaviour())
+ sender->SetSelectionState(3);
+ if(sender->GetSelectionState() >= 0 && sender->GetSelectionState() <= 3)
v->c->SetActiveTool(sender->GetSelectionState(), tool);
}
};
@@ -631,6 +633,10 @@ void GameView::NotifyActiveToolsChanged(GameModel * sender)
{
toolButtons[i]->SetSelectionState(2); //Tertiary
}
+ else if(sender->GetActiveTool(3) == tool)
+ {
+ toolButtons[i]->SetSelectionState(3); //Replace Mode
+ }
else
{
toolButtons[i]->SetSelectionState(-1);
@@ -640,6 +646,7 @@ void GameView::NotifyActiveToolsChanged(GameModel * sender)
c->ActiveToolChanged(0, sender->GetActiveTool(0));
c->ActiveToolChanged(1, sender->GetActiveTool(1));
c->ActiveToolChanged(2, sender->GetActiveTool(2));
+ c->ActiveToolChanged(3, sender->GetActiveTool(3));
}
void GameView::NotifyLastToolChanged(GameModel * sender)
@@ -713,6 +720,10 @@ void GameView::NotifyToolListChanged(GameModel * sender)
{
tempButton->SetSelectionState(2); //Tertiary
}
+ else if(sender->GetActiveTool(3) == toolList[i])
+ {
+ tempButton->SetSelectionState(3); //Replace mode
+ }
tempButton->Appearance.HorizontalAlign = ui::Appearance::AlignCentre;
tempButton->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
@@ -1461,6 +1472,11 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
break;
}
+ if (key == SDLK_INSERT)
+ c->SetReplaceModeFlags(c->GetReplaceModeFlags()^REPLACE_MODE);
+ else if (key == SDLK_DELETE)
+ c->SetReplaceModeFlags(c->GetReplaceModeFlags()^SPECIFIC_DELETE);
+
if (shift && showDebug && key == '1')
c->LoadRenderPreset(10);
else if(key >= '0' && key <= '9')
@@ -2162,6 +2178,10 @@ void GameView::OnDraw()
if (showDebug)
fpsInfo << " Parts: " << sample.NumParts;
+ if (c->GetReplaceModeFlags()&REPLACE_MODE)
+ fpsInfo << " [REPLACE MODE]";
+ if (c->GetReplaceModeFlags()&SPECIFIC_DELETE)
+ fpsInfo << " [SPECIFIC DELETE]";
if (ren->GetGridSize())
fpsInfo << " [GRID: " << ren->GetGridSize() << "]";