mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #2668 from Broxzier/staff_list
Consistent usage of FOR_EACH_* macros, and moving buttons on the right when resizing.
This commit is contained in:
commit
0dc219bc45
|
@ -572,10 +572,11 @@ static void window_guest_list_invalidate(rct_window *w)
|
||||||
window_guest_list_widgets[WIDX_TITLE].right = w->width - 2;
|
window_guest_list_widgets[WIDX_TITLE].right = w->width - 2;
|
||||||
window_guest_list_widgets[WIDX_CLOSE].left = w->width - 13;
|
window_guest_list_widgets[WIDX_CLOSE].left = w->width - 13;
|
||||||
window_guest_list_widgets[WIDX_CLOSE].right = w->width - 3;
|
window_guest_list_widgets[WIDX_CLOSE].right = w->width - 3;
|
||||||
|
|
||||||
window_guest_list_widgets[WIDX_GUEST_LIST].right = w->width - 4;
|
window_guest_list_widgets[WIDX_GUEST_LIST].right = w->width - 4;
|
||||||
window_guest_list_widgets[WIDX_GUEST_LIST].bottom = w->height - 15;
|
window_guest_list_widgets[WIDX_GUEST_LIST].bottom = w->height - 15;
|
||||||
window_guest_list_widgets[WIDX_PAGE_DROPDOWN].image = _window_guest_list_selected_page + 3440;
|
window_guest_list_widgets[WIDX_PAGE_DROPDOWN].image = _window_guest_list_selected_page + 3440;
|
||||||
|
window_guest_list_widgets[WIDX_TRACKING].left = 321 - 350 + w->width;
|
||||||
|
window_guest_list_widgets[WIDX_TRACKING].right = 344 - 350 + w->width;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -104,26 +104,31 @@ enum WINDOW_STAFF_LIST_WIDGET_IDX {
|
||||||
WIDX_STAFF_LIST_LIST,
|
WIDX_STAFF_LIST_LIST,
|
||||||
WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER,
|
WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER,
|
||||||
WIDX_STAFF_LIST_HIRE_BUTTON,
|
WIDX_STAFF_LIST_HIRE_BUTTON,
|
||||||
|
WIDX_STAFF_LIST_QUICK_FIRE,
|
||||||
WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON,
|
WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON,
|
||||||
WIDX_STAFF_LIST_MAP,
|
WIDX_STAFF_LIST_MAP,
|
||||||
WIDX_STAFF_LIST_QUICK_FIRE,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define WW 320
|
||||||
|
#define WH 270
|
||||||
|
#define MAX_WW 500
|
||||||
|
#define MAX_WH 450
|
||||||
|
|
||||||
static rct_widget window_staff_list_widgets[] = {
|
static rct_widget window_staff_list_widgets[] = {
|
||||||
{ WWT_FRAME, 0, 0, 319, 0, 269, 0x0FFFFFFFF, STR_NONE }, // panel / background
|
{ WWT_FRAME, 0, 0, 319, 0, 269, 0x0FFFFFFFF, STR_NONE }, // panel / background
|
||||||
{ WWT_CAPTION, 0, 1, 318, 1, 14, STR_STAFF, STR_WINDOW_TITLE_TIP }, // title bar
|
{ WWT_CAPTION, 0, 1, 318, 1, 14, STR_STAFF, STR_WINDOW_TITLE_TIP }, // title bar
|
||||||
{ WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button
|
{ WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button
|
||||||
{ WWT_RESIZE, 1, 0, 319, 43, 269, 0x0FFFFFFFF, STR_NONE }, // tab content panel
|
{ WWT_RESIZE, 1, 0, 319, 43, 269, 0x0FFFFFFFF, STR_NONE }, // tab content panel
|
||||||
{ WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_STAFF_HANDYMEN_TAB_TIP }, // handymen tab
|
{ WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_STAFF_HANDYMEN_TAB_TIP }, // handymen tab
|
||||||
{ WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, STR_STAFF_MECHANICS_TAB_TIP }, // mechanics tab
|
{ WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, STR_STAFF_MECHANICS_TAB_TIP }, // mechanics tab
|
||||||
{ WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, STR_STAFF_SECURITY_TAB_TIP }, // security guards tab
|
{ WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, STR_STAFF_SECURITY_TAB_TIP }, // security guards tab
|
||||||
{ WWT_TAB, 1, 96, 126, 17, 43, 0x02000144E, STR_STAFF_ENTERTAINERS_TAB_TIP }, // entertainers tab
|
{ WWT_TAB, 1, 96, 126, 17, 43, 0x02000144E, STR_STAFF_ENTERTAINERS_TAB_TIP }, // entertainers tab
|
||||||
{ WWT_SCROLL, 1, 3, 316, 72, 266, 3, STR_NONE }, // staff list
|
{ WWT_SCROLL, 1, 3, 316, 72, 266, 3, STR_NONE }, // staff list
|
||||||
{ WWT_COLORBTN, 1, 130, 141, 58, 69, STR_NONE, STR_UNIFORM_COLOUR_TIP }, // uniform color picker
|
{ WWT_COLORBTN, 1, 130, 141, 58, 69, STR_NONE, STR_UNIFORM_COLOUR_TIP }, // uniform color picker
|
||||||
{ WWT_DROPDOWN_BUTTON, 0, 165, 309, 17, 29, STR_NONE, STR_HIRE_STAFF_TIP }, // hire button
|
{ WWT_DROPDOWN_BUTTON, 0, WW - 155, WW - 11, 17, 29, STR_NONE, STR_HIRE_STAFF_TIP }, // hire button
|
||||||
{ WWT_FLATBTN, 1, 267, 290, 46, 69, 5175, STR_SHOW_PATROL_AREA_TIP }, // show staff patrol area tool
|
{ WWT_FLATBTN, 1, WW - 77, WW - 54, 46, 69, SPR_DEMOLISH, 5300 }, // quick fire staff
|
||||||
{ WWT_FLATBTN, 1, 291, 314, 46, 69, 5192, STR_SHOW_STAFF_ON_MAP_TIP }, // show staff on map button
|
{ WWT_FLATBTN, 1, WW - 53, WW - 30, 46, 69, 5175, STR_SHOW_PATROL_AREA_TIP }, // show staff patrol area tool
|
||||||
{ WWT_FLATBTN, 1, 243, 266, 46, 69, SPR_DEMOLISH, 5300 }, // quick fire staff
|
{ WWT_FLATBTN, 1, WW - 29, WW - 6, 46, 69, 5192, STR_SHOW_STAFF_ON_MAP_TIP }, // show staff on map button
|
||||||
{ WIDGETS_END },
|
{ WIDGETS_END },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -152,7 +157,7 @@ void window_staff_list_open()
|
||||||
if (window != NULL)
|
if (window != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
window = window_create_auto_pos(320, 270, &window_staff_list_events, WC_STAFF_LIST, WF_10 | WF_RESIZABLE);
|
window = window_create_auto_pos(WW, WH, &window_staff_list_events, WC_STAFF_LIST, WF_10 | WF_RESIZABLE);
|
||||||
window->widgets = window_staff_list_widgets;
|
window->widgets = window_staff_list_widgets;
|
||||||
window->enabled_widgets =
|
window->enabled_widgets =
|
||||||
(1 << WIDX_STAFF_LIST_CLOSE) |
|
(1 << WIDX_STAFF_LIST_CLOSE) |
|
||||||
|
@ -171,10 +176,10 @@ void window_staff_list_open()
|
||||||
window->list_information_type = 0;
|
window->list_information_type = 0;
|
||||||
|
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER].type = WWT_EMPTY;
|
window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER].type = WWT_EMPTY;
|
||||||
window->min_width = 320;
|
window->min_width = WW;
|
||||||
window->min_height = 270;
|
window->min_height = WH;
|
||||||
window->max_width = 500;
|
window->max_width = MAX_WW;
|
||||||
window->max_height = 450;
|
window->max_height = MAX_WH;
|
||||||
_quick_fire_mode = false;
|
_quick_fire_mode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,8 +245,8 @@ static void window_staff_list_mouseup(rct_window *w, int widgetIndex)
|
||||||
*/
|
*/
|
||||||
static void window_staff_list_resize(rct_window *w)
|
static void window_staff_list_resize(rct_window *w)
|
||||||
{
|
{
|
||||||
w->min_width = 320;
|
w->min_width = WW;
|
||||||
w->min_height = 270;
|
w->min_height = WH;
|
||||||
if (w->width < w->min_width) {
|
if (w->width < w->min_width) {
|
||||||
w->width = w->min_width;
|
w->width = w->min_width;
|
||||||
window_invalidate(w);
|
window_invalidate(w);
|
||||||
|
@ -308,13 +313,11 @@ void window_staff_list_update(rct_window *w)
|
||||||
} else {
|
} else {
|
||||||
widget_invalidate(w, WIDX_STAFF_LIST_HANDYMEN_TAB + RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8));
|
widget_invalidate(w, WIDX_STAFF_LIST_HANDYMEN_TAB + RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8));
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_MAP_FLASHING_FLAGS, uint16) |= (1 << 2);
|
RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_MAP_FLASHING_FLAGS, uint16) |= (1 << 2);
|
||||||
FOR_ALL_PEEPS(spriteIndex, peep) {
|
FOR_ALL_STAFF(spriteIndex, peep) {
|
||||||
if (peep->type == PEEP_TYPE_STAFF) {
|
peep->list_flags &= ~(PEEP_LIST_FLAGS_FLASHING);
|
||||||
peep->list_flags &= ~(PEEP_LIST_FLAGS_FLASHING);
|
|
||||||
|
|
||||||
if (peep->staff_type == RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8)) {
|
if (peep->staff_type == RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8)) {
|
||||||
peep->list_flags |= PEEP_LIST_FLAGS_FLASHING;
|
peep->list_flags |= PEEP_LIST_FLAGS_FLASHING;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -401,8 +404,8 @@ void window_staff_list_scrollgetsize(rct_window *w, int scrollIndex, int *width,
|
||||||
rct_peep *peep;
|
rct_peep *peep;
|
||||||
|
|
||||||
uint16 staffCount = 0;
|
uint16 staffCount = 0;
|
||||||
FOR_ALL_PEEPS(spriteIndex, peep) {
|
FOR_ALL_STAFF(spriteIndex, peep) {
|
||||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8))
|
if (peep->staff_type == RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8))
|
||||||
staffCount++;
|
staffCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,10 +438,7 @@ void window_staff_list_scrollmousedown(rct_window *w, int scrollIndex, int x, in
|
||||||
rct_peep *peep;
|
rct_peep *peep;
|
||||||
|
|
||||||
i = y / 10;
|
i = y / 10;
|
||||||
FOR_ALL_PEEPS(spriteIndex, peep) {
|
FOR_ALL_STAFF(spriteIndex, peep) {
|
||||||
if (peep->type != PEEP_TYPE_STAFF)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (peep->staff_type != RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8))
|
if (peep->staff_type != RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -490,7 +490,7 @@ void window_staff_list_invalidate(rct_window *w)
|
||||||
uint8 tabIndex = RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8);
|
uint8 tabIndex = RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8);
|
||||||
uint8 widgetIndex = tabIndex + 4;
|
uint8 widgetIndex = tabIndex + 4;
|
||||||
|
|
||||||
w->pressed_widgets = pressed_widgets | (1 << widgetIndex);
|
w->pressed_widgets = pressed_widgets | (1ULL << widgetIndex);
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_HIRE_BUTTON].image = STR_HIRE_HANDYMAN + tabIndex;
|
window_staff_list_widgets[WIDX_STAFF_LIST_HIRE_BUTTON].image = STR_HIRE_HANDYMAN + tabIndex;
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER].type = WWT_EMPTY;
|
window_staff_list_widgets[WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER].type = WWT_EMPTY;
|
||||||
|
|
||||||
|
@ -501,9 +501,9 @@ void window_staff_list_invalidate(rct_window *w)
|
||||||
0x600013C3;
|
0x600013C3;
|
||||||
}
|
}
|
||||||
if (_quick_fire_mode)
|
if (_quick_fire_mode)
|
||||||
w->pressed_widgets |= (1 << WIDX_STAFF_LIST_QUICK_FIRE);
|
w->pressed_widgets |= (1ULL << WIDX_STAFF_LIST_QUICK_FIRE);
|
||||||
else
|
else
|
||||||
w->pressed_widgets &= ~(1 << WIDX_STAFF_LIST_QUICK_FIRE);
|
w->pressed_widgets &= ~(1ULL << WIDX_STAFF_LIST_QUICK_FIRE);
|
||||||
|
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_BACKGROUND].right = w->width - 1;
|
window_staff_list_widgets[WIDX_STAFF_LIST_BACKGROUND].right = w->width - 1;
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_BACKGROUND].bottom = w->height - 1;
|
window_staff_list_widgets[WIDX_STAFF_LIST_BACKGROUND].bottom = w->height - 1;
|
||||||
|
@ -514,6 +514,14 @@ void window_staff_list_invalidate(rct_window *w)
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_CLOSE].right = w->width - 2 - 0x0B + 0x0A;
|
window_staff_list_widgets[WIDX_STAFF_LIST_CLOSE].right = w->width - 2 - 0x0B + 0x0A;
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_LIST].right = w->width - 4;
|
window_staff_list_widgets[WIDX_STAFF_LIST_LIST].right = w->width - 4;
|
||||||
window_staff_list_widgets[WIDX_STAFF_LIST_LIST].bottom = w->height - 0x0F;
|
window_staff_list_widgets[WIDX_STAFF_LIST_LIST].bottom = w->height - 0x0F;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_QUICK_FIRE].left = w->width - 77;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_QUICK_FIRE].right = w->width - 54;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON].left = w->width - 53;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON].right = w->width - 30;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_MAP].left = w->width - 29;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_MAP].right = w->width - 6;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_HIRE_BUTTON].left = w->width - 155;
|
||||||
|
window_staff_list_widgets[WIDX_STAFF_LIST_HIRE_BUTTON].right = w->width - 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -591,7 +599,7 @@ void window_staff_list_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||||
|
|
||||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_NO_MONEY)) {
|
if (!(RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_NO_MONEY)) {
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, uint32) = RCT2_ADDRESS(0x00992A00, uint16)[selectedTab];
|
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, uint32) = RCT2_ADDRESS(0x00992A00, uint16)[selectedTab];
|
||||||
gfx_draw_string_left(dpi, 1858, (void*)RCT2_ADDRESS_COMMON_FORMAT_ARGS, 0, w->x + 0xA5, w->y + 0x20);
|
gfx_draw_string_left(dpi, 1858, (void*)RCT2_ADDRESS_COMMON_FORMAT_ARGS, 0, w->x + w->width - 155, w->y + 0x20);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedTab < 3) {
|
if (selectedTab < 3) {
|
||||||
|
@ -626,8 +634,8 @@ void window_staff_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int sc
|
||||||
y = 0;
|
y = 0;
|
||||||
i = 0;
|
i = 0;
|
||||||
selectedTab = RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8);
|
selectedTab = RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8);
|
||||||
FOR_ALL_PEEPS(spriteIndex, peep) {
|
FOR_ALL_STAFF(spriteIndex, peep) {
|
||||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == selectedTab) {
|
if (peep->staff_type == selectedTab) {
|
||||||
if (y > dpi->y + dpi->height) {
|
if (y > dpi->y + dpi->height) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue