Merge pull request #4210 from janisozaur/integrate

Fix pointer types for 64 bit
This commit is contained in:
Ted John 2016-08-04 23:14:29 +01:00 committed by GitHub
commit 32fea99c36
12 changed files with 35 additions and 34 deletions

View File

@ -76,13 +76,13 @@ static void sprite_file_load_palette(int spriteIndex)
static void sprite_entries_make_absolute()
{
for (uint32 i = 0; i < spriteFileHeader.num_entries; i++)
spriteFileEntries[i].offset += (int)spriteFileData;
spriteFileEntries[i].offset += (uintptr_t)spriteFileData;
}
static void sprite_entries_make_relative()
{
for (uint32 i = 0; i < spriteFileHeader.num_entries; i++)
spriteFileEntries[i].offset -= (int)spriteFileData;
spriteFileEntries[i].offset -= (uintptr_t)spriteFileData;
}
static bool sprite_file_open(const utf8 *path)
@ -443,7 +443,7 @@ int cmdline_for_sprite(const char **argv, int argc)
printf("height: %d\n", g1->height);
printf("x offset: %d\n", g1->x_offset);
printf("y offset: %d\n", g1->y_offset);
printf("data offset: 0x%X\n", (uint32)g1->offset);
printf("data offset: %p\n", g1->offset);
sprite_file_close();
return 1;

View File

@ -282,6 +282,10 @@ typedef struct rct_window {
rct_research_item* research_item;
rct_object_entry* object_entry;
scenario_index_entry* highlighted_scenario;
union {
uint16 var_494;
uint16 var_496;
};
};
uint8 var_498[0x14];
sint16 selected_tab; // 0x4AC

View File

@ -332,7 +332,7 @@ void sub_684AC3(){
for (int i = 0; i < 19; ++i){
rct_scenery_set_entry* scenery_set = get_scenery_group_entry(i);
if ((int)scenery_set == -1)continue;
if ((intptr_t)scenery_set == -1)continue;
for (int j = 0; j < scenery_set->entry_count; ++j){
uint8 value = scenery_set->scenery_entries[j] & 0x1F;

View File

@ -842,7 +842,7 @@ static void window_guest_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dp
int eax = 0;
if (w->page == WINDOW_GUEST_OVERVIEW){
eax = w->highlighted_item>>16;
eax = w->var_496;
eax &= 0xFFFC;
}
ebx += eax;
@ -1114,11 +1114,10 @@ void window_guest_overview_invalidate(rct_window *w)
* rct2: 0x696F45
*/
void window_guest_overview_update(rct_window* w){
int var_496 = w->highlighted_item >> 16;
int var_496 = w->var_496;
var_496++;
var_496 %= 24;
w->highlighted_item &= 0x0000FFFF;
w->highlighted_item |= var_496 << 16;
w->var_496 = var_496;
widget_invalidate(w, WIDX_TAB_1);
widget_invalidate(w, WIDX_TAB_2);

View File

@ -1674,7 +1674,7 @@ static void map_window_set_pixels(rct_window *w)
}
x += dx;
y += dy;
destination = (uint16*)((int)destination + 513);
destination = (uint16*)((uintptr_t)destination + 513);
}
RCT2_GLOBAL(0x00F1AD6C, uint32)++;
if (RCT2_GLOBAL(0x00F1AD6C, uint32) >= 256)

View File

@ -359,7 +359,7 @@ static void window_multiplayer_groups_show_group_dropdown(rct_window *w, rct_wid
for (i = 0; i < network_get_num_groups(); i++) {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = (int)network_get_group_name(i);
gDropdownItemsArgs[i] = (uintptr_t)network_get_group_name(i);
}
if (widget == &window_multiplayer_groups_widgets[WIDX_DEFAULT_GROUP_DROPDOWN]) {
dropdown_set_checked(network_get_group_index(network_get_default_group()), true);

View File

@ -258,7 +258,7 @@ static void window_player_overview_show_group_dropdown(rct_window *w, rct_widget
for (i = 0; i < network_get_num_groups(); i++) {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = (int)network_get_group_name(i);
gDropdownItemsArgs[i] = (uintptr_t)network_get_group_name(i);
}
dropdown_set_checked(network_get_group_index(network_get_player_group(player)), true);

View File

@ -40,8 +40,6 @@
#include "dropdown.h"
#include "../rct1.h"
#define var_496(w) RCT2_GLOBAL((int)w + 0x496, uint16)
enum {
WINDOW_RIDE_PAGE_MAIN,
WINDOW_RIDE_PAGE_VEHICLE,
@ -1568,7 +1566,7 @@ static rct_window *window_ride_open(int rideIndex)
numSubTypes++;
}
}
var_496(w) = numSubTypes;
w->var_496 = numSubTypes;
window_ride_update_overall_view((uint8) rideIndex);
@ -2509,8 +2507,8 @@ static rct_string_id window_ride_get_status_overall_view(rct_window *w, void *ar
rct_string_id stringId;
ride_get_status(w->number, &formatSecondary, &argument);
RCT2_GLOBAL((int)arguments + 0, uint16) = formatSecondary;
RCT2_GLOBAL((int)arguments + 2, uint32) = argument;
RCT2_GLOBAL((uintptr_t)arguments + 0, uint16) = formatSecondary;
RCT2_GLOBAL((uintptr_t)arguments + 2, uintptr_t) = argument;
stringId = STR_RED_OUTLINED_STRING;
if (formatSecondary != STR_BROKEN_DOWN && formatSecondary != STR_CRASHED)
stringId = STR_BLACK_STRING;
@ -2547,7 +2545,7 @@ static rct_string_id window_ride_get_status_vehicle(rct_window *w, void *argumen
trackType == TRACK_ELEM_DIAG_25_DEG_UP_TO_FLAT ||
trackType == TRACK_ELEM_DIAG_60_DEG_UP_TO_FLAT) {
if (track_type_is_invented(ride->type, TRACK_BLOCK_BRAKES) && vehicle->velocity == 0) {
RCT2_GLOBAL((int)arguments + 0, rct_string_id) = STR_STOPPED_BY_BLOCK_BRAKES;
RCT2_GLOBAL((uintptr_t)arguments + 0, rct_string_id) = STR_STOPPED_BY_BLOCK_BRAKES;
return STR_BLACK_STRING;
}
}
@ -2556,7 +2554,7 @@ static rct_string_id window_ride_get_status_vehicle(rct_window *w, void *argumen
stringId = VehicleStatusNames[vehicle->status];
// Get speed in mph
RCT2_GLOBAL((int)arguments + 2, uint16) = (abs(vehicle->velocity) * 9) >> 18;
RCT2_GLOBAL((uintptr_t)arguments + 2, uint16) = (abs(vehicle->velocity) * 9) >> 18;
if (ride->type == RIDE_TYPE_MINI_GOLF)
return 0;
@ -2566,9 +2564,9 @@ static rct_string_id window_ride_get_status_vehicle(rct_window *w, void *argumen
}
const ride_component_name stationName = RideComponentNames[RideNameConvention[ride->type].station];
RCT2_GLOBAL((int)arguments + 4, rct_string_id) = (ride->num_stations > 1) ? stationName.number : stationName.singular;
RCT2_GLOBAL((int)arguments + 6, uint16) = vehicle->current_station + 1;
RCT2_GLOBAL((int)arguments + 0, rct_string_id) = stringId;
RCT2_GLOBAL((uintptr_t)arguments + 4, rct_string_id) = (ride->num_stations > 1) ? stationName.number : stationName.singular;
RCT2_GLOBAL((uintptr_t)arguments + 6, uint16) = vehicle->current_station + 1;
RCT2_GLOBAL((uintptr_t)arguments + 0, rct_string_id) = stringId;
return stringId != STR_CRASHING && stringId != STR_CRASHED_0 ? STR_BLACK_STRING : STR_RED_OUTLINED_STRING;
}
@ -2608,7 +2606,7 @@ static rct_string_id window_ride_get_status_station(rct_window *w, void *argumen
// Queue length
if (stringId == 0) {
queueLength = ride->queue_length[stationIndex];
RCT2_GLOBAL((int)arguments + 2, uint16) = queueLength;
RCT2_GLOBAL((uintptr_t)arguments + 2, uint16) = queueLength;
stringId = STR_QUEUE_EMPTY;
if (queueLength == 1)
stringId++; // TODO: String calculation
@ -2616,7 +2614,7 @@ static rct_string_id window_ride_get_status_station(rct_window *w, void *argumen
stringId += 2;// TODO: String calculation
}
RCT2_GLOBAL((int)arguments + 0, rct_string_id) = stringId;
RCT2_GLOBAL((uintptr_t)arguments + 0, rct_string_id) = stringId;
return STR_BLACK_STRING;
}
@ -2898,7 +2896,7 @@ static void window_ride_vehicle_invalidate(rct_window *w)
// Vehicle type
window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].text = rideEntry->name;
// Always show a dropdown button when changing subtypes is allowed
if ((var_496(w) <= 1 || (rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE)) && !(gConfigInterface.select_by_track_type || gCheatsShowVehiclesFromOtherTrackTypes)) {
if ((w->var_496 <= 1 || (rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE)) && !(gConfigInterface.select_by_track_type || gCheatsShowVehiclesFromOtherTrackTypes)) {
window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].type = WWT_14;
window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE_DROPDOWN].type = WWT_EMPTY;
w->enabled_widgets &= ~(1 << WIDX_VEHICLE_TYPE);
@ -2986,7 +2984,7 @@ static void window_ride_vehicle_paint(rct_window *w, rct_drawpixelinfo *dpi)
}
y += 15;
if ((!(rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE) || rideTypeShouldLoseSeparateFlag(rideEntry)) && var_496(w) > 1) {
if ((!(rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE) || rideTypeShouldLoseSeparateFlag(rideEntry)) && w->var_496 > 1) {
// Excitement Factor
factor = rideEntry->excitement_multipler;
if (factor > 0) {

View File

@ -593,12 +593,12 @@ void window_staff_overview_dropdown(rct_window *w, int widgetIndex, int dropdown
*/
void window_staff_overview_update(rct_window* w)
{
int var_496 = RCT2_GLOBAL((int)w + 0x496, uint16);
int var_496 = w->var_496;
var_496++;
if (var_496 >= 24) {
var_496 = 0;
}
RCT2_GLOBAL((int)w + 0x496, uint16) = var_496;
w->var_496 = var_496;
widget_invalidate(w, WIDX_TAB_1);
}

View File

@ -368,7 +368,7 @@ static void window_themes_mouseup(rct_window *w, int widgetIndex)
case WIDX_THEMES_DUPLICATE_BUTTON:;
activeAvailableThemeIndex = theme_manager_get_active_available_theme_index();
activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex);
window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_THEMES_PROMPT_ENTER_THEME_NAME, STR_STRING, (uint32)activeThemeName, 64);
window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_THEMES_PROMPT_ENTER_THEME_NAME, STR_STRING, (uintptr_t)activeThemeName, 64);
break;
case WIDX_THEMES_DELETE_BUTTON:
if (theme_get_flags() & UITHEME_FLAG_PREDEFINED) {
@ -383,7 +383,7 @@ static void window_themes_mouseup(rct_window *w, int widgetIndex)
} else {
activeAvailableThemeIndex = theme_manager_get_active_available_theme_index();
activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex);
window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_THEMES_PROMPT_ENTER_THEME_NAME, STR_STRING, (uint32)activeThemeName, 64);
window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_THEMES_PROMPT_ENTER_THEME_NAME, STR_STRING, (uintptr_t)activeThemeName, 64);
}
break;
}
@ -493,7 +493,7 @@ static void window_themes_mousedown(int widgetIndex, rct_window* w, rct_widget*
widget--;
for (int i = 0; i < num_items; i++) {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = (uint32)theme_manager_get_available_theme_name(i);
gDropdownItemsArgs[i] = (uintptr_t)theme_manager_get_available_theme_name(i);
}
window_dropdown_show_text_custom_width(
@ -766,7 +766,7 @@ void window_themes_paint(rct_window *w, rct_drawpixelinfo *dpi)
if (_selected_tab == WINDOW_THEMES_TAB_SETTINGS) {
int activeAvailableThemeIndex = theme_manager_get_active_available_theme_index();
const utf8 * activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex);
set_format_arg(0, uint32, (uint32)activeThemeName);
set_format_arg(0, uintptr_t, (uintptr_t)activeThemeName);
gfx_draw_string_left(dpi, STR_THEMES_LABEL_CURRENT_THEME, NULL, w->colours[1], w->x + 10, w->y + window_themes_widgets[WIDX_THEMES_PRESETS].top + 1);
gfx_draw_string_left_clipped(
dpi,

View File

@ -347,7 +347,7 @@ static void window_title_command_editor_mousedown(int widgetIndex, rct_window* w
num_items = gConfigTitleSequences.presets[gCurrentTitleSequence].num_saves;
for (i = 0; i < num_items; i++) {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].saves[i];
gDropdownItemsArgs[i] = (uintptr_t)&gConfigTitleSequences.presets[gCurrentTitleSequence].saves[i];
}
window_dropdown_show_text_custom_width(
@ -564,7 +564,7 @@ static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo *
);
}
else {
set_format_arg(0, uint32, (uint32)&gConfigTitleSequences.presets[gCurrentTitleSequence].saves[command.saveIndex]);
set_format_arg(0, uintptr_t, (uintptr_t)&gConfigTitleSequences.presets[gCurrentTitleSequence].saves[command.saveIndex]);
gfx_draw_string_left_clipped(
dpi,
STR_STRING,

View File

@ -572,7 +572,7 @@ static void window_title_editor_mousedown(int widgetIndex, rct_window* w, rct_wi
widget--;
for (i = 0; i < num_items; i++) {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = (uint32)&gConfigTitleSequences.presets[i].name;
gDropdownItemsArgs[i] = (uintptr_t)&gConfigTitleSequences.presets[i].name;
}
window_dropdown_show_text_custom_width(