mirror of https://github.com/OpenRCT2/OpenRCT2.git
Changed struct for last time
This commit is contained in:
parent
5795165ced
commit
810590e754
22
src/window.c
22
src/window.c
|
@ -395,11 +395,11 @@ rct_window *window_create(int x, int y, int width, int height, uint32 *event_han
|
|||
w->disabled_widgets = 0;
|
||||
w->pressed_widgets = 0;
|
||||
w->var_020 = 0;
|
||||
w->focus.coordinate.var_480 = 0;
|
||||
w->focus.coordinate.viewport_target_x = 0;
|
||||
w->focus.coordinate.viewport_target_y = 0;
|
||||
w->focus.coordinate.viewport_target_z = 0;
|
||||
w->focus.coordinate.viewport_target_rotation = 0;
|
||||
w->viewport_focus_coordinates.var_480 = 0;
|
||||
w->viewport_focus_coordinates.x = 0;
|
||||
w->viewport_focus_coordinates.y = 0;
|
||||
w->viewport_focus_coordinates.z = 0;
|
||||
w->viewport_focus_coordinates.rotation = 0;
|
||||
w->page = 0;
|
||||
w->var_48C = 0;
|
||||
w->frame_no = 0;
|
||||
|
@ -896,18 +896,18 @@ void window_scroll_to_viewport(rct_window *w)
|
|||
int x, y, z;
|
||||
rct_window *mainWindow;
|
||||
// In original checked to make sure x and y were not -1 as well.
|
||||
if (w->viewport == NULL || w->focus.coordinate.viewport_target_y == -1)
|
||||
if (w->viewport == NULL || w->viewport_focus_coordinates.y == -1)
|
||||
return;
|
||||
|
||||
if (w->focus.sprite.type & VIEWPORT_FOCUS_TYPE_SPRITE) {
|
||||
rct_sprite *sprite = &(g_sprite_list[w->focus.sprite.viewport_target_sprite_id]);
|
||||
if (w->viewport_focus_sprite.type & VIEWPORT_FOCUS_TYPE_SPRITE) {
|
||||
rct_sprite *sprite = &(g_sprite_list[w->viewport_focus_sprite.sprite_id]);
|
||||
x = sprite->unknown.x;
|
||||
y = sprite->unknown.y;
|
||||
z = sprite->unknown.z;
|
||||
} else {
|
||||
x = w->focus.coordinate.viewport_target_x;
|
||||
y = w->focus.coordinate.viewport_target_y & VIEWPORT_FOCUS_Y_MASK;
|
||||
z = w->focus.coordinate.viewport_target_z;
|
||||
x = w->viewport_focus_coordinates.x;
|
||||
y = w->viewport_focus_coordinates.y & VIEWPORT_FOCUS_Y_MASK;
|
||||
z = w->viewport_focus_coordinates.z;
|
||||
}
|
||||
|
||||
mainWindow = window_get_main();
|
||||
|
|
27
src/window.h
27
src/window.h
|
@ -93,20 +93,24 @@ typedef struct {
|
|||
sint16 v_thumb_bottom; // 0x10
|
||||
} rct_scroll;
|
||||
|
||||
// Type is viewport_target_y & 0x8000 == 0
|
||||
/**
|
||||
* Viewport focus structure.
|
||||
* size: 0xA
|
||||
* Use sprite.type to work out type.
|
||||
*/
|
||||
typedef struct{
|
||||
sint16 var_480;
|
||||
sint16 viewport_target_x; //0x482
|
||||
sint16 viewport_target_y; //0x484 & VIEWPORT_FOCUS_Y_MASK
|
||||
sint16 viewport_target_z; //0x486
|
||||
uint8 viewport_target_rotation;//0x488
|
||||
sint16 x; //0x482
|
||||
sint16 y; //0x484 & VIEWPORT_FOCUS_Y_MASK
|
||||
sint16 z; //0x486
|
||||
uint8 rotation;//0x488
|
||||
uint8 pad_489;
|
||||
} coordinate_focus;
|
||||
|
||||
// Type is viewport_target_sprite_id & 0x80000000 != 0
|
||||
typedef struct{
|
||||
sint16 var_480;
|
||||
uint16 viewport_target_sprite_id; //0x482
|
||||
uint16 sprite_id; //0x482
|
||||
uint8 pad_484;
|
||||
uint8 type; //0x485 & VIEWPORT_FOCUS_TYPE_MASK
|
||||
uint32 pad_486;
|
||||
|
@ -119,14 +123,6 @@ enum{
|
|||
};
|
||||
#define VIEWPORT_FOCUS_Y_MASK 0x3FFF;
|
||||
|
||||
/**
|
||||
* Viewport focus structure.
|
||||
* size: 0xA
|
||||
*/
|
||||
typedef union{
|
||||
sprite_focus sprite;
|
||||
coordinate_focus coordinate;
|
||||
} viewport_focus;
|
||||
|
||||
typedef struct{
|
||||
sint16 campaign_type;
|
||||
|
@ -188,7 +184,8 @@ typedef struct rct_window {
|
|||
sint16 pad_47C;
|
||||
sint16 pad_47E;
|
||||
union{
|
||||
viewport_focus focus;
|
||||
coordinate_focus viewport_focus_coordinates;
|
||||
sprite_focus viewport_focus_sprite;
|
||||
campaign_variables campaign;
|
||||
new_ride_variables new_ride;
|
||||
news_variables news;
|
||||
|
|
|
@ -319,7 +319,7 @@ static void window_news_scrollpaint()
|
|||
// Item text
|
||||
char sz[400];// = (char*)0x09B5F2C;
|
||||
char* args[1];
|
||||
args[0] = &sz;
|
||||
args[0] = (char*)&sz;
|
||||
sprintf(sz, "%c%c%s", newsItem->colour, FORMAT_SMALLFONT, newsItem->text);
|
||||
gfx_draw_string_left_wrapped(dpi, args, 2, y + 10, 325, 1170, 14);
|
||||
|
||||
|
|
|
@ -593,7 +593,7 @@ rct_window *window_park_open()
|
|||
w->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_ENTRANCE];
|
||||
w->number = 0;
|
||||
w->page = WINDOW_PARK_PAGE_ENTRANCE;
|
||||
w->focus.coordinate.viewport_target_y = 0;
|
||||
w->viewport_focus_coordinates.y = 0;
|
||||
w->frame_no = 0;
|
||||
w->list_information_type = -1;
|
||||
w->var_48C = -1;
|
||||
|
@ -619,8 +619,8 @@ void window_park_entrance_open()
|
|||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->focus.coordinate.viewport_target_y = -1;
|
||||
window->focus.coordinate.viewport_target_x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
}
|
||||
|
||||
window->page = WINDOW_PARK_PAGE_ENTRANCE;
|
||||
|
@ -1021,11 +1021,11 @@ static void window_park_init_viewport(rct_window *w)
|
|||
// Call invalidate event
|
||||
RCT2_CALLPROC_X(w->event_handlers[WE_INVALIDATE], 0, 0, 0, 0, (int)w, 0, 0);
|
||||
|
||||
w->focus.coordinate.viewport_target_x = x;
|
||||
w->focus.coordinate.viewport_target_y = y;
|
||||
w->focus.sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
w->focus.coordinate.viewport_target_z = z;
|
||||
w->focus.coordinate.viewport_target_rotation = r;
|
||||
w->viewport_focus_coordinates.x = x;
|
||||
w->viewport_focus_coordinates.y = y;
|
||||
w->viewport_focus_sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
w->viewport_focus_coordinates.z = z;
|
||||
w->viewport_focus_coordinates.rotation = r;
|
||||
|
||||
if (zr != 0xFFFF) {
|
||||
// Create viewport
|
||||
|
@ -1041,7 +1041,7 @@ static void window_park_init_viewport(rct_window *w)
|
|||
x,
|
||||
y,
|
||||
z,
|
||||
w->focus.sprite.type & VIEWPORT_FOCUS_TYPE_MASK,
|
||||
w->viewport_focus_sprite.type & VIEWPORT_FOCUS_TYPE_MASK,
|
||||
-1
|
||||
);
|
||||
w->flags |= (1 << 2);
|
||||
|
@ -1069,8 +1069,8 @@ void window_park_rating_open()
|
|||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->focus.coordinate.viewport_target_x = -1;
|
||||
window->focus.coordinate.viewport_target_y = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
|
@ -1203,8 +1203,8 @@ void window_park_guests_open()
|
|||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->focus.coordinate.viewport_target_x = -1;
|
||||
window->focus.coordinate.viewport_target_y = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
|
@ -1609,8 +1609,8 @@ void window_park_objective_open()
|
|||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->focus.coordinate.viewport_target_x = -1;
|
||||
window->focus.coordinate.viewport_target_y = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
|
@ -1772,8 +1772,8 @@ void window_park_awards_open()
|
|||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->focus.coordinate.viewport_target_x = -1;
|
||||
window->focus.coordinate.viewport_target_y = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
|
|
|
@ -204,7 +204,7 @@ void window_peep_open(rct_peep* peep){
|
|||
window->enabled_widgets = window_peep_page_enabled_widgets[0];
|
||||
window->number = peep->sprite_index;
|
||||
window->page = 0;
|
||||
window->focus.coordinate.viewport_target_y = 0;
|
||||
window->viewport_focus_coordinates.y = 0;
|
||||
window->frame_no = 0;
|
||||
window->list_information_type = 0;
|
||||
window->var_492 = 0;
|
||||
|
@ -220,7 +220,7 @@ void window_peep_open(rct_peep* peep){
|
|||
window->colours[0] = 1;
|
||||
window->colours[1] = 15;
|
||||
window->colours[2] = 15;
|
||||
window->focus.coordinate.viewport_target_y = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
window->page = 0;
|
||||
|
|
|
@ -186,7 +186,7 @@ rct_window* sub_6BEF1B(rct_peep* peep)
|
|||
w->enabled_widgets = RCT2_GLOBAL(0x9929B0, uint32);
|
||||
w->number = peep->sprite_index;
|
||||
w->page = 0;
|
||||
w->focus.coordinate.viewport_target_y = 0;
|
||||
w->viewport_focus_coordinates.y = 0;
|
||||
w->frame_no = 0;
|
||||
|
||||
RCT2_GLOBAL((int*)w + 0x496, uint16) = 0; // missing, var_494 should perhaps be uint16?
|
||||
|
|
|
@ -128,7 +128,7 @@ void window_scenarioselect_open()
|
|||
window->colours[0] = 1;
|
||||
window->colours[1] = 26;
|
||||
window->colours[2] = 26;
|
||||
window->focus.coordinate.var_480 = -1;
|
||||
window->viewport_focus_coordinates.var_480 = -1;
|
||||
window->var_494 = 0;
|
||||
|
||||
window_scenarioselect_init_tabs();
|
||||
|
|
Loading…
Reference in New Issue