mirror of https://github.com/OpenRCT2/OpenRCT2.git
Document more addresses
Created defines for all the memory addresses I could find in peep/staff.c and updated everywhere they're being used.
This commit is contained in:
parent
fb9f6be201
commit
7071bd9353
|
@ -228,6 +228,10 @@
|
|||
#define RCT2_ADDRESS_MAP_ARROW_Z 0x009DEA4C
|
||||
#define RCT2_ADDRESS_MAP_ARROW_DIRECTION 0x009DEA4E
|
||||
|
||||
#define RCT2_ADDRESS_COMMAND_MAP_X 0x009DEA5E
|
||||
#define RCT2_ADDRESS_COMMAND_MAP_Y 0x009DEA60
|
||||
#define RCT2_ADDRESS_COMMAND_MAP_Z 0x009DEA62
|
||||
|
||||
//Counts how many ticks the current screen has been open for
|
||||
#define RCT2_ADDRESS_SCREEN_AGE 0x009DEA66
|
||||
#define RCT2_ADDRESS_SCREEN_FLAGS 0x009DEA68
|
||||
|
@ -467,6 +471,7 @@
|
|||
#define RCT2_ADDRESS_RIDE_MEASUREMENTS 0x0138B60C
|
||||
|
||||
#define RCT2_ADDRESS_GRASS_SCENERY_TILEPOS 0x013B0E70
|
||||
#define RCT2_ADDRESS_STAFF_PATROL_AREAS 0x013B0E72
|
||||
|
||||
#define RCT2_ADDRESS_CLIMATE 0x013CA746
|
||||
#define RCT2_ADDRESS_CURRENT_WEATHER 0x013CA74A
|
||||
|
|
|
@ -29,9 +29,6 @@
|
|||
#include "peep.h"
|
||||
#include "staff.h"
|
||||
|
||||
uint32 *gStaffPatrolAreas = (uint32*)0x013B0E72;
|
||||
uint8 *gStaffModes = (uint8*)0x013CA672;
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006BD3A4
|
||||
|
@ -85,9 +82,9 @@ void game_command_hire_new_staff_member(int* eax, int* ebx, int* ecx, int* edx,
|
|||
uint16 _ax = *eax & 0xFFFF, _cx = *ecx & 0xFFFF, _dx = *edx & 0xFFFF;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_WAGES * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = _ax;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = _cx;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = _dx;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = _ax;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = _cx;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = _dx;
|
||||
|
||||
if (RCT2_GLOBAL(0x13573C8, uint16) < 0x190) {
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
|
@ -269,7 +266,7 @@ void game_command_hire_new_staff_member(int* eax, int* ebx, int* ecx, int* edx,
|
|||
RCT2_ADDRESS(RCT2_ADDRESS_STAFF_MODE_ARRAY, uint8)[newStaffId] = STAFF_MODE_WALK;
|
||||
|
||||
for (int edi = 0; edi < 0x80; edi++) {
|
||||
int addr = 0x013B0E72 + (newStaffId << 9) + edi * 4;
|
||||
int addr = RCT2_ADDRESS_STAFF_PATROL_AREAS + (newStaffId << 9) + edi * 4;
|
||||
RCT2_GLOBAL(addr, uint32) = 0;
|
||||
}
|
||||
}
|
||||
|
@ -327,12 +324,12 @@ void game_command_set_staff_patrol(int *eax, int *ebx, int *ecx, int *edx, int *
|
|||
int mask = 1 << (patrolIndex & 0x1F);
|
||||
int base = patrolIndex >> 5;
|
||||
|
||||
uint32 *patrolBits = (uint32*)(0x013B0E72 + patrolOffset + (base * 4));
|
||||
uint32 *patrolBits = (uint32*)(RCT2_ADDRESS_STAFF_PATROL_AREAS + patrolOffset + (base * 4));
|
||||
*patrolBits ^= mask;
|
||||
|
||||
int ispatrolling = 0;
|
||||
for(int i = 0; i < 128; i++){
|
||||
ispatrolling |= *(uint32*)(0x013B0E72 + patrolOffset + (i * 4));
|
||||
ispatrolling |= *(uint32*)(RCT2_ADDRESS_STAFF_PATROL_AREAS + patrolOffset + (i * 4));
|
||||
}
|
||||
|
||||
RCT2_ADDRESS(RCT2_ADDRESS_STAFF_MODE_ARRAY, uint8)[peep->staff_id] &= ~2;
|
||||
|
@ -406,7 +403,7 @@ void staff_update_greyed_patrol_areas()
|
|||
for (int staff_type = 0; staff_type < STAFF_TYPE_COUNT; ++staff_type)
|
||||
{
|
||||
for (int i = 0; i < 128; ++i)
|
||||
RCT2_ADDRESS(0x13B0E72 + ((staff_type + STAFF_MAX_COUNT) * 512), uint32)[i] = 0;
|
||||
RCT2_ADDRESS(RCT2_ADDRESS_STAFF_PATROL_AREAS + ((staff_type + STAFF_MAX_COUNT) * 512), uint32)[i] = 0;
|
||||
|
||||
for (uint16 sprite_index = RCT2_GLOBAL(RCT2_ADDRESS_SPRITES_START_PEEP, uint16); sprite_index != SPRITE_INDEX_NULL; sprite_index = peep->next)
|
||||
{
|
||||
|
@ -415,7 +412,7 @@ void staff_update_greyed_patrol_areas()
|
|||
if (peep->type == PEEP_TYPE_STAFF && staff_type == peep->staff_type)
|
||||
{
|
||||
for (int i = 0; i < 128; ++i)
|
||||
RCT2_ADDRESS(0x13B0E72 + ((staff_type + STAFF_MAX_COUNT) * 512), uint32)[i] |= RCT2_ADDRESS(0x13B0E72 + (peep->staff_id * 512), uint32)[i];
|
||||
RCT2_ADDRESS(RCT2_ADDRESS_STAFF_PATROL_AREAS + ((staff_type + STAFF_MAX_COUNT) * 512), uint32)[i] |= RCT2_ADDRESS(RCT2_ADDRESS_STAFF_PATROL_AREAS + (peep->staff_id * 512), uint32)[i];
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -432,7 +429,7 @@ int staff_is_location_in_patrol_area(rct_peep *peep, int x, int y)
|
|||
int mask = 1 << (patrolIndex & 0x1F);
|
||||
int base = patrolIndex >> 5;
|
||||
|
||||
uint32 *patrolBits = (uint32*)(0x013B0E72 + patrolOffset + (base * 4));
|
||||
uint32 *patrolBits = (uint32*)(RCT2_ADDRESS_STAFF_PATROL_AREAS + patrolOffset + (base * 4));
|
||||
return (*patrolBits & mask) != 0;
|
||||
}
|
||||
|
||||
|
@ -481,5 +478,5 @@ bool staff_is_patrol_area_set(int staffIndex, int x, int y)
|
|||
int peepOffset = staffIndex * 128;
|
||||
int offset = (x | y) >> 5;
|
||||
int bitIndex = (x | y) & 0x1F;
|
||||
return gStaffPatrolAreas[peepOffset + offset] & (1 << bitIndex);
|
||||
return RCT2_ADDRESS(RCT2_ADDRESS_STAFF_PATROL_AREAS, uint32)[peepOffset + offset] & (1 << bitIndex);
|
||||
}
|
||||
|
|
|
@ -49,9 +49,6 @@ enum STAFF_ORDERS{
|
|||
STAFF_ORDERS_FIX_RIDES = (1 << 1)
|
||||
};
|
||||
|
||||
extern uint32 *gStaffPatrolAreas;
|
||||
extern uint8 *gStaffModes;
|
||||
|
||||
void game_command_update_staff_colour(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp);
|
||||
void game_command_hire_new_staff_member(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp);
|
||||
void game_command_set_staff_order(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp);
|
||||
|
|
|
@ -146,12 +146,12 @@ void rct1_import_s4(rct1_s4 *s4)
|
|||
}
|
||||
|
||||
memcpy((void*)0x0135A8F4, &s4->string_table, 0x2F51C);
|
||||
memset((void*)0x013CA672, 0, 204);
|
||||
memset((void*)RCT2_ADDRESS_STAFF_MODE_ARRAY, 0, 204);
|
||||
memcpy((void*)0x0138B580, &s4->map_animations, 0x258F2);
|
||||
memcpy((void*)0x013C6A72, &s4->patrol_areas, sizeof(s4->patrol_areas));
|
||||
|
||||
char *esi = (char*)0x13C6A72;
|
||||
char *edi = (char*)0x13B0E72;
|
||||
char *edi = (char*)RCT2_ADDRESS_STAFF_PATROL_AREAS;
|
||||
int ebx, edx = 116;
|
||||
do {
|
||||
ebx = 32;
|
||||
|
@ -173,7 +173,7 @@ void rct1_import_s4(rct1_s4 *s4)
|
|||
memset(edi, 0, 64); edi += 64;
|
||||
} while (--edx);
|
||||
|
||||
memcpy((void*)0x013CA672, &s4->unk_1F42AA, 116);
|
||||
memcpy((void*)RCT2_ADDRESS_STAFF_MODE_ARRAY, &s4->unk_1F42AA, 116);
|
||||
memcpy((void*)0x013CA73A, &s4->unk_1F431E, 4);
|
||||
memcpy((void*)0x013CA73E, &s4->unk_1F4322, 0x41EA);
|
||||
}
|
||||
|
|
|
@ -4862,7 +4862,7 @@ foundRideEntry:
|
|||
|
||||
if (!(flags & GAME_COMMAND_FLAG_APPLY)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = 0x8000;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = 0x8000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -5063,7 +5063,7 @@ foundRideEntry:
|
|||
window_invalidate_by_class(WC_RIDE_LIST);
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = 0x8000;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = 0x8000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -5091,18 +5091,18 @@ void game_command_demolish_ride(int *eax, int *ebx, int *ecx, int *edx, int *esi
|
|||
{
|
||||
uint8 ride_id = *(uint8*)edx;
|
||||
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = 0;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = 0;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = 0;
|
||||
rct_ride *ride = &g_ride_list[ride_id];
|
||||
int x = 0, y = 0, z = 0;
|
||||
if(ride->overall_view != (uint16)-1){
|
||||
x = ((ride->overall_view & 0xFF) * 32) + 16;
|
||||
y = ((ride->overall_view >> 8) * 32) + 16;
|
||||
z = map_element_height(x, y);
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
}
|
||||
if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) && !gConfigCheat.build_in_pause_mode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
|
@ -5198,9 +5198,9 @@ void game_command_demolish_ride(int *eax, int *ebx, int *ecx, int *edx, int *esi
|
|||
ride->type = RIDE_TYPE_NULL;
|
||||
window_invalidate_by_class(WC_RIDE_LIST);
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PARK_VALUE, money32) = calculate_park_value();
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION * 4;
|
||||
return;
|
||||
}else{
|
||||
|
@ -6307,8 +6307,8 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
|||
// When in known station num mode rideIndex is known and z is unknown
|
||||
|
||||
RCT2_GLOBAL(0x009E32B8, uint32) = 0;
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, sint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = y;
|
||||
|
||||
if (!sub_68B044()) {
|
||||
return MONEY32_UNDEFINED;
|
||||
|
@ -6411,7 +6411,7 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
|||
}
|
||||
|
||||
z = ride->station_heights[station_num] * 8;
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = z;
|
||||
|
||||
if (flags & GAME_COMMAND_FLAG_APPLY && !(flags & 0x48)){
|
||||
footpath_remove_litter(x, y, z);
|
||||
|
|
|
@ -3181,9 +3181,9 @@ void game_command_place_track_design(int* eax, int* ebx, int* ecx, int* edx, int
|
|||
int z = *edi;
|
||||
uint8 flags = *ebx;
|
||||
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, sint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = z;
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)){
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){
|
||||
|
@ -3483,9 +3483,9 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
|||
rct_map_element *mapElement;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = originX + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = originY + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = originZ;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = originX + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = originY + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = originZ;
|
||||
direction &= 3;
|
||||
RCT2_GLOBAL(0x00F441D5, uint32) = properties_1;
|
||||
RCT2_GLOBAL(0x00F441D9, uint32) = properties_2;
|
||||
|
@ -3965,9 +3965,9 @@ void game_command_place_track(int *eax, int *ebx, int *ecx, int *edx, int *esi,
|
|||
|
||||
money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 originY, sint16 originZ, uint8 rotation, uint8 flags){
|
||||
RCT2_GLOBAL(0x00141F56C, uint8) = 0;
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16) = originX + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, sint16) = originY + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = originZ;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = originX + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = originY + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = originZ;
|
||||
RCT2_GLOBAL(0x00F440E1, uint8) = sequence;
|
||||
|
||||
switch (type){
|
||||
|
@ -4252,9 +4252,9 @@ void game_command_set_brakes_speed(int *eax, int *ebx, int *ecx, int *edx, int *
|
|||
brakesSpeed = ((*ebx >> 8) & 0xFF);
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint8) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint8) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint8) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint8) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint8) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint8) = z;
|
||||
|
||||
if (*ebx & GAME_COMMAND_FLAG_APPLY) {
|
||||
*ebx = 0;
|
||||
|
|
|
@ -759,10 +759,10 @@ static void window_footpath_place_path_at_point(int x, int y)
|
|||
if (cost == MONEY32_UNDEFINED) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PATH_ERROR_OCCURED, uint8) = 1;
|
||||
} else if (RCT2_GLOBAL(0x00F3EFD9, uint32) != 0) {
|
||||
// bp = 0x009DEA62
|
||||
// dx = 0x009DEA60
|
||||
// cx = 0x009DEA5E
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
// bp = RCT2_ADDRESS_COMMAND_MAP_Z
|
||||
// dx = RCT2_ADDRESS_COMMAND_MAP_Y
|
||||
// cx = RCT2_ADDRESS_COMMAND_MAP_X
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1284,7 +1284,7 @@ static void window_map_place_park_entrance_tool_down(int x, int y)
|
|||
sound_play_panned(
|
||||
SOUND_PLACE_ITEM,
|
||||
0x8001,
|
||||
RCT2_GLOBAL(0x009DEA62, uint16),
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16),
|
||||
RCT2_GLOBAL(0x009DEA64, uint16),
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_AGE, uint16)
|
||||
);
|
||||
|
|
|
@ -374,9 +374,9 @@ static void window_maze_construction_entrance_tooldown(int x, int y, rct_window*
|
|||
sound_play_panned(
|
||||
SOUND_PLACE_ITEM,
|
||||
0x8001,
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16),
|
||||
RCT2_GLOBAL(0x009DEA60, sint16),
|
||||
RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16),
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16),
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
|
||||
rct_ride* ride = GET_RIDE(rideIndex);
|
||||
if (ride_are_all_possible_entrances_and_exits_built(ride)){
|
||||
|
|
|
@ -3629,9 +3629,9 @@ static void ride_construction_tooldown_entrance_exit(int screenX, int screenY)
|
|||
sound_play_panned(
|
||||
SOUND_PLACE_ITEM,
|
||||
0x8001,
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16),
|
||||
RCT2_GLOBAL(0x009DEA60, uint16),
|
||||
RCT2_GLOBAL(0x009DEA62, uint16)
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16),
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16),
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16)
|
||||
);
|
||||
|
||||
rct_ride *ride = GET_RIDE(RCT2_GLOBAL(0x00F44192, uint8));
|
||||
|
|
|
@ -557,7 +557,7 @@ void window_staff_overview_dropdown(rct_window *w, int widgetIndex, int dropdown
|
|||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
RCT2_ADDRESS(0x13B0E72 + (peep->staff_id * 512), uint32)[i] = 0;
|
||||
RCT2_ADDRESS(RCT2_ADDRESS_STAFF_PATROL_AREAS + (peep->staff_id * 512), uint32)[i] = 0;
|
||||
}
|
||||
RCT2_ADDRESS(RCT2_ADDRESS_STAFF_MODE_ARRAY, uint8)[peep->staff_id] &= ~2;
|
||||
|
||||
|
|
|
@ -347,7 +347,7 @@ static void window_staff_list_tooldown(rct_window *w, int widgetIndex, int x, in
|
|||
continue;
|
||||
|
||||
if (isPatrolAreaSet) {
|
||||
if (!(gStaffModes[peep->staff_id] & 2)) {
|
||||
if (!(RCT2_ADDRESS(RCT2_ADDRESS_STAFF_MODE_ARRAY, uint8)[peep->staff_id] & 2)) {
|
||||
continue;
|
||||
}
|
||||
if (!mechanic_is_location_in_patrol(peep, x, y)) {
|
||||
|
|
|
@ -1467,7 +1467,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
|
||||
if (cost != MONEY32_UNDEFINED){
|
||||
window_close_by_class(WC_ERROR);
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
success = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1481,7 +1481,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
}
|
||||
|
||||
if (!success && !window_scenery_is_build_cluster_tool_on){
|
||||
sound_play_panned(SOUND_ERROR, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_ERROR, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1504,7 +1504,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
return;
|
||||
}
|
||||
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
|
@ -1529,7 +1529,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
|
||||
if (cost != MONEY32_UNDEFINED){
|
||||
window_close_by_class(WC_ERROR);
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1541,7 +1541,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_SCENERY_Z_COORDINATE, sint16) += 8;
|
||||
}
|
||||
|
||||
sound_play_panned(SOUND_ERROR, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_ERROR, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
|
@ -1567,7 +1567,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
|
||||
if (cost != MONEY32_UNDEFINED){
|
||||
window_close_by_class(WC_ERROR);
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1579,7 +1579,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_SCENERY_Z_COORDINATE, sint16) += 8;
|
||||
}
|
||||
|
||||
sound_play_panned(SOUND_ERROR, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_ERROR, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
|
@ -1598,7 +1598,7 @@ static void window_top_toolbar_scenery_tool_down(short x, short y, rct_window* w
|
|||
|
||||
if (cost == MONEY32_UNDEFINED)return;
|
||||
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(0x009DEA5E, uint16), RCT2_GLOBAL(0x009DEA60, uint16), RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
sound_play_panned(SOUND_PLACE_ITEM, 0x8001, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16), RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
|
||||
window_banner_open(banner_id);
|
||||
break;
|
||||
|
|
|
@ -145,7 +145,7 @@ static money32 footpath_element_insert(int type, int x, int y, int z, int slope,
|
|||
return MONEY32_UNDEFINED;
|
||||
|
||||
if ((flags & GAME_COMMAND_FLAG_APPLY) && !(flags & (GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_GHOST)))
|
||||
footpath_remove_litter(x, y, RCT2_GLOBAL(0x009DEA62, uint16));
|
||||
footpath_remove_litter(x, y, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16));
|
||||
|
||||
// loc_6A649D:
|
||||
RCT2_GLOBAL(0x00F3EFD9, money32) += MONEY(12, 00);
|
||||
|
@ -312,9 +312,9 @@ static money32 footpath_place_real(int type, int x, int y, int z, int slope, int
|
|||
rct_map_element *mapElement;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z * 8;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z * 8;
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
|
@ -376,9 +376,9 @@ money32 footpath_remove_real(int x, int y, int z, int flags)
|
|||
rct_map_element *mapElement;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z * 8;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z * 8;
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
|
|
120
src/world/map.c
120
src/world/map.c
|
@ -873,9 +873,9 @@ void game_command_remove_scenery(int* eax, int* ebx, int* ecx, int* edx, int* es
|
|||
cost = entry->small_scenery.removal_price * 10;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint32) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint32) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = base_height * 8;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint32) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint32) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = base_height * 8;
|
||||
|
||||
if (!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
|
@ -894,7 +894,7 @@ void game_command_remove_scenery(int* eax, int* ebx, int* ecx, int* edx, int* es
|
|||
}
|
||||
|
||||
// Check if the land is owned
|
||||
if (!map_is_location_owned(x, y, RCT2_GLOBAL(0x009DEA62, uint32))){
|
||||
if (!map_is_location_owned(x, y, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32))){
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
|
@ -932,9 +932,9 @@ void game_command_remove_large_scenery(int* eax, int* ebx, int* ecx, int* edx, i
|
|||
int x = *eax;
|
||||
int y = *ecx;
|
||||
int z = map_element_height(x, y);
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
|
||||
if (!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) {
|
||||
|
@ -1061,9 +1061,9 @@ void game_command_remove_banner(int* eax, int* ebx, int* ecx, int* edx, int* esi
|
|||
uint8 banner_position = *edx >> 8;
|
||||
int z = base_height * 8;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
|
@ -1111,9 +1111,9 @@ void game_command_set_scenery_colour(int* eax, int* ebx, int* ecx, int* edx, int
|
|||
uint8 color1 = *ebp;
|
||||
uint8 color2 = *ebp >> 8;
|
||||
int z = base_height * 8;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) && !gCheatsSandboxMode){
|
||||
if (!map_is_location_owned(x, y, z)){
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
|
@ -1162,9 +1162,9 @@ void game_command_set_fence_colour(int* eax, int* ebx, int* ecx, int* edx, int*
|
|||
uint8 color2 = *ebp;
|
||||
uint8 color3 = *ebp >> 8;
|
||||
int z = base_height * 8;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
if((RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) || map_is_location_in_park(x, y) || gCheatsSandboxMode){
|
||||
rct_map_element* map_element = map_get_first_element_at(x / 32, y / 32);
|
||||
while(map_element_get_type(map_element) != MAP_ELEMENT_TYPE_FENCE ||
|
||||
|
@ -1215,9 +1215,9 @@ void game_command_set_large_scenery_colour(int* eax, int* ebx, int* ecx, int* ed
|
|||
uint8 color1 = *ebp;
|
||||
uint8 color2 = *ebp >> 8;
|
||||
int z = map_element_height(x, y);
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
|
||||
|
||||
rct_map_element* map_element = map_get_first_element_at(x / 32, y / 32);
|
||||
|
@ -1330,9 +1330,9 @@ void game_command_set_banner_colour(int* eax, int* ebx, int* ecx, int* edx, int*
|
|||
uint8 banner_position = *edx >> 8;
|
||||
uint8 color = *ebp;
|
||||
int z = (base_height * 8);
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) && !gCheatsSandboxMode){
|
||||
if (!map_is_location_owned(x, y, z - 16)){
|
||||
|
@ -1468,9 +1468,9 @@ money32 map_clear_scenery(int x0, int y0, int x1, int y1, int clear, int flags)
|
|||
x = (x0 + x1) / 2 + 16;
|
||||
y = (y0 + y1) / 2 + 16;
|
||||
z = map_element_height(x, y);
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
|
||||
x0 = max(x0, 32);
|
||||
y0 = max(y0, 32);
|
||||
|
@ -1529,9 +1529,9 @@ money32 map_change_surface_style(int x0, int y0, int x1, int y1, uint8 surfaceSt
|
|||
|
||||
int heightMid = map_element_height(xMid, yMid);
|
||||
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = xMid;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = yMid;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = heightMid;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = xMid;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = yMid;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = heightMid;
|
||||
RCT2_GLOBAL(0x009E32B4, uint32) = 0;
|
||||
|
||||
money32 cost = 0;
|
||||
|
@ -1759,9 +1759,9 @@ money32 raise_land(int flags, int x, int y, int z, int ax, int ay, int bx, int b
|
|||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint32) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint32) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint32) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint32) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = z;
|
||||
return cost;
|
||||
}
|
||||
|
||||
|
@ -1823,9 +1823,9 @@ money32 lower_land(int flags, int x, int y, int z, int ax, int ay, int bx, int b
|
|||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint32) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint32) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint32) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint32) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = z;
|
||||
return cost;
|
||||
}
|
||||
|
||||
|
@ -1887,9 +1887,9 @@ money32 raise_water(sint16 x0, sint16 y0, sint16 x1, sint16 y1, uint8 flags)
|
|||
z = water_height_z;
|
||||
if (z != 0)
|
||||
z = base_height_z;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint32) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint32) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint32) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint32) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = z;
|
||||
sound_play_panned(SOUND_LAYING_OUT_WATER, 0x8001, x, y, z);
|
||||
}
|
||||
|
||||
|
@ -1949,9 +1949,9 @@ money32 lower_water(sint16 x0, sint16 y0, sint16 x1, sint16 y1, uint8 flags)
|
|||
z = water_height_z;
|
||||
if (z == 0)
|
||||
z = base_height_z;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint32) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint32) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint32) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint32) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = z;
|
||||
sound_play_panned(SOUND_LAYING_OUT_WATER, 0x8001, x, y, z);
|
||||
}
|
||||
|
||||
|
@ -2036,9 +2036,9 @@ void game_command_set_water_height(int* eax, int* ebx, int* ecx, int* edx, int*
|
|||
int y = *ecx;
|
||||
uint8 base_height = *edx;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, sint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = base_height * 8;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = base_height * 8;
|
||||
if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
|
@ -2170,9 +2170,9 @@ void game_command_place_banner(int* eax, int* ebx, int* ecx, int* edx, int* esi,
|
|||
uint8 edge = *edx >> 8;
|
||||
uint8 colour = *edi;
|
||||
uint8 type = *ebx >> 8;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint32) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint32) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, uint32) = base_height * 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint32) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint32) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = base_height * 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode){
|
||||
if(sub_68B044() && x < 8192 && y < 8192){
|
||||
|
@ -2263,15 +2263,15 @@ void game_command_place_scenery(int* eax, int* ebx, int* ecx, int* edx, int* esi
|
|||
if(base_height & 0xFFFF0000){
|
||||
base_height >>= 16;
|
||||
}
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = base_height;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = base_height;
|
||||
if(F64EC8){
|
||||
base_height = F64EC8;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = base_height;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = base_height;
|
||||
}
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) += 16;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) += 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) += 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) += 16;
|
||||
if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode){
|
||||
if(sub_68B044()){
|
||||
if(RCT2_GLOBAL(0x009D8150, uint8) & 1 || (x <= RCT2_GLOBAL(RCT2_ADDRESS_MAP_MAX_XY, uint16) && y <= RCT2_GLOBAL(RCT2_ADDRESS_MAP_MAX_XY, uint16))){
|
||||
|
@ -2474,12 +2474,12 @@ void game_command_place_fence(int* eax, int* ebx, int* ecx, int* edx, int* esi,
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4;
|
||||
// Banner index *not used*
|
||||
RCT2_GLOBAL(0x00141F728, uint8) = 0xFF;
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16) = position.x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, sint16) = position.y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = position.z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = position.x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = position.y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = position.z;
|
||||
|
||||
if (position.z == 0){
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = map_element_height(position.x, position.y) & 0xFFFF;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = map_element_height(position.x, position.y) & 0xFFFF;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){
|
||||
|
@ -2724,9 +2724,9 @@ void game_command_place_large_scenery(int* eax, int* ebx, int* ecx, int* edx, in
|
|||
uint8 rotation = *ebx >> 8;
|
||||
uint8 entry_index = *edi;
|
||||
int base_height = map_element_height(x, y);
|
||||
RCT2_GLOBAL(0x009DEA5E, sint16) = x + 16;
|
||||
RCT2_GLOBAL(0x009DEA60, sint16) = y + 16;
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = base_height;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = x + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = y + 16;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = base_height;
|
||||
RCT2_GLOBAL(0x00F64F14, uint8) = 0;
|
||||
uint8 banner_id = 0xFF;
|
||||
RCT2_GLOBAL(0x00F4389A, uint32) = 0;
|
||||
|
@ -2803,7 +2803,7 @@ void game_command_place_large_scenery(int* eax, int* ebx, int* ecx, int* edx, in
|
|||
if(z != 0){
|
||||
F43884 = z;
|
||||
}
|
||||
RCT2_GLOBAL(0x009DEA62, sint16) = F43884;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = F43884;
|
||||
tile = scenery_entry->large_scenery.tiles;
|
||||
uint8 tile_num = 0;
|
||||
do{
|
||||
|
|
|
@ -812,9 +812,9 @@ void game_command_remove_park_entrance(int *eax, int *ebx, int *ecx, int *edx, i
|
|||
z = *edx * 16;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LAND_PURCHASE * 4;
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
|
||||
if (!(*ebx & GAME_COMMAND_FLAG_APPLY)) {
|
||||
*ebx = 0;
|
||||
|
@ -1103,9 +1103,9 @@ int map_buy_land_rights(int x0, int y0, int x1, int y1, int setting, int flags)
|
|||
x = (x0 + x1) / 2 + 16;
|
||||
y = (y0 + y1) / 2 + 16;
|
||||
z = map_element_height(x, y);
|
||||
RCT2_GLOBAL(0x009DEA5E, uint16) = x;
|
||||
RCT2_GLOBAL(0x009DEA60, uint16) = y;
|
||||
RCT2_GLOBAL(0x009DEA62, uint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
|
||||
// Game command modified to accept selection size
|
||||
totalCost = 0;
|
||||
|
|
|
@ -467,9 +467,9 @@ void money_effect_create(money32 value)
|
|||
rct_viewport *mainViewport;
|
||||
rct_xyz16 mapPosition;
|
||||
|
||||
mapPosition.x = RCT2_GLOBAL(0x009DEA5E, uint16);
|
||||
mapPosition.y = RCT2_GLOBAL(0x009DEA60, uint16);
|
||||
mapPosition.z = RCT2_GLOBAL(0x009DEA62, uint16);
|
||||
mapPosition.x = RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16);
|
||||
mapPosition.y = RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16);
|
||||
mapPosition.z = RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16);
|
||||
if (mapPosition.x == (sint16)0x8000) {
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow == NULL)
|
||||
|
|
Loading…
Reference in New Issue