src/main_gui.cpp
branchgamebalance
changeset 9908 0fa543611bbe
parent 9906 6f41b8713b65
child 9909 dce9a6923bb7
equal deleted inserted replaced
9907:3b068c3a1c74 9908:0fa543611bbe
    35 #include "screenshot.h"
    35 #include "screenshot.h"
    36 #include "genworld.h"
    36 #include "genworld.h"
    37 #include "settings.h"
    37 #include "settings.h"
    38 #include "date.h"
    38 #include "date.h"
    39 #include "vehicle_gui.h"
    39 #include "vehicle_gui.h"
       
    40 #include "transparency_gui.h"
    40 #include "newgrf_config.h"
    41 #include "newgrf_config.h"
    41 
    42 
    42 #include "network/network_data.h"
    43 #include "network/network_data.h"
    43 #include "network/network_client.h"
    44 #include "network/network_client.h"
    44 #include "network/network_server.h"
    45 #include "network/network_server.h"
   158 		case  6: _display_opt ^= DO_SHOW_STATION_NAMES; break;
   159 		case  6: _display_opt ^= DO_SHOW_STATION_NAMES; break;
   159 		case  7: _display_opt ^= DO_SHOW_SIGNS;         break;
   160 		case  7: _display_opt ^= DO_SHOW_SIGNS;         break;
   160 		case  8: _display_opt ^= DO_WAYPOINTS;          break;
   161 		case  8: _display_opt ^= DO_WAYPOINTS;          break;
   161 		case  9: _display_opt ^= DO_FULL_ANIMATION;     break;
   162 		case  9: _display_opt ^= DO_FULL_ANIMATION;     break;
   162 		case 10: _display_opt ^= DO_FULL_DETAIL;        break;
   163 		case 10: _display_opt ^= DO_FULL_DETAIL;        break;
   163 		case 11: _display_opt ^= DO_TRANS_BUILDINGS;    break;
   164 		case 11: TOGGLEBIT(_transparent_opt, TO_BUILDINGS); break;
   164 		case 12: _display_opt ^= DO_TRANS_SIGNS;        break;
   165 		case 12: TOGGLEBIT(_transparent_opt, TO_SIGNS);     break;
   165 	}
   166 	}
   166 	MarkWholeScreenDirty();
   167 	MarkWholeScreenDirty();
   167 }
   168 }
   168 
   169 
   169 static void MenuClickSaveLoad(int index)
   170 static void MenuClickSaveLoad(int index)
   190 {
   191 {
   191 	switch (index) {
   192 	switch (index) {
   192 		case 0: ShowSmallMap();            break;
   193 		case 0: ShowSmallMap();            break;
   193 		case 1: ShowExtraViewPortWindow(); break;
   194 		case 1: ShowExtraViewPortWindow(); break;
   194 		case 2: ShowSignList();            break;
   195 		case 2: ShowSignList();            break;
       
   196 		case 3: ShowTransparencyToolbar(); break;
   195 	}
   197 	}
   196 }
   198 }
   197 
   199 
   198 static void MenuClickTown(int index)
   200 static void MenuClickTown(int index)
   199 {
   201 {
   204 {
   206 {
   205 	switch (index) {
   207 	switch (index) {
   206 		case 0: ShowSmallMap();            break;
   208 		case 0: ShowSmallMap();            break;
   207 		case 1: ShowExtraViewPortWindow(); break;
   209 		case 1: ShowExtraViewPortWindow(); break;
   208 		case 2: ShowSignList();            break;
   210 		case 2: ShowSignList();            break;
   209 		case 3: ShowTownDirectory();       break;
   211 		case 3: ShowTransparencyToolbar(); break;
       
   212 		case 4: ShowTownDirectory();       break;
   210 	}
   213 	}
   211 }
   214 }
   212 
   215 
   213 static void MenuClickSubsidies(int index)
   216 static void MenuClickSubsidies(int index)
   214 {
   217 {
   760 	PopupMainToolbMenu(w, 3, STR_015C_SAVE_GAME, 4, 0);
   763 	PopupMainToolbMenu(w, 3, STR_015C_SAVE_GAME, 4, 0);
   761 }
   764 }
   762 
   765 
   763 static void ToolbarMapClick(Window *w)
   766 static void ToolbarMapClick(Window *w)
   764 {
   767 {
   765 	PopupMainToolbMenu(w, 4, STR_02DE_MAP_OF_WORLD, 3, 0);
   768 	PopupMainToolbMenu(w, 4, STR_02DE_MAP_OF_WORLD, 4, 0);
   766 }
   769 }
   767 
   770 
   768 static void ToolbarTownClick(Window *w)
   771 static void ToolbarTownClick(Window *w)
   769 {
   772 {
   770 	PopupMainToolbMenu(w, 5, STR_02BB_TOWN_DIRECTORY, 1, 0);
   773 	PopupMainToolbMenu(w, 5, STR_02BB_TOWN_DIRECTORY, 1, 0);
   959 	if (_display_opt & DO_SHOW_STATION_NAMES) SETBIT(x,  6);
   962 	if (_display_opt & DO_SHOW_STATION_NAMES) SETBIT(x,  6);
   960 	if (_display_opt & DO_SHOW_SIGNS)         SETBIT(x,  7);
   963 	if (_display_opt & DO_SHOW_SIGNS)         SETBIT(x,  7);
   961 	if (_display_opt & DO_WAYPOINTS)          SETBIT(x,  8);
   964 	if (_display_opt & DO_WAYPOINTS)          SETBIT(x,  8);
   962 	if (_display_opt & DO_FULL_ANIMATION)     SETBIT(x,  9);
   965 	if (_display_opt & DO_FULL_ANIMATION)     SETBIT(x,  9);
   963 	if (_display_opt & DO_FULL_DETAIL)        SETBIT(x, 10);
   966 	if (_display_opt & DO_FULL_DETAIL)        SETBIT(x, 10);
   964 	if (_display_opt & DO_TRANS_BUILDINGS)    SETBIT(x, 11);
   967 	if (HASBIT(_transparent_opt, TO_BUILDINGS)) SETBIT(x, 11);
   965 	if (_display_opt & DO_TRANS_SIGNS)        SETBIT(x, 12);
   968 	if (HASBIT(_transparent_opt, TO_SIGNS))     SETBIT(x, 12);
   966 	WP(w,menu_d).checked_items = x;
   969 	WP(w,menu_d).checked_items = x;
   967 }
   970 }
   968 
   971 
   969 
   972 
   970 static void ToolbarScenSaveOrLoad(Window *w)
   973 static void ToolbarScenSaveOrLoad(Window *w)
   999 }
  1002 }
  1000 
  1003 
  1001 static void ToolbarScenMapTownDir(Window *w)
  1004 static void ToolbarScenMapTownDir(Window *w)
  1002 {
  1005 {
  1003 	/* Scenario editor button, *hack*hack* use different button to activate */
  1006 	/* Scenario editor button, *hack*hack* use different button to activate */
  1004 	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 4, 0);
  1007 	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 5, 0);
  1005 }
  1008 }
  1006 
  1009 
  1007 static void ToolbarScenZoomIn(Window *w)
  1010 static void ToolbarScenZoomIn(Window *w)
  1008 {
  1011 {
  1009 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
  1012 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
  2328 			case '2' | WKC_ALT: // Update the coordinates of all station signs
  2331 			case '2' | WKC_ALT: // Update the coordinates of all station signs
  2329 				UpdateAllStationVirtCoord();
  2332 				UpdateAllStationVirtCoord();
  2330 				break;
  2333 				break;
  2331 #endif
  2334 #endif
  2332 
  2335 
  2333 			case 'X':
  2336 			case '1' | WKC_CTRL:
  2334 				_display_opt ^= DO_TRANS_BUILDINGS;
  2337 			case '2' | WKC_CTRL:
       
  2338 			case '3' | WKC_CTRL:
       
  2339 			case '4' | WKC_CTRL:
       
  2340 			case '5' | WKC_CTRL:
       
  2341 			case '6' | WKC_CTRL:
       
  2342 			case '7' | WKC_CTRL:
       
  2343 				/* Transparency toggle hot keys */
       
  2344 				TOGGLEBIT(_transparent_opt, e->we.keypress.keycode - ('1' | WKC_CTRL));
  2335 				MarkWholeScreenDirty();
  2345 				MarkWholeScreenDirty();
  2336 				break;
  2346 				break;
       
  2347 
       
  2348 			case 'X' | WKC_CTRL:
       
  2349 				ShowTransparencyToolbar();
       
  2350 				break;
       
  2351 
       
  2352 			case 'X': {
       
  2353 				/* Toggle all transparency options except for signs */
       
  2354 				static byte trans_opt = ~0;
       
  2355 				if (GB(_transparent_opt, 1, 7) == 0) {
       
  2356 					SB(_transparent_opt, 1, 7, GB(trans_opt, 1, 7));
       
  2357 				} else {
       
  2358 					trans_opt = _transparent_opt;
       
  2359 					SB(_transparent_opt, 1, 7, 0);
       
  2360 				}
       
  2361 				MarkWholeScreenDirty();
       
  2362 				break;
       
  2363 			}
  2337 
  2364 
  2338 #ifdef ENABLE_NETWORK
  2365 #ifdef ENABLE_NETWORK
  2339 			case WKC_RETURN: case 'T': // smart chat; send to team if any, otherwise to all
  2366 			case WKC_RETURN: case 'T': // smart chat; send to team if any, otherwise to all
  2340 				if (_networking) {
  2367 				if (_networking) {
  2341 					const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index);
  2368 					const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index);