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) |