$ od -c -N 50000 [Indigo]<AltoSource>RSILSOURCES.DM!2>RSil.bcpl 0000000 / / S i l . b c p l l a s t 0000020 m o d i f i e d F e b r u a 0000040 r y 2 7 , 1 9 7 9 b y R 0000060 B a t e s \r / / n e w S i l . 0000100 b c p l l a s t m o d i f 0000120 i e d M a r c h 3 1 , 1 9 0000140 8 1 b y P L a m \r / 0000160 / b c p l / f R S i l . b c 0000200 p l \r \r g e t " s y s d e f s 0000220 . d " \r g e t " s i l . d e f 0000240 s " \r \r \r s t a t i c / / A 0000260 l l d e c l a i r e d c o m 0000300 m o n a n d e x t e r n a l 0000320 i n n s i l . d e f s \r [ \r 0000340 O r i g i n O b j e c t ; M a 0000360 r k O b j e c t ; S t a t u s 0000400 O b j e c t ; F N a m e O b j 0000420 e c t \r M e s s a g e ; H e r 0000440 r a l d \r B l i n k = 1 0 ; 0000460 F l a s h S e n s e = 0 ; 0000500 U p d a t e S t a t u s = 0 ; 0000520 T i c k F l a g = f a l s e \r L 0000540 i n e W i d t h = 1 ; M a 0000560 g = 1 ; G r i d M a s k = 0000600 # 1 7 7 7 7 4 ; H a r d C o p 0000620 y = t r u e \r F i r s t I t e m 0000640 ; N e w I t e m ; N S e l e 0000660 c t e d I t e m s = 0 \r C h 0000700 a n g e d = f a l s e ; V 0000720 i r g i n S i n c e B u i l d 0000740 = f a l s e \r M a k e G r a y 0000760 O K = t r u e / / f l a g 0001000 \r P l a c e S e l e c t e d 0001020 = f a l s e \r M a x S t r i n 0001040 g H e i g h t \r S a v e d A C 0 0001060 \t / / u s e d i n R o t a 0001100 t i o n C v r t . a s m \r S a v 0001120 e d A C 1 \r S a v e d A C 2 \r R 0001140 o t a t e d W i d t h \r r o t a 0001160 t e d l i n e W i d t h \r C u r 0001200 r e n t Y p o s \r C h a r D e f 0001220 \r F o n t O r i e n t a t i o n 0001240 \r S h o w c n t l S = f a l 0001260 s e \t \t / / c o n t r o l s 0001300 C o m m a n d f l a g \r \r \r 0001320 C u r s o r X ; C u r s o r Y 0001340 / / X & Y l o c a t i 0001360 o n o f C u r s o r i n 0001400 B i t - M a p c o o r d i n a 0001420 t e s \r m x = 0 ; m y = 0001440 0 / / d e f a u l t l o c a 0001460 t i o n o f S t a t u s O b 0001500 j e c t ( m a y b e a l t 0001520 e r e d b y " X / Y : v a 0001540 l " i n u s e r . c m ) \r O 0001560 l d X = 0 ; O l d Y = 0001600 0 ; N e w X = 0 ; N e w 0001620 Y = 0 \r R e b A r e a / / 0001640 t o t a l a r e a f o r r 0001660 e b u i l d i n g o n f i r 0001700 s t p a s s \r R w A r e a / 0001720 / t o t a l a r e a f o r 0001740 r e b u i l d i n g o n s e 0001760 c o n d p a s s \r W i n d o w 0002000 X m i n = 0 ; W i n d o w Y m 0002020 i n = 0 \r \r R e b u i l d e r S 0002040 t a t e = 0 ; R e s t a r 0002060 t R e b u i l d e r = f a l 0002100 s e ; R e b u i l d e r L i n 0002120 k = 0 \r S w e e p i n g ; 0002140 S l i n k ; C l i n k \r \r M o 0002160 u s e B u f f e r ; D c b = 0 0002200 ; M a c t ; F o n t V e c ; 0002220 P r F a c e V e c ; A l F a 0002240 c e V e c ; M a s k T a b l e 0002260 \r D i s p l a y A r e a = 0 / / 0002300 s e t t o z e r o s o 0002320 F i l e I n d i s p l a y c 0002340 a l l s a r e i n h i b e t 0002360 e d i n p r e s s m o d e 0002400 \r S i l Z o n e \r S p a c e B a 0002420 s e / / b a s e o f s p a 0002440 c e \r S p a c e T o p / / t 0002460 o p o f s p a c e w i t h 0002500 1 2 8 w o r d s a b o v e 0002520 f o r " N e w I t e m " t 0002540 o e x p a n d i n t o \r ] \r 0002560 \r e x t e r n a l [ @ O n B 0002600 i t s ; @ O f f B i t s ; @ 0002620 S e t B P t r ; @ S e t B M a 0002640 s k ; G e t F i x e d ] \r 0002660 s t a t i c [ @ O n B i t s 0002700 ; @ O f f B i t s ; @ S e t 0002720 B P t r ; @ S e t B M a s k 0002740 ] \r / / s t a t i c 333 @ 0002760 S a v e F l a g = 0 ] 0003000 / / T E M P O R A R Y C O D E 0003020 T O M A K E S I L . B O O 0003040 T - - D O R A D O \r / / 0003060 e x t e r n a l [ s y s Z o 0003100 n e ; l v S y s Z o n e ; S 0003120 a v e S t a t e ; M y F r a m 0003140 e ; E n a b l e I n t e r r u 0003160 p t s ] / / D O R A D O 0003200 \r \r \r l e t M a i n ( ) b 0003220 e \r [ 032 ( 6 3 5 ) \r H e r r a l 0003240 d = " R S I L o f M a r 0003260 c h 3 1 , 1 9 8 1 " \t \t / / 0003300 a s m o d i f i e d b y P 0003320 L a m \r \t \t S e t X M ( 2 ) \t 0003340 \t / / c h e c k e x t e n d 0003360 e d m e m o r y , a t l e 0003400 a s t 1 2 8 k 032 \ b 5 9 B \r l 0003420 e t x D c b = I n i t B l 0003440 o c k s ( ) / / s e t u p 0003460 m i s c i l l a n e o u s b 0003500 u f f e r s f o r S I L \r Z 0003520 e r o ( D i s p l a y A r e a , 0003540 ( N w r d s * S c r e e n Y m a 0003560 x ) ) / / t h i s w a p e 0003600 s o u t I n i t B l o c k 0003620 e t c . c o d e \r D c b = 0003640 x D c b \r J u n t a ( l e v K e 0003660 y b o a r d , I n i t S i l ) \r 0003700 ] \r \r 032 l 4 2 6 8 \r a n d I n 0003720 i t S i l ( a r g ) b e \r [ 032 0003740 l 2 9 9 8 \r \r / / u s e r e m 0003760 a i n i n g s p a c e f o r 0004000 t h e s t a c k / / A d d T 0004020 e x t o f a m a c r o i 0004040 s w o r s t - 9 0 0 w o 0004060 r k s \r S p a c e B a s e = 0004100 @ # 3 3 5 / / E n d C o d e \r 0004120 / / @ # 3 3 5 = ( l v a r 0004140 g ) - 9 5 0 / / s e t E n 0004160 d C o d e \r @ # 3 3 5 = ( l 0004200 v a r g ) - 2 0 0 0 / / s 0004220 e t E n d C o d e \r / / @ # 3 0004240 3 5 = ( l v a r g ) - 1 0004260 4 0 0 / / M O R E S P A C E 0004300 F O R D 1 V E R S I O N 0004320 - - D O R A D O \r / / i f ( 0004340 @ # 3 3 5 - S p a c e B a s e ) 0004360 l s 2 0 0 0 t h e n C a 0004400 l l S w a t ( " I n s u f f i c 0004420 i e n t O b j e c t S t o r 0004440 a g e " ) \r \r S i l R e I n i t 0004460 ( ) \r i f F N a m e O b j e c 0004500 t > > i t e m . s t r i n g . l 0004520 e n g t h t h e n F i l e I 0004540 n ( f a l s e ) \r S i l M a i 0004560 n ( ) \t / / n e v e r r e t u 0004600 r n s 032 l 4 2 6 8 \r ] \r \r / / 0004620 C a l l e d t o r e - i n i 0004640 t i a l i z e S I L , b o t 0004660 h a t b e g i n n i n g a 0004700 n d a t ^ K t i m e . \r a 0004720 n d S i l R e I n i t ( ) b 0004740 e \r \t [ 032 \r M e s s a g e = 0004760 H e r r a l d \r \r / / C l o s e 0005000 s t r e a m o n A l t e r 0005020 n a t e i n p u t i f t h 0005040 i s i s a c o n t K o 0005060 n a n i n i t i a l i s e d 0005100 s c r e e n \r i f ( F i r s 0005120 t I t e m e q 0 ) & A l 0005140 t S n e 0 t h e n [ C 0005160 l o s e s ( A l t S ) ; A l t 0005200 S = 0 ; A l t L i n e C n t 0005220 = 0 ] 032 l 4 2 6 9 \r \r / / c l 0005240 e a r b u f f e r s o f w 0005260 i d t h t a b l e f o r n 0005300 o n d e f a u l t f o n t 0005320 f a c e s \r f o r f = 0 0005340 t o 3 1 d o i f F i l e 0005360 V e c ! f n e t r u e t h 0005400 e n W i d t h V e c ! f = 0005420 0 \r S p a c e T o p = @ # 3 0005440 3 5 - 1 2 8 \r \r S e t C u r 0005460 s o r ( ) \r Z e r o ( M a c t , 0005500 M t s i z e ) \r \r F i r s t I t 0005520 e m = 0 \r N e w I t e m = S p a 0005540 c e B a s e \r R e b u i l d e r 0005560 S t a t e = 0 \r N S e l e c 0005600 t e d I t e m s = 0 \r C h a 0005620 n g e d = f a l s e \r M a g 0005640 = 1 \r L b M i s s i n g = 0005660 - 1 \r W i n d o w X m i n = 0005700 0 \r W i n d o w Y m i n = 0005720 0 \r Z a p R e b u i l d e r ( ) 0005740 \r \r / / I n i t i a l i z e t 0005760 h e s t o r a g e c o m p a 0006000 c t o r \r C l i n k = S p a 0006020 c e B a s e \r S l i n k = l 0006040 v F i r s t I t e m \r S w e e 0006060 p i n g = t r u e 032 l 4 2 6 0006100 9 \r ] \r \r a n d S i l M a i n 0006120 ( ) b e \r [ \r i f M o u s e 0006140 B u f f e r > > O s B U F . I n 0006160 n e M o u s e B u f f e r > 0006200 > O s B U F . O u t t h e n 032 0006220 l 4 2 6 8 \r [ 032 l 4 2 6 8 \r M e 0006240 s s a g e = " " \r s w i t 0006260 c h o n G e t M o u s e E v e 0006300 n t ( ) i n t o \r [ 032 l 5 5 3 0006320 8 \r c a s e M a r k : \r P u s 0006340 h C o o r d s ( m x , m y ) \r M 0006360 o v e O b j e c t T o ( M a r k 0006400 O b j e c t , m x , m y ) \r e n 0006420 d c a s e \r \r c a s e C t r l 0006440 D r a w : \r P u s h C o o r d s 0006460 ( m x , m y ) \r M o v e O b j e 0006500 c t T o ( M a r k O b j e c t , 0006520 m x , m y ) \r C o p y S e l e c 0006540 t e d ( ) \r C h a n g e d = 0006560 t r u e \r e n d c a s e \r 032 l 6 0006600 8 0 8 \r c a s e C t r l M a r 0006620 k : \r c a s e C t r l S h M a 0006640 r k : \r P u s h C o o r d s ( m 0006660 x , m y ) \r M o v e O b j e c t 0006700 T o ( M a r k O b j e c t , m x 0006720 , m y ) \r M o v e S e l e c t e 0006740 d ( ) \r C h a n g e d = t r 0006760 u e \r e n d c a s e \r \r c a s e 0007000 D r a w : \r C l e a r S e l e 0007020 c t i o n s ( ) \r D o D r a w ( 0007040 m x , m y ) \r S e t C u r s o r 0007060 ( ) \r C h a n g e d = t r u 0007100 e 032 l 6 8 0 8 \r e n d c a s e \r 0007120 \r c a s e S e l e c t : \r S e 0007140 l e c t I t e m ( m x , m y , t 0007160 r u e ) \r S e t C u r s o r ( ) 0007200 \r e n d c a s e \r \r c a s e S 0007220 h i f t S e l e c t : \r S e l e 0007240 c t A r e a ( m x , m y ) \r S e 0007260 t C u r s o r ( ) \r e n d c a s 0007300 e \r \r c a s e C t r l S e l e 0007320 c t : \r c a s e C t r l S h S 0007340 e l e c t : \r S e t C u r s o r 0007360 ( ) \r S e l e c t I t e m ( m x 0007400 , m y , f a l s e ) \r e n d c a 0007420 s e \r \r c a s e S h i f t M a 0007440 r k : \r M o v e O b j e c t T o 0007460 ( O r i g i n O b j e c t , m x 0007500 , m y ) \r e n d c a s e \r \r c a 0007520 s e S h i f t D e l e t e : \r 0007540 S e l e c t I t e m ( m x , m y 0007560 , t r u e ) \r D e l e t e S e l 0007600 e c t e d ( ) \r S e t C u r s o 0007620 r ( ) \r C h a n g e d = t r 0007640 u e \r e n d c a s e \r \r c a s e 0007660 S h i f t U n d e l e t e : \r 0007700 U n D e l e t e ( ) \r S e t C u 0007720 r s o r ( ) \r e n d c a s e 032 l 0007740 6 8 0 8 \r ] \r 032 l 5 5 3 8 \r U p 0007760 d a t e S t a t u s = t r u 0010000 e \r ] 032 l 4 2 6 8 \r \r i f n o 0010020 t E n d o f s ( k e y s ) t 0010040 h e n [ D o K e y b o a r d 0010060 ( G e t s ( k e y s ) ) ; U p 0010100 d a t e S t a t u s = t r u e 0010120 ] 032 l 4 2 6 8 \r R e b u i l d S 0010140 o m e ( ) \r i f R e b u i l d 0010160 e r S t a t e e q 0 t h e 0010200 n C o m p a c t ( ) / / d o 0010220 a l i t t l e b i t \r i f 0010240 V i r g i n S i n c e B u i l 0010260 d & C h a n g e d t h e n 0010300 R e m o v e B u i l d M a r k 0010320 ( ) \r \r / / i f S a v e F l a 0010340 g t h e n M a k e B o o t F 0010360 i l e ( ) / / - - D O R A 0010400 D O \r 032 l 4 2 6 8 \r ] r e p e 0010420 a t 032 \r \r \r / / a n d M a k e 0010440 B o o t F i l e ( ) b e / / 0010460 - - D O R A D O \r / / [ l 0010500 e t x = n i l ; S a v e 0010520 F l a g = 0 032 \r / / l e t t 2 0010540 = t a b l e [ # 0 3 0 0 0010560 1 3 ; # 0 0 2 0 1 4 ] / 0010600 / l d a 2 , 1 3 ; j m p @ 1 0010620 4 @ # 1 2 = t 2 \r / / @ # 1 0010640 2 = t 2 ; @ # 1 3 = M 0010660 y F r a m e ( ) ; @ # 1 4 = 0010700 D 1 P r o g \r / / x = S a 0010720 v e S t a t e ( " S i l . b o o 0010740 t " , 1 ) ; i f x n e 2 0010760 t h e n r e t u r n \r / / D 0011000 1 P r o g : E n a b l e I n t 0011020 e r r u p t s ( ) ; S e t B l 0011040 o c k ( 0 , # 6 7 4 0 0 , # 1 0011060 2 ) 032 l 4 2 6 9 \r / / ] \r \r a n 0011100 d F l a s h M a r k ( ) b e 0011120 \r [ 032 \r l e t O b j = O r 0011140 i g i n O b j e c t / / i 0011160 n i t s O r i g i n o b j e 0011200 c t f i r s t t i m e t h 0011220 r o u g h , M a r k t h e 0011240 s e c o n d \r B l i n k = 1 0 \r 0011260 [ / / t h i s l o o p i 0011300 s e x c u t e d o n c e f 0011320 o r O r i g i n O b j e c t 0011340 a n d o n e f o r M a r k 0011360 O b j e c t 032 l 4 2 6 8 \r i f 0011400 M a k e G r a y O K e q 0 0011420 t h e n b r e a k / / k 0011440 e e p t h e s c r e e n v 0011460 e r g i n \r t e s t F l a s h 0011500 S e n s e \r i f s o P a i n t 0011520 ( O b j , t o W h i t e ) / / 0011540 t u r n o f f O b j e c t \r 0011560 i f n o t \r [ 032 l 5 5 3 8 \r / / 0011600 O b j > > i t e m . s t a t e 0011620 = A c t i v e \r i f O b j > 0011640 > i t e m . x m a x g r S c 0011660 r e e n X m a x t h e n \r \t \t 0011700 M o v e O b j e c t T o ( O b j 0011720 , S c r e e n X m a x - 4 , O b 0011740 j > > i t e m . y m i n ) \r i f 0011760 O b j > > i t e m . y m a x 0012000 g r S c r e e n Y m a x t h 0012020 e n \r \t \t M o v e O b j e c t T 0012040 o ( O b j , O b j > > i t e m . 0012060 x m i n , S c r e e n Y m a x - 0012100 8 ) \r D i s p l a y O b j e c t 0012120 ( O b j ) / / t u r n o n 0012140 O b j e c t \r u n l e s s m o 0012160 u s e d o w n d o B l i n k 0012200 = 3 0 032 l 6 8 0 8 \r ] 032 l 5 0012220 5 3 8 \r i f O b j e q M a 0012240 r k O b j e c t t h e n b r 0012260 e a k \r O b j = M a r k O b 0012300 j e c t / / n o w d o t 0012320 h e s a m e f o r M a r k 0012340 \r ] r e p e a t 032 l 4 2 6 8 \r 0012360 \r F l a s h S e n s e = n o 0012400 t F l a s h S e n s e \r i f 0012420 ( m o u s e d o w n % U p d 0012440 a t e S t a t u s ) & F l a 0012460 s h S e n s e t h e n [ U 0012500 p d a t e S t a t u s = f a 0012520 l s e ; U p d a t e ( ) ] \r 0012540 i f N S e l e c t e d I t e m 0012560 s e q 0 t h e n S e t C 0012600 u r s o r ( ) \r i f ( T i c k 0012620 F l a g n e 0 ) & ( R e 0012640 b u i l d e r S t a t e e q 0012660 0 ) d o P a i n t T i c k s 0012700 ( ) \r \r ] 032 \r \r a n d P a i n 0012720 t T i c k s ( ) b e / / S 0012740 t a t i c T i c k F l a g m 0012760 u s t e q u a l 0 o r # 0013000 1 0 0 0 0 0 \r [ 032 \r f o r i 0013020 = D i s p l a y A r e a b y 0013040 ( N w r d s * 1 6 ) t o D 0013060 i s p l a y A r e a + ( N w r d 0013100 s * ( S c r e e n Y m a x - 1 ) 0013120 ) d o 032 l 4 2 6 8 \r f o r j 0013140 = 0 t o N w r d s - 1 0013160 d o @ ( i + j ) = ( ( @ ( 0013200 i + j ) ) & # 7 7 7 7 7 ) + 0013220 T i c k F l a g 032 l 5 5 3 8 \r 0013240 ] \r \r \r / / t h e f o l l o w 0013260 i n g p r o c e d u r e d i 0013300 s p l a y s a n o b j e c t 0013320 r e l a t i v e t o x 0 , 0013340 y 0 , a n d f i l l s \r / / 0013360 i n t h e m a x c o o r d 0013400 i n a t e s o f t h e o b 0013420 j e c t . I t w i l l n 0013440 o t d i s p l a y t h e o 0013460 b j e c t \r / / i f i t i s 0013500 t o t a l l y o f f t h e 0013520 s c r e e n ( t h e o b j 0013540 e c t i s m a r k e d D e 0013560 a d s o t h e c o m p a c 0013600 t o r \r / / c a n g e t i t 0013620 ) . I f t h e o b j e c 0013640 t i s d e l e t e d ( g r 0013660 S e l e c t e d ) i t i s 0013700 n o t d i s p l a y e d . \r 0013720 \r \r a n d D i s p l a y O b j 0013740 e c t ( p t r , x 0 , y 0 ; n 0013760 u m a r g s n a r g s ) b e 0014000 \r [ 032 \r i f ( p t r > > i t e 0014020 m . s t a t e g r S e l e c 0014040 t e d ) t h e n r e t u r n 0014060 \r i f n a r g s l s 3 t 0014100 h e n [ x 0 = 0 ; y 0 = 0 0014120 ] \r l e t m a c r o = p 0014140 t r > > i t e m . m a c r o \r l 0014160 e t f o n t = p t r > > i 0014200 t e m . f o n t \r l e t l i n 0014220 e = p t r > > i t e m . l i 0014240 n e \r l e t a r e a = p t 0014260 r > > i t e m . a r e a \r i f 0014300 a r e a % l i n e t h e n 0014320 / / t h e o b j e c t i s 0014340 a l i n e o r a r e a \r 0014360 [ 032 l 4 2 6 8 \r P a i n t ( p t 0014400 r , t o B l a c k , x 0 , y 0 ) 0014420 / / d i s p l a y i t b l 0014440 a c k \r r e t u r n 032 l 5 5 3 8 0014460 \r ] \r \r l e t x = x 0 + p t 0014500 r > > i t e m . x m i n \r l e t 0014520 y = y 0 + p t r > > i t e 0014540 m . y m i n \r i f ( x l s 0014560 0 ) % ( y l s 0 ) t h e n 0014600 r e t u r n \r \r l e t M a g 0014620 F l a g = ( M a g n e 1 0014640 ) & ( p t r n e S t a t 0014660 u s O b j e c t ) & ( p t r n 0014700 e F N a m e O b j e c t ) \r / 0014720 / r e t u r n i f t h e i 0014740 t e m i s e n t i r e l y 0014760 o f f t h e m a g n i f i e 0015000 d s c r e e n a r e a . \r i 0015020 f M a g F l a g d o \r [ \r \t 0015040 i f ( \r \t ( ( p t r > > i t e 0015060 m . x m a x + x 0 ) l s W i 0015100 n d o w X m i n ) % \r \t ( ( p 0015120 t r > > i t e m . y m a x + y 0 0015140 ) l s W i n d o w Y m i n ) 0015160 % \r \t ( ( x - W i n d o w X m 0015200 i n ) * M a g g e S c r e e 0015220 n X m a x ) % \r \t ( ( y - W i 0015240 n d o w Y m i n ) * M a g g e 0015260 S c r e e n Y m a x ) \r \t ) 0015300 t h e n r e t u r n \r ] 032 l 4 0015320 2 6 8 \r \r i f n o t m a c r 0015340 o t h e n / / n o r m a l 0015360 c h a r a c t e r s t r i n 0015400 g \r [ 032 l 4 2 6 8 \r f o n t = 0015420 f o n t / 2 / / s e t f 0015440 o n t t o " u s e r f o n 0015460 t " = 0 t o 6 \r / / f i 0015500 r s t s e e i f t h e w 0015520 i d t h s t a b l e f o r 0015540 t h i s f o n t a n d f a 0015560 c e a r e i n c o r e \r l 0015600 e t f a c e = p t r > > i 0015620 t e m . f a c e x o r P r F 0015640 a c e V e c ! f o n t \r l e t 0015660 F F = f o n t * 4 + f a 0015700 c e \r i f H a r d C o p y t 0015720 h e n i f W i d t h V e c ! 0015740 F F e q 0 d o \r \t / / c h 0015760 e c k f o r w i d t h s n 0016000 o t i n f i l e , o r n 0016020 o t e n o u g h s p a c e 0016040 f o r w i d t h s \r \t t e s t 0016060 ( F i l e V e c ! F F e q 0016100 0 ) % ( ( S p a c e T o p - N e 0016120 w I t e m ) l s 2 0 0 ) 032 l 0016140 5 5 3 8 \r i f s o W i d t h V 0016160 e c ! F F = W i d t h V e c 0016200 ! ( f o n t * 4 ) \t / / c a n 0016220 ' t d o i t s o d e f a 0016240 u l t \r i f n o t / / l o o 0016260 k u p i n R S i l . i n i 0016300 t \r [ \r / / \t l e t p t r = 0016320 S p a c e T o p ; S p a c e 0016340 T o p = S p a c e T o p - 1 0016360 2 8 \r \t l e t p t r = X M 0016400 s t a r t ; X M s t a r t = 0016420 X M s t a r t + W i d t h S i 0016440 z e \r \t u n l e s s I n i t S 0016460 d o \r \t \t I n i t S = O p 0016500 e n S i l F i l e ( 0 , f p S i 0016520 l I n i t , k s T y p e R e a d 0016540 O n l y , w o r d I t e m ) \r \t 0016560 l e t F p t r = F i l e V 0016600 e c ! F F \r \t i f F p t r l 0016620 s 6 6 t h e n F p t r = 0016640 F i l e V e c ! ( F p t r & 0016660 # 3 7 ) \r \t S e t F i l e P o 0016700 s ( I n i t S , 0 , F p t r - 2 0016720 ) \r \t i f G e t s ( I n i t S 0016740 ) n e - 1 t h e n C a l 0016760 l S w a t ( " R S i l . I n i t 0017000 o p r o b l e m " ) \r / / \t f 0017020 o r w = 0 t o 1 2 7 0017040 d o p t r ! w = G e t s ( 0017060 I n i t S ) \r \t f o r w = 0017100 0 t o W i d t h S i z e - 1 0017120 d o \r \t \t [ \r \t \t l e t d 0017140 a t a = G e t s ( I n i t S 0017160 ) \r \t \t x m s t o r e ( p t r + 0017200 w , d a t a ) \r \t \t / / p t r ! 0017220 w = G e t s ( I n i t S ) \r 0017240 \t \t ] \r \t W i d t h V e c ! F F 0017260 = p t r \r ] 032 l 6 8 0 8 \r \r 0017300 032 l 5 5 3 8 \r \r \r / / C v r t 0017320 r e t u r n s t h e w i d t 0017340 h o f t h e s t r i n g 0017360 i n b i t s , a n d s e t 0017400 s \r / / M a x S t r i n g H e i 0017420 g h t t o t h e h e i g h 0017440 t o f t h e t a l l e s t 0017460 c h a r a c t e r i n \r / / 0017500 t h e s t r i n g . C v r 0017520 t w i l l n o t c o n v e 0017540 r t t h e c h a r a c t e r 0017560 i f t h e w i d t h \r / / 0017600 w o u l d e x c e e d t h e 0017620 s i x t h p a r a m e t e r 0017640 , n o r i f t h e h e i 0017660 g h t w o u l d \r / / e x c e 0017700 e d t h e s e v e n t h p 0017720 a r a m e t e r . I f e i 0017740 t h e r s i t u a t i o n o 0017760 b t a i n s , t h e \r / / c o 0020000 n v e r t i n s t r u c t i o 0020020 n i s e m u l a t e d s o 0020040 t h a t t h e w i d t h 0020060 a n d h e i g h t \r / / a r e 0020100 c a l c u l a t e d c o r r 0020120 e c t l y \r \r / / r o t a t i 0020140 o n 0 = 0 , 1 = 9 0 0020160 , 2 = 1 8 0 , 3 = 2 0020200 7 0 \r l e t l w a = D i s 0020220 p l a y A r e a + ( ( y - 1 0020240 ) * N w r d s ) \r l e t s w 0020260 = 0 \r l e t r o t = F o 0020300 n t O r i e n t a t i o n ! f o 0020320 n t & # 3 7 7 \r \r / / s w 0020340 = n e w C v r t ( l v ( p t 0020360 r > > i t e m . s t r i n g ) , 0020400 x , y , l w a , F o n t 0020420 V e c ! f o n t , f a c e & 0020440 A l F a c e V e c ! f o n t , 0020460 W i d t h V e c ! F F , M a 0020500 g F l a g , r o t , N w r d 0020520 s ) \r \r \r e x t e r n a l W r 0020540 i t e S t r i n g 032 l 5 5 3 8 \r 0020560 [ \r l e t t y p e f a c e = 0020600 f a c e & A l F a c e V 0020620 e c ! f o n t \r s w = W r i 0020640 t e S t r i n g ( p t r , x 0 , 0020660 y 0 , t y p e f a c e , F o n t 0020700 V e c ! f o n t , W i d t h V e 0020720 c ! F F , r o t , M a g F l a g 0020740 ) \r i f s w e q 0 t h 0020760 e n r e t u r n \r ] \r i f r 0021000 o t e q 0 % r o t e q 0021020 3 t h e n \r \t [ \r \t p t r > 0021040 > i t e m . y m a x = p t r 0021060 > > i t e m . y m i n + M a x S 0021100 t r i n g H e i g h t \r \t p t r 0021120 > > i t e m . x m a x = p t 0021140 r > > i t e m . x m i n + s 0021160 w \r \t ] \r i f r o t e q 0021200 2 t h e n \r \t [ \r \t l e t a 0021220 = p t r > > i t e m . x m i 0021240 n \r \t l e t b = p t r > > 0021260 i t e m . x m a x \r \t p t r > > 0021300 i t e m . y m a x = p t r > 0021320 > i t e m . y m i n + 1 4 \r \t p 0021340 t r > > i t e m . x m i n = 0021360 p t r > > i t e m . x m a x - 0021400 s w \r \t ] \r i f r o t e 0021420 q 1 t h e n \r \t [ \r \t p t r 0021440 > > i t e m . y m i n = p t 0021460 r > > i t e m . y m a x - s w \r 0021500 \t p t r > > i t e m . x m a x 0021520 = p t r > > i t e m . x m i n 0021540 + M a x S t r i n g H e i g 0021560 h t \r \t ] \r \r i f p t r > > 0021600 i t e m . s t a t e e q S e 0021620 l e c t e d t h e n P a i n 0021640 t ( p t r , t o S e l e c t e d 0021660 , x 0 , y 0 ) \r r e t u r n 032 l 0021700 5 5 3 8 \r \t ] \r \r / / t h e i 0021720 t e m i s a s t r i n g 0021740 o f m a c r o c h a r a c t 0021760 e r s ( i n t e r n a l f o 0022000 n t # 8 - 1 3 ) \r / / l e t 0022020 m b a s e = M a c t + 1 0022040 2 8 * ( f o n t ) / / b a s e 0022060 o f t h e 1 2 8 w o r d 0022100 r e g i o n o f M a c t \r 0022120 \r / / t h e i t e m i s a 0022140 s t r i n g o f m a c r o 0022160 c h a r a c t e r s ( i n t 0022200 e r n a l f o n t # 1 4 ( 0022220 2 * 7 ) & m a c r o 1 - 5 0022240 ) \r / / t h e r e f o r e m 0022260 f o n t = 0 - - d e f i 0022300 n e m a c r o ; 1 - 5 i 0022320 s l i b r a r y ; f o n t 0022340 i s 8 - 1 2 \r l e t m f 0022360 o n t = 0 \r i f f o n t 0022400 l e 1 2 t h e n m f o n t 0022420 = f o n t - 7 \r l e t 0022440 m b a s e = M a c t + 1 0022460 2 8 * ( m f o n t ) / / b a s 0022500 e o f t h e 1 2 8 w o r 0022520 d r e g i o n o f M a c t 0022540 \r / / u s e d b y t h i s 0022560 f o n t \r l e t s l = p 0022600 t r > > i t e m . s t r i n g . 0022620 l e n g t h \r i f s l e q 0022640 0 t h e n r e t u r n / / 0022660 z e r o l e n g t h s t r i 0022700 n g s a r e i g n o r e d \r 0022720 l e t x s o f a r = 0 \r l 0022740 e t b i g g e s t y = 0 \r 0022760 f o r i = 1 t o s l 0023000 d o \r [ 032 l 4 2 6 8 \r l e t c 0023020 h x m a x = 0 \r l e t m p 0023040 t r = m b a s e ! ( p t r 0023060 > > i t e m . s t r i n g . c h 0023100 a r ^ i ) \r l e t a d d r = 0023120 p t r > > i t e m . s t r i n 0023140 g . c h a r ^ i \r i f ( m p t 0023160 r e q 0 ) % ( m p t r e q 0023200 - 1 ) t h e n \r [ 032 l 5 5 3 0023220 8 \r l e t v = " L i b F 0023240 o n t : n C h a r : m - ^ 0023260 P t o p r o c e e d " \r / / 0023300 U s e r . c m d e f i n e s 0023320 f r o m 5 t o 9 ; i n 0023340 t e r n a l l y i s 8 - 1 0023360 2 \r v > > s t r . c h a r ^ 1 0 0023400 = f o n t - 3 + $ 0 \r v > > 0023420 s t r . c h a r ^ 1 7 = p t 0023440 r > > i t e m . s t r i n g . c 0023460 h a r ^ i \r C a l l S w a t ( " 0023500 U n d e f i n e d M a c r o " 0023520 , v ) \r p t r > > i t e m . s t 0023540 a t e = D e a d \r r e t u r 0023560 n \r 032 l 6 8 0 8 \r ] \r \r u n t i 0023600 l m p t r e q 0 d o / 0023620 / g r i n d d o w n t h e 0023640 l i s t o f o b j e c t s 0023660 i n t h e m a c r o \r [ 032 l 0023700 5 5 3 8 \r m p t r > > i t e m . 0023720 s t a t e = p t r > > i t e 0023740 m . s t a t e / / p a s s t h 0023760 e s t a t e o n f o r P 0024000 a i n t \r D i s p l a y O b j e 0024020 c t ( m p t r , x + x s o f a r 0024040 , y ) \r l e t t x = m p t 0024060 r > > i t e m . x m a x \r l e t 0024100 t y = m p t r > > i t e m 0024120 . y m a x \r i f t x g r c 0024140 h x m a x t h e n c h x m a 0024160 x = t x \r i f t y g r 0024200 b i g g e s t y t h e n b i 0024220 g g e s t y = t y \r m p t r 0024240 = m p t r > > i t e m . l i 0024260 n k 032 l 6 8 0 8 \r ] \r x s o f a 0024300 r = x s o f a r + c h x m a 0024320 x / / g r i n d d o w n t 0024340 h e s t r i n g 032 l 5 5 3 8 \r 0024360 ] \r \r p t r > > i t e m . x m a 0024400 x = p t r > > i t e m . x m 0024420 i n + x s o f a r \r p t r > > i 0024440 t e m . y m a x = p t r > > 0024460 i t e m . y m i n + b i g g e s 0024500 t y 032 l 4 2 6 9 \r ] \r \r \r \r / / 0024520 a n d B c p l D o I t a l i c 0024540 s ( C h a r H e i g h t , p t r 0024560 ) b e / / t h i s i s 0024600 d o n e i n C V R T . a s m 0024620 \r / / [ 032 \r / / l e t C h a r 0024640 H e i g h t = ( C h a r D e 0024660 f ! 1 ) & # 3 7 7 \r / / l e t 0024700 p t r = I t a l i c s B u f 0024720 f - C h a r H e i g h t \r / / M 0024740 o v e B l o c k ( p t r , C h a 0024760 r D e f - C h a r H e i g h t , 0025000 C h a r H e i g h t + 2 ) \r / / 0025020 f o r i = C h a r H e i g 0025040 h t - 1 t o 4 b y - 1 0025060 d o [ r v p t r = ( r 0025100 v p t r ) r s h i f t ( i 0025120 r s h i f t 2 ) ; p t r 0025140 = p t r + 1 ] 032 l 4 2 6 9 \r 0025160 / / ] \r \r / / a n d M a g n i 0025200 f i e d C o n v e r t ( f r a m 0025220 e , C h a r D e f ) = v a l o 0025240 f / / c a l l e d f r o m 0025260 C V R T . a s m i f M a g 0025300 g r 1 \r / / [ 032 \r / / f r a 0025320 m e i s a A C 2 o f t 0025340 h e C V R T p r o c e e d u 0025360 r e w h i c h j u s t c a 0025400 l l e d u s \r / / / / T h e 0025420 f o l l o w i n g m a n i f e 0025440 s t c o n s t a n t s r e p 0025460 r e s e n t t h e o f f s e 0025500 t s o f t h e d e s i r e 0025520 d p a r a m e t e r s \r / / m 0025540 a n i f e s t [ c u r r X p 0025560 o s n = # 2 0 ; Y s t a r t 0025600 = 6 ; x B o l d F l g = 0025620 # 2 5 ] \r / / l e t H D = 0025640 C h a r D e f ! 1 r s h i f 0025660 t 8 / / n u m b e r o f 0025700 s c a n l i n e s t o s k 0025720 i p \r / / l e t X H = C h 0025740 a r D e f ! 1 & # 3 7 7 0025760 / / n u m b e r o f s c a n 0026000 l i n e s t o C o n v e r t 0026020 \r / / l e t y = ( f r a m 0026040 e ! Y s t a r t + H D - W i n d 0026060 o w Y m i n ) * M a g \r / / l e 0026100 t x = ( f r a m e ! c u r r 0026120 X p o s n - W i n d o w X m i n 0026140 ) * M a g \r / / l e t z = 0026160 x / 1 6 \r / / l e t w i d t h 0026200 = M a g + ( f r a m e ! x 0026220 B o l d F l g n e 0 ? M a 0026240 g / 2 , 0 ) \r / / O n B i t s 0026260 = ( M a s k T a b l e ! w i 0026300 d t h ) \r / / S e t B P t r = 0026320 D i s p l a y A r e a + ( 0026340 y * N w r d s ) \r / / f o r s 0026360 l = - X H t o - 1 d o 0026400 \r / / [ \r / / \t i f y g r 0026420 S c r e e n Y m a x - M a g t 0026440 h e n b r e a k \r / / \t e x t 0026460 e r n a l P a i n t B i t s 032 0026500 l 4 2 6 8 \r / / \t i f y g e 0026520 0 t h e n P a i n t B i t 0026540 s ( x , C h a r D e f ! s l ) \r 0026560 / / \t S e t B P t r = S e t 0026600 B P t r + ( M a g * N w r d 0026620 s ) 032 l 4 2 6 9 \r / / ] 032 l 4 2 0026640 6 9 \r / / r e s u l t i s C h 0026660 a r D e f ! 0 \r / / ] \r / / \r \r 0026700 / / t h e f o l l o w i n g 0026720 p r o c e d u r e f i l l s 0026740 i n a r e c t a n g u l a r 0026760 a r e a d e f i n e d b y 0027000 a n \r / / o b j e c t w i t 0027020 h b l a c k , g r a y , o 0027040 r w h i t e . I f t h e 0027060 o b j e c t i s f u l l y 0027100 o f f t h e s c r e e n \r 0027120 / / n o t h i n g i s d o n 0027140 e . I f t h e o b j e c 0027160 t i s p a r t i a l l y o 0027200 f f t h e s c r e e n , t 0027220 h e \r / / r e g i o n i s c 0027240 l i p p e d s o t h a t i 0027260 t s t a y s i n t h e b 0027300 i t m a p \r \r a n d P a i n t 0027320 ( p t r , s h a d i n g , x 0 , 0027340 y 0 ; n u m a r g s n a r g 0027360 s ) = v a l o f \r / / t o 0027400 W h i t e = 0 ; t o S e l e c 0027420 t e d = 1 ; t o B l a c k = - 0027440 1 ; t o B a c k g r o u n d = 0027460 - 2 \r [ 032 \r i f n a r g s l 0027500 s 4 t h e n [ x 0 = 0 ; 0027520 y 0 = 0 ] \r l e t x m i n 0027540 = p t r > > i t e m . x m i n + 0027560 x 0 \r l e t x m a x = p t r > 0027600 > i t e m . x m a x + x 0 \r l e 0027620 t y m i n = p t r > > i t e m 0027640 . y m i n + y 0 \r l e t y m a 0027660 x = p t r > > i t e m . y m a x 0027700 + y 0 \r / / i f w e r e j u 0027720 s t m a s k i n g o f f b 0027740 i t s t h e n m a s k o f 0027760 f 1 e x t r a b i t s f 0030000 o r s a f e t y \r i f s h a 0030020 d i n g g e 0 t h e n x 0030040 m a x = x m a x + 1 \r l e t h 0030060 e i g h t = y m a x - y 0030100 m i n / / t h i s i s n o t 0030120 t h e M a g n i f i e d h 0030140 e i g h t o r w i d t h \r l 0030160 e t w i d t h = x m a x 0030200 - x m i n \r l e t f o n t 0030220 = p t r > > i t e m . f o n t 0030240 \r l e t a r e a = p t r > 0030260 > i t e m . a r e a \r \r i f ( 0030300 M a g n e 1 ) t h e n i 0030320 f ( p t r n e S t a t u s 0030340 O b j e c t ) & ( p t r n e 0030360 F N a m e O b j e c t ) d o \r 0030400 [ 032 l 4 2 6 8 \r x m i n = ( 0030420 x m i n - W i n d o w X m i n ) 0030440 * M a g \r y m i n = ( y m i 0030460 n - W i n d o w Y m i n ) * M a 0030500 g \r t e s t ( p t r e q O 0030520 r i g i n O b j e c t ) % ( 0030540 p t r e q M a r k O b j e c 0030560 t ) \r i f s o / / s e t m a 0030600 x ' s w i t h o u t m a g 0030620 n i f y i n g \r [ 032 l 5 5 3 8 \r 0030640 x m a x = x m i n + w i d t 0030660 h \r y m a x = y m i n + h e 0030700 i g h t 032 l 6 8 0 8 \r ] 032 l 5 5 0030720 3 8 \r i f n o t / / s e t m 0030740 a x ' s w i t h m a g n i f 0030760 i c a t i o n \r [ 032 l 5 5 3 8 \r 0031000 x m a x = x m i n + w i d t 0031020 h * M a g \r y m a x = y m i 0031040 n + h e i g h t * M a g 032 l 6 8 0031060 0 8 \r \r ] 032 l 5 5 3 8 \r ] \r \r \r 0031100 / / c l i p \r i f ( x m i n 0031120 g e S c r e e n X m a x ) % ( 0031140 y m i n g e S c r e e n Y m 0031160 a x ) % ( x m a x l s 0 ) % 0031200 ( y m a x l s 0 ) t h e n 0031220 r e s u l t i s f a l s e \r 0031240 i f x m i n l s 0 t h e 0031260 n x m i n = 0 \r i f y m 0031300 i n l s 0 t h e n y m i 0031320 n = 0 \r i f x m a x g r 0031340 S c r e e n X m a x t h e n 0031360 x m a x = S c r e e n X m 0031400 a x \r i f y m a x g r S c 0031420 r e e n Y m a x t h e n y m 0031440 a x = S c r e e n Y m a x \r 0031460 \r / / n o w c o m p u t e w 0031500 i d t h a n d h e i g h t 0031520 a f t e r m a g n i f i c a t 0031540 i o n a n d c l i p p i n g 0031560 \r w i d t h = x m a x - 0031600 x m i n \r \r \r l e t B i t s T 0031620 a b l e = t a b l e 032 l 4 2 0031640 6 8 \r [ \r - 1 ; - 1 ; - 1 ; 0031660 - 1 ; / / m a s k f o r 0031700 s h a d i n g a l l o n 0031720 o r a l l o f f \r # 5 2 5 2 0031740 5 ; # 1 2 5 2 5 2 ; # 5 2 5 0031760 2 5 / / m a s k f o r s 0032000 h a d i n g s e l e c t e d \r 0032020 # 1 0 0 2 0 0 ; # 2 0 0 4 0 ; # 0032040 4 0 1 0 ; # 1 0 0 2 ; # 1 0 0 2 0032060 0 0 ; # 2 0 0 4 0 ; # 4 0 1 0 0032100 / / m a s k f o r s h a d 0032120 i n g a r e a s \r ] 032 l 5 5 3 0032140 8 \r \r O n B i t s = 0 \r i f 0032160 s h a d i n g e q t o B l 0032200 a c k t h e n O n B i t s = 0032220 a r e a ? B i t s T a b l 0032240 e + 7 + ( y m i n & 3 ) , 0032260 B i t s T a b l e \r \r \r O f f 0032300 B i t s = 0 \r i f ( p t r 0032320 > > i t e m . s t a t e e q 0032340 S e l e c t e d ) & M a k e 0032360 G r a y O K t h e n O f f B 0032400 i t s = B i t s T a b l e + 4 0032420 + ( y m i n & 1 ) \r \r / 0032440 / a d d e x t r a b i t t 0032460 o w i d t h i f p a i n t 0032500 i n g w h i t e t o b e 0032520 s u r e a n d g e t a l l 0032540 o f i t a l i c s c h a r 0032560 a c t e r s \r i f s h a d i n 0032600 g e q t o W h i t e t h e 0032620 n O f f B i t s = B i t s 0032640 T a b l e / / s e t o f f 0032660 b i t s t o a l l o n e 0032700 s \r \r l e t s t a r t b i t 0032720 = x m i n & # 1 7 \r S e t 0032740 B P t r = D i s p l a y A r 0032760 e a + ( y m i n * N w r d s 0033000 ) + ( x m i n r s h i f t 0033020 4 ) \r l e t L = w i d t 0033040 h g r 1 6 ? 1 6 , w i d t 0033060 h \r l e t a = M a s k T a 0033100 b l e ! L \r S e t B M a s k 0033120 = ( M a s k T a b l e ! 0033140 L ) r s h i f t s t a r t b 0033160 i t \r \r 032 \r e x t e r n a l P 0033200 a i n t B l o c k 032 l 4 2 6 8 \r 0033220 P a i n t B l o c k ( y m a x 0033240 - y m i n , w i d t h + s t a 0033260 r t b i t ) \r / / [ 032 l 4 2 6 8 0033300 \r / / S e t B P t r = s t a 0033320 r t w o r d \r / / P a i n t B l 0033340 o c k ( h e i g h t ) \r / / f o 0033360 r i = 1 t o h e i g h 0033400 t d o \r / / [ 032 l 5 5 3 8 \r / 0033420 / B i t S p l a t : \r / / i f 0033440 O n B i t s t h e n @ S e t 0033460 B P t r = @ S e t B P t r 0033500 % ( S e t B M a s k & O n 0033520 B i t s ! ( i & 3 ) ) \r / / i f 0033540 O f f B i t s t h e n @ S 0033560 e t B P t r = @ S e t B P t 0033600 r & n o t ( S e t B M a s 0033620 k & O f f B i t s ! ( i & 1 0033640 ) ) \r / / S e t B P t r = S e t 0033660 B P t r + N w r d s 032 l 6 8 0 8 0033700 \r / / ] \r \r / / w i d t h = 0033720 w i d t h - 1 6 \r / / i f w i 0033740 d t h l e 0 t h e n b r 0033760 e a k \r / / s t a r t w o r d 0034000 = s t a r t w o r d + 1 \r / / 0034020 S e t B M a s k = w i d t h 0034040 l s 1 6 ? M a s k T a b l e 0034060 ! w i d t h , - 1 032 l 5 5 3 8 0034100 \r / / ] r e p e a t \r r e s u 0034120 l t i s t r u e 032 l 4 2 6 8 \r 0034140 ] \r \r \r \r \r a n d P u s h C o 0034160 o r d s ( x , y ) b e / / s 0034200 t a c k m a r k s \r [ 032 \r O l 0034220 d X = N e w X \r N e w X = 0034240 x \r \r O l d Y = N e w Y \r 0034260 N e w Y = y 032 l 4 2 6 8 \r ] 0034300 \r \r a n d C l e a r S e l e c 0034320 t i o n s ( ) b e / / z i p 0034340 s t h r o u g h o b j e c t 0034360 s a n d m a k e s s e l e 0034400 c t e d o n e s a c t i v e 0034420 \r [ 032 \r l e t l i n k = F 0034440 i r s t I t e m \r u n t i l l 0034460 i n k e q 0 d o \r [ 032 l 4 0034500 2 6 8 \r i f l i n k > > i t e 0034520 m . s t a t e e q S e l e c 0034540 t e d t h e n \r [ 032 l 5 5 3 8 0034560 \r l i n k > > i t e m . s t a t 0034600 e = A c t i v e \r D i s p l 0034620 a y O b j e c t ( l i n k ) \r Z 0034640 a p R e b u i l d e r I t e m ( 0034660 l i n k ) \r / / j u s t i n 0034700 c a s e t h i s s e l e c 0034720 t i o n h a d c a u s e d 0034740 s o m e t h i n g e l s e \r / 0034760 / t o b e p a i n t e d g 0035000 r a y \r 032 l 6 8 0 8 \r ] \r l i n 0035020 k = l i n k > > i t e m . l 0035040 i n k 032 l 5 5 3 8 \r ] \r R e m e 0035060 m b e r A r e a ( S e l A r e a 0035100 , 0 ) / / i n i t i a l i z 0035120 e S e l e c t e d A r e a \r 0035140 N S e l e c t e d I t e m s = 0035160 0 \r 032 l 4 2 6 8 \r ] \r \r / / f 0035200 i l l i n a n i t e m w 0035220 i t h e v e r y t h i n g b 0035240 u t t h e l i n k a n d 0035260 s t r i n g \r a n d M a k e I 0035300 t e m ( p t r , x m i n , x m a 0035320 x , y m i n , y m a x , f o n t 0035340 , s t a t e , m a c r o , l i n 0035360 e , a r e a ) b e \r [ 032 \r p t 0035400 r > > i t e m . l i n k = 0 0035420 \r p t r ! X m i n = x m i n 0035440 \t / / p t r > > i t e m . x m i 0035460 n = x m i n \r p t r ! Y m i 0035500 n = y m i n \t / / p t r > > 0035520 i t e m . y m i n = y m i n 0035540 \r p t r ! X m a x = x m a x 0035560 \t / / p t r > > i t e m . x m a 0035600 x = x m a x \r p t r ! Y m a 0035620 x = y m a x \t / / p t r > > 0035640 i t e m . y m a x = y m a x 0035660 \r p t r ! 5 = 0 \t \t \t / 0035700 / p t r > > i t e m . s t r i n 0035720 g = 0 \r p t r > > i t e m . 0035740 f o n t = f o n t \r p t r > 0035760 > i t e m . m a c r o = m a 0036000 c r o \r p t r > > i t e m . l i 0036020 n e = l i n e \r p t r > > i 0036040 t e m . a r e a = a r e a \r 0036060 p t r > > i t e m . s t a t e 0036100 = s t a t e \r p t r > > i t e 0036120 m . c o l o r = C u r r e n 0036140 t C o l o r \r ] \r \r \r a n d R 0036160 e m e m b e r A r e a ( a r e a 0036200 , i t e m ) b e \r [ 032 \ 2 3 8 0036220 b 6 8 B \r i f i t e m e q 0036240 0 t h e n \r \t [ \r \t a r e a ! 0036260 X m i n = S c r e e n X m a 0036300 x \r \t a r e a ! Y m i n = S 0036320 c r e e n Y m a x \r \t a r e a ! 0036340 X m a x = 0 \r \t a r e a ! Y 0036360 m a x = 0 032 l 4 2 6 9 \r \t r 0036400 e t u r n \r \t ] \r i f i t e m 0036420 > > i t e m . x m i n l s a 0036440 r e a ! X m i n t h e n a r 0036460 e a ! X m i n = i t e m > > 0036500 i t e m . x m i n \r i f i t e 0036520 m > > i t e m . y m i n l s 0036540 a r e a ! Y m i n t h e n a 0036560 r e a ! Y m i n = i t e m > 0036600 > i t e m . y m i n \r i f i t 0036620 e m > > i t e m . x m a x g r 0036640 a r e a ! X m a x t h e n 0036660 a r e a ! X m a x = i t e m 0036700 > > i t e m . x m a x \r i f i 0036720 t e m > > i t e m . y m a x g 0036740 r a r e a ! Y m a x t h e n 0036760 a r e a ! Y m a x = i t e 0037000 m > > i t e m . y m a x 032 l 4 2 0037020 6 9 \r ] \r \r / / g i v e n a 0037040 p o i n t e r t o a n o b 0037060 j e c t , c h a n g e i t s 0037100 p o s i t i o n \r a n d M o 0037120 v e O b j e c t T o ( o b j , x 0037140 , y ) b e \r [ 032 \r \r l e t x 0037160 1 = o b j > > i t e m . x m 0037200 i n \r l e t x 2 = o b j > 0037220 > i t e m . x m a x \r l e t y 0037240 1 = o b j > > i t e m . y m 0037260 i n \r l e t y 2 = o b j > 0037300 > i t e m . y m a x \r \r P a i n 0037320 t ( o b j , t o W h i t e ) \t / 0037340 / p a i n t i t w h i t e \r 0037360 \r / / l e t t h e r e b u i 0037400 l d e r f i l l i n o v e 0037420 r t h e m o v e d o b j e 0037440 c t \r Z a p R e b u i l d e r I 0037460 t e m ( o b j ) \r / / i f t 0037500 h e x , y c o o r d i n a t 0037520 e s a r e < 0 , t h e n 0037540 k i l l t h e o b j e c t \r 0037560 / / i f ( ( x l s 0 ) % 0037600 ( y l s 0 ) ) t h e n \r 0037620 / / [ 032 l 4 2 6 8 \r / / i f o 0037640 b j > > i t e m . s t a t e e 0037660 q S e l e c t e d t h e n 0037700 N S e l e c t e d I t e m s = 0037720 N S e l e c t e d I t e m s - 0037740 1 \r / / o b j > > i t e m . s t 0037760 a t e = D e a d \r / / r e t 0040000 u r n 032 l 5 5 3 8 \r / / ] \r \r I 0040020 n c r e m e n t C o o r d s ( o 0040040 b j , x - o b j > > i t e m . 0040060 x m i n , y - o b j > > i t 0040100 e m . y m i n ) \r D i s p l a 0040120 y O b j e c t ( o b j ) / / d 0040140 i s p l a y i t i n i t s 0040160 n e w p o s i t i o n \r 032 l 0040200 4 2 6 8 \r ] \r \r \r / / T h e s 0040220 c r e e n r e b u i l d e r 0040240 h a s t h r e e s t a t e s 0040260 : \r / / 0 m e a n s i d l 0040300 e , 1 m e a n s r e b u i 0040320 l d i n g s e l e c t e d i 0040340 t e m s ( g r a y ) , a n d 0040360 2 m e a n s \r / / r e b u i 0040400 l d i n g A c t i v e i t e 0040420 m s ( b l a c k ) . Z a 0040440 p R e b u i l d e r i s \r / / 0040460 p a s s e d a b o u n d i n 0040500 g r e c t a n g l e . I f 0040520 t h e s t a t e i s = 0 0040540 , i t s e t s t h e s t 0040560 a t e t o \r / / 1 , a n d 0040600 s a v e s t h e r e c t a n 0040620 g l e . I f t h e s t a 0040640 t e i s > 0 , i t e x p 0040660 a n d s t h e \r / / b o u n d 0040700 i n g r e c t a n g l e a p 0040720 p r o p r i a t e l y . I n 0040740 e i t h e r c a s e , i t 0040760 \r / / s e t s R e s t a r t R 0041000 e b u i l d e r , w h i c h 0041020 w i l l c a u s e t h e r 0041040 e b u i l d e r t o s t a r 0041060 t a t F i r s t I t e m \r / 0041100 / w h e n i t i s n e x t 0041120 s t a r t e d . T h e r e 0041140 b u i l d e r s t a r t s i 0041160 n s t a t e 1 , a n d a 0041200 s i t \r / / g o e s , i t 0041220 k e e p s t r a c k o f t 0041240 h e l a r g e s t a r e a 0041260 w h i c h i t h a s p a i 0041300 n t e d g r a y \r / / d u r i 0041320 n g p a s s 1 . A t t 0041340 h e e n d o f p a s s 1 0041360 , i t p u t s t h i s i 0041400 n f o r m a t i o n i n \r / / 0041420 t h e b o u n d i n g r e c 0041440 t a n g l e , s o t h a t 0041460 u n s e l e c t e d t h i n g 0041500 s w i t h i n t h e g r a 0041520 y \r / / a r e a w i l l b e 0041540 p a i n t e d b l a c k p 0041560 r o p e r l y . \r \r \r a n d Z 0041600 a p R e b u i l d e r I t e m ( 0041620 p ) b e \r Z a p R e b u i 0041640 l d e r ( p > > i t e m . x m i 0041660 n , p > > i t e m . y m i n , 0041700 p > > i t e m . x m a x , p 0041720 > > i t e m . y m a x ) \r \r a n 0041740 d Z a p R e b u i l d e r ( x 0041760 m i n , y m i n , x m a x , y m 0042000 a x ; n u m a r g s n a ) 0042020 b e \r [ 032 \r i f n a e q 0 0042040 t h e n \r [ 032 l 4 2 6 8 \r x m 0042060 i n = 0 ; y m i n = 0 \r x m a 0042100 x = S c r e e n X m a x ; y m 0042120 a x = S c r e e n Y m a x \r Z e 0042140 r o ( D i s p l a y A r e a , N 0042160 w r d s * S c r e e n Y m a x ) 0042200 032 l 5 5 3 8 \r ] \r l e t f a k 0042220 e = v e c 6 \r f a k e ! X 0042240 m i n = x m i n \r f a k e ! 0042260 Y m i n = y m i n \r f a k e 0042300 ! X m a x = x m a x \r f a k 0042320 e ! Y m a x = y m a x \r t e 0042340 s t R e b u i l d e r S t a t 0042360 e e q 0 \r i f s o \r [ 032 l 4 0042400 2 6 8 \r R e m e m b e r A r e a 0042420 ( R e b A r e a , 0 ) \r R e m e 0042440 m b e r A r e a ( R e b A r e a 0042460 , f a k e ) \r R e b u i l d e r 0042500 S t a t e = 1 ; U p d a t 0042520 e S t a t u s = t r u e 032 l 5 5 0042540 3 8 \r ] \r \r i f n o t R e m 0042560 e m b e r A r e a ( R e b A r e 0042600 a , f a k e ) \r \r R e s t a r t 0042620 R e b u i l d e r = t r u e 0042640 032 l 4 2 6 8 \r ] \r \r \r a n d R 0042660 e b u i l d S o m e ( ) b e \r 0042700 [ 032 \r 032 l 4 2 6 8 \r i f ( B l 0042720 i n k & # 1 7 7 7 0 0 ) n e 0042740 0 t h e n F l a s h M a r k 0042760 ( ) \t / / i . e . l s 0 o 0043000 r g r 6 4 \r i f R e b u i 0043020 l d e r S t a t e e q 0 t 0043040 h e n r e t u r n / / n o 0043060 t h i n g t o d o \r i f R 0043100 e s t a r t R e b u i l d e r 0043120 t h e n \r [ 032 l 4 2 6 8 \r R e m 0043140 e m b e r A r e a ( R w A r e a 0043160 , 0 ) \r \r R e s t a r t R e b u 0043200 i l d e r = f a l s e \r R e 0043220 b u i l d e r S t a t e = 1 0043240 / / d o s e l e c t e d i 0043260 t e m s \r R e b u i l d e r L i 0043300 n k = F i r s t I t e m 032 l 0043320 5 5 3 8 \r ] \r i f R e b u i l 0043340 d e r L i n k e q 0 t h e 0043360 n \t / / d o n e w i t h t 0043400 h i s p a s s 032 l 4 2 6 8 \r [ 0043420 032 l 4 2 6 8 \r U p d a t e S t a 0043440 t u s = t r u e \r R e b u i 0043460 l d e r S t a t e = R e b u 0043500 i l d e r S t a t e + 1 \r i f 0043520 R e b u i l d e r S t a t e g 0043540 r 2 t h e n R e b u i l d 0043560 e r S t a t e = 0 \r R e b u 0043600 i l d e r L i n k = F i r s 0043620 t I t e m \r i f R e b u i l d 0043640 e r S t a t e e q 2 t h e 0043660 n R e m e m b e r A r e a ( R 0043700 e b A r e a , R w A r e a ) \r l 0043720 o o p 032 l 5 5 3 8 \r ] \r l e t 0043740 t = R e b u i l d e r L i n 0043760 k ; R e b u i l d e r L i n k 0044000 = R e b u i l d e r L i n k 0044020 > > i t e m . l i n k \r l e t 0044040 s t = t > > i t e m . s t a 0044060 t e \r u n l e s s ( ( ( s t 0044100 e q S e l e c t e d ) & ( 0044120 R e b u i l d e r S t a t e e 0044140 q 1 ) ) % ( ( s t e q 0044160 A c t i v e ) & ( R e b u i 0044200 l d e r S t a t e e q 2 ) ) 0044220 ) t h e n l o o p \r \r \r i f 0044240 ( t > > i t e m . x m i n g 0044260 r R e b A r e a ! X m a x ) 0044300 % ( t > > i t e m . x m a x 0044320 l s R e b A r e a ! X m i n ) 0044340 % ( t > > i t e m . y m a x 0044360 l s R e b A r e a ! Y m i n 0044400 ) % ( t > > i t e m . y m i 0044420 n g r R e b A r e a ! Y m a 0044440 x ) t h e n l o o p 032 l 4 2 0044460 6 8 \r \r D i s p l a y O b j e c 0044500 t ( t ) / / d i s p l a y i 0044520 t \r \r / / c h e c k f o r o 0044540 b j e c t w h i c h w a s 0044560 j u s t p a i n t e d g r a 0044600 y b i g g e r t h a n \r / / 0044620 t h e p r e s e n t ' m a x 0044640 i m u m g r a y ' w i n d o 0044660 w \r i f R e b u i l d e r S t 0044700 a t e e q 1 t h e n R e 0044720 m e m b e r A r e a ( R w A r e 0044740 a , t ) \r \r i f M o u s e B u 0044760 f f e r > > O s B U F . I n n 0045000 e M o u s e B u f f e r > > O 0045020 s B U F . O u t t h e n r e 0045040 t u r n \t / / u s e r i n p u 0045060 t \r i f n o t E n d o f s ( 0045100 k e y s ) t h e n r e t u 0045120 r n \t / / u s e r i n p u t 032 0045140 l 4 2 6 8 \r ] r e p e a t \r 0045160 032 l 2 9 9 8 \r \r 032 \r 0045172