src/main_gui.cpp
changeset 8036 279f4cbf9ec7
parent 8032 f35fba9bacb0
child 8056 ae85cb9a770d
equal deleted inserted replaced
8035:8c76ea0d84ab 8036:279f4cbf9ec7
   905 }
   905 }
   906 
   906 
   907 static void ToolbarZoomInClick(Window *w)
   907 static void ToolbarZoomInClick(Window *w)
   908 {
   908 {
   909 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
   909 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
   910 		HandleButtonClick(w, 17);
   910 		w->HandleButtonClick(17);
   911 		SndPlayFx(SND_15_BEEP);
   911 		SndPlayFx(SND_15_BEEP);
   912 	}
   912 	}
   913 }
   913 }
   914 
   914 
   915 static void ToolbarZoomOutClick(Window *w)
   915 static void ToolbarZoomOutClick(Window *w)
   916 {
   916 {
   917 	if (DoZoomInOutWindow(ZOOM_OUT,FindWindowById(WC_MAIN_WINDOW, 0))) {
   917 	if (DoZoomInOutWindow(ZOOM_OUT,FindWindowById(WC_MAIN_WINDOW, 0))) {
   918 		HandleButtonClick(w, 18);
   918 		w->HandleButtonClick(18);
   919 		SndPlayFx(SND_15_BEEP);
   919 		SndPlayFx(SND_15_BEEP);
   920 	}
   920 	}
   921 }
   921 }
   922 
   922 
   923 static void ToolbarBuildRailClick(Window *w)
   923 static void ToolbarBuildRailClick(Window *w)
   990 
   990 
   991 static void ToolbarScenDateBackward(Window *w)
   991 static void ToolbarScenDateBackward(Window *w)
   992 {
   992 {
   993 	/* don't allow too fast scrolling */
   993 	/* don't allow too fast scrolling */
   994 	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   994 	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
   995 		HandleButtonClick(w, 6);
   995 		w->HandleButtonClick(6);
   996 		SetWindowDirty(w);
   996 		SetWindowDirty(w);
   997 
   997 
   998 		_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year - 1, MIN_YEAR, MAX_YEAR);
   998 		_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year - 1, MIN_YEAR, MAX_YEAR);
   999 		SetDate(ConvertYMDToDate(_patches_newgame.starting_year, 0, 1));
   999 		SetDate(ConvertYMDToDate(_patches_newgame.starting_year, 0, 1));
  1000 	}
  1000 	}
  1003 
  1003 
  1004 static void ToolbarScenDateForward(Window *w)
  1004 static void ToolbarScenDateForward(Window *w)
  1005 {
  1005 {
  1006 	/* don't allow too fast scrolling */
  1006 	/* don't allow too fast scrolling */
  1007 	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
  1007 	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
  1008 		HandleButtonClick(w, 7);
  1008 		w->HandleButtonClick(7);
  1009 		SetWindowDirty(w);
  1009 		SetWindowDirty(w);
  1010 
  1010 
  1011 		_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + 1, MIN_YEAR, MAX_YEAR);
  1011 		_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + 1, MIN_YEAR, MAX_YEAR);
  1012 		SetDate(ConvertYMDToDate(_patches_newgame.starting_year, 0, 1));
  1012 		SetDate(ConvertYMDToDate(_patches_newgame.starting_year, 0, 1));
  1013 	}
  1013 	}
  1021 }
  1021 }
  1022 
  1022 
  1023 static void ToolbarScenZoomIn(Window *w)
  1023 static void ToolbarScenZoomIn(Window *w)
  1024 {
  1024 {
  1025 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
  1025 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
  1026 		HandleButtonClick(w, 9);
  1026 		w->HandleButtonClick(9);
  1027 		SndPlayFx(SND_15_BEEP);
  1027 		SndPlayFx(SND_15_BEEP);
  1028 	}
  1028 	}
  1029 }
  1029 }
  1030 
  1030 
  1031 static void ToolbarScenZoomOut(Window *w)
  1031 static void ToolbarScenZoomOut(Window *w)
  1032 {
  1032 {
  1033 	if (DoZoomInOutWindow(ZOOM_OUT, FindWindowById(WC_MAIN_WINDOW, 0))) {
  1033 	if (DoZoomInOutWindow(ZOOM_OUT, FindWindowById(WC_MAIN_WINDOW, 0))) {
  1034 		HandleButtonClick(w, 10);
  1034 		w->HandleButtonClick(10);
  1035 		SndPlayFx(SND_15_BEEP);
  1035 		SndPlayFx(SND_15_BEEP);
  1036 	}
  1036 	}
  1037 }
  1037 }
  1038 
  1038 
  1039 void ZoomInOrOutToCursorWindow(bool in, Window *w)
  1039 void ZoomInOrOutToCursorWindow(bool in, Window *w)
  1331 		case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:
  1331 		case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:
  1332 			_editor_terraform_button_proc[e->we.click.widget - 4](w);
  1332 			_editor_terraform_button_proc[e->we.click.widget - 4](w);
  1333 			break;
  1333 			break;
  1334 		case 12: case 13: { // Increase/Decrease terraform size
  1334 		case 12: case 13: { // Increase/Decrease terraform size
  1335 			int size = (e->we.click.widget == 12) ? 1 : -1;
  1335 			int size = (e->we.click.widget == 12) ? 1 : -1;
  1336 			HandleButtonClick(w, e->we.click.widget);
  1336 			w->HandleButtonClick(e->we.click.widget);
  1337 			size += _terraform_size;
  1337 			size += _terraform_size;
  1338 
  1338 
  1339 			if (!IsInsideMM(size, 1, 8 + 1)) return;
  1339 			if (!IsInsideMM(size, 1, 8 + 1)) return;
  1340 			_terraform_size = size;
  1340 			_terraform_size = size;
  1341 
  1341 
  1342 			SndPlayFx(SND_15_BEEP);
  1342 			SndPlayFx(SND_15_BEEP);
  1343 			SetWindowDirty(w);
  1343 			SetWindowDirty(w);
  1344 		} break;
  1344 		} break;
  1345 		case 14: // gen random land
  1345 		case 14: // gen random land
  1346 			HandleButtonClick(w, 14);
  1346 			w->HandleButtonClick(14);
  1347 			ShowCreateScenario();
  1347 			ShowCreateScenario();
  1348 			break;
  1348 			break;
  1349 		case 15: // Reset landscape
  1349 		case 15: // Reset landscape
  1350 			ShowQuery(
  1350 			ShowQuery(
  1351 			  STR_022C_RESET_LANDSCAPE,
  1351 			  STR_022C_RESET_LANDSCAPE,
  1408 	AllocateWindowDescFront(&_scen_edit_land_gen_desc, 0);
  1408 	AllocateWindowDescFront(&_scen_edit_land_gen_desc, 0);
  1409 }
  1409 }
  1410 
  1410 
  1411 static void ToolbarScenGenLand(Window *w)
  1411 static void ToolbarScenGenLand(Window *w)
  1412 {
  1412 {
  1413 	HandleButtonClick(w, 11);
  1413 	w->HandleButtonClick(11);
  1414 	SndPlayFx(SND_15_BEEP);
  1414 	SndPlayFx(SND_15_BEEP);
  1415 
  1415 
  1416 	ShowEditorTerraformToolBar();
  1416 	ShowEditorTerraformToolBar();
  1417 }
  1417 }
  1418 
  1418 
  1467 		case 5: {// random town
  1467 		case 5: {// random town
  1468 			Town *t;
  1468 			Town *t;
  1469 			uint size = min(_scengen_town_size, (int)TSM_CITY);
  1469 			uint size = min(_scengen_town_size, (int)TSM_CITY);
  1470 			TownSizeMode mode = _scengen_town_size > TSM_CITY ? TSM_CITY : TSM_FIXED;
  1470 			TownSizeMode mode = _scengen_town_size > TSM_CITY ? TSM_CITY : TSM_FIXED;
  1471 
  1471 
  1472 			HandleButtonClick(w, 5);
  1472 			w->HandleButtonClick(5);
  1473 			_generating_world = true;
  1473 			_generating_world = true;
  1474 			t = CreateRandomTown(20, mode, size);
  1474 			t = CreateRandomTown(20, mode, size);
  1475 			_generating_world = false;
  1475 			_generating_world = false;
  1476 
  1476 
  1477 			if (t == NULL) {
  1477 			if (t == NULL) {
  1481 			}
  1481 			}
  1482 
  1482 
  1483 			break;
  1483 			break;
  1484 		}
  1484 		}
  1485 		case 6: {// many random towns
  1485 		case 6: {// many random towns
  1486 			HandleButtonClick(w, 6);
  1486 			w->HandleButtonClick(6);
  1487 
  1487 
  1488 			_generating_world = true;
  1488 			_generating_world = true;
  1489 			if (!GenerateTowns()) ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0);
  1489 			if (!GenerateTowns()) ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0);
  1490 			_generating_world = false;
  1490 			_generating_world = false;
  1491 			break;
  1491 			break;
  1524 	ScenEditTownGenWndProc,
  1524 	ScenEditTownGenWndProc,
  1525 };
  1525 };
  1526 
  1526 
  1527 static void ToolbarScenGenTown(Window *w)
  1527 static void ToolbarScenGenTown(Window *w)
  1528 {
  1528 {
  1529 	HandleButtonClick(w, 12);
  1529 	w->HandleButtonClick(12);
  1530 	SndPlayFx(SND_15_BEEP);
  1530 	SndPlayFx(SND_15_BEEP);
  1531 
  1531 
  1532 	AllocateWindowDescFront(&_scen_edit_town_gen_desc, 0);
  1532 	AllocateWindowDescFront(&_scen_edit_town_gen_desc, 0);
  1533 }
  1533 }
  1534 
  1534 
  1535 static void ToolbarScenGenIndustry(Window *w)
  1535 static void ToolbarScenGenIndustry(Window *w)
  1536 {
  1536 {
  1537 	HandleButtonClick(w, 13);
  1537 	w->HandleButtonClick(13);
  1538 	SndPlayFx(SND_15_BEEP);
  1538 	SndPlayFx(SND_15_BEEP);
  1539 	ShowBuildIndustryWindow();
  1539 	ShowBuildIndustryWindow();
  1540 }
  1540 }
  1541 
  1541 
  1542 static void ToolbarScenBuildRoad(Window *w)
  1542 static void ToolbarScenBuildRoad(Window *w)
  1543 {
  1543 {
  1544 	HandleButtonClick(w, 14);
  1544 	w->HandleButtonClick(14);
  1545 	SndPlayFx(SND_15_BEEP);
  1545 	SndPlayFx(SND_15_BEEP);
  1546 	ShowBuildRoadScenToolbar();
  1546 	ShowBuildRoadScenToolbar();
  1547 }
  1547 }
  1548 
  1548 
  1549 static void ToolbarScenPlantTrees(Window *w)
  1549 static void ToolbarScenPlantTrees(Window *w)
  1550 {
  1550 {
  1551 	HandleButtonClick(w, 15);
  1551 	w->HandleButtonClick(15);
  1552 	SndPlayFx(SND_15_BEEP);
  1552 	SndPlayFx(SND_15_BEEP);
  1553 	ShowBuildTreesScenToolbar();
  1553 	ShowBuildTreesScenToolbar();
  1554 }
  1554 }
  1555 
  1555 
  1556 static void ToolbarScenPlaceSign(Window *w)
  1556 static void ToolbarScenPlaceSign(Window *w)
  1557 {
  1557 {
  1558 	HandleButtonClick(w, 16);
  1558 	w->HandleButtonClick(16);
  1559 	SndPlayFx(SND_15_BEEP);
  1559 	SndPlayFx(SND_15_BEEP);
  1560 	SelectSignTool();
  1560 	SelectSignTool();
  1561 }
  1561 }
  1562 
  1562 
  1563 static void ToolbarBtn_NULL(Window *w)
  1563 static void ToolbarBtn_NULL(Window *w)