mirror of
https://github.com/OpenRCT2/OpenRCT2.git
synced 2025-01-22 18:31:59 -05:00
Landscaping costs $5 per quarter cell
Change the landscaping cost to be $5 per quarter cell changed. This normalizes the cost for the maintain tool.
This commit is contained in:
parent
76f0ed3f9e
commit
8075d69a68
1 changed files with 52 additions and 47 deletions
|
@ -1445,6 +1445,52 @@ static sint32 map_set_land_height_clear_func(rct_map_element** map_element, sint
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static sint32 map_get_corner_height(sint32 z, sint32 slope, sint32 direction)
|
||||||
|
{
|
||||||
|
switch (direction) {
|
||||||
|
case 0:
|
||||||
|
if (slope & 1) {
|
||||||
|
z += 2;
|
||||||
|
if (slope == 27) {
|
||||||
|
z += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (slope & 2) {
|
||||||
|
z += 2;
|
||||||
|
if (slope == 23) {
|
||||||
|
z += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (slope & 4) {
|
||||||
|
z += 2;
|
||||||
|
if (slope == 30) {
|
||||||
|
z += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (slope & 8) {
|
||||||
|
z += 2;
|
||||||
|
if (slope == 29) {
|
||||||
|
z += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return z;
|
||||||
|
}
|
||||||
|
|
||||||
|
static sint32 map_element_get_corner_height(rct_map_element *mapElement, sint32 direction)
|
||||||
|
{
|
||||||
|
sint32 z = mapElement->base_height;
|
||||||
|
sint32 slope = mapElement->properties.surface.slope & MAP_ELEMENT_SLOPE_MASK;
|
||||||
|
return map_get_corner_height(z, slope, direction);
|
||||||
|
}
|
||||||
|
|
||||||
static money32 map_set_land_height(sint32 flags, sint32 x, sint32 y, sint32 height, sint32 style, sint32 selectionType)
|
static money32 map_set_land_height(sint32 flags, sint32 x, sint32 y, sint32 height, sint32 style, sint32 selectionType)
|
||||||
{
|
{
|
||||||
rct_map_element *mapElement;
|
rct_map_element *mapElement;
|
||||||
|
@ -1498,7 +1544,6 @@ static money32 map_set_land_height(sint32 flags, sint32 x, sint32 y, sint32 heig
|
||||||
if(!gCheatsDisableClearanceChecks)
|
if(!gCheatsDisableClearanceChecks)
|
||||||
wall_remove_at(x, y, height * 8 - 16, height * 8 + 32);
|
wall_remove_at(x, y, height * 8 - 16, height * 8 + 32);
|
||||||
}
|
}
|
||||||
cost += MONEY(20, 0);
|
|
||||||
|
|
||||||
if (!gCheatsDisableClearanceChecks) {
|
if (!gCheatsDisableClearanceChecks) {
|
||||||
//Check for obstructing scenery
|
//Check for obstructing scenery
|
||||||
|
@ -1612,6 +1657,12 @@ static money32 map_set_land_height(sint32 flags, sint32 x, sint32 y, sint32 heig
|
||||||
} while (!map_element_is_last_for_tile(mapElement++));
|
} while (!map_element_is_last_for_tile(mapElement++));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i += 1) {
|
||||||
|
int cornerHeight = map_element_get_corner_height(surfaceElement, i);
|
||||||
|
cornerHeight -= map_get_corner_height(height, style & MAP_ELEMENT_SLOPE_MASK, i);
|
||||||
|
cost += MONEY(abs(cornerHeight) * 5 / 2, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if(flags & GAME_COMMAND_FLAG_APPLY)
|
if(flags & GAME_COMMAND_FLAG_APPLY)
|
||||||
{
|
{
|
||||||
if (gGameCommandNestLevel == 1) {
|
if (gGameCommandNestLevel == 1) {
|
||||||
|
@ -2035,52 +2086,6 @@ void game_command_lower_land(sint32* eax, sint32* ebx, sint32* ecx, sint32* edx,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static sint32 map_get_corner_height(sint32 z, sint32 slope, sint32 direction)
|
|
||||||
{
|
|
||||||
switch (direction) {
|
|
||||||
case 0:
|
|
||||||
if (slope & 1) {
|
|
||||||
z += 2;
|
|
||||||
if (slope == 27) {
|
|
||||||
z += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (slope & 2) {
|
|
||||||
z += 2;
|
|
||||||
if (slope == 23) {
|
|
||||||
z += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if (slope & 4) {
|
|
||||||
z += 2;
|
|
||||||
if (slope == 30) {
|
|
||||||
z += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
if (slope & 8) {
|
|
||||||
z += 2;
|
|
||||||
if (slope == 29) {
|
|
||||||
z += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return z;
|
|
||||||
}
|
|
||||||
|
|
||||||
static sint32 map_element_get_corner_height(rct_map_element *mapElement, sint32 direction)
|
|
||||||
{
|
|
||||||
sint32 z = mapElement->base_height;
|
|
||||||
sint32 slope = mapElement->properties.surface.slope & MAP_ELEMENT_SLOPE_MASK;
|
|
||||||
return map_get_corner_height(z, slope, direction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* rct2: 0x0068C3B2 slope 1, style 0
|
* rct2: 0x0068C3B2 slope 1, style 0
|
||||||
|
|
Loading…
Reference in a new issue