(svn r22675) -Change: Add a menu entry for the sprite bounding box debuging feature in the help menu and enable bounding boxes only in conjunction with the newgrf developer tools

This commit is contained in:
planetmaker 2011-07-20 16:19:48 +00:00
parent a70c37e4c9
commit 3045c3fd2a
4 changed files with 27 additions and 4 deletions

View File

@ -448,6 +448,7 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zoomed in scree
STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot
STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toggle bounding boxes
############ range ends here ############ range ends here
############ range for days starts (also used for the place in the highscore window) ############ range for days starts (also used for the place in the highscore window)

View File

@ -301,9 +301,7 @@ struct MainWindow : Window
return ES_HANDLED; return ES_HANDLED;
case GHK_BOUNDING_BOXES: case GHK_BOUNDING_BOXES:
extern bool _draw_bounding_boxes; ToggleBoundingBoxes();
_draw_bounding_boxes = !_draw_bounding_boxes;
MarkWholeScreenDirty();
return ES_HANDLED; return ES_HANDLED;
} }

View File

@ -828,7 +828,7 @@ static CallBackFunction PlaceLandBlockInfo()
static CallBackFunction ToolbarHelpClick(Window *w) 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; return CBF_NONE;
} }
@ -847,6 +847,28 @@ static void MenuClickWorldScreenshot()
MakeScreenshot(SC_WORLD, NULL); 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) static CallBackFunction MenuClickHelp(int index)
{ {
switch (index) { switch (index) {
@ -858,6 +880,7 @@ static CallBackFunction MenuClickHelp(int index)
case 6: MenuClickWorldScreenshot(); break; case 6: MenuClickWorldScreenshot(); break;
case 7: ShowAboutWindow(); break; case 7: ShowAboutWindow(); break;
case 8: ShowSpriteAlignerWindow(); break; case 8: ShowSpriteAlignerWindow(); break;
case 9: ToggleBoundingBoxes(); break;
} }
return CBF_NONE; return CBF_NONE;
} }

View File

@ -13,6 +13,7 @@
#define TOOLBAR_GUI_H #define TOOLBAR_GUI_H
void AllocateToolbar(); void AllocateToolbar();
void ToggleBoundingBoxes();
extern int16 *_preferred_toolbar_size; extern int16 *_preferred_toolbar_size;