diff --git a/src/lang/english.txt b/src/lang/english.txt index 71f7811c88..bf46717f84 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 7b4b55526a..e7a593c8fb 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 e879114d23..dc16581089 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 a731f0123f..59c7c6efb6 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;