mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-23 15:52:55 +01:00
Merge pull request #264 from qcz/wip-stafflist-cleanup
Enum for the game command table; cleanup warnings and comments from window_staff.c
This commit is contained in:
71
src/game.c
71
src/game.c
@@ -495,7 +495,7 @@ void game_handle_input()
|
||||
|
||||
if (RCT2_GLOBAL(0x009DEA64, uint16) & 2) {
|
||||
RCT2_GLOBAL(0x009DEA64, uint16) &= ~2;
|
||||
game_do_command(0, 1, 0, 0, 5, 2, 0);
|
||||
game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 2, 0);
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009ABDF2, uint8) != 0) {
|
||||
@@ -2096,11 +2096,12 @@ int game_do_command(int eax, int ebx, int ecx, int edx, int esi, int edi, int eb
|
||||
* @param flags (ebx)
|
||||
* @param command (esi)
|
||||
*/
|
||||
int game_do_command_p(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp)
|
||||
int game_do_command_p(int command, int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp)
|
||||
{
|
||||
int cost, flags, insufficientFunds;
|
||||
int original_ebx, original_edx, original_esi, original_edi, original_ebp;
|
||||
|
||||
*esi = command;
|
||||
original_ebx = *ebx;
|
||||
original_edx = *edx;
|
||||
original_esi = *esi;
|
||||
@@ -2116,7 +2117,7 @@ int game_do_command_p(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi
|
||||
*ebx &= ~1;
|
||||
|
||||
// Primary command
|
||||
RCT2_CALLFUNC_X(game_do_command_table[*esi], eax, ebx, ecx, edx, esi, edi, ebp);
|
||||
RCT2_CALLFUNC_X(game_do_command_table[command], eax, ebx, ecx, edx, esi, edi, ebp);
|
||||
cost = *ebx;
|
||||
|
||||
if (cost != 0x80000000) {
|
||||
@@ -2139,7 +2140,7 @@ int game_do_command_p(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi
|
||||
}
|
||||
|
||||
// Secondary command
|
||||
RCT2_CALLFUNC_X(game_do_command_table[*esi], eax, ebx, ecx, edx, esi, edi, ebp);
|
||||
RCT2_CALLFUNC_X(game_do_command_table[command], eax, ebx, ecx, edx, esi, edi, ebp);
|
||||
*edx = *ebx;
|
||||
|
||||
if (*edx != 0x80000000 && *edx < cost)
|
||||
@@ -2262,6 +2263,54 @@ static void game_load_or_quit()
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x00669E55
|
||||
*/
|
||||
static void game_update_staff_colour()
|
||||
{
|
||||
byte tabIndex, colour, _bl;
|
||||
int spriteIndex;
|
||||
rct_peep *peep;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov _bl, bl
|
||||
#else
|
||||
__asm__("mov %[_bl], bl " : [_bl] "+m" (_bl));
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov tabIndex, bh
|
||||
#else
|
||||
__asm__("mov %[tabIndex], bh " : [tabIndex] "+m" (tabIndex));
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov colour, dh
|
||||
#else
|
||||
__asm__("mov %[colour], bh " : [colour] "+m" (colour));
|
||||
#endif
|
||||
|
||||
if (_bl & 1) {
|
||||
RCT2_ADDRESS(RCT2_ADDRESS_HANDYMAN_COLOUR, uint8)[tabIndex] = colour;
|
||||
|
||||
FOR_ALL_PEEPS(spriteIndex, peep) {
|
||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == tabIndex) {
|
||||
peep->tshirt_colour = colour;
|
||||
peep->trousers_colour = colour;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gfx_invalidate_screen();
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov ebx, 0
|
||||
#else
|
||||
__asm__("mov ebx, 0 ");
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x00674F40
|
||||
@@ -2521,14 +2570,14 @@ void rct2_exit()
|
||||
void game_load_or_quit_no_save_prompt()
|
||||
{
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SAVE_PROMPT_MODE, uint16) < 1) {
|
||||
game_do_command(0, 1, 0, 1, 5, 0, 0);
|
||||
game_do_command(0, 1, 0, 1, GAME_COMMAND_LOAD_OR_QUIT, 0, 0);
|
||||
tool_cancel();
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & 2)
|
||||
load_landscape();
|
||||
else
|
||||
load_game();
|
||||
} else if (RCT2_GLOBAL(RCT2_ADDRESS_SAVE_PROMPT_MODE, uint16) == 1) {
|
||||
game_do_command(0, 1, 0, 1, 5, 0, 0);
|
||||
game_do_command(0, 1, 0, 1, GAME_COMMAND_LOAD_OR_QUIT, 0, 0);
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 5)) {
|
||||
RCT2_CALLPROC_EBPSAFE(0x0040705E);
|
||||
RCT2_GLOBAL(0x009DE518, uint32) &= ~(1 << 5);
|
||||
@@ -2553,7 +2602,7 @@ static uint32 game_do_command_table[58] = {
|
||||
0x006B49D9,
|
||||
0x006B4EA6,
|
||||
0x006B52D4,
|
||||
0x006B578B,
|
||||
0x006B578B, // 10
|
||||
0x006B5559,
|
||||
0x006660A8,
|
||||
0x0066640B,
|
||||
@@ -2563,7 +2612,7 @@ static uint32 game_do_command_table[58] = {
|
||||
0x006A61DE,
|
||||
0x006A68AE,
|
||||
0x006A67C0,
|
||||
0x00663CCD,
|
||||
0x00663CCD, // 20
|
||||
0x006B53E9,
|
||||
0x00698D6C,
|
||||
0x0068C542,
|
||||
@@ -2573,7 +2622,7 @@ static uint32 game_do_command_table[58] = {
|
||||
0x006E6878,
|
||||
0x006C5AE9,
|
||||
0x006BEFA1,
|
||||
0x006C09D1,
|
||||
0x006C09D1, // 30
|
||||
0x006C0B83,
|
||||
0x006C0BB5,
|
||||
0x00669C6D,
|
||||
@@ -2583,7 +2632,7 @@ static uint32 game_do_command_table[58] = {
|
||||
0x00666A63,
|
||||
0x006CD8CE,
|
||||
0x00669E30,
|
||||
0x00669E55, // updating the color of staff after setting a new one
|
||||
(uint32)game_update_staff_colour, // 40
|
||||
0x006E519A,
|
||||
0x006E5597,
|
||||
0x006B893C,
|
||||
@@ -2593,7 +2642,7 @@ static uint32 game_do_command_table[58] = {
|
||||
0x006D13FE,
|
||||
0x0069E73C,
|
||||
0x006CDEE4,
|
||||
0x006B9E6D,
|
||||
0x006B9E6D, // 50
|
||||
0x006BA058,
|
||||
0x006E0F26,
|
||||
0x006E56B5,
|
||||
|
||||
63
src/game.h
63
src/game.h
@@ -21,6 +21,67 @@
|
||||
#ifndef _GAME_H_
|
||||
#define _GAME_H_
|
||||
|
||||
enum GAME_COMMAND {
|
||||
GAME_COMMAND_0,
|
||||
GAME_COMMAND_1,
|
||||
GAME_COMMAND_TOGGLE_PAUSE, // 2
|
||||
GAME_COMMAND_3,
|
||||
GAME_COMMAND_4,
|
||||
GAME_COMMAND_LOAD_OR_QUIT, // 5
|
||||
GAME_COMMAND_6,
|
||||
GAME_COMMAND_7,
|
||||
GAME_COMMAND_8,
|
||||
GAME_COMMAND_9,
|
||||
GAME_COMMAND_10,
|
||||
GAME_COMMAND_11,
|
||||
GAME_COMMAND_12,
|
||||
GAME_COMMAND_13,
|
||||
GAME_COMMAND_14,
|
||||
GAME_COMMAND_15,
|
||||
GAME_COMMAND_16,
|
||||
GAME_COMMAND_17,
|
||||
GAME_COMMAND_18,
|
||||
GAME_COMMAND_19,
|
||||
GAME_COMMAND_20,
|
||||
GAME_COMMAND_21,
|
||||
GAME_COMMAND_22,
|
||||
GAME_COMMAND_23,
|
||||
GAME_COMMAND_24,
|
||||
GAME_COMMAND_25,
|
||||
GAME_COMMAND_26,
|
||||
GAME_COMMAND_27,
|
||||
GAME_COMMAND_28,
|
||||
GAME_COMMAND_HIRE_NEW_STAFF_MEMBER,
|
||||
GAME_COMMAND_30,
|
||||
GAME_COMMAND_31,
|
||||
GAME_COMMAND_32,
|
||||
GAME_COMMAND_33,
|
||||
GAME_COMMAND_34,
|
||||
GAME_COMMAND_35,
|
||||
GAME_COMMAND_36,
|
||||
GAME_COMMAND_37,
|
||||
GAME_COMMAND_38,
|
||||
GAME_COMMAND_39,
|
||||
GAME_COMMAND_UPDATE_STAFF_COLOUR,
|
||||
GAME_COMMAND_41,
|
||||
GAME_COMMAND_42,
|
||||
GAME_COMMAND_43,
|
||||
GAME_COMMAND_44,
|
||||
GAME_COMMAND_45,
|
||||
GAME_COMMAND_46,
|
||||
GAME_COMMAND_47,
|
||||
GAME_COMMAND_48,
|
||||
GAME_COMMAND_49,
|
||||
GAME_COMMAND_50,
|
||||
GAME_COMMAND_51,
|
||||
GAME_COMMAND_52,
|
||||
GAME_COMMAND_53,
|
||||
GAME_COMMAND_54,
|
||||
GAME_COMMAND_55,
|
||||
GAME_COMMAND_56,
|
||||
GAME_COMMAND_57
|
||||
};
|
||||
|
||||
void game_create_windows();
|
||||
void game_update();
|
||||
void game_logic_update();
|
||||
@@ -29,7 +90,7 @@ void update_rain_animation();
|
||||
void update_water_animation();
|
||||
|
||||
int game_do_command(int eax, int ebx, int ecx, int edx, int esi, int edi, int ebp);
|
||||
int game_do_command_p(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp);
|
||||
int game_do_command_p(int command, int *eax, int *ebx, int *ecx, int *edx, int *edi, int *esi, int *ebp);
|
||||
|
||||
void game_increase_game_speed();
|
||||
void game_reduce_game_speed();
|
||||
|
||||
@@ -357,8 +357,8 @@ enum {
|
||||
STR_ON = 1776,
|
||||
STR_MUSIC = 1777,
|
||||
|
||||
STR_STAFF_LIST_COLORBTN = 1790,
|
||||
STR_UNIFORM_COLOR = 1791,
|
||||
STR_UNIFORM_COLOUR_TIP = 1790,
|
||||
STR_UNIFORM_COLOUR = 1791,
|
||||
STR_RESPONDING_TO_RIDE_BREAKDOWN_CALL = 1792,
|
||||
STR_HEADING_TO_RIDE_FOR_INSPECTION = 1793,
|
||||
STR_FIXING_RIDE = 1794,
|
||||
@@ -417,7 +417,7 @@ enum {
|
||||
STR_SHOW_SUBJECT_TIP = 1937,
|
||||
|
||||
STR_SHOW_PATROL_AREA_TIP = 1947,
|
||||
STR_STAFF_LIST_DROPDOWNBUTTON_TIP = 1948,
|
||||
STR_HIRE_STAFF_TIP = 1948,
|
||||
STR_FINANCIAL_SUMMARY = 1949,
|
||||
STR_FINANCIAL_GRAPH = 1950,
|
||||
STR_PARK_VALUE_GRAPH = 1951,
|
||||
|
||||
@@ -163,7 +163,7 @@ static void window_game_top_toolbar_mouseup()
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_PAUSE:
|
||||
game_do_command(0, 1, 0, 0, 2, 0, 0);
|
||||
game_do_command(0, 1, 0, 0, GAME_COMMAND_TOGGLE_PAUSE, 0, 0);
|
||||
break;
|
||||
case WIDX_FASTFORWARD:
|
||||
// This is an excellent place to add in debugging statements and
|
||||
@@ -364,7 +364,7 @@ static void window_game_top_toolbar_dropdown()
|
||||
if (widgetIndex == WIDX_FILE_MENU) {
|
||||
switch (dropdownIndex) {
|
||||
case 0: // load game
|
||||
game_do_command(0, 1, 0, 0, 5, 0, 0);
|
||||
game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 0, 0);
|
||||
break;
|
||||
case 1: // save game
|
||||
tool_cancel();
|
||||
@@ -381,7 +381,7 @@ static void window_game_top_toolbar_dropdown()
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_SCREENSHOT_COUNTDOWN, sint8) = 10;
|
||||
break;
|
||||
case 7: // quit game
|
||||
game_do_command(0, 1, 0, 0, 5, 1, 0);
|
||||
game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 1, 0);
|
||||
break;
|
||||
}
|
||||
} else if (widgetIndex == WIDX_VIEW_MENU) {
|
||||
|
||||
@@ -182,7 +182,7 @@ void window_staff_peep_open(rct_peep* peep)
|
||||
{
|
||||
rct_window* w = window_bring_to_front_by_id(WC_PEEP, peep->sprite_index);
|
||||
if (!w) {
|
||||
int eax, ebx, ecx, edx, esi, edi, ebp;
|
||||
int eax, ebx, ecx, edx, esi, edi;
|
||||
|
||||
eax = peep->sprite_index;
|
||||
ecx = WC_PEEP;
|
||||
@@ -196,7 +196,7 @@ void window_staff_peep_open(rct_peep* peep)
|
||||
w->widgets = RCT2_GLOBAL(0x992998, rct_widget*);
|
||||
w->enabled_widgets = RCT2_GLOBAL(0x9929B0, uint32);
|
||||
w->var_020 = RCT2_GLOBAL(0x9929BC, uint32);
|
||||
w->event_handlers = RCT2_GLOBAL(0x9929A4, uint32);
|
||||
w->event_handlers = (uint32*)RCT2_GLOBAL(0x9929A4, uint32);
|
||||
w->pressed_widgets = 0;
|
||||
RCT2_CALLPROC_X(0x006BED21, 0, 0, 0, 0, (int)w, 0, 0);
|
||||
window_init_scroll_widgets(w);
|
||||
|
||||
@@ -54,66 +54,66 @@ static void window_staff_paint();
|
||||
static void window_staff_scrollpaint();
|
||||
|
||||
static void* window_staff_events[] = {
|
||||
window_staff_close, //(void*)0x006BD9B1,
|
||||
window_staff_mouseup, //(void*)0x006BD94C,
|
||||
window_staff_resize, //(void*)0x006BDD5D,
|
||||
window_staff_mousedown, //(void*)0x006BD971,
|
||||
window_staff_dropdown, //(void*)0x006BD9A6,
|
||||
window_staff_close,
|
||||
window_staff_mouseup,
|
||||
window_staff_resize,
|
||||
window_staff_mousedown,
|
||||
window_staff_dropdown,
|
||||
window_staff_emptysub,
|
||||
window_staff_update, // (void*)0x006BDCEA,
|
||||
window_staff_update,
|
||||
window_staff_emptysub,
|
||||
window_staff_emptysub,
|
||||
window_staff_emptysub,
|
||||
(void*)0x006BD990, // window_staff_tooldown
|
||||
window_staff_emptysub,
|
||||
window_staff_emptysub,
|
||||
window_staff_toolabort, // (void*)0x006BD99B,
|
||||
window_staff_toolabort,
|
||||
window_staff_emptysub,
|
||||
window_staff_scrollgetsize, // (void*)0x006BDBE6,
|
||||
window_staff_scrollmousedown, // (void*)0x006BDC9A,
|
||||
window_staff_scrollgetsize,
|
||||
window_staff_scrollmousedown,
|
||||
window_staff_emptysub,
|
||||
window_staff_scrollmouseover, // (void*)0x006BDC6B,
|
||||
window_staff_scrollmouseover,
|
||||
window_staff_emptysub,
|
||||
window_staff_emptysub,
|
||||
window_staff_emptysub,
|
||||
window_staff_tooltip, // (void*)0x006BDC90,
|
||||
window_staff_tooltip,
|
||||
window_staff_emptysub,
|
||||
window_staff_emptysub,
|
||||
window_staff_invalidate, // (void*)0x006BD477,
|
||||
window_staff_paint, // (void*)0x006BD533,
|
||||
window_staff_scrollpaint, // (void*)0x006BD785,
|
||||
window_staff_invalidate,
|
||||
window_staff_paint,
|
||||
window_staff_scrollpaint,
|
||||
};
|
||||
|
||||
enum WINDOW_STAFF_LIST_WIDGET_IDX {
|
||||
WIDX_STAFF_BACKGROUND, // 0,1
|
||||
WIDX_STAFF_TITLE, // 1,2
|
||||
WIDX_STAFF_CLOSE, // 2,4
|
||||
WIDX_STAFF_TAB_CONTENT_PANEL, // 3,8
|
||||
WIDX_STAFF_HANDYMEN_TAB, // 4,10
|
||||
WIDX_STAFF_MECHANICS_TAB, // 5,20
|
||||
WIDX_STAFF_SECURITY_TAB, // 6,40
|
||||
WIDX_STAFF_ENTERTAINERS_TAB, // 7,80
|
||||
WIDX_STAFF_LIST, // 8,100
|
||||
WIDX_STAFF_UNIFORM_COLOR_PICKER, // 9,200
|
||||
WIDX_STAFF_HIRE_BUTTON, // A,400
|
||||
WIDX_STAFF_SHOW_PATROL_AREA_BUTTON, // B,800
|
||||
WIDX_STAFF_MAP, // C,1000
|
||||
WIDX_STAFF_BACKGROUND,
|
||||
WIDX_STAFF_TITLE,
|
||||
WIDX_STAFF_CLOSE,
|
||||
WIDX_STAFF_TAB_CONTENT_PANEL,
|
||||
WIDX_STAFF_HANDYMEN_TAB,
|
||||
WIDX_STAFF_MECHANICS_TAB,
|
||||
WIDX_STAFF_SECURITY_TAB,
|
||||
WIDX_STAFF_ENTERTAINERS_TAB,
|
||||
WIDX_STAFF_LIST,
|
||||
WIDX_STAFF_UNIFORM_COLOR_PICKER,
|
||||
WIDX_STAFF_HIRE_BUTTON,
|
||||
WIDX_STAFF_SHOW_PATROL_AREA_BUTTON,
|
||||
WIDX_STAFF_MAP,
|
||||
};
|
||||
|
||||
static rct_widget window_staff_widgets[] = {
|
||||
{ WWT_FRAME, 0, 0, 319, 0, 269, 0x0FFFFFFFF, STR_NONE }, // 0,1: panel / background
|
||||
{ WWT_CAPTION, 0, 1, 318, 1, 14, STR_STAFF, STR_WINDOW_TITLE_TIP }, // 1,2: title bar
|
||||
{ WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // 2,4: close x button
|
||||
{ WWT_RESIZE, 1, 0, 319, 43, 269, 0x0FFFFFFFF, STR_NONE }, // 3,8: tab content panel
|
||||
{ WWT_TAB, 1, 3, 33, 17, 43, 0x02000144E, STR_STAFF_HANDYMEN_TAB_TIP }, // 4,10: tab 1
|
||||
{ WWT_TAB, 1, 34, 64, 17, 43, 0x02000144E, STR_STAFF_MECHANICS_TAB_TIP }, // 5,20: tab 2
|
||||
{ WWT_TAB, 1, 65, 95, 17, 43, 0x02000144E, STR_STAFF_SECURITY_TAB_TIP }, // 6,40: tab 3
|
||||
{ WWT_TAB, 1, 96, 126, 17, 43, 0x02000144E, STR_STAFF_ENTERTAINERS_TAB_TIP }, // 7,80: tab 4
|
||||
{ WWT_SCROLL, 1, 3, 316, 72, 266, 3, STR_NONE }, // 8,100: staff list
|
||||
{ WWT_COLORBTN, 1, 130, 141, 58, 69, STR_NONE, STR_STAFF_LIST_COLORBTN }, // 9,200: uniform color picker
|
||||
{ WWT_DROPDOWN_BUTTON, 0, 165, 309, 17, 29, STR_NONE, STR_STAFF_LIST_DROPDOWNBUTTON_TIP }, // 10,400: hire button
|
||||
{ WWT_FLATBTN, 1, 267, 290, 46, 69, 5175, STR_SHOW_PATROL_AREA_TIP }, // 11,800: show staff patrol area
|
||||
{ WWT_FLATBTN, 1, 291, 314, 46, 69, 5192, STR_SHOW_STAFF_ON_MAP_TIP }, // 12,1000: map
|
||||
{ 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_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_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, 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_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_DROPDOWN_BUTTON, 0, 165, 309, 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, 291, 314, 46, 69, 5192, STR_SHOW_STAFF_ON_MAP_TIP }, // show staff on map button
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
|
||||
@@ -208,9 +208,8 @@ void window_staff_hire_new() {
|
||||
|
||||
eax = 0x8000;
|
||||
ebx = RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8) << 8 | bl;
|
||||
esi = 0x1D;
|
||||
|
||||
int result = game_do_command_p(&eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
||||
int result = game_do_command_p(GAME_COMMAND_HIRE_NEW_STAFF_MEMBER, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
||||
|
||||
if (result == 0x80000000) {
|
||||
rct_window* window = window_find_by_id(WC_STAFF_LIST, 0);
|
||||
@@ -300,7 +299,7 @@ static void window_staff_resize()
|
||||
static void window_staff_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short newSelectedTab;
|
||||
int eax, ebx, ecx, edx;
|
||||
int eax;
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_STAFF_HANDYMEN_TAB:
|
||||
@@ -317,11 +316,7 @@ static void window_staff_mousedown(int widgetIndex, rct_window*w, rct_widget* wi
|
||||
break;
|
||||
case WIDX_STAFF_UNIFORM_COLOR_PICKER:
|
||||
eax = (RCT2_ADDRESS(RCT2_ADDRESS_HANDYMAN_COLOUR, uint8)[RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8)] << 8) + 0x80 + w->colours[1];
|
||||
ebx = 0;
|
||||
ecx = 0;
|
||||
edx = widgetIndex;
|
||||
|
||||
RCT2_CALLPROC_X(0x006ED43D, eax, &ebx, &ecx, &edx, (int)w, (int)widget, 0xFFFFFFFF);
|
||||
RCT2_CALLPROC_X(0x006ED43D, eax, 0, 0, widgetIndex, (int)w, (int)widget, 0xFFFFFFFF);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -354,7 +349,7 @@ static void window_staff_dropdown()
|
||||
(RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8) << 8) + 1,
|
||||
0,
|
||||
(dropdownIndex << 8) + 4,
|
||||
0x28,
|
||||
GAME_COMMAND_UPDATE_STAFF_COLOUR,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
@@ -587,7 +582,7 @@ void window_staff_invalidate()
|
||||
* rct2: 0x006BD533
|
||||
*/
|
||||
void window_staff_paint() {
|
||||
int i, x, y, format;
|
||||
int i;
|
||||
uint8 selectedTab;
|
||||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
@@ -674,7 +669,7 @@ void window_staff_paint() {
|
||||
}
|
||||
|
||||
if (selectedTab < 3) {
|
||||
gfx_draw_string_left(dpi, STR_UNIFORM_COLOR, w, 0, w->x + 6, window_staff_widgets[WIDX_STAFF_UNIFORM_COLOR_PICKER].top + w->y + 1);
|
||||
gfx_draw_string_left(dpi, STR_UNIFORM_COLOUR, w, 0, w->x + 6, window_staff_widgets[WIDX_STAFF_UNIFORM_COLOR_PICKER].top + w->y + 1);
|
||||
}
|
||||
|
||||
int staffTypeStringId = 1859 + selectedTab;
|
||||
@@ -753,7 +748,7 @@ void window_staff_scrollpaint()
|
||||
staffOrderSprite = RCT2_ADDRESS(0x00992A08, uint32)[selectedTab];
|
||||
|
||||
while (staffOrders != 0) {
|
||||
if (staffOrders & 1 != 0) {
|
||||
if (staffOrders & 1) {
|
||||
gfx_draw_sprite(dpi, staffOrderSprite, staffOrderIcon_x, y - 1);
|
||||
}
|
||||
staffOrders = staffOrders >> 1;
|
||||
|
||||
@@ -118,7 +118,7 @@ static void window_title_menu_mouseup()
|
||||
if (widgetIndex == WIDX_START_NEW_GAME) {
|
||||
window_scenarioselect_open();
|
||||
} else if (widgetIndex == WIDX_CONTINUE_SAVED_GAME) {
|
||||
game_do_command(0, 1, 0, 0, 5, 0, 0);
|
||||
game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user