space-invaders: added graft* and ungraft* methods

This starts and stops the process when the space invaders window is created/removed. It also allows space invaders to survive an image save.
chris.double 2006-08-03 21:42:58 +00:00
parent 89fbc32ef3
commit f30ca40edc
1 changed files with 8 additions and 2 deletions

View File

@ -314,7 +314,13 @@ M: space-invaders update-video ( value addr cpu -- )
invaders-process invaders-process
] unless ; ] unless ;
M: invaders-gadget graft* ( gadget -- )
[ f swap set-invaders-gadget-quit? ] keep
[ millis swap invaders-process ] spawn 2drop ;
M: invaders-gadget ungraft* ( gadget -- )
t swap set-invaders-gadget-quit? ;
: run ( -- gadget ) : run ( -- gadget )
<space-invaders> "invaders.rom" over load-rom <invaders-gadget> <space-invaders> "invaders.rom" over load-rom <invaders-gadget>
[ "Space Invaders" open-titled-window ] keep [ "Space Invaders" open-titled-window ] keep ;
[ millis swap invaders-process ] spawn drop ;