1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-22 22:34:33 +01:00

finalise placing of trees

This commit is contained in:
IntelOrca
2015-02-10 19:52:24 +00:00
parent 9cc108abbb
commit 5b3c1b6764
6 changed files with 373 additions and 55 deletions

View File

@@ -45,7 +45,7 @@ enum {
WIDX_GENERATE,
WIDX_MAP_SIZE,
WIDX_MAP_SIZE = 7,
WIDX_MAP_SIZE_UP,
WIDX_MAP_SIZE_DOWN,
WIDX_BASE_HEIGHT,
@@ -55,7 +55,10 @@ enum {
WIDX_WATER_LEVEL_UP,
WIDX_WATER_LEVEL_DOWN,
WIDX_FLOOR_TEXTURE,
WIDX_WALL_TEXTURE
WIDX_WALL_TEXTURE,
WIDX_RANDOM_TERRAIN = 7,
WIDX_PLACE_TREES,
};
#pragma region Widgets
@@ -93,6 +96,9 @@ static rct_widget window_mapgen_random_widgets[] = {
{ WWT_TAB, 1, 34, 64, 17, 43, 0x2000144E, STR_NONE },
{ WWT_DROPDOWN_BUTTON, 1, 104, 198, 52, 63, 2694, STR_NONE },
{ WWT_CHECKBOX, 1, 4, 198, 52, 63, 2695, STR_NONE },
{ WWT_CHECKBOX, 1, 4, 198, 70, 81, 2696, STR_NONE },
{ WIDGETS_END },
};
@@ -207,7 +213,9 @@ static uint32 window_mapgen_page_enabled_widgets[] = {
(1 << WIDX_CLOSE) |
(1 << WIDX_TAB_1) |
(1 << WIDX_TAB_2) |
(1 << WIDX_GENERATE)
(1 << WIDX_GENERATE) |
(1 << WIDX_RANDOM_TERRAIN) |
(1 << WIDX_PLACE_TREES)
};
#pragma endregion
@@ -236,6 +244,8 @@ static int _baseHeight = 12;
static int _waterLevel = 6;
static int _floorTexture = TERRAIN_GRASS;
static int _wallTexture = TERRAIN_EDGE_ROCK;
static int _randomTerrrain = 1;
static int _placeTrees = 1;
rct_window *window_mapgen_open()
{
@@ -267,7 +277,7 @@ rct_window *window_mapgen_open()
window_invalidate(w);
w->widgets = window_mapgen_page_widgets[0];
w->enabled_widgets = window_mapgen_page_enabled_widgets[0];
w->var_020 = RCT2_GLOBAL(0x00988E3C, uint32);
w->var_020 = 0xFFFFFFFF;
w->event_handlers = window_mapgen_page_events[0];
w->pressed_widgets = 0;
w->disabled_widgets = 0;
@@ -282,6 +292,7 @@ static void window_mapgen_base_mouseup()
{
short widgetIndex;
rct_window *w;
mapgen_settings mapgenSettings;
window_widget_get_registers(w, widgetIndex);
@@ -294,7 +305,13 @@ static void window_mapgen_base_mouseup()
window_mapgen_set_page(w, widgetIndex - WIDX_TAB_1);
break;
case WIDX_GENERATE:
mapgen_generate_blank(_mapSize, _baseHeight + 2, _waterLevel + 2, _floorTexture, _wallTexture);
mapgenSettings.mapSize = _mapSize;
mapgenSettings.height = _baseHeight + 2;
mapgenSettings.waterLevel = _waterLevel + 2;
mapgenSettings.floor = _floorTexture;
mapgenSettings.wall = _wallTexture;
mapgen_generate_blank(&mapgenSettings);
gfx_invalidate_screen();
break;
}
@@ -470,6 +487,7 @@ static void window_mapgen_random_mouseup()
{
rct_window * w;
short widgetIndex;
mapgen_settings mapgenSettings;
window_widget_get_registers(w, widgetIndex);
@@ -482,9 +500,22 @@ static void window_mapgen_random_mouseup()
window_mapgen_set_page(w, widgetIndex - WIDX_TAB_1);
break;
case WIDX_GENERATE:
mapgen_generate(_mapSize);
mapgenSettings.mapSize = _mapSize;
mapgenSettings.height = _baseHeight + 2;
mapgenSettings.waterLevel = _waterLevel + 2;
mapgenSettings.floor = _randomTerrrain ? -1 : _floorTexture;
mapgenSettings.wall = _randomTerrrain ? -1 : _wallTexture;
mapgenSettings.trees = _placeTrees;
mapgen_generate(&mapgenSettings);
gfx_invalidate_screen();
break;
case WIDX_RANDOM_TERRAIN:
_randomTerrrain ^= 1;
break;
case WIDX_PLACE_TREES:
_placeTrees ^= 1;
break;
}
}
@@ -512,6 +543,12 @@ static void window_mapgen_random_invalidate()
window_init_scroll_widgets(w);
}
w->pressed_widgets = 0;
if (_randomTerrrain)
w->pressed_widgets |= 1 << WIDX_RANDOM_TERRAIN;
if (_placeTrees)
w->pressed_widgets |= 1 << WIDX_PLACE_TREES;
window_mapgen_set_pressed_tab(w);
window_mapgen_anchor_border_widgets(w);
}