mirror of https://github.com/OpenRCT2/OpenRCT2.git
added GCC/MinGW-compatible assembler
This commit is contained in:
parent
872f4521a0
commit
d34e2db9e1
106
src/addresses.h
106
src/addresses.h
|
@ -286,13 +286,22 @@
|
|||
|
||||
static void RCT2_CALLPROC_EBPSAFE(int address)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
__asm push ebp
|
||||
__asm call address
|
||||
__asm pop ebp
|
||||
#else
|
||||
__asm__ ( "\
|
||||
push ebp \n\
|
||||
call %[address] \n\
|
||||
pop ebp \n\
|
||||
" : [address] "+m" (address) );
|
||||
#endif
|
||||
}
|
||||
|
||||
static void RCT2_CALLPROC_X(int address, int _eax, int _ebx, int _ecx, int _edx, int _esi, int _edi, int _ebp)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
push address
|
||||
mov eax, _eax
|
||||
|
@ -305,10 +314,33 @@ static void RCT2_CALLPROC_X(int address, int _eax, int _ebx, int _ecx, int _edx,
|
|||
call [esp]
|
||||
add esp, 4
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
\n\
|
||||
push ebx \n\
|
||||
push ebp \n\
|
||||
push %[address] \n\
|
||||
mov eax, %[_eax] \n\
|
||||
mov ebx, %[_ebx] \n\
|
||||
mov ecx, %[_ecx] \n\
|
||||
mov edx, %[_edx] \n\
|
||||
mov esi, %[_esi] \n\
|
||||
mov edi, %[_edi] \n\
|
||||
mov ebp, %[_ebp] \n\
|
||||
call [esp] \n\
|
||||
add esp, 4 \n\
|
||||
pop ebp \n\
|
||||
pop ebx \n\
|
||||
" : [address] "+m" (address), [_eax] "+m" (_eax), [_ebx] "+m" (_ebx), [_ecx] "+m" (_ecx), [_edx] "+m" (_edx), [_esi] "+m" (_esi), [_edi] "+m" (_edi), [_ebp] "+m" (_ebp)
|
||||
:
|
||||
: "eax","ecx","edx","esi","edi"
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void RCT2_CALLFUNC_X(int address, int *_eax, int *_ebx, int *_ecx, int *_edx, int *_esi, int *_edi, int *_ebp)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
// Store C's base pointer
|
||||
push ebp
|
||||
|
@ -375,6 +407,80 @@ static void RCT2_CALLFUNC_X(int address, int *_eax, int *_ebx, int *_ecx, int *_
|
|||
|
||||
add esp, 4
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
\n\
|
||||
/* Store C's base pointer*/ \n\
|
||||
push ebx \n\
|
||||
push ebp \n\
|
||||
\n\
|
||||
/* Store %[address] to call*/ \n\
|
||||
push %[address] \n\
|
||||
\n\
|
||||
/* Set all registers to the input values*/ \n\
|
||||
mov eax, [%[_eax]] \n\
|
||||
mov eax, [eax] \n\
|
||||
mov ebx, [%[_ebx]] \n\
|
||||
mov ebx, [ebx] \n\
|
||||
mov ecx, [%[_ecx]] \n\
|
||||
mov ecx, [ecx] \n\
|
||||
mov edx, [%[_edx]] \n\
|
||||
mov edx, [edx] \n\
|
||||
mov esi, [%[_esi]] \n\
|
||||
mov esi, [esi] \n\
|
||||
mov edi, [%[_edi]] \n\
|
||||
mov edi, [edi] \n\
|
||||
mov ebp, [%[_ebp]] \n\
|
||||
mov ebp, [ebp] \n\
|
||||
\n\
|
||||
/* Call function*/ \n\
|
||||
call [esp] \n\
|
||||
add esp, 4 \n\
|
||||
\n\
|
||||
/* Store output eax*/ \n\
|
||||
push eax \n\
|
||||
\n\
|
||||
/* Put original C base pointer into eax*/ \n\
|
||||
mov eax, [esp+4] \n\
|
||||
\n\
|
||||
/* Store output ebp*/ \n\
|
||||
push ebp \n\
|
||||
\n\
|
||||
/* Set ebp to the original C base pointer*/ \n\
|
||||
mov ebp, eax \n\
|
||||
\n\
|
||||
/* Put output ebp into ebp parameter*/ \n\
|
||||
mov eax, [esp] \n\
|
||||
push ebx \n\
|
||||
mov ebx, [%[_ebp]] \n\
|
||||
mov [ebx], eax \n\
|
||||
pop ebx \n\
|
||||
add esp, 4 \n\
|
||||
\n\
|
||||
/* Get resulting ebx, ecx, edx, esi, edi registers*/ \n\
|
||||
mov eax, [%[_edi]] \n\
|
||||
mov [eax], edi \n\
|
||||
mov eax, [%[_esi]] \n\
|
||||
mov [eax], esi \n\
|
||||
mov eax, [%[_edx]] \n\
|
||||
mov [eax], edx \n\
|
||||
mov eax, [%[_ecx]] \n\
|
||||
mov [eax], ecx \n\
|
||||
mov eax, [%[_ebx]] \n\
|
||||
mov [eax], ebx \n\
|
||||
pop eax \n\
|
||||
\n\
|
||||
/* Get resulting eax register*/ \n\
|
||||
mov ebx, [%[_eax]] \n\
|
||||
mov [ebx], eax \n\
|
||||
\n\
|
||||
add esp, 4 \n\
|
||||
pop ebx \n\
|
||||
" : [address] "+m" (address), [_eax] "+m" (_eax), [_ebx] "+m" (_ebx), [_ecx] "+m" (_ecx), [_edx] "+m" (_edx), [_esi] "+m" (_esi), [_edi] "+m" (_edi), [_ebp] "+m" (_ebp)
|
||||
:
|
||||
: "eax","ecx","edx","esi","edi"
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
30
src/game.c
30
src/game.c
|
@ -1310,7 +1310,12 @@ static void game_pause_toggle()
|
|||
{
|
||||
char input_bl;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov input_bl, bl
|
||||
#else
|
||||
__asm__ ( "mov %[input_bl], bl " : [input_bl] "+m" (input_bl) );
|
||||
#endif
|
||||
|
||||
|
||||
if (input_bl & 1) {
|
||||
RCT2_GLOBAL(0x009DEA6E, uint32) ^= 1;
|
||||
|
@ -1321,7 +1326,12 @@ static void game_pause_toggle()
|
|||
unpause_sounds();
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov ebx, 0
|
||||
#else
|
||||
__asm__ ( "mov ebx, 0 " );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1333,9 +1343,24 @@ static void game_load_or_quit()
|
|||
char input_bl, input_dl;
|
||||
short input_di;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov input_bl, bl
|
||||
#else
|
||||
__asm__ ( "mov %[input_bl], bl " : [input_bl] "+m" (input_bl) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov input_dl, dl
|
||||
#else
|
||||
__asm__ ( "mov %[input_dl], dl " : [input_dl] "+m" (input_dl) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov input_di, di
|
||||
#else
|
||||
__asm__ ( "mov %[input_di], di " : [input_di] "+m" (input_di) );
|
||||
#endif
|
||||
|
||||
|
||||
if (!(input_bl & 1))
|
||||
return; // 0;
|
||||
|
@ -1353,7 +1378,12 @@ static void game_load_or_quit()
|
|||
break;
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov ebx, 0
|
||||
#else
|
||||
__asm__ ( "mov ebx, 0 " );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -189,10 +189,18 @@ void rct2_update()
|
|||
{
|
||||
// Set 0x009DE564 to the value of esp
|
||||
// RCT2 sets the stack pointer to the value of this address when ending the current game tick from anywhere
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
mov eax, 009DE564h
|
||||
mov [eax], esp
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
\n\
|
||||
mov eax, 0x009DE564 \n\
|
||||
mov [eax], esp \n\
|
||||
" : : : "eax" );
|
||||
#endif
|
||||
|
||||
if (!setjmp(_end_update_jump))
|
||||
rct2_update_2();
|
||||
|
|
|
@ -282,6 +282,7 @@ static int scenario_load_basic(char *path)
|
|||
CloseHandle(hFile);
|
||||
RCT2_GLOBAL(0x009AA00C, uint8) = 0;
|
||||
if (s6Info->flags != 255) {
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
push ebp
|
||||
mov ebp, 0141F6F8h
|
||||
|
@ -291,14 +292,34 @@ static int scenario_load_basic(char *path)
|
|||
mov _eax, eax
|
||||
jb loc_67628F
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
push ebp \n\
|
||||
mov ebp, 0x0141F6F8 \n\
|
||||
mov eax, 0x006A9428 \n\
|
||||
call eax \n\
|
||||
pop ebp \n\
|
||||
mov %[_eax], eax \n\
|
||||
jb loc_67628F \n\
|
||||
" : [_eax] "+m" (_eax) : : "eax" );
|
||||
#endif
|
||||
|
||||
int ebp = RCT2_GLOBAL(0x009ADAF8, uint32);
|
||||
format_string(s6Info->name, RCT2_GLOBAL(ebp, sint16), NULL);
|
||||
format_string(s6Info->details, RCT2_GLOBAL(ebp + 4, sint16), NULL);
|
||||
RCT2_GLOBAL(0x009AA00C, uint8) = RCT2_GLOBAL(ebp + 6, uint8);
|
||||
RCT2_CALLPROC(0x006A982D);
|
||||
#ifdef _MSC_VER
|
||||
__asm mov _eax, eax
|
||||
#else
|
||||
__asm__ ( "mov %[_eax], eax " : [_eax] "+m" (_eax) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
loc_67628F :
|
||||
#else
|
||||
__asm__ ( "loc_67628F :");
|
||||
#endif
|
||||
return _eax;
|
||||
}
|
||||
return 1;
|
||||
|
@ -879,8 +900,14 @@ void scenario_update()
|
|||
for (int i = 0; i < 100; ++i) {
|
||||
int carry;
|
||||
RCT2_CALLPROC_EBPSAFE(0x006744A9); // clears carry flag on failure -.-
|
||||
#ifdef _MSC_VER
|
||||
__asm mov carry, 0;
|
||||
__asm adc carry, 0;
|
||||
#else
|
||||
__asm__ ( "mov %[carry], 0; " : [carry] "+m" (carry) );
|
||||
__asm__ ( "adc %[carry], 0; " : [carry] "+m" (carry) );
|
||||
#endif
|
||||
|
||||
if (!carry)
|
||||
break;
|
||||
}
|
||||
|
|
11
src/window.c
11
src/window.c
|
@ -102,6 +102,7 @@ rct_widget *window_get_scroll_widget(rct_window *w, int scrollIndex)
|
|||
}
|
||||
static void RCT2_CALLPROC_WE_UPDATE(int address, rct_window* w)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
push address
|
||||
push w
|
||||
|
@ -109,6 +110,16 @@ static void RCT2_CALLPROC_WE_UPDATE(int address, rct_window* w)
|
|||
call[esp + 4]
|
||||
add esp, 8
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
push %[address]\n\
|
||||
mov eax, %[w] \n\
|
||||
push eax \n\
|
||||
mov esi, %[w] \n\
|
||||
call [esp+4] \n\
|
||||
add esp, 8 \n\
|
||||
" : [address] "+m" (address), [w] "+m" (w) : : "eax", "esi" );
|
||||
#endif
|
||||
}
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -117,8 +117,13 @@ static void window_about_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -143,8 +148,13 @@ static void window_about_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -153,8 +153,18 @@ static void window_banner_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -176,7 +186,12 @@ static void window_banner_mousedown()
|
|||
{
|
||||
short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_MAIN_COLOR:
|
||||
|
@ -192,7 +207,12 @@ static void window_banner_dropdown()
|
|||
{
|
||||
short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx;
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx; " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_MAIN_COLOR)
|
||||
RCT2_CALLPROC_EBPSAFE(0x006BA548);
|
||||
|
@ -204,7 +224,12 @@ static void window_banner_textinput()
|
|||
{
|
||||
short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx;
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx; " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_BANNER_TEXT) {
|
||||
RCT2_CALLPROC_EBPSAFE(0x006BA6D8);
|
||||
|
@ -221,8 +246,18 @@ static void window_banner_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -183,8 +183,18 @@ static void window_cheats_money_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -214,8 +224,18 @@ static void window_cheats_guests_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
rct_peep* peep;
|
||||
uint16 sprite_idx;
|
||||
|
||||
|
@ -245,7 +265,11 @@ static void window_cheats_update(rct_window *w)
|
|||
{
|
||||
rct_window *w2;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w2, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w2], esi " : [w2] "+m" (w2) );
|
||||
#endif
|
||||
|
||||
w->var_48E++;
|
||||
widget_invalidate(w->classification, w->number, WIDX_TAB_1+w->page);
|
||||
|
@ -256,7 +280,12 @@ static void window_cheats_invalidate()
|
|||
int i;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
strcpy((char*)0x009BC677, "Cheats");
|
||||
|
||||
rct_widget *widgets = window_cheats_page_widgets[w->page];
|
||||
|
@ -276,8 +305,18 @@ static void window_cheats_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_cheats_draw_tab_images(dpi, w);
|
||||
|
|
|
@ -129,8 +129,18 @@ static void window_clear_scenery_mouseup()
|
|||
int limit;
|
||||
short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -183,7 +193,12 @@ static void window_clear_scenery_invalidate()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
// Set the preview image button to be pressed down
|
||||
w->pressed_widgets |= (1 << WIDX_PREVIEW);
|
||||
|
@ -202,8 +217,18 @@ static void window_clear_scenery_paint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
int x, y;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -269,8 +269,18 @@ static void window_dropdown_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -223,7 +223,12 @@ static void window_footpath_close()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
RCT2_CALLPROC_EBPSAFE(0x006A7831);
|
||||
RCT2_CALLPROC_X(0x006CB70A, 0, 0, 0, 0, 0, 0, 0);
|
||||
|
@ -242,8 +247,18 @@ static void window_footpath_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -298,9 +313,24 @@ static void window_footpath_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_FOOTPATH_TYPE:
|
||||
|
@ -345,9 +375,24 @@ static void window_footpath_dropdown()
|
|||
rct_window *w;
|
||||
rct_path_type *pathType;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_FOOTPATH_TYPE)
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_SELECTED_PATH_TYPE, uint8) = SELECTED_PATH_TYPE_NORMAL;
|
||||
|
@ -397,10 +442,30 @@ static void window_footpath_toolupdate()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, eax
|
||||
#else
|
||||
__asm__ ( "mov %[x], eax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, ebx
|
||||
#else
|
||||
__asm__ ( "mov %[y], ebx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) {
|
||||
window_footpath_set_provisional_path_at_point(x, y);
|
||||
|
@ -419,10 +484,30 @@ static void window_footpath_tooldown()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, eax
|
||||
#else
|
||||
__asm__ ( "mov %[x], eax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, ebx
|
||||
#else
|
||||
__asm__ ( "mov %[y], ebx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) {
|
||||
window_footpath_place_path_at_point(x, y);
|
||||
|
@ -441,10 +526,30 @@ static void window_footpath_tooldrag()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, eax
|
||||
#else
|
||||
__asm__ ( "mov %[x], eax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, ebx
|
||||
#else
|
||||
__asm__ ( "mov %[y], ebx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) {
|
||||
RCT2_CALLPROC_X(0x006A82C5, x, y, 0, 0, (int)w, 0, 0);
|
||||
|
@ -461,10 +566,30 @@ static void window_footpath_toolup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, eax
|
||||
#else
|
||||
__asm__ ( "mov %[x], eax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, ebx
|
||||
#else
|
||||
__asm__ ( "mov %[y], ebx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) {
|
||||
RCT2_CALLPROC_X(0x006A8380, x, y, 0, 0, (int)w, 0, 0);
|
||||
|
@ -510,7 +635,12 @@ static void window_footpath_invalidate()
|
|||
rct_path_type *pathType;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
// Press / unpress footpath and queue type buttons
|
||||
w->pressed_widgets &= ~(1 << WIDX_FOOTPATH_TYPE);
|
||||
|
@ -547,8 +677,18 @@ static void window_footpath_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -154,8 +154,18 @@ static void window_game_bottom_toolbar_mouseup()
|
|||
rct_window *w, *mainWindow;
|
||||
rct_news_item *newsItem;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_LEFT_OUTSET:
|
||||
|
@ -207,8 +217,18 @@ static void window_game_bottom_toolbar_tooltip()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_MONEY:
|
||||
|
@ -230,7 +250,12 @@ static void window_game_bottom_toolbar_tooltip()
|
|||
break;
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dx, widgetIndex
|
||||
#else
|
||||
__asm__ ( "mov dx, %[widgetIndex] " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -243,7 +268,12 @@ static void window_game_bottom_toolbar_invalidate()
|
|||
rct_window *w;
|
||||
rct_news_item *newsItem;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
// Anchor the middle and right panel to the right
|
||||
x = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, sint16);
|
||||
|
@ -335,8 +365,18 @@ static void window_game_bottom_toolbar_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
// Draw panel grey backgrounds
|
||||
gfx_fill_rect(
|
||||
|
@ -543,7 +583,8 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rc
|
|||
_edi = (int)e->paint.dpi;
|
||||
_cx = x;
|
||||
_dx = y;
|
||||
__asm {
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
mov cx, _cx
|
||||
mov dx, _dx
|
||||
mov esi, w
|
||||
|
@ -556,6 +597,22 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rc
|
|||
after:
|
||||
pop ebp
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
\n\
|
||||
mov cx, %[_cx] \n\
|
||||
mov dx, %[_dx] \n\
|
||||
mov esi, %[w] \n\
|
||||
mov edi, %[_edi] \n\
|
||||
push ebp \n\
|
||||
mov ebp, 0x0066C3B8 \n\
|
||||
push %[after] \n\
|
||||
push esi \n\
|
||||
jmp ebp \n\
|
||||
%[after]: \n\
|
||||
pop ebp \n\
|
||||
" : [_cx] "+m" (_cx), [_dx] "+m" (_dx), [w] "+m" (w), [_edi] "+m" (_edi), [after] "+m" (after) );
|
||||
#endif
|
||||
break;
|
||||
*/
|
||||
|
||||
|
|
|
@ -148,8 +148,18 @@ static void window_game_top_toolbar_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w, *mainWindow;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_PAUSE:
|
||||
|
@ -251,9 +261,24 @@ static void window_game_top_toolbar_mousedown()
|
|||
rct_widget *widget;
|
||||
rct_viewport *mainViewport;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_FILE_MENU) {
|
||||
gDropdownItemsFormat[0] = 882;
|
||||
|
@ -339,8 +364,18 @@ static void window_game_top_toolbar_dropdown()
|
|||
{
|
||||
short widgetIndex, dropdownIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_FILE_MENU) {
|
||||
switch (dropdownIndex) {
|
||||
|
@ -402,7 +437,12 @@ static void window_game_top_toolbar_invalidate()
|
|||
int x;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
// Anchor the right half of the buttons to the right
|
||||
x = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, sint16);
|
||||
|
@ -472,8 +512,18 @@ static void window_game_top_toolbar_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -187,8 +187,18 @@ static void window_guest_list_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -208,7 +218,12 @@ static void window_guest_list_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->min_width = 350;
|
||||
w->min_height = 330;
|
||||
|
@ -233,9 +248,24 @@ static void window_guest_list_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_TAB_1:
|
||||
|
@ -303,9 +333,24 @@ static void window_guest_list_dropdown()
|
|||
short dropdownIndex, widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_PAGE_DROPDOWN_BUTTON:
|
||||
|
@ -347,7 +392,12 @@ static void window_guest_list_scrollgetsize()
|
|||
rct_window *w;
|
||||
rct_peep *peep;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (_window_guest_list_selected_tab) {
|
||||
case PAGE_INDIVIDUAL:
|
||||
|
@ -400,8 +450,18 @@ static void window_guest_list_scrollgetsize()
|
|||
window_invalidate(w);
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov ecx, 447
|
||||
#else
|
||||
__asm__ ( "mov ecx, 447 " );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov edx, y
|
||||
#else
|
||||
__asm__ ( "mov edx, %[y] " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -415,8 +475,18 @@ static void window_guest_list_scrollmousedown()
|
|||
rct_window *w;
|
||||
rct_peep *peep;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (_window_guest_list_selected_tab) {
|
||||
case PAGE_INDIVIDUAL:
|
||||
|
@ -468,8 +538,18 @@ static void window_guest_list_scrollmouseover()
|
|||
short y;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
i = y / (_window_guest_list_selected_tab == PAGE_INDIVIDUAL ? 10 : 21);
|
||||
i += _window_guest_list_selected_page * 3173;
|
||||
|
@ -496,7 +576,12 @@ static void window_guest_list_invalidate()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->pressed_widgets &= ~(1 << WIDX_TAB_1);
|
||||
w->pressed_widgets &= ~(1 << WIDX_TAB_2);
|
||||
|
@ -530,8 +615,18 @@ static void window_guest_list_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
// Widgets
|
||||
window_draw_widgets(w, dpi);
|
||||
|
@ -594,8 +689,18 @@ static void window_guest_list_scrollpaint()
|
|||
rct_peep *peep;
|
||||
rct_peep_thought *thought;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
// Background fill
|
||||
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ((char*)0x0141FC48)[w->colours[1] * 8]);
|
||||
|
|
|
@ -165,8 +165,18 @@ static void window_land_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -214,9 +224,24 @@ static void window_land_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_FLOOR:
|
||||
|
@ -266,9 +291,24 @@ static void window_land_dropdown()
|
|||
short dropdownIndex, widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_FLOOR:
|
||||
|
@ -325,7 +365,12 @@ static void window_land_invalidate()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->pressed_widgets = (1 << WIDX_PREVIEW);
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SELECTED_TERRAIN_SURFACE, uint8) != 255)
|
||||
|
@ -350,8 +395,18 @@ static void window_land_paint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
int x, y, price, numTiles;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ void window_main_open()
|
|||
window->widgets = main_widgets;
|
||||
|
||||
// RCT2_CALLPROC_X(0x006EB009, window->x, window->y, 0x4000000, 0x0FFF0FFF, window, 0, 0);
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
mov esi, window
|
||||
mov edx, 0FFF0FFFh
|
||||
|
@ -62,6 +63,24 @@ void window_main_open()
|
|||
pop ebp
|
||||
or word ptr [edi+12h], 400h
|
||||
}
|
||||
#else
|
||||
__asm__ ( "\
|
||||
\n\
|
||||
push ebx \n\
|
||||
mov esi, %[window] \n\
|
||||
mov edx, 0x0FFF0FFF \n\
|
||||
mov eax, [esi+0x2C] \n\
|
||||
mov ebx, [esi+0x30] \n\
|
||||
mov ecx, 0x4000000 \n\
|
||||
push ebp \n\
|
||||
mov ebp, 0x6EB009 \n\
|
||||
call ebp \n\
|
||||
\n\
|
||||
pop ebp \n\
|
||||
or word ptr [edi+0x12], 0x400 \n\
|
||||
pop ebx \n\
|
||||
" : [window] "+m" (window) : : "esi","edx","eax","ecx" );
|
||||
#endif
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, sint32) = 0;
|
||||
RCT2_GLOBAL(0x009E32B0, uint8) = 0;
|
||||
|
|
|
@ -187,8 +187,18 @@ static void window_map_mouseup()
|
|||
/*short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -243,7 +253,11 @@ static void window_map_invalidate()
|
|||
uint32 pressed_widgets;
|
||||
int i, height;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
// set the pressed widgets
|
||||
pressed_widgets = (uint32)w->pressed_widgets;
|
||||
|
@ -366,8 +380,18 @@ static void window_map_paint()
|
|||
int image_id;
|
||||
int i, x, y;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -129,8 +129,18 @@ static void window_news_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -195,7 +205,12 @@ static void window_news_scrollgetsize()
|
|||
height += 42;
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov edx, height
|
||||
#else
|
||||
__asm__ ( "mov edx, %[height] " : [height] "+m" (height) );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -209,9 +224,24 @@ static void window_news_scrollmousedown()
|
|||
rct_window *w;
|
||||
rct_news_item *newsItems;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, cx
|
||||
#else
|
||||
__asm__ ( "mov %[x], cx " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
buttonIndex = 0;
|
||||
newsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item);
|
||||
|
@ -274,8 +304,18 @@ static void window_news_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
}
|
||||
|
@ -291,8 +331,18 @@ static void window_news_scrollpaint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
rct_news_item *newsItems, *newsItem, *newsItem2;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
y = 0;
|
||||
newsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item);
|
||||
|
|
|
@ -199,8 +199,18 @@ static void window_options_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -218,9 +228,19 @@ static void window_options_mouseup()
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) ^= PARK_FLAGS_SHOW_REAL_GUEST_NAMES;
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_SHOW_REAL_GUEST_NAMES)
|
||||
__asm xor al, al
|
||||
#ifdef _MSC_VER
|
||||
__asm xor al, al
|
||||
#else
|
||||
__asm__ ( "xor al, al " );
|
||||
#endif
|
||||
|
||||
else
|
||||
__asm mov al, 1
|
||||
#ifdef _MSC_VER
|
||||
__asm mov al, 1
|
||||
#else
|
||||
__asm__ ( "mov al, 1 " );
|
||||
#endif
|
||||
|
||||
|
||||
RCT2_CALLPROC_EBPSAFE(0x0069C52F);
|
||||
break;
|
||||
|
@ -268,8 +288,18 @@ static void window_options_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widget = &w->widgets[widgetIndex - 1];
|
||||
|
||||
|
@ -386,16 +416,36 @@ static void window_options_dropdown()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (dropdownIndex == -1)
|
||||
return;
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_SOUND_DROPDOWN:
|
||||
__asm movzx ax, dropdownIndex // the switch replaces ax value
|
||||
#ifdef _MSC_VER
|
||||
__asm movzx ax, dropdownIndex
|
||||
#else
|
||||
__asm__ ( "movzx ax, %[dropdownIndex] " : : [dropdownIndex] "g" ((char)dropdownIndex) );
|
||||
#endif
|
||||
// the switch replaces ax value
|
||||
RCT2_CALLPROC_EBPSAFE(0x006BA9B5); // part of init audio
|
||||
window_invalidate(w);
|
||||
break;
|
||||
|
@ -434,7 +484,12 @@ static void window_options_dropdown()
|
|||
window_options_update_height_markers();
|
||||
break;
|
||||
case WIDX_RESOLUTION_DROPDOWN:
|
||||
__asm movzx ax, dropdownIndex // the switch replaces ax value
|
||||
#ifdef _MSC_VER
|
||||
__asm movzx ax, dropdownIndex
|
||||
#else
|
||||
__asm__ ( "movzx ax, %[dropdownIndex] " : : [dropdownIndex] "g" ((char)dropdownIndex) );
|
||||
#endif
|
||||
// the switch replaces ax value
|
||||
RCT2_CALLPROC_EBPSAFE(0x006BB37D);
|
||||
break;
|
||||
case WIDX_TEMPERATURE_DROPDOWN:
|
||||
|
@ -461,7 +516,12 @@ static void window_options_dropdown()
|
|||
static void window_options_update(rct_window *w)
|
||||
{
|
||||
//Has use asm verison incase called by WM_INVALIDATE
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
sint32 format_args = RCT2_GLOBAL(0x009AF280, sint32);
|
||||
|
||||
|
@ -568,8 +628,18 @@ static void window_options_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
|
@ -643,7 +643,12 @@ static void window_park_entrance_close()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
if (w->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS, rct_windowclass) && w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER, rct_windownumber))
|
||||
|
@ -659,8 +664,18 @@ static void window_park_entrance_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -699,7 +714,12 @@ static void window_park_entrance_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->flags |= WF_RESIZABLE;
|
||||
window_set_resize(w, 230, 174 + 9, 230 * 3, (274 + 9) * 3);
|
||||
|
@ -716,9 +736,24 @@ static void window_park_entrance_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_OPEN_OR_CLOSE) {
|
||||
gDropdownItemsFormat[0] = 1142;
|
||||
|
@ -752,8 +787,18 @@ static void window_park_entrance_dropdown()
|
|||
{
|
||||
short widgetIndex, dropdownIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_OPEN_OR_CLOSE) {
|
||||
if (dropdownIndex == -1)
|
||||
|
@ -790,10 +835,30 @@ static void window_park_entrance_toolupdate()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, eax
|
||||
#else
|
||||
__asm__ ( "mov %[x], eax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, ebx
|
||||
#else
|
||||
__asm__ ( "mov %[y], ebx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_BUY_LAND_RIGHTS) {
|
||||
RCT2_CALLPROC_X(0x0068AAE1, x, y, 0, 0, (int)w, 0, 0);
|
||||
|
@ -820,10 +885,30 @@ static void window_park_entrance_tooldown()
|
|||
short x, y, widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, ax
|
||||
#else
|
||||
__asm__ ( "mov %[x], ax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, bx
|
||||
#else
|
||||
__asm__ ( "mov %[y], bx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
RCT2_CALLPROC_X(0x006681E6, x, y, 0, widgetIndex, (int)w, 0, 0);
|
||||
}
|
||||
|
@ -837,10 +922,30 @@ static void window_park_entrance_tooldrag()
|
|||
short x, y, widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, ax
|
||||
#else
|
||||
__asm__ ( "mov %[x], ax " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, bx
|
||||
#else
|
||||
__asm__ ( "mov %[y], bx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
RCT2_CALLPROC_X(0x006681FB, x, y, 0, widgetIndex, (int)w, 0, 0);
|
||||
}
|
||||
|
@ -854,8 +959,18 @@ static void window_park_entrance_toolabort()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_BUY_LAND_RIGHTS) {
|
||||
hide_gridlines();
|
||||
|
@ -877,10 +992,30 @@ static void window_park_entrance_textinput()
|
|||
rct_window *w;
|
||||
char *text;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov result, cl
|
||||
#else
|
||||
__asm__ ( "mov %[result], cl " : [result] "+m" (result) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov text, edi
|
||||
#else
|
||||
__asm__ ( "mov %[text], edi " : [text] "+m" (text) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_RENAME) {
|
||||
if (result) {
|
||||
|
@ -901,7 +1036,12 @@ static void window_park_entrance_invalidate()
|
|||
int i;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->widgets = window_park_page_widgets[w->page];
|
||||
window_init_scroll_widgets(w);
|
||||
|
@ -953,8 +1093,18 @@ static void window_park_entrance_paint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
rct_widget *labelWidget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
@ -1117,8 +1267,18 @@ static void window_park_rating_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -1134,7 +1294,12 @@ static void window_park_rating_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_set_resize(w, 230, 182, 230, 182);
|
||||
}
|
||||
|
@ -1158,7 +1323,12 @@ static void window_park_rating_invalidate()
|
|||
rct_window *w;
|
||||
rct_widget *widgets;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widgets = window_park_page_widgets[w->page];
|
||||
if (w->widgets != widgets) {
|
||||
|
@ -1187,8 +1357,18 @@ static void window_park_rating_paint()
|
|||
rct_widget *widget;
|
||||
uint8 *history;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
@ -1255,8 +1435,18 @@ static void window_park_guests_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -1272,7 +1462,12 @@ static void window_park_guests_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_set_resize(w, 230, 182, 230, 182);
|
||||
}
|
||||
|
@ -1297,7 +1492,12 @@ static void window_park_guests_invalidate()
|
|||
rct_window *w;
|
||||
rct_widget *widgets;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widgets = window_park_page_widgets[w->page];
|
||||
if (w->widgets != widgets) {
|
||||
|
@ -1326,8 +1526,18 @@ static void window_park_guests_paint()
|
|||
rct_widget *widget;
|
||||
uint8 *history;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
@ -1365,8 +1575,18 @@ static void window_park_price_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -1382,7 +1602,12 @@ static void window_park_price_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_set_resize(w, 230, 124, 230, 124);
|
||||
}
|
||||
|
@ -1397,8 +1622,18 @@ static void window_park_price_mousedown()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -1443,7 +1678,12 @@ static void window_park_price_invalidate()
|
|||
rct_window *w;
|
||||
rct_widget *widgets;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widgets = window_park_page_widgets[w->page];
|
||||
if (w->widgets != widgets) {
|
||||
|
@ -1483,8 +1723,18 @@ static void window_park_price_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
@ -1510,8 +1760,18 @@ static void window_park_stats_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -1527,7 +1787,12 @@ static void window_park_stats_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_set_resize(w, 230, 109, 230, 109);
|
||||
}
|
||||
|
@ -1567,7 +1832,12 @@ static void window_park_stats_invalidate()
|
|||
rct_window *w;
|
||||
rct_widget *widgets;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widgets = window_park_page_widgets[w->page];
|
||||
if (w->widgets != widgets) {
|
||||
|
@ -1594,8 +1864,18 @@ static void window_park_stats_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
@ -1677,8 +1957,18 @@ static void window_park_objective_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -1707,7 +1997,12 @@ static void window_park_objective_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_set_resize(w, 230, 224, 230, 224);
|
||||
}
|
||||
|
@ -1730,7 +2025,12 @@ static void window_park_objective_invalidate()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_park_set_pressed_tab(w);
|
||||
|
||||
|
@ -1758,8 +2058,18 @@ static void window_park_objective_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
@ -1839,8 +2149,18 @@ static void window_park_awards_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -1856,7 +2176,12 @@ static void window_park_awards_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_set_resize(w, 230, 182, 230, 182);
|
||||
}
|
||||
|
@ -1880,7 +2205,12 @@ static void window_park_awards_invalidate()
|
|||
rct_window *w;
|
||||
rct_widget *widgets;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widgets = window_park_page_widgets[w->page];
|
||||
if (w->widgets != widgets) {
|
||||
|
@ -1908,8 +2238,18 @@ static void window_park_awards_paint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
rct_award *award;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_park_draw_tab_images(dpi, w);
|
||||
|
|
|
@ -178,8 +178,18 @@ static void window_ride_list_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -213,7 +223,12 @@ static void window_ride_list_resize()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->min_width = 340;
|
||||
w->min_height = 124;
|
||||
|
@ -240,9 +255,24 @@ static void window_ride_list_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_OPEN_CLOSE_ALL) {
|
||||
gDropdownItemsFormat[0] = STR_CLOSE_ALL;
|
||||
|
@ -275,9 +305,24 @@ static void window_ride_list_dropdown()
|
|||
short dropdownIndex, widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_OPEN_CLOSE_ALL) {
|
||||
if (dropdownIndex == 0)
|
||||
|
@ -314,7 +359,12 @@ static void window_ride_list_scrollgetsize()
|
|||
int top, height;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
height = w->var_476 * 10;
|
||||
if (w->var_47A != -1) {
|
||||
|
@ -330,8 +380,18 @@ static void window_ride_list_scrollgetsize()
|
|||
window_invalidate(w);
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov ecx, 0
|
||||
#else
|
||||
__asm__ ( "mov ecx, 0 " );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov edx, height
|
||||
#else
|
||||
__asm__ ( "mov edx, %[height] " : [height] "+m" (height) );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -344,8 +404,18 @@ static void window_ride_list_scrollmousedown()
|
|||
short y;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
index = y / 10;
|
||||
if (index >= w->var_476)
|
||||
|
@ -365,8 +435,18 @@ static void window_ride_list_scrollmouseover()
|
|||
short y;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
index = y / 10;
|
||||
if (index >= w->var_476)
|
||||
|
@ -394,7 +474,12 @@ static void window_ride_list_invalidate()
|
|||
int i;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
window_ride_list_widgets[WIDX_CURRENT_INFORMATION_TYPE].image = STR_STATUS + _window_ride_list_information_type;
|
||||
|
||||
|
@ -427,8 +512,18 @@ static void window_ride_list_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_ride_list_draw_tab_images(dpi, w);
|
||||
|
@ -458,8 +553,18 @@ static void window_ride_list_scrollpaint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
rct_ride *ride;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height, RCT2_GLOBAL(0x0141FC48 + (w->colours[1] * 8), uint8));
|
||||
|
||||
|
|
|
@ -175,8 +175,18 @@ static void window_save_prompt_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
@ -186,8 +196,18 @@ static void window_save_prompt_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
}
|
|
@ -98,8 +98,18 @@ static void window_title_exit_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RUN_INTRO_TICK_PART, int) != 0)
|
||||
return;
|
||||
|
@ -117,8 +127,18 @@ static void window_title_exit_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
}
|
|
@ -99,8 +99,18 @@ static void window_title_logo_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
gfx_draw_sprite(dpi, SPR_MENU_LOGO, w->x, w->y);
|
||||
|
||||
|
|
|
@ -109,7 +109,12 @@ static void window_title_menu_mouseup()
|
|||
{
|
||||
short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
if (widgetIndex == WIDX_START_NEW_GAME) {
|
||||
window_scenarioselect_open();
|
||||
} else if (widgetIndex == WIDX_CONTINUE_SAVED_GAME) {
|
||||
|
@ -123,9 +128,24 @@ static void window_title_menu_mousedown()
|
|||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_SHOW_TUTORIAL) {
|
||||
gDropdownItemsFormat[0] = STR_TUTORIAL_BEGINNERS;
|
||||
|
@ -159,8 +179,18 @@ static void window_title_menu_dropdown()
|
|||
{
|
||||
short widgetIndex, dropdownIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dropdownIndex, ax
|
||||
#else
|
||||
__asm__ ( "mov %[dropdownIndex], ax " : [dropdownIndex] "+m" (dropdownIndex) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_SHOW_TUTORIAL) {
|
||||
tutorial_start(dropdownIndex);
|
||||
|
@ -192,8 +222,18 @@ static void window_title_menu_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
}
|
||||
|
|
|
@ -173,8 +173,18 @@ static void window_scenarioselect_mouseup()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_CLOSE)
|
||||
window_close(w);
|
||||
|
@ -185,8 +195,18 @@ static void window_scenarioselect_mousedown()
|
|||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex >= WIDX_TAB1 && widgetIndex <= WIDX_TAB5) {
|
||||
w->selected_tab = widgetIndex - 4;
|
||||
|
@ -205,7 +225,12 @@ static void window_scenarioselect_scrollgetsize()
|
|||
rct_window *w;
|
||||
rct_scenario_basic *scenario;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
height = 0;
|
||||
for (i = 0; i < RCT2_GLOBAL(RCT2_ADDRESS_NUM_SCENARIOS, sint32); i++) {
|
||||
|
@ -216,8 +241,18 @@ static void window_scenarioselect_scrollgetsize()
|
|||
height += 24;
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov ecx, 0
|
||||
#else
|
||||
__asm__ ( "mov ecx, 0 " );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov edx, height
|
||||
#else
|
||||
__asm__ ( "mov edx, %[height] " : [height] "+m" (height) );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
static void window_scenarioselect_scrollmousedown()
|
||||
|
@ -227,9 +262,24 @@ static void window_scenarioselect_scrollmousedown()
|
|||
rct_window *w;
|
||||
rct_scenario_basic *scenario;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, cx
|
||||
#else
|
||||
__asm__ ( "mov %[x], cx " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
for (i = 0; i < RCT2_GLOBAL(RCT2_ADDRESS_NUM_SCENARIOS, sint32); i++) {
|
||||
scenario = &(RCT2_GLOBAL(RCT2_ADDRESS_SCENARIO_LIST, rct_scenario_basic*)[i]);
|
||||
|
@ -255,9 +305,24 @@ static void window_scenarioselect_scrollmouseover()
|
|||
rct_window *w;
|
||||
rct_scenario_basic *scenario, *selected;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov x, cx
|
||||
#else
|
||||
__asm__ ( "mov %[x], cx " : [x] "+m" (x) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov y, dx
|
||||
#else
|
||||
__asm__ ( "mov %[y], dx " : [y] "+m" (y) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
selected = NULL;
|
||||
for (i = 0; i < RCT2_GLOBAL(RCT2_ADDRESS_NUM_SCENARIOS, sint32); i++) {
|
||||
|
@ -284,7 +349,12 @@ static void window_scenarioselect_invalidate()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
w->pressed_widgets &= ~(0x10 | 0x20 | 0x40 | 0x80 | 0x100);
|
||||
w->pressed_widgets |= 1LL << (w->selected_tab + 4);
|
||||
|
@ -298,8 +368,18 @@ static void window_scenarioselect_paint()
|
|||
rct_widget *widget;
|
||||
rct_scenario_basic *scenario;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
@ -360,8 +440,18 @@ static void window_scenarioselect_scrollpaint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
rct_scenario_basic *scenario;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
colour = ((char*)0x0141FC48)[w->colours[1] * 8];
|
||||
colour = (colour << 24) | (colour << 16) | (colour << 8) | colour;
|
||||
|
|
|
@ -188,8 +188,18 @@ static void window_tooltip_paint()
|
|||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
int left = w->x;
|
||||
int top = w->y;
|
||||
|
|
|
@ -130,8 +130,18 @@ static void window_water_mouseup()
|
|||
int limit;
|
||||
short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
@ -184,7 +194,12 @@ static void window_water_invalidate()
|
|||
{
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
// Set the preview image button to be pressed down
|
||||
w->pressed_widgets |= (1 << WIDX_PREVIEW);
|
||||
|
@ -203,8 +218,18 @@ static void window_water_paint()
|
|||
rct_drawpixelinfo *dpi;
|
||||
int x, y;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov dpi, edi
|
||||
#else
|
||||
__asm__ ( "mov %[dpi], edi " : [dpi] "+m" (dpi) );
|
||||
#endif
|
||||
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
|
|
Loading…
Reference in New Issue