summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lang/english.txt1
-rw-r--r--src/main_gui.cpp4
-rw-r--r--src/toolbar_gui.cpp25
-rw-r--r--src/toolbar_gui.h1
4 files changed, 27 insertions, 4 deletions
diff --git a/src/lang/english.txt b/src/lang/english.txt
index 71f7811c8..bf46717f8 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -448,6 +448,7 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zoomed in scree
STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot
STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
+STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toggle bounding boxes
############ range ends here
############ range for days starts (also used for the place in the highscore window)
diff --git a/src/main_gui.cpp b/src/main_gui.cpp
index 7b4b55526..e7a593c8f 100644
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -301,9 +301,7 @@ struct MainWindow : Window
return ES_HANDLED;
case GHK_BOUNDING_BOXES:
- extern bool _draw_bounding_boxes;
- _draw_bounding_boxes = !_draw_bounding_boxes;
- MarkWholeScreenDirty();
+ ToggleBoundingBoxes();
return ES_HANDLED;
}
diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp
index e879114d2..dc1658108 100644
--- a/src/toolbar_gui.cpp
+++ b/src/toolbar_gui.cpp
@@ -828,7 +828,7 @@ static CallBackFunction PlaceLandBlockInfo()
static CallBackFunction ToolbarHelpClick(Window *w)
{
- PopupMainToolbMenu(w, TBN_HELP, STR_ABOUT_MENU_LAND_BLOCK_INFO, _settings_client.gui.newgrf_developer_tools ? 9 : 8);
+ PopupMainToolbMenu(w, TBN_HELP, STR_ABOUT_MENU_LAND_BLOCK_INFO, _settings_client.gui.newgrf_developer_tools ? 10 : 8);
return CBF_NONE;
}
@@ -847,6 +847,28 @@ static void MenuClickWorldScreenshot()
MakeScreenshot(SC_WORLD, NULL);
}
+/**
+ * Toggle drawing of sprites' bounding boxes
+ * @note has only an effect when newgrf_developer_tools are active
+ *
+ * Function is found here and not in viewport.cpp in order to avoid
+ * importing the settings structs to there
+ */
+void ToggleBoundingBoxes()
+{
+ extern bool _draw_bounding_boxes;
+ /* Always allow to toggle them off */
+ if (_settings_client.gui.newgrf_developer_tools || _draw_bounding_boxes) {
+ _draw_bounding_boxes = !_draw_bounding_boxes;
+ MarkWholeScreenDirty();
+ }
+}
+
+/**
+ * Choose the proper callback function for the main toolbar's help menu
+ * @param index The menu index which was selected
+ * @return CBF_NONE
+ */
static CallBackFunction MenuClickHelp(int index)
{
switch (index) {
@@ -858,6 +880,7 @@ static CallBackFunction MenuClickHelp(int index)
case 6: MenuClickWorldScreenshot(); break;
case 7: ShowAboutWindow(); break;
case 8: ShowSpriteAlignerWindow(); break;
+ case 9: ToggleBoundingBoxes(); break;
}
return CBF_NONE;
}
diff --git a/src/toolbar_gui.h b/src/toolbar_gui.h
index a731f0123..59c7c6efb 100644
--- a/src/toolbar_gui.h
+++ b/src/toolbar_gui.h
@@ -13,6 +13,7 @@
#define TOOLBAR_GUI_H
void AllocateToolbar();
+void ToggleBoundingBoxes();
extern int16 *_preferred_toolbar_size;