From 1223b554ff8bd6ab3ac7e3e6eb18a913d353836c Mon Sep 17 00:00:00 2001 From: Chris Double Date: Fri, 16 Oct 2009 11:54:17 +1300 Subject: [PATCH] Close window when invaders is closed --- extra/space-invaders/space-invaders.factor | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/extra/space-invaders/space-invaders.factor b/extra/space-invaders/space-invaders.factor index a978d703c7..0508f9a31c 100755 --- a/extra/space-invaders/space-invaders.factor +++ b/extra/space-invaders/space-invaders.factor @@ -272,10 +272,10 @@ M: space-invaders reset ( cpu -- ) [ port1>> 255 HEX: 40 - bitand ] keep (>>port1) ; -TUPLE: invaders-gadget < gadget cpu quit? ; +TUPLE: invaders-gadget < gadget cpu quit? windowed? ; invaders-gadget H{ - { T{ key-down f f "ESC" } [ t swap (>>quit?) ] } + { T{ key-down f f "ESC" } [ t over (>>quit?) dup windowed?>> [ close-window ] [ drop ] if ] } { T{ key-down f f "BACKSPACE" } [ cpu>> coin-down ] } { T{ key-up f f "BACKSPACE" } [ cpu>> coin-up ] } { T{ key-down f f "1" } [ cpu>> player1-down ] } @@ -386,17 +386,18 @@ M: invaders-gadget ungraft* ( gadget -- ) t swap (>>quit?) ; : (run) ( title cpu rom-info -- ) - over load-rom* swap open-window ; + over load-rom* t >>windowed? swap open-window ; -: run ( -- ) - [ - "Space Invaders" { +CONSTANT: rom-info { { HEX: 0000 "invaders/invaders.h" } { HEX: 0800 "invaders/invaders.g" } { HEX: 1000 "invaders/invaders.f" } - { HEX: 1800 "invaders/invaders.e" } - } - (run) + { HEX: 1800 "invaders/invaders.e" } + } + +: run ( -- ) + [ + "Space Invaders" rom-info (run) ] with-ui ; MAIN: run