410 static void PlaceProc_WaterArea(TileIndex tile) |
413 static void PlaceProc_WaterArea(TileIndex tile) |
411 { |
414 { |
412 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_WATER); |
415 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_WATER); |
413 } |
416 } |
414 |
417 |
|
418 static void PlaceProc_RiverArea(TileIndex tile) |
|
419 { |
|
420 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CREATE_RIVER); |
|
421 } |
|
422 |
415 static const Widget _scen_edit_land_gen_widgets[] = { |
423 static const Widget _scen_edit_land_gen_widgets[] = { |
416 { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
424 { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
417 { WWT_CAPTION, RESIZE_NONE, 7, 11, 169, 0, 13, STR_0223_LAND_GENERATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
425 { WWT_CAPTION, RESIZE_NONE, 7, 11, 191, 0, 13, STR_0223_LAND_GENERATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
418 { WWT_STICKYBOX, RESIZE_NONE, 7, 170, 181, 0, 13, STR_NULL, STR_STICKY_BUTTON}, |
426 { WWT_STICKYBOX, RESIZE_NONE, 7, 192, 203, 0, 13, STR_NULL, STR_STICKY_BUTTON}, |
419 { WWT_PANEL, RESIZE_NONE, 7, 0, 181, 14, 102, 0x0, STR_NULL}, |
427 { WWT_PANEL, RESIZE_NONE, 7, 0, 203, 14, 102, 0x0, STR_NULL}, |
420 { WWT_IMGBTN, RESIZE_NONE, 14, 2, 23, 16, 37, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, |
428 { WWT_IMGBTN, RESIZE_NONE, 14, 2, 23, 16, 37, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, |
421 { WWT_IMGBTN, RESIZE_NONE, 14, 24, 45, 16, 37, SPR_IMG_TERRAFORM_DOWN, STR_018E_LOWER_A_CORNER_OF_LAND}, |
429 { WWT_IMGBTN, RESIZE_NONE, 14, 24, 45, 16, 37, SPR_IMG_TERRAFORM_DOWN, STR_018E_LOWER_A_CORNER_OF_LAND}, |
422 { WWT_IMGBTN, RESIZE_NONE, 14, 46, 67, 16, 37, SPR_IMG_TERRAFORM_UP, STR_018F_RAISE_A_CORNER_OF_LAND}, |
430 { WWT_IMGBTN, RESIZE_NONE, 14, 46, 67, 16, 37, SPR_IMG_TERRAFORM_UP, STR_018F_RAISE_A_CORNER_OF_LAND}, |
423 { WWT_IMGBTN, RESIZE_NONE, 14, 68, 89, 16, 37, SPR_IMG_LEVEL_LAND, STR_LEVEL_LAND_TOOLTIP}, |
431 { WWT_IMGBTN, RESIZE_NONE, 14, 68, 89, 16, 37, SPR_IMG_LEVEL_LAND, STR_LEVEL_LAND_TOOLTIP}, |
424 { WWT_IMGBTN, RESIZE_NONE, 14, 90, 111, 16, 37, SPR_IMG_BUILD_CANAL, STR_CREATE_LAKE}, |
432 { WWT_IMGBTN, RESIZE_NONE, 14, 90, 111, 16, 37, SPR_IMG_BUILD_CANAL, STR_CREATE_LAKE}, |
425 { WWT_IMGBTN, RESIZE_NONE, 14, 112, 134, 16, 37, SPR_IMG_ROCKS, STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE}, |
433 { WWT_IMGBTN, RESIZE_NONE, 14, 112, 133, 16, 37, SPR_IMG_BUILD_CANAL, STR_CREATE_RIVER}, |
426 { WWT_IMGBTN, RESIZE_NONE, 14, 135, 157, 16, 37, SPR_IMG_LIGHTHOUSE_DESERT, STR_NULL}, // XXX - dynamic |
434 { WWT_IMGBTN, RESIZE_NONE, 14, 134, 156, 16, 37, SPR_IMG_ROCKS, STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE}, |
427 { WWT_IMGBTN, RESIZE_NONE, 14, 158, 179, 16, 37, SPR_IMG_TRANSMITTER, STR_028E_PLACE_TRANSMITTER}, |
435 { WWT_IMGBTN, RESIZE_NONE, 14, 157, 179, 16, 37, SPR_IMG_LIGHTHOUSE_DESERT, STR_NULL}, // XXX - dynamic |
428 { WWT_IMGBTN, RESIZE_NONE, 14, 139, 150, 45, 56, SPR_ARROW_UP, STR_0228_INCREASE_SIZE_OF_LAND_AREA}, |
436 { WWT_IMGBTN, RESIZE_NONE, 14, 180, 201, 16, 37, SPR_IMG_TRANSMITTER, STR_028E_PLACE_TRANSMITTER}, |
429 { WWT_IMGBTN, RESIZE_NONE, 14, 139, 150, 58, 69, SPR_ARROW_DOWN, STR_0229_DECREASE_SIZE_OF_LAND_AREA}, |
437 { WWT_IMGBTN, RESIZE_NONE, 14, 150, 161, 45, 56, SPR_ARROW_UP, STR_0228_INCREASE_SIZE_OF_LAND_AREA}, |
430 { WWT_TEXTBTN, RESIZE_NONE, 14, 24, 157, 76, 87, STR_SE_NEW_WORLD, STR_022A_GENERATE_RANDOM_LAND}, |
438 { WWT_IMGBTN, RESIZE_NONE, 14, 150, 161, 58, 69, SPR_ARROW_DOWN, STR_0229_DECREASE_SIZE_OF_LAND_AREA}, |
431 { WWT_TEXTBTN, RESIZE_NONE, 14, 24, 157, 89, 100, STR_022B_RESET_LANDSCAPE, STR_RESET_LANDSCAPE_TOOLTIP}, |
439 { WWT_TEXTBTN, RESIZE_NONE, 14, 24, 179, 76, 87, STR_SE_NEW_WORLD, STR_022A_GENERATE_RANDOM_LAND}, |
|
440 { WWT_TEXTBTN, RESIZE_NONE, 14, 24, 179, 89, 100, STR_022B_RESET_LANDSCAPE, STR_RESET_LANDSCAPE_TOOLTIP}, |
432 { WIDGETS_END}, |
441 { WIDGETS_END}, |
433 }; |
442 }; |
434 |
443 |
435 static const int8 _multi_terraform_coords[][2] = { |
444 static const int8 _multi_terraform_coords[][2] = { |
436 { 0, -2}, |
445 { 0, -2}, |
470 static void EditorTerraformClick_WaterArea(Window *w) |
479 static void EditorTerraformClick_WaterArea(Window *w) |
471 { |
480 { |
472 HandlePlacePushButton(w, 8, SPR_CURSOR_CANAL, VHM_RECT, PlaceProc_WaterArea); |
481 HandlePlacePushButton(w, 8, SPR_CURSOR_CANAL, VHM_RECT, PlaceProc_WaterArea); |
473 } |
482 } |
474 |
483 |
|
484 static void EditorTerraformClick_RiverArea(Window *w) |
|
485 { |
|
486 HandlePlacePushButton(w, 9, SPR_CURSOR_CANAL, VHM_RECT, PlaceProc_RiverArea); |
|
487 } |
|
488 |
475 static void EditorTerraformClick_RockyArea(Window *w) |
489 static void EditorTerraformClick_RockyArea(Window *w) |
476 { |
490 { |
477 HandlePlacePushButton(w, 9, SPR_CURSOR_ROCKY_AREA, VHM_RECT, PlaceProc_RockyArea); |
491 HandlePlacePushButton(w, 10, SPR_CURSOR_ROCKY_AREA, VHM_RECT, PlaceProc_RockyArea); |
478 } |
492 } |
479 |
493 |
480 static void EditorTerraformClick_DesertLightHouse(Window *w) |
494 static void EditorTerraformClick_DesertLightHouse(Window *w) |
481 { |
495 { |
482 HandlePlacePushButton(w, 10, SPR_CURSOR_LIGHTHOUSE, VHM_RECT, (_opt.landscape == LT_TROPIC) ? PlaceProc_DesertArea : PlaceProc_LightHouse); |
496 HandlePlacePushButton(w, 11, SPR_CURSOR_LIGHTHOUSE, VHM_RECT, (_opt.landscape == LT_TROPIC) ? PlaceProc_DesertArea : PlaceProc_LightHouse); |
483 } |
497 } |
484 |
498 |
485 static void EditorTerraformClick_Transmitter(Window *w) |
499 static void EditorTerraformClick_Transmitter(Window *w) |
486 { |
500 { |
487 HandlePlacePushButton(w, 11, SPR_CURSOR_TRANSMITTER, VHM_RECT, PlaceProc_Transmitter); |
501 HandlePlacePushButton(w, 12, SPR_CURSOR_TRANSMITTER, VHM_RECT, PlaceProc_Transmitter); |
488 } |
502 } |
489 |
503 |
490 static const uint16 _editor_terraform_keycodes[] = { |
504 static const uint16 _editor_terraform_keycodes[] = { |
491 'D', |
505 'D', |
492 'Q', |
506 'Q', |
493 'W', |
507 'W', |
494 'E', |
508 'E', |
495 'R', |
509 'R', |
496 'T', |
510 'T', |
497 'Y', |
511 'Y', |
498 'U' |
512 'U', |
|
513 'I' |
499 }; |
514 }; |
500 |
515 |
501 typedef void OnButtonClick(Window *w); |
516 typedef void OnButtonClick(Window *w); |
502 static OnButtonClick * const _editor_terraform_button_proc[] = { |
517 static OnButtonClick * const _editor_terraform_button_proc[] = { |
503 EditorTerraformClick_Dynamite, |
518 EditorTerraformClick_Dynamite, |
504 EditorTerraformClick_LowerBigLand, |
519 EditorTerraformClick_LowerBigLand, |
505 EditorTerraformClick_RaiseBigLand, |
520 EditorTerraformClick_RaiseBigLand, |
506 EditorTerraformClick_LevelLand, |
521 EditorTerraformClick_LevelLand, |
507 EditorTerraformClick_WaterArea, |
522 EditorTerraformClick_WaterArea, |
|
523 EditorTerraformClick_RiverArea, |
508 EditorTerraformClick_RockyArea, |
524 EditorTerraformClick_RockyArea, |
509 EditorTerraformClick_DesertLightHouse, |
525 EditorTerraformClick_DesertLightHouse, |
510 EditorTerraformClick_Transmitter |
526 EditorTerraformClick_Transmitter |
511 }; |
527 }; |
512 |
528 |