@ -181,9 +181,9 @@ public:
* @ param list List of items
* @ param def Default item
*/
static void PopupMainToolbMenu ( Window * w , int widget , DropDownList * list , int def )
static void PopupMainToolbMenu ( Window * w , int widget , DropDownList && list , int def )
{
ShowDropDownList ( w , list, def , widget , 0 , true , true ) ;
ShowDropDownList ( w , std: : move ( list) , def , widget , 0 , true , true ) ;
if ( _settings_client . sound . click_beep ) SndPlayFx ( SND_15_BEEP ) ;
}
@ -196,11 +196,11 @@ static void PopupMainToolbMenu(Window *w, int widget, DropDownList *list, int de
*/
static void PopupMainToolbMenu ( Window * w , int widget , StringID string , int count )
{
DropDownList * list = new DropDownList ( ) ;
DropDownList list ;
for ( int i = 0 ; i < count ; i + + ) {
list - > push _back( new DropDownListStringItem ( string + i , i , false ) ) ;
list . emplace _back( new DropDownListStringItem ( string + i , i , false ) ) ;
}
PopupMainToolbMenu ( w , widget , list, 0 ) ;
PopupMainToolbMenu ( w , widget , std: : move ( list) , 0 ) ;
}
/** Enum for the Company Toolbar's network related buttons */
@ -217,37 +217,37 @@ static const int CTMN_SPECTATOR = -4; ///< Show a company window as spectator
*/
static void PopupMainCompanyToolbMenu ( Window * w , int widget , int grey = 0 )
{
DropDownList * list = new DropDownList ( ) ;
DropDownList list ;
switch ( widget ) {
case WID_TN_COMPANIES :
if ( ! _networking ) break ;
/* Add the client list button for the companies menu */
list - > push _back( new DropDownListStringItem ( STR_NETWORK_COMPANY_LIST_CLIENT_LIST , CTMN_CLIENT_LIST , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_NETWORK_COMPANY_LIST_CLIENT_LIST , CTMN_CLIENT_LIST , false ) ) ;
if ( _local_company = = COMPANY_SPECTATOR ) {
list - > push _back( new DropDownListStringItem ( STR_NETWORK_COMPANY_LIST_NEW_COMPANY , CTMN_NEW_COMPANY , NetworkMaxCompaniesReached ( ) ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_NETWORK_COMPANY_LIST_NEW_COMPANY , CTMN_NEW_COMPANY , NetworkMaxCompaniesReached ( ) ) ) ;
} else {
list - > push _back( new DropDownListStringItem ( STR_NETWORK_COMPANY_LIST_SPECTATE , CTMN_SPECTATE , NetworkMaxSpectatorsReached ( ) ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_NETWORK_COMPANY_LIST_SPECTATE , CTMN_SPECTATE , NetworkMaxSpectatorsReached ( ) ) ) ;
}
break ;
case WID_TN_STORY :
list - > push _back( new DropDownListStringItem ( STR_STORY_BOOK_SPECTATOR , CTMN_SPECTATOR , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_STORY_BOOK_SPECTATOR , CTMN_SPECTATOR , false ) ) ;
break ;
case WID_TN_GOAL :
list - > push _back( new DropDownListStringItem ( STR_GOALS_SPECTATOR , CTMN_SPECTATOR , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_GOALS_SPECTATOR , CTMN_SPECTATOR , false ) ) ;
break ;
}
for ( CompanyID c = COMPANY_FIRST ; c < MAX_COMPANIES ; c + + ) {
if ( ! Company : : IsValidID ( c ) ) continue ;
list - > push _back( new DropDownListCompanyItem ( c , false , HasBit ( grey , c ) ) ) ;
list . emplace _back( new DropDownListCompanyItem ( c , false , HasBit ( grey , c ) ) ) ;
}
PopupMainToolbMenu ( w , widget , list, _local_company = = COMPANY_SPECTATOR ? ( widget = = WID_TN_COMPANIES ? CTMN_CLIENT_LIST : CTMN_SPECTATOR ) : ( int ) _local_company ) ;
PopupMainToolbMenu ( w , widget , std: : move ( list) , _local_company = = COMPANY_SPECTATOR ? ( widget = = WID_TN_COMPANIES ? CTMN_CLIENT_LIST : CTMN_SPECTATOR ) : ( int ) _local_company ) ;
}
@ -317,27 +317,27 @@ enum OptionMenuEntries {
*/
static CallBackFunction ToolbarOptionsClick ( Window * w )
{
DropDownList * list = new DropDownList ( ) ;
list - > push _back( new DropDownListStringItem ( STR_SETTINGS_MENU_GAME_OPTIONS , OME_GAMEOPTIONS , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE , OME_SETTINGS , false ) ) ;
DropDownList list ;
list . emplace _back( new DropDownListStringItem ( STR_SETTINGS_MENU_GAME_OPTIONS , OME_GAMEOPTIONS , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE , OME_SETTINGS , false ) ) ;
/* Changes to the per-AI settings don't get send from the server to the clients. Clients get
* the settings once they join but never update it . As such don ' t show the window at all
* to network clients . */
if ( ! _networking | | _network_server ) list - > push _back( new DropDownListStringItem ( STR_SETTINGS_MENU_SCRIPT_SETTINGS , OME_SCRIPT_SETTINGS , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_SETTINGS_MENU_NEWGRF_SETTINGS , OME_NEWGRFSETTINGS , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS , OME_TRANSPARENCIES , false ) ) ;
list - > push _back( new DropDownListItem ( - 1 , false ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED , OME_SHOW_TOWNNAMES , false , HasBit ( _display_opt , DO_SHOW_TOWN_NAMES ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED , OME_SHOW_STATIONNAMES , false , HasBit ( _display_opt , DO_SHOW_STATION_NAMES ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED , OME_SHOW_WAYPOINTNAMES , false , HasBit ( _display_opt , DO_SHOW_WAYPOINT_NAMES ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_SIGNS_DISPLAYED , OME_SHOW_SIGNS , false , HasBit ( _display_opt , DO_SHOW_SIGNS ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS , OME_SHOW_COMPETITOR_SIGNS , false , HasBit ( _display_opt , DO_SHOW_COMPETITOR_SIGNS ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_FULL_ANIMATION , OME_FULL_ANIMATION , false , HasBit ( _display_opt , DO_FULL_ANIMATION ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_FULL_DETAIL , OME_FULL_DETAILS , false , HasBit ( _display_opt , DO_FULL_DETAIL ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS , OME_TRANSPARENTBUILDINGS , false , IsTransparencySet ( TO_HOUSES ) ) ) ;
list - > push _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_TRANSPARENT_SIGNS , OME_SHOW_STATIONSIGNS , false , IsTransparencySet ( TO_SIGNS ) ) ) ;
ShowDropDownList ( w , list, 0 , WID_TN_SETTINGS , 140 , true , true ) ;
if ( ! _networking | | _network_server ) list . emplace _back( new DropDownListStringItem ( STR_SETTINGS_MENU_SCRIPT_SETTINGS , OME_SCRIPT_SETTINGS , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_SETTINGS_MENU_NEWGRF_SETTINGS , OME_NEWGRFSETTINGS , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS , OME_TRANSPARENCIES , false ) ) ;
list . emplace _back( new DropDownListItem ( - 1 , false ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED , OME_SHOW_TOWNNAMES , false , HasBit ( _display_opt , DO_SHOW_TOWN_NAMES ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED , OME_SHOW_STATIONNAMES , false , HasBit ( _display_opt , DO_SHOW_STATION_NAMES ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED , OME_SHOW_WAYPOINTNAMES , false , HasBit ( _display_opt , DO_SHOW_WAYPOINT_NAMES ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_SIGNS_DISPLAYED , OME_SHOW_SIGNS , false , HasBit ( _display_opt , DO_SHOW_SIGNS ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS , OME_SHOW_COMPETITOR_SIGNS , false , HasBit ( _display_opt , DO_SHOW_COMPETITOR_SIGNS ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_FULL_ANIMATION , OME_FULL_ANIMATION , false , HasBit ( _display_opt , DO_FULL_ANIMATION ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_FULL_DETAIL , OME_FULL_DETAILS , false , HasBit ( _display_opt , DO_FULL_DETAIL ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS , OME_TRANSPARENTBUILDINGS , false , IsTransparencySet ( TO_HOUSES ) ) ) ;
list . emplace _back( new DropDownListCheckedItem ( STR_SETTINGS_MENU_TRANSPARENT_SIGNS , OME_SHOW_STATIONSIGNS , false , IsTransparencySet ( TO_SIGNS ) ) ) ;
ShowDropDownList ( w , std: : move ( list) , 0 , WID_TN_SETTINGS , 140 , true , true ) ;
if ( _settings_client . sound . click_beep ) SndPlayFx ( SND_15_BEEP ) ;
return CBF_NONE ;
}
@ -463,24 +463,24 @@ enum MapMenuEntries {
static CallBackFunction ToolbarMapClick ( Window * w )
{
DropDownList * list = new DropDownList ( ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_MAP_OF_WORLD , MME_SHOW_SMALLMAP , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_EXTRA_VIEW_PORT , MME_SHOW_EXTRAVIEWPORTS , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_LINGRAPH_LEGEND , MME_SHOW_LINKGRAPH , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_SIGN_LIST , MME_SHOW_SIGNLISTS , false ) ) ;
PopupMainToolbMenu ( w , WID_TN_SMALL_MAP , list, 0 ) ;
DropDownList list ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_MAP_OF_WORLD , MME_SHOW_SMALLMAP , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_EXTRA_VIEW_PORT , MME_SHOW_EXTRAVIEWPORTS , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_LINGRAPH_LEGEND , MME_SHOW_LINKGRAPH , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_SIGN_LIST , MME_SHOW_SIGNLISTS , false ) ) ;
PopupMainToolbMenu ( w , WID_TN_SMALL_MAP , std: : move ( list) , 0 ) ;
return CBF_NONE ;
}
static CallBackFunction ToolbarScenMapTownDir ( Window * w )
{
DropDownList * list = new DropDownList ( ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_MAP_OF_WORLD , MME_SHOW_SMALLMAP , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_EXTRA_VIEW_PORT , MME_SHOW_EXTRAVIEWPORTS , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_MAP_MENU_SIGN_LIST , MME_SHOW_SIGNLISTS , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_TOWN_MENU_TOWN_DIRECTORY , MME_SHOW_TOWNDIRECTORY , false ) ) ;
list - > push _back( new DropDownListStringItem ( STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY , MME_SHOW_INDUSTRYDIRECTORY , false ) ) ;
PopupMainToolbMenu ( w , WID_TE_SMALL_MAP , list, 0 ) ;
DropDownList list ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_MAP_OF_WORLD , MME_SHOW_SMALLMAP , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_EXTRA_VIEW_PORT , MME_SHOW_EXTRAVIEWPORTS , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_MAP_MENU_SIGN_LIST , MME_SHOW_SIGNLISTS , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_TOWN_MENU_TOWN_DIRECTORY , MME_SHOW_TOWNDIRECTORY , false ) ) ;
list . emplace _back( new DropDownListStringItem ( STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY , MME_SHOW_INDUSTRYDIRECTORY , false ) ) ;
PopupMainToolbMenu ( w , WID_TE_SMALL_MAP , std: : move ( list) , 0 ) ;
return CBF_NONE ;
}
@ -894,10 +894,10 @@ static CallBackFunction MenuClickBuildRail(int index)
static CallBackFunction ToolbarBuildRoadClick ( Window * w )
{
const Company * c = Company : : Get ( _local_company ) ;
DropDownList * list = new DropDownList ( ) ;
DropDownList list ;
/* Road is always visible and available. */
list - > push _back( new DropDownListIconItem ( SPR_IMG_ROAD_X_DIR , PAL_NONE , STR_ROAD_MENU_ROAD_CONSTRUCTION , ROADTYPE_ROAD , false ) ) ;
list . emplace _back( new DropDownListIconItem ( SPR_IMG_ROAD_X_DIR , PAL_NONE , STR_ROAD_MENU_ROAD_CONSTRUCTION , ROADTYPE_ROAD , false ) ) ;
/* Tram is only visible when there will be a tram, and available when that has been introduced. */
Engine * e ;
@ -905,10 +905,10 @@ static CallBackFunction ToolbarBuildRoadClick(Window *w)
if ( ! HasBit ( e - > info . climates , _settings_game . game_creation . landscape ) ) continue ;
if ( ! HasBit ( e - > info . misc_flags , EF_ROAD_TRAM ) ) continue ;
list - > push _back( new DropDownListIconItem ( SPR_IMG_TRAMWAY_X_DIR , PAL_NONE , STR_ROAD_MENU_TRAM_CONSTRUCTION , ROADTYPE_TRAM , ! HasBit ( c - > avail_roadtypes , ROADTYPE_TRAM ) ) ) ;
list . emplace _back( new DropDownListIconItem ( SPR_IMG_TRAMWAY_X_DIR , PAL_NONE , STR_ROAD_MENU_TRAM_CONSTRUCTION , ROADTYPE_TRAM , ! HasBit ( c - > avail_roadtypes , ROADTYPE_TRAM ) ) ) ;
break ;
}
ShowDropDownList ( w , list, _last_built_roadtype , WID_TN_ROADS , 140 , true , true ) ;
ShowDropDownList ( w , std: : move ( list) , _last_built_roadtype , WID_TN_ROADS , 140 , true , true ) ;
if ( _settings_client . sound . click_beep ) SndPlayFx ( SND_15_BEEP ) ;
return CBF_NONE ;
}