changeset 9588 | 620c97d8cee4 |
parent 9586 | bd94ff37f38f |
child 9652 | 0405e98d8e96 |
9587:82019b7539b3 | 9588:620c97d8cee4 |
---|---|
129 GenerateRockyArea(end_tile, start_tile); |
129 GenerateRockyArea(end_tile, start_tile); |
130 break; |
130 break; |
131 case DDSP_CREATE_DESERT: |
131 case DDSP_CREATE_DESERT: |
132 GenerateDesertArea(end_tile, start_tile); |
132 GenerateDesertArea(end_tile, start_tile); |
133 break; |
133 break; |
134 case DDSP_CREATE_WATER: |
|
135 DoCommandP(end_tile, start_tile, _ctrl_pressed, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS)); |
|
136 break; |
|
137 case DDSP_CREATE_RIVER: |
|
138 DoCommandP(end_tile, start_tile, 2, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_PLACE_RIVERS)); |
|
139 break; |
|
140 default: |
134 default: |
141 return false; |
135 return false; |
142 } |
136 } |
143 |
137 |
144 return true; |
138 return true; |
441 static void PlaceProc_DesertArea(TileIndex tile) |
435 static void PlaceProc_DesertArea(TileIndex tile) |
442 { |
436 { |
443 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_DESERT); |
437 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_DESERT); |
444 } |
438 } |
445 |
439 |
446 static void PlaceProc_WaterArea(TileIndex tile) |
|
447 { |
|
448 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_WATER); |
|
449 } |
|
450 |
|
451 static void PlaceProc_RiverArea(TileIndex tile) |
|
452 { |
|
453 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_RIVER); |
|
454 } |
|
455 |
440 |
456 static const Widget _scen_edit_land_gen_widgets[] = { |
441 static const Widget _scen_edit_land_gen_widgets[] = { |
457 { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ETTW_CLOSEBOX |
442 { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ETTW_CLOSEBOX |
458 { WWT_CAPTION, RESIZE_NONE, 7, 11, 191, 0, 13, STR_0223_LAND_GENERATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ETTW_CAPTION |
443 { WWT_CAPTION, RESIZE_NONE, 7, 11, 150, 0, 13, STR_0223_LAND_GENERATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ETTW_CAPTION |
459 { WWT_STICKYBOX, RESIZE_NONE, 7, 192, 203, 0, 13, STR_NULL, STR_STICKY_BUTTON}, // ETTW_STICKY |
444 { WWT_STICKYBOX, RESIZE_NONE, 7, 151, 162, 0, 13, STR_NULL, STR_STICKY_BUTTON}, // ETTW_STICKY |
460 { WWT_PANEL, RESIZE_NONE, 7, 0, 203, 14, 102, 0x0, STR_NULL}, // ETTW_BACKGROUND |
445 { WWT_PANEL, RESIZE_NONE, 7, 0, 162, 14, 102, 0x0, STR_NULL}, // ETTW_BACKGROUND |
461 { WWT_IMGBTN, RESIZE_NONE, 14, 2, 23, 16, 37, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, // ETTW_DEMOLISH |
446 { WWT_IMGBTN, RESIZE_NONE, 14, 2, 23, 16, 37, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, // ETTW_DEMOLISH |
462 { WWT_IMGBTN, RESIZE_NONE, 14, 24, 45, 16, 37, SPR_IMG_TERRAFORM_DOWN, STR_018E_LOWER_A_CORNER_OF_LAND}, // ETTW_LOWER_LAND |
447 { WWT_IMGBTN, RESIZE_NONE, 14, 24, 45, 16, 37, SPR_IMG_TERRAFORM_DOWN, STR_018E_LOWER_A_CORNER_OF_LAND}, // ETTW_LOWER_LAND |
463 { WWT_IMGBTN, RESIZE_NONE, 14, 46, 67, 16, 37, SPR_IMG_TERRAFORM_UP, STR_018F_RAISE_A_CORNER_OF_LAND}, // ETTW_RAISE_LAND |
448 { WWT_IMGBTN, RESIZE_NONE, 14, 46, 67, 16, 37, SPR_IMG_TERRAFORM_UP, STR_018F_RAISE_A_CORNER_OF_LAND}, // ETTW_RAISE_LAND |
464 { WWT_IMGBTN, RESIZE_NONE, 14, 68, 89, 16, 37, SPR_IMG_LEVEL_LAND, STR_LEVEL_LAND_TOOLTIP}, // ETTW_LEVEL_LAND |
449 { WWT_IMGBTN, RESIZE_NONE, 14, 68, 89, 16, 37, SPR_IMG_LEVEL_LAND, STR_LEVEL_LAND_TOOLTIP}, // ETTW_LEVEL_LAND |
465 { WWT_IMGBTN, RESIZE_NONE, 14, 90, 111, 16, 37, SPR_IMG_BUILD_CANAL, STR_CREATE_LAKE}, // ETTW_BUILD_CANAL |
450 { WWT_IMGBTN, RESIZE_NONE, 14, 90, 111, 16, 37, SPR_IMG_ROCKS, STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE}, // ETTW_PLACE_ROCKS |
466 { WWT_IMGBTN, RESIZE_NONE, 14, 112, 133, 16, 37, SPR_IMG_BUILD_RIVER, STR_CREATE_RIVER}, // ETTW_BUILD_RIVER |
451 { WWT_IMGBTN, RESIZE_NONE, 14, 112, 133, 16, 37, SPR_IMG_LIGHTHOUSE_DESERT, STR_NULL}, // ETTW_PLACE_DESERT_LIGHTHOUSE XXX - dynamic |
467 { WWT_IMGBTN, RESIZE_NONE, 14, 134, 156, 16, 37, SPR_IMG_ROCKS, STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE}, // ETTW_PLACE_ROCKS |
452 { WWT_IMGBTN, RESIZE_NONE, 14, 134, 156, 16, 37, SPR_IMG_TRANSMITTER, STR_028E_PLACE_TRANSMITTER}, // ETTW_PLACE_TRANSMITTER |
468 { WWT_IMGBTN, RESIZE_NONE, 14, 157, 179, 16, 37, SPR_IMG_LIGHTHOUSE_DESERT, STR_NULL}, // ETTW_PLACE_DESERT_LIGHTHOUSE XXX - dynamic |
|
469 { WWT_IMGBTN, RESIZE_NONE, 14, 180, 201, 16, 37, SPR_IMG_TRANSMITTER, STR_028E_PLACE_TRANSMITTER}, // ETTW_PLACE_TRANSMITTER |
|
470 { WWT_IMGBTN, RESIZE_NONE, 14, 150, 161, 45, 56, SPR_ARROW_UP, STR_0228_INCREASE_SIZE_OF_LAND_AREA}, // ETTW_INCREASE_SIZE |
453 { WWT_IMGBTN, RESIZE_NONE, 14, 150, 161, 45, 56, SPR_ARROW_UP, STR_0228_INCREASE_SIZE_OF_LAND_AREA}, // ETTW_INCREASE_SIZE |
471 { WWT_IMGBTN, RESIZE_NONE, 14, 150, 161, 58, 69, SPR_ARROW_DOWN, STR_0229_DECREASE_SIZE_OF_LAND_AREA}, // ETTW_DECREASE_SIZE |
454 { WWT_IMGBTN, RESIZE_NONE, 14, 150, 161, 58, 69, SPR_ARROW_DOWN, STR_0229_DECREASE_SIZE_OF_LAND_AREA}, // ETTW_DECREASE_SIZE |
472 { WWT_TEXTBTN, RESIZE_NONE, 14, 24, 179, 76, 87, STR_SE_NEW_WORLD, STR_022A_GENERATE_RANDOM_LAND}, // ETTW_NEW_SCENARIO |
455 { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 161, 76, 87, STR_SE_NEW_WORLD, STR_022A_GENERATE_RANDOM_LAND}, // ETTW_NEW_SCENARIO |
473 { WWT_TEXTBTN, RESIZE_NONE, 14, 24, 179, 89, 100, STR_022B_RESET_LANDSCAPE, STR_RESET_LANDSCAPE_TOOLTIP}, // ETTW_RESET_LANDSCAPE |
456 { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 161, 89, 100, STR_022B_RESET_LANDSCAPE, STR_RESET_LANDSCAPE_TOOLTIP}, // ETTW_RESET_LANDSCAPE |
474 { WIDGETS_END}, |
457 { WIDGETS_END}, |
475 }; |
458 }; |
476 |
459 |
477 static const int8 _multi_terraform_coords[][2] = { |
460 static const int8 _multi_terraform_coords[][2] = { |
478 { 0, -2}, |
461 { 0, -2}, |
495 ETTW_BUTTONS_START, ///< Start of pushable buttons |
478 ETTW_BUTTONS_START, ///< Start of pushable buttons |
496 ETTW_DEMOLISH = ETTW_BUTTONS_START, ///< Demolish aka dynamite button |
479 ETTW_DEMOLISH = ETTW_BUTTONS_START, ///< Demolish aka dynamite button |
497 ETTW_LOWER_LAND, ///< Lower land button |
480 ETTW_LOWER_LAND, ///< Lower land button |
498 ETTW_RAISE_LAND, ///< Raise land button |
481 ETTW_RAISE_LAND, ///< Raise land button |
499 ETTW_LEVEL_LAND, ///< Level land button |
482 ETTW_LEVEL_LAND, ///< Level land button |
500 ETTW_BUILD_CANAL, ///< Build canal button |
|
501 ETTW_BUILD_RIVER, ///< Build river button |
|
502 ETTW_PLACE_ROCKS, ///< Place rocks button |
483 ETTW_PLACE_ROCKS, ///< Place rocks button |
503 ETTW_PLACE_DESERT_LIGHTHOUSE, ///< Place desert button (in tropical climate) / place lighthouse button (else) |
484 ETTW_PLACE_DESERT_LIGHTHOUSE, ///< Place desert button (in tropical climate) / place lighthouse button (else) |
504 ETTW_PLACE_TRANSMITTER, ///< Place transmitter button |
485 ETTW_PLACE_TRANSMITTER, ///< Place transmitter button |
505 ETTW_BUTTONS_END, ///< End of pushable buttons |
486 ETTW_BUTTONS_END, ///< End of pushable buttons |
506 ETTW_INCREASE_SIZE = ETTW_BUTTONS_END, ///< Upwards arrow button to increase terraforming size |
487 ETTW_INCREASE_SIZE = ETTW_BUTTONS_END, ///< Upwards arrow button to increase terraforming size |
531 static void EditorTerraformClick_LevelLand(Window *w) |
512 static void EditorTerraformClick_LevelLand(Window *w) |
532 { |
513 { |
533 HandlePlacePushButton(w, ETTW_LEVEL_LAND, SPR_CURSOR_LEVEL_LAND, VHM_POINT, PlaceProc_LevelLand); |
514 HandlePlacePushButton(w, ETTW_LEVEL_LAND, SPR_CURSOR_LEVEL_LAND, VHM_POINT, PlaceProc_LevelLand); |
534 } |
515 } |
535 |
516 |
536 static void EditorTerraformClick_WaterArea(Window *w) |
|
537 { |
|
538 HandlePlacePushButton(w, ETTW_BUILD_CANAL, SPR_CURSOR_CANAL, VHM_RECT, PlaceProc_WaterArea); |
|
539 } |
|
540 |
|
541 static void EditorTerraformClick_RiverArea(Window *w) |
|
542 { |
|
543 HandlePlacePushButton(w, ETTW_BUILD_RIVER, SPR_CURSOR_RIVER, VHM_RECT, PlaceProc_RiverArea); |
|
544 } |
|
545 |
|
546 static void EditorTerraformClick_RockyArea(Window *w) |
517 static void EditorTerraformClick_RockyArea(Window *w) |
547 { |
518 { |
548 HandlePlacePushButton(w, ETTW_PLACE_ROCKS, SPR_CURSOR_ROCKY_AREA, VHM_RECT, PlaceProc_RockyArea); |
519 HandlePlacePushButton(w, ETTW_PLACE_ROCKS, SPR_CURSOR_ROCKY_AREA, VHM_RECT, PlaceProc_RockyArea); |
549 } |
520 } |
550 |
521 |
563 'Q', |
534 'Q', |
564 'W', |
535 'W', |
565 'E', |
536 'E', |
566 'R', |
537 'R', |
567 'T', |
538 'T', |
568 'Y', |
539 'Y' |
569 'U', |
|
570 'I' |
|
571 }; |
540 }; |
572 |
541 |
573 typedef void OnButtonClick(Window *w); |
542 typedef void OnButtonClick(Window *w); |
574 static OnButtonClick * const _editor_terraform_button_proc[] = { |
543 static OnButtonClick * const _editor_terraform_button_proc[] = { |
575 EditorTerraformClick_Dynamite, |
544 EditorTerraformClick_Dynamite, |
576 EditorTerraformClick_LowerBigLand, |
545 EditorTerraformClick_LowerBigLand, |
577 EditorTerraformClick_RaiseBigLand, |
546 EditorTerraformClick_RaiseBigLand, |
578 EditorTerraformClick_LevelLand, |
547 EditorTerraformClick_LevelLand, |
579 EditorTerraformClick_WaterArea, |
|
580 EditorTerraformClick_RiverArea, |
|
581 EditorTerraformClick_RockyArea, |
548 EditorTerraformClick_RockyArea, |
582 EditorTerraformClick_DesertLightHouse, |
549 EditorTerraformClick_DesertLightHouse, |
583 EditorTerraformClick_Transmitter |
550 EditorTerraformClick_Transmitter |
584 }; |
551 }; |
585 |
552 |
706 if (pt.x != -1) { |
673 if (pt.x != -1) { |
707 switch (select_proc) { |
674 switch (select_proc) { |
708 default: NOT_REACHED(); |
675 default: NOT_REACHED(); |
709 case DDSP_CREATE_ROCKS: |
676 case DDSP_CREATE_ROCKS: |
710 case DDSP_CREATE_DESERT: |
677 case DDSP_CREATE_DESERT: |
711 case DDSP_CREATE_WATER: |
|
712 case DDSP_CREATE_RIVER: |
|
713 case DDSP_RAISE_AND_LEVEL_AREA: |
678 case DDSP_RAISE_AND_LEVEL_AREA: |
714 case DDSP_LOWER_AND_LEVEL_AREA: |
679 case DDSP_LOWER_AND_LEVEL_AREA: |
715 case DDSP_LEVEL_AREA: |
680 case DDSP_LEVEL_AREA: |
716 case DDSP_DEMOLISH_AREA: |
681 case DDSP_DEMOLISH_AREA: |
717 GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
682 GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
726 this->SetDirty(); |
691 this->SetDirty(); |
727 } |
692 } |
728 }; |
693 }; |
729 |
694 |
730 static const WindowDesc _scen_edit_land_gen_desc = { |
695 static const WindowDesc _scen_edit_land_gen_desc = { |
731 WDP_AUTO, WDP_AUTO, 204, 103, 204, 103, |
696 WDP_AUTO, WDP_AUTO, 163, 103, 163, 103, |
732 WC_SCEN_LAND_GEN, WC_NONE, |
697 WC_SCEN_LAND_GEN, WC_NONE, |
733 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
698 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
734 _scen_edit_land_gen_widgets, |
699 _scen_edit_land_gen_widgets, |
735 }; |
700 }; |
736 |
701 |