32 lines
1.5 KiB
Tal
32 lines
1.5 KiB
Tal
@draw_capsule ( colour width* height* )
|
|
r/SCREEN.X? r/SCREEN.Y? ( c w* h* | x* y* )
|
|
INCkr* r/SCREEN.Y! ( c w* h* | x* y* )
|
|
( Draw wider rectangle )
|
|
STH* STH* DUP STHkr* OVRr* STHr* ( c c w* h-2* | x* y* h* w* )
|
|
#0002 SUB* ;draw_rect_filled CALL ( c | x* y* h* w* )
|
|
( Draw taller rectangle )
|
|
STHr* #0002 SUB* STHr* ( c w-2* h* | x* y* )
|
|
SWPkr* INCr* r/SCREEN.X! r/SCREEN.Y! ( c w-2* h* | x* y* )
|
|
;draw_rect_outline CALL ( | x* y* )
|
|
( Clear stacks )
|
|
r/SCREEN.Y! r/SCREEN.X! RETURN ( -- )
|
|
|
|
|
|
@draw_capsule_smooth ( colour width* height* )
|
|
r/SCREEN.X? r/SCREEN.Y? SWPkr* ( c w* h* | sx* sy* sy* sx* )
|
|
INCr* r/SCREEN.X! INCr* r/SCREEN.Y! ( c w* h* | sx* sy* )
|
|
( Draw inner rectangle )
|
|
STH* STH* DUPk ( c c c | sx* sy* h* w* )
|
|
STHkr* #0002 SUB* OVRr* STHr* #0002 SUB* ( c c c w-2* h-2* | sx* sy* h* w* )
|
|
;draw_rect_filled CALL ( c c | sx* sy* h* w* )
|
|
( Draw wider rectangle )
|
|
#0001 INCk* MOVE_DOWN MOVE_LEFT
|
|
STHkr* OVRr* STHr* #0006 SUB* ( c c w* h-6* | sx* sy* h* w* )
|
|
;draw_rect_outline CALL ( c | sx* sy* h* w* )
|
|
( Draw taller rectangle )
|
|
#0003 DUP* MOVE_RIGHT MOVE_UP
|
|
STHr* #0006 SUB* STHr* ( c w-6* h* | sx* sy* )
|
|
;draw_rect_outline CALL ( | sx* sy* )
|
|
( Clear stacks )
|
|
r/SCREEN.Y! r/SCREEN.X! RETURN ( -- )
|