Offset fix
This commit is contained in:
@@ -59,6 +59,7 @@ pub fn define_window(start: Dot, width: u32, height: u32, params: WindowParams<'
|
|||||||
start.y * 65536 + height,
|
start.y * 65536 + height,
|
||||||
params.color.as_rgb_val()
|
params.color.as_rgb_val()
|
||||||
| (RELATIVE_FLAG | (params.title.is_some() as u32) << 4 | params.kind as u32) << 24,
|
| (RELATIVE_FLAG | (params.title.is_some() as u32) << 4 | params.kind as u32) << 24,
|
||||||
|
0,
|
||||||
params
|
params
|
||||||
.title
|
.title
|
||||||
.map(|s| s.as_ptr())
|
.map(|s| s.as_ptr())
|
||||||
@@ -82,8 +83,8 @@ pub fn display_message(start: Dot, params: WindowTextParams<'_>) {
|
|||||||
start.x * 65536 + start.y,
|
start.x * 65536 + start.y,
|
||||||
params.color.as_rgb_val() | BG_FLAG * params.bg_color.is_some() as u32 | UTF8_FLAG,
|
params.color.as_rgb_val() | BG_FLAG * params.bg_color.is_some() as u32 | UTF8_FLAG,
|
||||||
params.text.as_ptr() as u32,
|
params.text.as_ptr() as u32,
|
||||||
0,
|
|
||||||
params.text.len() as u32,
|
params.text.len() as u32,
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,9 +10,9 @@ extern "C" {
|
|||||||
pub fn exit() -> !;
|
pub fn exit() -> !;
|
||||||
|
|
||||||
#[link_name = "_define_window"]
|
#[link_name = "_define_window"]
|
||||||
pub fn define_window(ebx: u32, ecx: u32, edx: u32, edi: u32);
|
pub fn define_window(ebx: u32, ecx: u32, edx: u32, esi: u32, edi: u32);
|
||||||
#[link_name = "_display_message"]
|
#[link_name = "_display_message"]
|
||||||
pub fn display_message(ebx: u32, ecx: u32, edx: u32, edi: u32, esi: u32);
|
pub fn display_message(ebx: u32, ecx: u32, edx: u32, esi: u32, edi: u32);
|
||||||
|
|
||||||
#[link_name = "_wait_event"]
|
#[link_name = "_wait_event"]
|
||||||
pub fn wait_event() -> u32;
|
pub fn wait_event() -> u32;
|
||||||
|
@@ -27,31 +27,28 @@ _end_window_draw:
|
|||||||
|
|
||||||
_define_window:
|
_define_window:
|
||||||
push edi
|
push edi
|
||||||
push ebx
|
push esi
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov ebx, dword [esp + 0x14]
|
mov ebx, dword [esp + 0x0c]
|
||||||
mov ecx, dword [esp + 0x18]
|
mov ecx, dword [esp + 0x10]
|
||||||
mov edx, dword [esp + 0x1c]
|
mov edx, dword [esp + 0x14]
|
||||||
mov edi, dword [esp + 0x20]
|
mov esi, dword [esp + 0x18]
|
||||||
mov ebx, 2
|
mov edi, dword [esp + 0x1c]
|
||||||
int 0x40
|
int 0x40
|
||||||
pop ebx
|
pop esi
|
||||||
pop edi
|
pop edi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
_display_message:
|
_display_message:
|
||||||
push edi
|
push edi
|
||||||
push esi
|
push esi
|
||||||
push ebx
|
|
||||||
mov eax, 4
|
mov eax, 4
|
||||||
mov ebx, dword [esp + 0x14]
|
mov ebx, dword [esp + 0x0c]
|
||||||
mov ecx, dword [esp + 0x18]
|
mov ecx, dword [esp + 0x10]
|
||||||
mov edx, dword [esp + 0x1c]
|
mov edx, dword [esp + 0x14]
|
||||||
mov esi, dword [esp + 0x20]
|
mov esi, dword [esp + 0x18]
|
||||||
mov edi, dword [esp + 0x24]
|
mov edi, dword [esp + 0x1c]
|
||||||
mov ebx, 2
|
|
||||||
int 0x40
|
int 0x40
|
||||||
pop ebx
|
|
||||||
pop esi
|
pop esi
|
||||||
pop edi
|
pop edi
|
||||||
ret
|
ret
|
||||||
|
Reference in New Issue
Block a user