mirror of https://github.com/nmlgc/ReC98.git
[Decompilation] [th04/th05] Dialog: Face unblitting
Part of P0258, funded by [Anonymous] and Blue Bolt.
This commit is contained in:
parent
36166192bd
commit
a06996af3e
|
@ -1,43 +0,0 @@
|
|||
public @DIALOG_FACE_UNPUT_8$QUIUI
|
||||
@dialog_face_unput_8$quiui proc near
|
||||
|
||||
@@top = word ptr 4
|
||||
@@left = word ptr 6
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push di
|
||||
call @egc_start_copy_noframe$qv
|
||||
mov ax, [bp+@@top]
|
||||
mov bx, ax
|
||||
shl ax, 2
|
||||
add ax, bx
|
||||
add ax, GRAM_400
|
||||
mov es, ax ; ES = (GRAM_400 + (top * (ROW_SIZE / 16)))
|
||||
assume es:nothing
|
||||
mov di, ((FACE_H - 1) * ROW_SIZE)
|
||||
mov ax, [bp+@@left]
|
||||
shr ax, 3
|
||||
add di, ax
|
||||
mov dx, 0A6h
|
||||
mov al, _page_back
|
||||
|
||||
@@y_loop:
|
||||
mov cx, (FACE_W / (2 * BYTE_DOTS))
|
||||
|
||||
@@x_loop:
|
||||
out dx, al ; graph_accesspage(page_back)
|
||||
xor al, 1
|
||||
mov bx, es:[di]
|
||||
out dx, al ; graph_accesspage(page_back ^ 1)
|
||||
xor al, 1
|
||||
mov es:[di], bx
|
||||
add di, 2
|
||||
loop @@x_loop
|
||||
sub di, (ROW_SIZE + (FACE_W / BYTE_DOTS))
|
||||
jge short @@y_loop
|
||||
call egc_off
|
||||
pop di
|
||||
pop bp
|
||||
retn 4
|
||||
@dialog_face_unput_8$quiui endp
|
|
@ -139,3 +139,20 @@ void near playfield_copy_front_to_back(void)
|
|||
|
||||
egc_off();
|
||||
}
|
||||
|
||||
void pascal near dialog_face_unput_8(uscreen_x_t left, uvram_y_t top)
|
||||
{
|
||||
egc_start_copy_noframe();
|
||||
|
||||
// ZUN bloat: _ES = grcg_segment(0, top);
|
||||
_AX = top;
|
||||
_BX = _AX;
|
||||
_ES = (SEG_PLANE_B + ((_AX * 4) + _BX));
|
||||
|
||||
_DI = ((FACE_H - 1) * ROW_SIZE);
|
||||
_DI += (left / BYTE_DOTS);
|
||||
egc_rect_interpage_16(
|
||||
reinterpret_cast<egc_temp_t __es *>(_DI), FACE_W, page_back
|
||||
);
|
||||
egc_off();
|
||||
}
|
||||
|
|
|
@ -1909,8 +1909,9 @@ DIALOG_TEXT segment byte public 'CODE' use16
|
|||
@DIALOG_BOX_PUT$QUIUII procdesc pascal near \
|
||||
left_and_top:dword, tile:word
|
||||
@playfield_copy_front_to_back$qv procdesc near
|
||||
@DIALOG_FACE_UNPUT_8$QUIUI procdesc pascal near \
|
||||
left_and_top:dword
|
||||
|
||||
include th04/main/dialog/face_unput_8.asm
|
||||
include th04/main/dialog/box_fade_in.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
|
|
@ -3188,8 +3188,6 @@ DIALOG_TEXT segment byte public 'CODE' use16
|
|||
left_and_top:dword, tile:word
|
||||
@playfield_copy_front_to_back$qv procdesc near
|
||||
|
||||
include th04/main/dialog/face_unput_8.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: bp-based frame
|
||||
|
|
Loading…
Reference in New Issue