$ od -c -N 50000 [_CD6_]<sil>SilSources.dm!1 0000000 377 \0 \0 S i l . d e f s \0 373 224 = \a 0000020 214 \0 \0 376 001 \0 357 J / / S I L . D E 0000040 F S - - d e f i n i t i o n 0000060 s f o r N S I L \r \r \r m a n 0000100 i f e s t \r [ \r / / * * * * T h 0000120 e f o l l o w i n g 5 c o 0000140 n s t a n t s a r e a l s o 0000160 d e f i n e d a n d c o m 0000200 p i l e d i n C V R T . a s 0000220 m \r N w r d s = 3 6 / / n 0000240 u m b e r o f w o r d s p 0000260 e r s c a n l i n e / / * * 0000300 * * a l s o c o m p i l e d 0000320 i n P a i n t . a s m \r S c r 0000340 e e n X m a x = N w r d s * 0000360 1 6 / / r a s t e r p o i n 0000400 t s i n x \r S c r e e n Y m 0000420 a x = 7 6 2 376 001 \0 p 227 / / 0000440 I a d d e d 2 s c a n l 0000460 i n e s s o S t a t u s f 0000500 i t s a t t h e b o t t o 0000520 m i n g r i d 4 ( R B 0000540 a t e s ) \r C 1 7 7 8 d f l t 0000560 = 1 7 7 8 ; C 5 0 d f l t 0000600 = 5 0 / / c o n s t a n t 0000620 s f o r " A l t o B i t s 0000640 t o M i c a " c o n v e r 0000660 s i o n \r \r \r B l a c k = 0 ; 0000700 R e d = 1 ; Y e l l o w = 2 ; 0000720 G r e e n = 3 ; C y a n = 4 0000740 ; V i o l e t = 5 ; M a g e 0000760 n t a = 6 ; W h i t e = 7 \r B 0001000 r o w n = # 1 0 ; O r a n g e 0001020 = # 1 1 ; L i m e = # 1 376 001 \0 0001040 033 333 2 ; T u r q u o i s e = # 0001060 1 3 ; A q u a = # 1 4 ; U l 0001100 t r a V i o l e t = # 1 5 ; P 0001120 i n k = # 1 6 ; S m o k e = # 0001140 1 7 \r \r t o W h i t e = 0 ; t 0001160 o S e l e c t e d = 1 ; t o B 0001200 l a c k = - 1 ; t o B a c k g 0001220 r o u n d = - 2 \r I n i t R e v 0001240 = ( $ a ) * 2 5 6 + $ * 0001260 n \r N M f o n t s = 6 / / 0001300 n u m b e r o f m a c r o 0001320 f o n t s ( 4 - 9 ) \r M t s i 0001340 z e = N M f o n t s * 1 2 8 0001360 / / m a c r o t a b l e s 0001400 i z e \r D i r P r e a m b l e S 0001420 i z e = 6 \r C u r s o r M a p 0001440 = 376 001 \0 214 036 # 4 3 1 \r k s T y 0001460 p e R e a d O n l y = 1 \r k s T 0001500 y p e W r i t e O n l y = 2 \r k 0001520 s T y p e R e a d W r i t e = 3 0001540 \r c h a r I t e m = 1 \r w o r d 0001560 I t e m = 2 \r v e r L a t e s t 0001600 C r e a t e = # 4 0 0 0 0 + 2 \r 0001620 B u i l d Y m a x = 7 6 0 0001640 / / D e f i n e t h i s c o 0001660 n s t a n t f o r c o m p a 0001700 t i b i l i t y w i t h o l 0001720 d a n d n e w d r a w i n 0001740 g s \r B l a n k L i n e s = 0001760 1 6 / / n u m b e r o f u 0002000 n u s e d s c a n l i n e s 0002020 o n t o p o f d i s p l 0002040 a y m u s t 376 001 \0 020 : b e 0002060 e v e n ( R B a t e s ) \r M 0002100 a r k C h a r = # 7 3 / 0002120 / c h a r a c t e r i n g a 0002140 t e s . a l w h i c h i s 0002160 u s e d f o r m a r k \r O r 0002200 i g i n C h a r = # 7 2 / 0002220 / c h a r a c t e r i n g a 0002240 t e s . a l u s e d f o r 0002260 o r i g i n \r \r / / I a d d e 0002300 d t w o " p s e u d o C u 0002320 r s o r p o s i t i o n r e 0002340 g i s t e r s s o I c o u 0002360 l d m o v e t h e d i s p 0002400 l a y w i n d o w \r / / a w a 0002420 y f r o m t h e s c r e e 0002440 n o r i g i n , a n 376 001 \0 X 0002460 365 d s t i l l h a v e a l 0002500 l o f S i l ' c c a l c u 0002520 l a t i o n s w o r k \r / / c 0002540 o r r e c t l y w i t h " @ 0002560 C u r s o r " t y i n s t r 0002600 u c t i o n s \r \r C u r s o r T 0002620 a b l e = # 3 4 0 / / h 0002640 i d e s s i l c u r s o r 0002660 t a b l e i n u n a v a i l 0002700 a b l e s t a t i c m e m o 0002720 r y \r / / N o w t h e r e a 0002740 l c u r s o r c o o r d i n 0002760 a t e a s s i g n m e n t s \r 0003000 D i s p C u r s o r X = # 4 0003020 2 6 \t / / s e n d t h e a l 0003040 t o s o f t w a r e C u r s 0003060 o 376 001 \0 207 351 r X f r o m T a 0003100 b 1 t o S c r e n X M a x 0003120 + T a b 1 \r D i s p C u r s o 0003140 r Y = # 4 2 7 \t / / s e n d 0003160 t h e a l t o s o f t w a 0003200 r e C u r s o r Y f r o m 0003220 B l a n k L i n e s t o S c 0003240 r e n Y M a x + B L \r M o u 0003260 s e X = # 4 2 4 \r M o u s e 0003300 Y = # 4 2 5 \r \r M a r k = 0003320 4 \t / / c a s e s o f m o 0003340 u s e e v e n t s \r D r a w 0003360 = # 1 0 \r S e l e c t = # 0003400 1 4 \r S h i f t = 1 \r C t r 0003420 l = 2 \r C t r l M a r k = 0003440 M a r k + C t r l \r S h i f t 0003460 M a r k = 376 001 \0 001 033 M a r k 0003500 + S h i f t \r C t r l S h M a r 0003520 k = M a r k + C t r l + S h 0003540 i f t \r C t r l D r a w = D 0003560 r a w + C t r l \r S h i f t D e 0003600 l e t e = D r a w + S h i f 0003620 t \r S h i f t U n d e l e t e 0003640 = D r a w + C t r l + S h i f 0003660 t \r C t r l S e l e c t = S 0003700 e l e c t + C t r l \r S h i f t 0003720 S e l e c t = S e l e c t + 0003740 S h i f t \r C t r l S h S e l e 0003760 c t = S e l e c t + C t r l 0004000 + S h i f t \r \r \r / / o b j e c 0004020 t s t a t e s \r A c t i v e 0004040 = 0 \r S e l e c t e d = 1 0004060 \r D e a d = 7 \t \r 376 001 \0 272 J 0004100 \r F N a m e L e n g t h = 2 0 \r 0004120 \r L m a r g i n = 2 8 \r ] \r 0004140 \r e x t e r n a l \t \t / / s t a 0004160 t i c v a r i a b l e s \r [ \r 0004200 / / s i l . b c p l \r @ O r i g 0004220 i n O b j e c t ; @ M a r k O 0004240 b j e c t ; @ S t a t u s O b 0004260 j e c t ; @ F N a m e O b j e 0004300 c t \r @ M e s s a g e ; @ H e 0004320 r r a l d \r @ B l i n k ; @ F 0004340 l a s h S e n s e ; @ U p d a 0004360 t e S t a t u s ; @ T i c k F 0004400 l a g \r @ L i n e W i d t h ; 0004420 @ M a g ; @ G r i d M a s k ; 0004440 @ H a r d C o p y ; @ S c a 0004460 n C v r t \r @ F i r s t I t e m 0004500 376 001 \0 252 376 ; @ N e w I t e m ; 0004520 @ N S e l e c t e d I t e m s 0004540 \r @ I t a l i c s B u f f \r @ 0004560 C h a n g e d ; @ V i r g i n 0004600 S i n c e B u i l d \r @ M a k e 0004620 G r a y O K \r @ P l a c e S e 0004640 l e c t e d \r @ M a x S t r i n 0004660 g H e i g h t \r \r @ C u r s o r 0004700 X ; @ C u r s o r Y / / X 0004720 & Y l o c a t i o n o f 0004740 C u r s o r i n B i t - M 0004760 a p c o o r d i n a t e s \r @ 0005000 m x ; @ m y / / d e f a u l t 0005020 l o c a t i o n o f S t a 0005040 t u s O b j e c t ( m a y b 0005060 e a l t e r e d b y " X / 0005100 Y : v a 376 001 \0 C 266 l " i n 0005120 u s e r . c m ) \r @ O l d X ; 0005140 @ O l d Y ; @ N e w X ; @ N 0005160 e w Y \r @ R e b A r e a \r @ R w 0005200 A r e a \r @ W i n d o w X m i n 0005220 ; @ W i n d o w Y m i n \r \r @ 0005240 R e b u i l d X m i n ; @ R e 0005260 b u i l d Y m i n ; @ R e b u 0005300 i l d X m a x ; @ R e b u i l 0005320 d Y m a x \r @ R e b u i l d e r 0005340 S t a t e ; @ R e s t a r t R 0005360 e b u i l d e r ; @ R e b u i 0005400 l d e r L i n k \r @ S w e e p i 0005420 n g ; @ S l i n k ; @ C l i 0005440 n k \r \r @ M o u s e B u f f e r 0005460 ; @ D c b ; @ M a c t ; @ 0005500 F o n t V e c ; @ 376 001 \0 @ \n P 0005520 r F a c e V e c ; @ A l F a c 0005540 e V e c ; @ M a s k T a b l e 0005560 \r @ D i s p l a y A r e a ; @ 0005600 S i l Z o n e \r @ S p a c e B a 0005620 s e / / b a s e o f s p a 0005640 c e \r @ S p a c e T o p / / 0005660 t o p o f s t p a c e w i 0005700 t h 1 2 8 w o r d s a b o 0005720 v e f o r " N e w I t e m " 0005740 t o e x p a n d i n t o \r 0005760 \r / / s i l a . b c p l \r \r @ C 0006000 u r r e n t F o n t / / i n 0006020 t e r n a l f o n t n u m b 0006040 e r f o r m a t \r @ C u r r e 0006060 n t U F o n t / / f o n t 0006100 n u m b e r t o t h e u 376 0006120 001 \0 332 022 s e r \r @ C u r r e n t 0006140 F a c e \r @ C u r r e n t C o l 0006160 o r \r @ Y L o c k F l a g \r @ O 0006200 n e L e v e l \r \r / / s i l a a 0006220 . b c p l \r \r @ A l t S \r @ f p 0006240 A l t \r @ A l t L i n e C n t \r 0006260 @ I n i t S \r @ f p S i l I n i 0006300 t \r @ L b M i s s i n g \r \r / / 0006320 s i l b . b c p l \r \r @ l a s t 0006340 l i n k \r @ m a i n l \r \r / / s 0006360 i l c . b c p l \r \r @ L p r v e 0006400 c / / v e c t o r o f f p 0006420 ' s f o r l i b r a r i e s 0006440 r e t u r n e d b y L o o 0006460 k U p E n t r i e s \r @ m o u s 0006500 e d o w n \r @ T A B k e y / / 0006520 i n d i 376 001 \0 p 324 c a t e s T 0006540 A B k e y a s a p p o s e 0006560 d t o C T R L i \r @ B S k 0006600 e y \t / / d i f f e r e n t i 0006620 a t e s b e t w e e n ^ H 0006640 a n d t h e B S k e y \r @ 0006660 C t r l S h i f t / / i n d i 0006700 c a t e s t h a t a " C o 0006720 n t - S h i f t " f u n c t i 0006740 o n i s i n e f f e c t \r 0006760 @ S e l A r e a \r \r / / s i l 0007000 d . b c p l \r \r @ W i d t h V e 0007020 c \r @ F i l e V e c \r @ F o n t 0007040 3 S p e c i a l \r \r / / s i l p 0007060 r e s s . b c p l \r \r @ P r e s 0007100 s S \r @ n c o p i e s \r @ B a c 0007120 k G n d E n \r @ X 376 001 \0 033 225 m a 0007140 r g i n \r @ Y m a r g i n \r @ C 0007160 1 7 7 8 \r @ C 5 0 \r ] \r \r e x t 0007200 e r n a l \t \t / / O . S . p r 0007220 o c e d u r e s a n d s t a 0007240 t i c s \r [ \r O p e n F i l e F 0007260 r o m F p \r f p U s e r C m \r f 0007300 p S y s D i r \r f p C o m C m \r 0007320 f p R e m C m \r F i l e P o s \r 0007340 S e t F i l e P o s \r U s c \r I 0007360 n i t i a l i z e Z o n e \r G e 0007400 t s \r P u t s \r W s s \r W s \r W 0007420 n s \r O p e n F i l e \r C l o s 0007440 e s \r M o v e B l o c k \r S e t 0007460 K e y b o a r d P r o c \r l v C 0007500 u r s o r L i n k \r Z e r o \r C 0007520 a l l S w a t \r E n d o f s 376 001 0007540 \0 351 % \r k e y s \r l v U s e r F 0007560 i n i s h P r o c \r J u n t a \r 0007600 C o u n t e r J u n t a \r R e s 0007620 e t s \r S e t u p R e a d P a r 0007640 a m \r R e a d P a r a m \r ] \r \r 0007660 e x t e r n a l \t \t / / S i l 0007700 p r o c e d u r e s \r [ \r S i l 0007720 I n i t C o d e \r M a k e I n i 0007740 t F i l e \r P r e s s I n i t C 0007760 o d e \r I n i t B l o c k s \r L 0010000 i b U p d a t e / / u p d a t 0010020 e m a c t f r o m l i b r 0010040 a r y f i l e s \r R e a d L i 0010060 b F p s / / g e t f i l e 0010100 p o i n t e r s f o r l i 0010120 b r a r y f i l e s \r L o o k 0010140 U p E 376 001 \0 y 312 n t r i e s \r S 0010160 i l R e I n i t \r M o v e L i n 0010200 e E n d p o i n t s \r S e t C u 0010220 r s o r \r E x p a n d \r G o b b 0010240 l e F o n t s \r R e a d U s e r 0010260 C m I t e m \r R e a d F o n t \r 0010300 C l e a n U p \r M o v e S e l e 0010320 c t e d \r C o p y S e l e c t e 0010340 d \r D e l e t e S e l e c t e d 0010360 \r U n D e l e t e \r W r i t e I 0010400 t e m \r R e a d I t e m \r F i l 0010420 e O u t \r F i x F N a m e \r O p 0010440 e n S i l F i l e \r U p d a t e 0010460 \r C o m p a c t \r F l a s h M a 0010500 r k \r / / U p d a t e Y C u r s 0010520 o r \r M a k e I t e m \r G e t M 0010540 o u s e E v e n 376 001 \0 o o t \r M 0010560 a k e M o u s e E v e n t \r M o 0010600 u s e P r o c \r G e t C o l o r 0010620 \r P a i n t T i c k s \r Z a p R 0010640 e b u i l d e r \r Z a p R e b u 0010660 i l d e r I t e m \r R e m o v e 0010700 B u i l d M a r k \r C v r t \r D 0010720 o K e y b o a r d \r M o u s e B 0010740 u f f e r E m p t y \r P u s h C 0010760 o o r d s \r M o v e O b j e c t 0011000 T o \r D o D r a w \r S e l e c t 0011020 A r e a \r R e m e m b e r A r e 0011040 a \r C l e a r S e l e c t i o n 0011060 s \r M a k e S e l e c t e d \r M 0011100 a k e U n S e l e c t e d \r S e 0011120 l e c t I t e m \r S e l e c t I 0011140 t e m C l e a n u p \r R e 376 001 \0 0011160 u 250 b u i l d S o m e \r P a i n 0011200 t \r D i s p l a y O b j e c t \r 0011220 R e W r i t e O b j \r A d d T e 0011240 x t \r D e f i n e M a c r o \r C 0011260 h e c k M a c r o \r R e c u r s 0011300 i v e D e f i n i t i o n \r F i 0011320 l e I n \r / / N S i l U t i l \r 0011340 I n c r e m e n t C o o r d s \r 0011360 A d d T o L i s t \r F l u s h L 0011400 i s t \r L e n g t h \r S t E q \r 0011420 G e t N u m \r A p p e n d C \r A 0011440 p p e n d S \r A p p e n d N \r / 0011460 / A p p e n d B \r F i n d A n a 0011500 l y z e L i n e \r / / s i l p r 0011520 e s s \r M a k e P r e s s \r S e 0011540 t E n t i t y C o l o r \r C h e 0011560 c k 376 001 \0 376 022 C o l o r C m m d 0011600 \r I n i t C o l o r T a b l e \r 0011620 I n i t C u r s o r \r W r i t e 0011640 C u r s o r \r R e a d C m E n t 0011660 r y \r G e t S o m e M e m \r ] \r 0011700 \r \r s t r u c t u r e s t r : 0011720 \r [ 032 ( 6 3 5 ) \r l e n g t h 0011740 b y t e \r c h a r ^ 1 , 2 5 5 0011760 b y t e 032 l 4 2 6 8 \r ] \r \r \r s 0012000 t r u c t u r e i t e m : \r [ 0012020 032 \r l i n k w o r d \r s t a t 0012040 e b i t 3 ; x m i n b i 0012060 t 1 3 \r y m i n w o r d \r c 0012100 o l o r b i t 4 ; x m a 0012120 x b i t 1 2 \r [ f o n t 0012140 b i t 4 ; b l a n k b i t 0012160 1 ; y m a 376 001 \0 255 s x b i 0012200 t 1 1 ] \r \t = [ \r \t f u l l 0012220 f o n t b i t 5 \r \t = [ t 0012240 x t f o n t b i t 3 ; f a 0012260 c e b i t 2 = [ b o l d 0012300 b i t ; i t a l i c b i t 0012320 ] ] \r \t b l a n k b i t 0012340 1 1 \r \t ] \r s t r i n g : @ 0012360 s t r 032 l 4 2 6 8 \r ] \r \r m a n 0012400 i f e s t [ X m i n = 1 0012420 ; Y m i n = 2 ; X m a x 0012440 = 3 ; Y m a x = 4 ] 0012460 / / m a t c h e d t o i 0012500 t e m s t r u c t u r e \r \r s 0012520 t r u c t u r e M e v e n t : 0012540 \r [ 032 \r t y p e b i t 4 \r c 0012560 u r x b i t 1 2 \r c 376 \0 024 221 0012600 306 u r y w o r d 032 l 4 2 6 8 \r 0012620 ] \r \r 032 \r 377 \0 \0 S i l . B c p l 0012640 \0 373 226 274 177 215 \0 \0 376 001 \0 017 314 / / S 0012660 i l . b c p l l a s t m o 0012700 d i f i e d F e b r u a r y 0012720 1 9 , 1 9 8 1 b y R . P 0012740 a s c o \r \r g e t " s y s d e 0012760 f s . d " \r g e t " s i l . d 0013000 e f s " \r \r s t a t i c / / 0013020 A l l d e c l a i r e d c o 0013040 m m o n a n d e x t e r n a 0013060 l i n n s i l . d e f s \r [ 0013100 \r O r i g i n O b j e c t ; M 0013120 a r k O b j e c t ; S t a t u 0013140 s O b j e c t ; F N a m e O b 0013160 j e c t \r M e s s a g e ; H e 0013200 r r a l d \r B l i n k = 1 0 0013220 ; F l a s h S e n s e = 0 ; 0013240 U p d a t e S t a t u s 376 001 \0 0013260 276 } = 0 ; T i c k F l a g = f 0013300 a l s e \r L i n e W i d t h = 0013320 1 ; M a g = 1 ; G r i d M 0013340 a s k = # 1 7 7 7 7 4 ; H 0013360 a r d C o p y = f a l s e \r F i 0013400 r s t I t e m ; N e w I t e m 0013420 ; N S e l e c t e d I t e m s 0013440 = 0 \r C h a n g e d = f 0013460 a l s e ; V i r g i n S i n c 0013500 e B u i l d = f a l s e \r M 0013520 a k e G r a y O K = t r u e 0013540 / / f l a g \r P l a c e S e 0013560 l e c t e d = f a l s e \r M 0013600 a x S t r i n g H e i g h t \r \r 0013620 C u r s o r X ; C u r s o r Y 0013640 / / X & Y l o c a t i 0013660 o n 376 001 \0 211 236 o f C u r s o 0013700 r i n B i t - M a p c o o 0013720 r d i n a t e s \r m x = 0 ; 0013740 m y = 0 / / d e f a u l t 0013760 l o c a t i o n o f S t a 0014000 t u s O b j e c t ( m a y b 0014020 e a l t e r e d b y " X / 0014040 Y : v a l " i n u s e r . 0014060 c m ) \r O l d X = 0 ; O l 0014100 d Y = 0 ; N e w X = 0 0014120 ; N e w Y = 0 \r R e b A r 0014140 e a / / t o t a l a r e a 0014160 f o r r e b u i l d i n g o 0014200 n f i r s t p a s s \r R w A 0014220 r e a / / t o t a l a r e a 0014240 f o r r e b u i l d i n g 0014260 o n s e c o 376 001 \0 D x n d p 0014300 a s s \r W i n d o w X m i n = 0 0014320 ; W i n d o w Y m i n = 0 \r \r 0014340 R e b u i l d e r S t a t e = 0014360 0 ; R e s t a r t R e b u i 0014400 l d e r = f a l s e ; R e 0014420 b u i l d e r L i n k = 0 \r 0014440 S w e e p i n g ; S l i n k ; 0014460 C l i n k \r \r M o u s e B u f 0014500 f e r ; D c b = 0 ; M a c t 0014520 ; F o n t V e c ; P r F a c 0014540 e V e c ; A l F a c e V e c ; 0014560 M a s k T a b l e \r D i s p l 0014600 a y A r e a = 0 / / s e t t o 0014620 z e r o s o F i l e I n 0014640 d i s p l a y c a l l s a 0014660 r e i n h i b e t e d 376 001 \0 8 0014700 262 i n p r e s s m o d e \r 0014720 S i l Z o n e \r S p a c e B a s 0014740 e / / b a s e o f s p a c 0014760 e \r S p a c e T o p / / t o 0015000 p o f s p a c e w i t h 0015020 1 2 8 w o r d s a b o v e 0015040 f o r " N e w I t e m " t o 0015060 e x p a n d i n t o \r ] \r \r 0015100 e x t e r n a l [ @ O n B i 0015120 t s ; @ O f f B i t s ; @ S 0015140 e t B P t r ; @ S e t B M a s 0015160 k ] \r s t a t i c [ @ 0015200 O n B i t s ; @ O f f B i t s 0015220 ; @ S e t B P t r ; @ S e t 0015240 B M a s k ] \r / / s t a t 0015260 i c [ @ S a v e F l a g = 0 0015300 376 001 \0 320 267 ] / / T E M 0015320 P O R A R Y C O D E T O M 0015340 A K E S I L . B O O T - - 0015360 D O R A D O \r / / e x t e r 0015400 n a l [ s y s Z o n e ; l 0015420 v S y s Z o n e ; S a v e S t 0015440 a t e ; M y F r a m e ; E n 0015460 a b l e I n t e r r u p t s ] 0015500 / / D O R A D O \r \r \r l 0015520 e t M a i n ( ) b e \r [ 032 ( 0015540 6 3 5 ) \r H e r r a l d = " 0015560 S I L o f F e b r u a r y 0015600 1 9 , 1 9 8 1 " \t \t \t / / a s 0015620 m o d i f i e d b y R . 0015640 P a s c o \r l e t x D c b = 0015660 I n i t B l o c k s ( ) / 0015700 / s e t u 376 001 \0 l 277 p m i s 0015720 c i l l a n e o u s b u f f e 0015740 r s f o r S I L \r Z e r o ( 0015760 D i s p l a y A r e a , ( N w r 0016000 d s * S c r e e n Y m a x ) ) 0016020 / / t h i s w a p e s o u 0016040 t I n i t B l o c k e t c . 0016060 c o d e \r D c b = x D c b 0016100 \r J u n t a ( l e v K e y b o a 0016120 r d , I n i t S i l ) 032 l 4 2 6 0016140 8 \r ] \r \r 032 l 4 2 6 8 \r a n d 0016160 I n i t S i l ( a r g ) b e \r 0016200 [ 032 l 2 9 9 8 \r \r / / u s e r 0016220 e m a i n i n g s p a c e f 0016240 o r t h e s t a c k / / A d 0016260 d T e x t o f a m a c r o 0016300 i s w o r s t - 376 001 \0 263 ? 0016320 9 0 0 w o r k s \r S p a c e 0016340 B a s e = @ # 3 3 5 / / E 0016360 n d C o d e \r @ # 3 3 5 = ( 0016400 l v a r g ) - 1 2 0 0 / / 0016420 s e t E n d C o d e \r / / @ # 0016440 3 3 5 = ( l v a r g ) - 0016460 1 4 0 0 / / M O R E S P A C 0016500 E F O R D 1 V E R S I O N 0016520 - - D O R A D O \r / / i f 0016540 ( @ # 3 3 5 - S p a c e B a s e 0016560 ) l s 2 0 0 0 t h e n C 0016600 a l l S w a t ( " I n s u f f i 0016620 c i e n t O b j e c t S t o 0016640 r a g e " ) \r \r S i l R e I n i 0016660 t ( ) \r i f F N a m e O b j e 0016700 c t > > i t e m . s t r i n g . 0016720 376 001 \0 260 o l e n g t h t h e n 0016740 F i l e I n ( f a l s e ) \r 0016760 S i l M a i n ( ) \t / / n e v e 0017000 r r e t u r n s 032 l 4 2 6 8 \r 0017020 ] \r \r / / C a l l e d t o 0017040 r e - i n i t i a l i z e S I 0017060 L , b o t h a t b e g i n 0017100 n i n g a n d a t ^ K t 0017120 i m e . \r a n d S i l R e I n 0017140 i t ( ) b e \r [ 032 \r M e s s a 0017160 g e = H e r r a l d \r \r / / 0017200 C l o s e s t r e a m o n 0017220 A l t e r n a t e i n p u t 0017240 i f t h i s i s a c o n 0017260 t K o n a n i n i t i a 0017300 l i s e d s c r e e n \r i f 0017320 ( F i r s 376 001 \0 y r t I t e m 0017340 e q 0 ) & A l t S n e 0017360 0 t h e n [ C l o s e s ( 0017400 A l t S ) ; A l t S = 0 ; 0017420 A l t L i n e C n t = 0 ] 032 l 0017440 4 2 6 9 \r \r / / c l e a r b u 0017460 f f e r s o f w i d t h t 0017500 a b l e f o r n o n d e f 0017520 a u l t f o n t f a c e s \r 0017540 f o r f = 0 t o 1 5 0017560 d o i f F i l e V e c ! f 0017600 n e t r u e t h e n W i d 0017620 t h V e c ! f = 0 \r S p a c 0017640 e T o p = @ # 3 3 5 - 1 0017660 2 8 \r \r S e t C u r s o r ( ) \r 0017700 Z e r o ( M a c t , M t s i z e 0017720 ) \r \r F i r s t I t 376 001 \0 230 e e 0017740 m = 0 \r N e w I t e m = S p a c 0017760 e B a s e \r R e b u i l d e r S 0020000 t a t e = 0 \r N S e l e c t 0020020 e d I t e m s = 0 \r C h a n 0020040 g e d = f a l s e \r M a g 0020060 = 1 \r L b M i s s i n g = 0020100 - 1 \r W i n d o w X m i n = 0020120 0 \r W i n d o w Y m i n = 0 0020140 \r Z a p R e b u i l d e r ( ) \r 0020160 \r / / I n i t i a l i z e t h 0020200 e s t o r a g e c o m p a c 0020220 t o r \r C l i n k = S p a c 0020240 e B a s e \r S l i n k = l v 0020260 F i r s t I t e m \r S w e e p 0020300 i n g = t r u e 032 l 4 2 6 9 0020320 \r ] \r \r a n d S i l M a i n 376 0020340 001 \0 353 336 ( ) b e \r [ 032 \r i f 0020360 M o u s e B u f f e r > > O s B 0020400 U F . I n n e M o u s e B u 0020420 f f e r > > O s B U F . O u t 0020440 t h e n 032 l 4 2 6 8 \r [ 032 l 4 2 0020460 6 8 \r M e s s a g e = " " 0020500 \r s w i t c h o n G e t M o u 0020520 s e E v e n t ( ) i n t o \r [ 0020540 032 l 5 5 3 8 \r c a s e M a r k 0020560 : \r P u s h C o o r d s ( m x , 0020600 m y ) \r M o v e O b j e c t T o 0020620 ( M a r k O b j e c t , m x , m 0020640 y ) \r e n d c a s e \r \r c a s e 0020660 C t r l D r a w : \r P u s h C 0020700 o o r d s ( m x , m y ) \r M o v 0020720 e O b j e c t T o ( M a r k O b 0020740 j e c t 376 001 \0 365 022 , m x , m y ) 0020760 \r C o p y S e l e c t e d ( ) \r 0021000 C h a n g e d = t r u e \r e 0021020 n d c a s e \r 032 l 6 8 0 8 \r c a 0021040 s e C t r l M a r k : \r c a s 0021060 e C t r l S h M a r k : \r P u 0021100 s h C o o r d s ( m x , m y ) \r 0021120 M o v e O b j e c t T o ( M a r 0021140 k O b j e c t , m x , m y ) \r M 0021160 o v e S e l e c t e d ( ) \r C h 0021200 a n g e d = t r u e \r e n d 0021220 c a s e \r \r c a s e D r a w : 0021240 \r C l e a r S e l e c t i o n s 0021260 ( ) \r D o D r a w ( m x , m y ) 0021300 \r S e t C u r s o r ( ) \r C h a 0021320 n g e d = t r u e 032 l 6 8 0 0021340 8 \r e n d c a s e 376 001 \0 272 200 \r \r 0021360 c a s e S e l e c t : \r S e l 0021400 e c t I t e m ( m x , m y , t r 0021420 u e ) \r S e t C u r s o r ( ) \r 0021440 e n d c a s e \r \r c a s e S h 0021460 i f t S e l e c t : \r S e l e c 0021500 t A r e a ( m x , m y ) \r S e t 0021520 C u r s o r ( ) \r e n d c a s e 0021540 \r \r c a s e C t r l S e l e c 0021560 t : \r c a s e C t r l S h S e 0021600 l e c t : \r S e t C u r s o r ( 0021620 ) \r S e l e c t I t e m ( m x , 0021640 m y , f a l s e ) \r e n d c a s 0021660 e \r \r c a s e S h i f t M a r 0021700 k : \r M o v e O b j e c t T o ( 0021720 O r i g i n O b j e c t , m x , 0021740 m y ) \r e n d c a s e \r \r c 376 001 0021760 \0 217 215 a s e S h i f t D e l e 0022000 t e : \r S e l e c t I t e m ( m 0022020 x , m y , t r u e ) \r D e l e t 0022040 e S e l e c t e d ( ) \r S e t C 0022060 u r s o r ( ) \r C h a n g e d 0022100 = t r u e \r e n d c a s e \r \r 0022120 c a s e S h i f t U n d e l e 0022140 t e : \r U n D e l e t e ( ) \r S 0022160 e t C u r s o r ( ) \r e n d c a 0022200 s e 032 l 6 8 0 8 \r ] \r 032 l 5 5 3 0022220 8 \r U p d a t e S t a t u s = 0022240 t r u e \r ] 032 l 4 2 6 8 \r \r i 0022260 f n o t E n d o f s ( k e y 0022300 s ) t h e n [ D o K e y b 0022320 o a r d ( G e t s ( k e y s ) ) 0022340 ; U p d a t e S t a t u s = t 0022360 r u e 376 001 \0 E 332 ] 032 l 4 2 6 8 0022400 \r R e b u i l d S o m e ( ) \r i 0022420 f R e b u i l d e r S t a t e 0022440 e q 0 t h e n C o m p a 0022460 c t ( ) / / d o a l i t t 0022500 l e b i t \r i f V i r g i n 0022520 S i n c e B u i l d & C h a 0022540 n g e d t h e n R e m o v e 0022560 B u i l d M a r k ( ) \r \r / / i 0022600 f S a v e F l a g t h e n 0022620 M a k e B o o t F i l e ( ) / / 0022640 - - D O R A D O \r 032 l 4 2 0022660 6 8 \r ] r e p e a t 032 \r \r \r / 0022700 / a n d M a k e B o o t F i l 0022720 e ( ) b e / / - - D O R 0022740 A D O \r / / [ l e t x = 0022760 n i l ; S a v 376 001 \0 O 334 e F l 0023000 a g = 0 032 \r / / l e t t 2 = 0023020 t a b l e [ # 0 3 0 0 1 3 0023040 ; # 0 0 2 0 1 4 ] / / l 0023060 d a 2 , 1 3 ; j m p @ 1 4 @ 0023100 # 1 2 = t 2 \r / / @ # 1 2 0023120 = t 2 ; @ # 1 3 = M y F 0023140 r a m e ( ) ; @ # 1 4 = D 0023160 1 P r o g \r / / x = S a v e 0023200 S t a t e ( " S i l . b o o t " 0023220 , 1 ) ; i f x n e 2 t 0023240 h e n r e t u r n \r / / D 1 P 0023260 r o g : E n a b l e I n t e r 0023300 r u p t s ( ) ; S e t B l o c 0023320 k ( 0 , # 6 7 4 0 0 , # 1 2 ) 0023340 032 l 4 2 6 9 \r / / ] \r \r a n d 0023360 F l a s h M a r k ( ) b 376 001 \0 0023400 333 005 e \r [ 032 \r l e t O b j = 0023420 O r i g i n O b j e c t / 0023440 / i n i t s O r i g i n o 0023460 b j e c t f i r s t t i m e 0023500 t h r o u g h , M a r k t 0023520 h e s e c o n d \r B l i n k = 0023540 1 0 \r [ / / t h i s l o o 0023560 p i s e x c u t e d o n c 0023600 e f o r O r i g i n O b j e 0023620 c t a n d o n e f o r M 0023640 a r k O b j e c t 032 l 4 2 6 8 \r 0023660 i f M a k e G r a y O K e 0023700 q 0 t h e n b r e a k 0023720 / / k e e p t h e s c r e e 0023740 n v e r g i n \r t e s t F l 0023760 a s h S e n s e \r i f s o P a 0024000 i n 376 001 \0 324 g t ( O b j , t o W 0024020 h i t e ) / / t u r n o f f 0024040 O b j e c t \r i f n o t \r [ 032 0024060 l 5 5 3 8 \r / / O b j > > i t e 0024100 m . s t a t e = A c t i v e 0024120 \r i f O b j > > i t e m . x m 0024140 a x g r S c r e e n X m a x 0024160 t h e n \r \t \t M o v e O b j e 0024200 c t T o ( O b j , S c r e e n X 0024220 m a x - 4 , O b j > > i t e m . 0024240 y m i n ) \r i f O b j > > i t 0024260 e m . y m a x g r S c r e e 0024300 n Y m a x t h e n \r \t \t M o v 0024320 e O b j e c t T o ( O b j , O b 0024340 j > > i t e m . x m i n , S c r 0024360 e e n Y m a x - 8 ) \r D i s p l 0024400 a y O b j e c 376 001 \0 225 312 t ( O b 0024420 j ) / / t u r n o n O b j 0024440 e c t \r u n l e s s m o u s e 0024460 d o w n d o B l i n k = 0024500 3 0 032 l 6 8 0 8 \r ] 032 l 5 5 3 8 0024520 \r i f O b j e q M a r k O 0024540 b j e c t t h e n b r e a k 0024560 \r O b j = M a r k O b j e c 0024600 t / / n o w d o t h e 0024620 s a m e f o r M a r k \r ] 0024640 r e p e a t 032 l 4 2 6 8 \r \r F l 0024660 a s h S e n s e = n o t F 0024700 l a s h S e n s e \r i f ( m o 0024720 u s e d o w n % U p d a t e 0024740 S t a t u s ) & F l a s h S 0024760 e n s e t h e n [ U p d a 0025000 t e S t a t u s = f 376 001 \0 273 0025020 275 a l s e ; U p d a t e ( ) 0025040 ] \r i f N S e l e c t e d I t 0025060 e m s e q 0 t h e n S e 0025100 t C u r s o r ( ) \r i f ( T i 0025120 c k F l a g n e 0 ) & ( 0025140 R e b u i l d e r S t a t e e 0025160 q 0 ) d o P a i n t T i c 0025200 k s ( ) \r \r ] 032 \r \r a n d P a 0025220 i n t T i c k s ( ) b e / 0025240 / S t a t i c T i c k F l a g 0025260 m u s t e q u a l 0 o r 0025300 # 1 0 0 0 0 0 \r [ 032 \r f o r 0025320 i = D i s p l a y A r e a 0025340 b y ( N w r d s * 1 6 ) t o 0025360 D i s p l a y A r e a + ( N w 0025400 r d s * ( S c r e e n Y m a x - 0025420 1 376 001 \0 035 0 ) ) d o 032 l 4 2 6 0025440 8 \r f o r j = 0 t o N 0025460 w r d s - 1 d o @ ( i + j ) 0025500 = ( ( @ ( i + j ) ) & # 7 0025520 7 7 7 7 ) + T i c k F l a g 0025540 032 l 5 5 3 8 \r ] \r \r \r / / t h e 0025560 f o l l o w i n g p r o c e 0025600 d u r e d i s p l a y s a n 0025620 o b j e c t r e l a t i v e 0025640 t o x 0 , y 0 , a n d f 0025660 i l l s \r / / i n t h e m a 0025700 x c o o r d i n a t e s o f 0025720 t h e o b j e c t . I t 0025740 w i l l n o t d i s p l a 0025760 y t h e o b j e c t \r / / i 0026000 f i t i s t o t a l l y 0026020 o f f t h 376 001 \0 317 * e s c r 0026040 e e n ( t h e o b j e c t 0026060 i s m a r k e d D e a d s 0026100 o t h e c o m p a c t o r \r 0026120 / / c a n g e t i t ) . 0026140 I f t h e o b j e c t i s 0026160 d e l e t e d ( g r S e l 0026200 e c t e d ) i t i s n o t 0026220 d i s p l a y e d . \r \r \r a n 0026240 d D i s p l a y O b j e c t ( 0026260 p t r , x 0 , y 0 ; n u m a r 0026300 g s n a r g s ) b e \r [ 032 \r 0026320 i f ( p t r > > i t e m . s t 0026340 a t e g r S e l e c t e d ) 0026360 t h e n r e t u r n \r i f 0026400 n a r g s l s 3 t h e n 0026420 [ x 0 = 0 ; y 0 = 376 001 \0 % 017 0026440 0 ] \r l e t f o n t = p 0026460 t r > > i t e m . f o n t \r i f 0026500 f o n t g e 1 4 t h e n 0026520 / / t h e o b j e c t i s 0026540 a l i n e o r a r e a \r 0026560 [ 032 l 4 2 6 8 \r P a i n t ( p t 0026600 r , t o B l a c k , x 0 , y 0 ) 0026620 / / d i s p l a y i t b l 0026640 a c k \r r e t u r n 032 l 5 5 3 8 0026660 \r ] \r \r l e t x = x 0 + p t 0026700 r > > i t e m . x m i n \r l e t 0026720 y = y 0 + p t r > > i t e 0026740 m . y m i n \r \r i f ( x l s 0026760 0 ) % ( y l s 0 ) t h e 0027000 n r e t u r n \r \r l e t M a 0027020 g F l a g = ( M a g n e 0027040 376 001 \0 347 247 1 ) & ( p t r n 0027060 e S t a t u s O b j e c t ) & 0027100 ( p t r n e F N a m e O b j 0027120 e c t ) \r / / r e t u r n i f 0027140 t h e i t e m i s e n t 0027160 i r e l y o f f t h e m a 0027200 g n i f i e d s c r e e n a 0027220 r e a . \r i f M a g F l a g 0027240 d o \r [ \r \t i f ( \r \t ( ( p t 0027260 r > > i t e m . x m a x + x 0 ) 0027300 l s W i n d o w X m i n ) 0027320 % \r \t ( ( p t r > > i t e m . y 0027340 m a x + y 0 ) l s W i n d o 0027360 w Y m i n ) % \r \t ( ( x - W i 0027400 n d o w X m i n ) * M a g g e 0027420 S c r e e n X m a x ) % \r \t 0027440 ( ( y - W 376 001 \0 270 310 i n d o w Y 0027460 m i n ) * M a g g e S c r e 0027500 e n Y m a x ) \r \t ) t h e n 0027520 r e t u r n \r ] 032 l 4 2 6 8 \r \r 0027540 \r i f f o n t l s 8 t h 0027560 e n / / n o r m a l c h a 0027600 r a c t e r s t r i n g \r [ 032 0027620 l 4 2 6 8 \r f o n t = f o n 0027640 t / 2 / / s e t f o n t 0027660 t o " u s e r f o n t " = 0027700 0 t o 3 \r / / f i r s t 0027720 s e e i f t h e w i d t h 0027740 s t a b l e f o r t h i s 0027760 f o n t a n d f a c e a 0030000 r e i n c o r e \r l e t f 0030020 a c e = p t r > > i t e m . 0030040 f a c e x o r P 376 001 \0 250 354 r 0030060 F a c e V e c ! f o n t \r l e t 0030100 F F = f o n t * 4 + f 0030120 a c e \r i f H a r d C o p y 0030140 t h e n i f W i d t h V e c 0030160 ! F F e q 0 d o \r \t / / c 0030200 h e c k f o r w i d t h s 0030220 n o t i n f i l e , o r 0030240 n o t e n o u g h s p a c e 0030260 f o r w i d t h s \r \t t e s 0030300 t ( F i l e V e c ! F F e q 0030320 0 ) % ( ( S p a c e T o p - N 0030340 e w I t e m ) l s 2 0 0 ) 032 0030360 l 5 5 3 8 \r i f s o W i d t h 0030400 V e c ! F F = F o n t V e c 0030420 ! f o n t + 1 2 8 / / c a n 0030440 ' t d o i t s o d e f 376 0030460 001 \0 006 177 a u l t \r i f n o t 0030500 / / l o o k u p i n S i l 0030520 . i n i t \r [ \r \t l e t p t r 0030540 = S p a c e T o p ; S p a 0030560 c e T o p = S p a c e T o p 0030600 - 1 2 8 \r \t u n l e s s I n i 0030620 t S d o \r \t \t I n i t S = 0030640 O p e n S i l F i l e ( 0 , f p 0030660 S i l I n i t , k s T y p e R e 0030700 a d O n l y , w o r d I t e m ) 0030720 \r \t l e t F p t r = F i l 0030740 e V e c ! F F \r \t i f F p t r 0030760 l s 3 2 t h e n F p t r 0031000 = F i l e V e c ! ( F p t r 0031020 & # 1 7 ) \r \t S e t F i l e 0031040 P o s ( I n i t S , 0 , F p t r 0031060 - 2 ) \r 376 001 \0 370 364 \t i f G e t 0031100 s ( I n i t S ) n e - 1 t 0031120 h e n C a l l S w a t ( " S i 0031140 l . I n i t o p r o b l e m " 0031160 ) \r \t f o r w = 0 t o 0031200 1 2 7 d o p t r ! w = G 0031220 e t s ( I n i t S ) \r \t W i d t 0031240 h V e c ! F F = p t r \r ] 032 0031260 l 6 8 0 8 \r \r \r \r \r / / C v r t 0031300 r e t u r n s t h e w i d 0031320 t h o f t h e s t r i n g 0031340 i n b i t s , a n d s e 0031360 t s \r / / M a x S t r i n g H e 0031400 i g h t t o t h e h e i g 0031420 h t o f t h e t a l l e s 0031440 t c h a r a c t e r i n \r / 0031460 / t h e s t r i 376 001 \0 m 227 n g 0031500 . C v r t w i l l n o t 0031520 c o n v e r t t h e c h a 0031540 r a c t e r i f t h e w i 0031560 d t h \r / / w o u l d e x c e 0031600 e d t h e s i x t h p a r 0031620 a m e t e r , n o r i f t 0031640 h e h e i g h t w o u l d \r 0031660 / / e x c e e d t h e s e v 0031700 e n t h p a r a m e t e r . 0031720 I f e i t h e r s i t u a 0031740 t i o n o b t a i n s , t h 0031760 e \r / / c o n v e r t i n s t 0032000 r u c t i o n i s e m u l a 0032020 t e d s o t h a t t h e 0032040 w i d t h a n d h e i g h t 0032060 \r / / a r e c a l c u l a 376 001 0032100 \0 020 005 t e d c o r r e c t l y 0032120 \r \r l e t l w a = D i s p 0032140 l a y A r e a + ( ( y - 1 ) 0032160 * N w r d s ) \r l e t s w = 0032200 C v r t ( l v ( p t r > > i 0032220 t e m . s t r i n g ) , x , 0032240 y , l w a , F o n t V e c ! 0032260 f o n t , f a c e & A l F 0032300 a c e V e c ! f o n t , W i d 0032320 t h V e c ! F F , M a g F l a 0032340 g , N w r d s ) \r \r p t r > > 0032360 i t e m . x m a x = p t r > 0032400 > i t e m . x m i n + s w 0032420 / / t h e i t a l i c o v e 0032440 r h a n g i s f i x e d i 0032460 n C v r t \r p t r > > i t e m 0032500 . y m 376 001 \0 017 - a x = p t r 0032520 > > i t e m . y m i n + M a x S 0032540 t r i n g H e i g h t \r i f p 0032560 t r > > i t e m . s t a t e e 0032600 q S e l e c t e d t h e n 0032620 P a i n t ( p t r , t o S e l e 0032640 c t e d , x 0 , y 0 ) \r r e t u 0032660 r n 032 l 5 5 3 8 \r ] \r \r / / t h 0032700 e i t e m i s a s t r i 0032720 n g o f m a c r o c h a r 0032740 a c t e r s ( i n t e r n a l 0032760 f o n t # 8 - 1 3 ) \r \r l 0033000 e t m b a s e = M a c t + 0033020 1 2 8 * ( f o n t - 8 ) / / 0033040 b a s e o f t h e 1 2 8 0033060 w o r d r e g i o n o f M 0033100 a c t \r / / u 376 001 \0 360 241 s e d 0033120 b y t h i s f o n t \r l e 0033140 t s l = p t r > > i t e m 0033160 . s t r i n g . l e n g t h \r i 0033200 f s l e q 0 t h e n r 0033220 e t u r n / / z e r o l e n 0033240 g t h s t r i n g s a r e 0033260 i g n o r e d \r l e t x s o f 0033300 a r = 0 \r l e t b i g g e 0033320 s t y = 0 \r f o r i = 0033340 1 t o s l d o \r [ 032 l 4 2 0033360 6 8 \r l e t c h x m a x = 0033400 0 \r l e t m p t r = m b a 0033420 s e ! ( p t r > > i t e m . s 0033440 t r i n g . c h a r ^ i ) \r i f 0033460 ( m p t r e q 0 ) % ( m p 0033500 t r e q - 1 ) t h e 376 001 \0 0033520 4 { n \r [ 032 l 5 5 3 8 \r l e t 0033540 v = " F o n t : n C h a r 0033560 : m - ^ P t o p r o c e 0033600 e d " \r v > > s t r . c h a r ^ 0033620 6 = f o n t - 4 + $ 0 \r v > 0033640 > s t r . c h a r ^ 1 3 = p 0033660 t r > > i t e m . s t r i n g . 0033700 c h a r ^ i \r C a l l S w a t ( 0033720 " U n d e f i n e d M a c r o 0033740 " , v ) \r p t r > > i t e m . s 0033760 t a t e = D e a d \r r e t u 0034000 r n \r 032 l 6 8 0 8 \r ] \r \r u n t 0034020 i l m p t r e q 0 d o 0034040 / / g r i n d d o w n t h e 0034060 l i s t o f o b j e c t s 0034100 i n t h e m a c r o \r [ 032 0034120 l 5 376 001 \0 027 D 5 3 8 \r m p t r > 0034140 > i t e m . s t a t e = p t 0034160 r > > i t e m . s t a t e / / p 0034200 a s s t h e s t a t e o n 0034220 f o r P a i n t \r D i s p l 0034240 a y O b j e c t ( m p t r , x + 0034260 x s o f a r , y ) \r l e t t x 0034300 = m p t r > > i t e m . x m 0034320 a x \r l e t t y = m p t r 0034340 > > i t e m . y m a x \r i f t 0034360 x g r c h x m a x t h e n 0034400 c h x m a x = t x \r i f 0034420 t y g r b i g g e s t y t 0034440 h e n b i g g e s t y = t 0034460 y \r m p t r = m p t r > > i 0034500 t e m . l i n k 032 l 6 8 0 8 \r ] 0034520 \r x s o f a r 376 001 \0 \t 205 = x 0034540 s o f a r + c h x m a x / / g 0034560 r i n d d o w n t h e s t 0034600 r i n g 032 l 5 5 3 8 \r ] \r \r p t 0034620 r > > i t e m . x m a x = p 0034640 t r > > i t e m . x m i n + x s 0034660 o f a r \r p t r > > i t e m . y 0034700 m a x = p t r > > i t e m . 0034720 y m i n + b i g g e s t y 032 l 4 0034740 2 6 9 \r ] \r \r / / a n d B c p 0034760 l D o I t a l i c s ( C h a r H 0035000 e i g h t , p t r ) b e / 0035020 / t h i s i s d o n e i n 0035040 C V R T . a s m \r / / [ 032 \r / 0035060 / l e t C h a r H e i g h t 0035100 = ( C h a r D e f ! 1 ) & # 3 0035120 7 7 \r / / l e t p t r 376 001 \0 006 0035140 377 = I t a l i c s B u f f - 0035160 C h a r H e i g h t \r / / M o v 0035200 e B l o c k ( p t r , C h a r D 0035220 e f - C h a r H e i g h t , C h 0035240 a r H e i g h t + 2 ) \r / / f o 0035260 r i = C h a r H e i g h t 0035300 - 1 t o 4 b y - 1 d o 0035320 [ r v p t r = ( r v 0035340 p t r ) r s h i f t ( i r 0035360 s h i f t 2 ) ; p t r = 0035400 p t r + 1 ] 032 l 4 2 6 9 \r / / 0035420 ] \r \r / / a n d M a g n i f i 0035440 e d C o n v e r t ( f r a m e , 0035460 C h a r D e f ) = v a l o f 0035500 / / c a l l e d f r o m C 0035520 V R T . a s m i f M a g g 0035540 r 376 001 \0 351 234 1 \r / / [ 032 \r / / 0035560 f r a m e i s a A C 2 o 0035600 f t h e C V R T p r o c e 0035620 e d u r e w h i c h j u s t 0035640 c a l l e d u s \r / / / / T 0035660 h e f o l l o w i n g m a n 0035700 i f e s t c o n s t a n t s 0035720 r e p r e s e n t t h e o f 0035740 f s e t s o f t h e d e s 0035760 i r e d p a r a m e t e r s \r 0036000 / / m a n i f e s t [ c u r 0036020 r X p o s n = # 2 0 ; Y s t a 0036040 r t = 6 ; x B o l d F l g 0036060 = # 2 5 ] \r / / l e t H 0036100 D = C h a r D e f ! 1 r s 0036120 h i f t 8 / / n u m b e r 0036140 o f s c 376 001 \0 340 T a n l i n 0036160 e s t o s k i p \r / / l e t 0036200 X H = C h a r D e f ! 1 0036220 & # 3 7 7 / / n u m b e r 0036240 o f s c a n l i n e s t o 0036260 C o n v e r t \r / / l e t y 0036300 = ( f r a m e ! Y s t a r t 0036320 + H D - W i n d o w Y m i n ) * 0036340 M a g \r / / l e t x = ( f r 0036360 a m e ! c u r r X p o s n - W i 0036400 n d o w X m i n ) * M a g \r / / 0036420 l e t z = x / 1 6 \r / / l 0036440 e t w i d t h = M a g + 0036460 ( f r a m e ! x B o l d F l g 0036500 n e 0 ? M a g / 2 , 0 ) \r 0036520 / / O n B i t s = ( M a s k 0036540 T a b l e ! w i d t h 376 001 \0 A n 0036560 ) \r / / S e t B P t r = D i 0036600 s p l a y A r e a + ( y * N 0036620 w r d s ) \r / / f o r s l = 0036640 - X H t o - 1 d o \r / / 0036660 [ \r / / \t i f y g r S c r 0036700 e e n Y m a x - M a g t h e n 0036720 b r e a k \r / / \t e x t e r n 0036740 a l P a i n t B i t s 032 l 4 2 0036760 6 8 \r / / \t i f y g e 0 0037000 t h e n P a i n t B i t s ( x 0037020 , C h a r D e f ! s l ) \r / / \t 0037040 S e t B P t r = S e t B P t 0037060 r + ( M a g * N w r d s ) 032 0037100 l 4 2 6 9 \r / / ] 032 l 4 2 6 9 \r 0037120 / / r e s u l t i s C h a r D 0037140 e f ! 0 \r / / ] \r / / \r \r / / t 0037160 376 001 \0 g 255 h e f o l l o w i n 0037200 g p r o c e d u r e f i l l 0037220 s i n a r e c t a n g u l 0037240 a r a r e a d e f i n e d 0037260 b y a n \r / / o b j e c t w 0037300 i t h b l a c k , g r a y , 0037320 o r w h i t e . I f t 0037340 h e o b j e c t i s f u l 0037360 l y o f f t h e s c r e e 0037400 n \r / / n o t h i n g i s d 0037420 o n e . I f t h e o b j 0037440 e c t i s p a r t i a l l y 0037460 o f f t h e s c r e e n , 0037500 t h e \r / / r e g i o n i s 0037520 c l i p p e d s o t h a t 0037540 i t s t a y s i n t h e 0037560 b i t m 376 001 \0 305 n a p \r \r a n 0037600 d P a i n t ( p t r , s h a d 0037620 i n g , x 0 , y 0 ; n u m a r 0037640 g s n a r g s ) = v a l o f 0037660 \r / / t o W h i t e = 0 ; 0037700 t o S e l e c t e d = 1 ; t o 0037720 B l a c k = - 1 ; t o B a c k 0037740 g r o u n d = - 2 \r [ 032 \r i f 0037760 n a r g s l s 4 t h e n 0040000 [ x 0 = 0 ; y 0 = 0 ] \r l 0040020 e t x m i n = p t r > > i t e 0040040 m . x m i n + x 0 \r l e t x m 0040060 a x = p t r > > i t e m . x m a 0040100 x + x 0 \r l e t y m i n = p t 0040120 r > > i t e m . y m i n + y 0 \r 0040140 l e t y m a x = p t r > > i t 0040160 e m . y m a x + y 0 376 001 \0 203 210 \r 0040200 / / i f w e r e j u s t m 0040220 a s k i n g o f f b i t s 0040240 t h e n m a s k o f f a n 0040260 e x t r a o n e f o r s 0040300 a f e t y \r i f s h a d i n g 0040320 g e 0 t h e n x m a x = 0040340 x m a x + 1 \r l e t h e i g h 0040360 t = y m a x - y m i n / 0040400 / t h i s i s n o t t h e 0040420 M a g n i f i e d h e i g h 0040440 t o r w i d t h \r l e t w 0040460 i d t h = x m a x - x m 0040500 i n \r l e t f o n t = p t 0040520 r > > i t e m . f o n t \r \r i f 0040540 ( M a g n e 1 ) t h e n 0040560 i f ( p t r n e S t a 376 0040600 001 \0 316 207 t u s O b j e c t ) & ( 0040620 p t r n e F N a m e O b j e 0040640 c t ) d o \r [ 032 l 4 2 6 8 \r x 0040660 m i n = ( x m i n - W i n d 0040700 o w X m i n ) * M a g \r y m i n 0040720 = ( y m i n - W i n d o w Y 0040740 m i n ) * M a g \r t e s t ( p 0040760 t r e q O r i g i n O b j e 0041000 c t ) % ( p t r e q M a 0041020 r k O b j e c t ) \r i f s o / 0041040 / s e t m a x ' s w i t h 0041060 o u t m a g n i f y i n g \r [ 0041100 032 l 5 5 3 8 \r x m a x = x m 0041120 i n + w i d t h \r y m a x = 0041140 y m i n + h e i g h t 032 l 6 8 0 0041160 8 \r ] 032 l 5 5 3 8 \r i f n o t 0041200 / / s e 376 001 \0 H # t m a x ' s 0041220 w i t h m a g n i f i c a t 0041240 i o n \r [ 032 l 5 5 3 8 \r x m a x 0041260 = x m i n + w i d t h * M a 0041300 g \r y m a x = y m i n + h e 0041320 i g h t * M a g 032 l 6 8 0 8 \r ] 0041340 032 l 5 5 3 8 \r ] \r \r \r / / c l i 0041360 p \r i f ( x m i n g e S c 0041400 r e e n X m a x ) % ( y m i n 0041420 g e S c r e e n Y m a x ) % ( 0041440 x m a x l s 0 ) % ( y m a x 0041460 l s 0 ) t h e n r e s u 0041500 l t i s f a l s e \r i f x m 0041520 i n l s 0 t h e n x m i 0041540 n = 0 \r i f y m i n l s 0041560 0 t h e n y m i n = 0 0041600 \r i f x m a x 376 001 \0 201 Q g r 0041620 S c r e e n X m a x t h e n 0041640 x m a x = S c r e e n X m 0041660 a x \r i f y m a x g r S c 0041700 r e e n Y m a x t h e n y m 0041720 a x = S c r e e n Y m a x \r 0041740 \r / / n o w c o m p u t e w 0041760 i d t h a n d h e i g h t 0042000 a f t e r m a g n i f i c a t 0042020 i o n a n d c l i p p i n g 0042040 \r w i d t h = x m a x - 0042060 x m i n \r \r \r l e t B i t s T 0042100 a b l e = t a b l e 032 l 4 2 0042120 6 8 \r [ \r - 1 ; - 1 ; - 1 ; 0042140 - 1 ; / / m a s k f o r 0042160 s h a d i n g a l l o n 0042200 o r a l l o f f \r # 5 2 376 001 0042220 \0 351 \f 5 2 5 ; # 1 2 5 2 5 2 ; 0042240 # 5 2 5 2 5 / / m a s k 0042260 f o r s h a d i n g s e l e 0042300 c t e d \r # 1 0 0 2 0 0 ; # 2 0 0042320 0 4 0 ; # 4 0 1 0 ; # 1 0 0 2 ; 0042340 # 1 0 0 2 0 0 ; # 2 0 0 4 0 ; # 0042360 4 0 1 0 / / m a s k f o r 0042400 s h a d i n g a r e a s \r ] 0042420 032 l 5 5 3 8 \r \r O n B i t s = 0042440 0 \r i f s h a d i n g e q 0042460 t o B l a c k t h e n O n 0042500 B i t s = f o n t e q 1 5 ? 0042520 B i t s T a b l e + 7 + ( y 0042540 m i n & 3 ) , B i t s T a b 0042560 l e \r \r O f f B i t s = 0 0042600 \r i f ( p t r > > i t e m . s 0042620 t a t 376 001 \0 j k e e q S e l 0042640 e c t e d ) & M a k e G r a 0042660 y O K t h e n O f f B i t s 0042700 = B i t s T a b l e + 4 + ( y 0042720 m i n & 1 ) \r \r / / a d d 0042740 e x t r a b i t t o w i 0042760 d t h i f p a i n t i n g 0043000 w h i t e t o b e s u r e 0043020 a n d g e t a l l o f 0043040 i t a l i c s c h a r a c t e 0043060 r s \r i f s h a d i n g e q 0043100 t o W h i t e t h e n O f 0043120 f B i t s = B i t s T a b l 0043140 e / / s e t o f f b i t 0043160 s t o a l l o n e s \r \r l 0043200 e t s t a r t b i t = x m 0043220 i n & # 1 7 376 001 \0 324 \n \r S e 0043240 t B P t r = D i s p l a y A 0043260 r e a + ( y m i n * N w r d 0043300 s ) + ( x m i n r s h i f 0043320 t 4 ) \r l e t L = w i d 0043340 t h g r 1 6 ? 1 6 , w i d 0043360 t h \r S e t B M a s k = ( M 0043400 a s k T a b l e ! L ) r s 0043420 h i f t s t a r t b i t \r \r \r 0043440 e x t e r n a l P a i n t B l 0043460 o c k 032 l 4 2 6 8 \r P a i n t B 0043500 l o c k ( y m a x - y m i n 0043520 , w i d t h + s t a r t b i t ) 0043540 \r / / [ 032 l 4 2 6 8 \r / / S e t 0043560 B P t r = s t a r t w o r d 0043600 \r / / P a i n t B l o c k ( h e 0043620 i g h t ) \r / / f o r i 376 001 \0 0043640 b 307 = 1 t o h e i g h t 0043660 d o \r / / [ 032 l 5 5 3 8 \r / / 0043700 B i t S p l a t : \r / / i f O 0043720 n B i t s t h e n @ S e t B 0043740 P t r = @ S e t B P t r % 0043760 ( S e t B M a s k & O n B 0044000 i t s ! ( i & 3 ) ) \r / / i f 0044020 O f f B i t s t h e n @ S e 0044040 t B P t r = @ S e t B P t r 0044060 & n o t ( S e t B M a s k 0044100 & O f f B i t s ! ( i & 1 ) 0044120 ) \r / / S e t B P t r = S e t B 0044140 P t r + N w r d s 032 l 6 8 0 8 \r 0044160 / / ] \r \r / / w i d t h = w 0044200 i d t h - 1 6 \r / / i f w i d 0044220 t h l e 0 t h e n b r e 0044240 a k 376 001 \0 314 I \r / / s t a r t w 0044260 o r d = s t a r t w o r d + 0044300 1 \r / / S e t B M a s k = w i 0044320 d t h l s 1 6 ? M a s k T 0044340 a b l e ! w i d t h , - 1 032 l 0044360 5 5 3 8 \r / / ] r e p e a t \r 0044400 r e s u l t i s t r u e 032 l 4 0044420 2 6 8 \r ] \r \r \r \r \r a n d P u 0044440 s h C o o r d s ( x , y ) b e 0044460 / / s t a c k m a r k s \r [ 0044500 032 \r O l d X = N e w X \r N e 0044520 w X = x \r \r O l d Y = N 0044540 e w Y \r N e w Y = y 032 l 4 2 0044560 6 8 \r ] \r \r a n d C l e a r S 0044600 e l e c t i o n s ( ) b e / 0044620 / z i p s t h r o u g h o b 0044640 j e c t s a 376 001 \0 y 221 n d m 0044660 a k e s s e l e c t e d o n 0044700 e s a c t i v e \r [ 032 \r l e t 0044720 l i n k = F i r s t I t e 0044740 m \r u n t i l l i n k e q 0044760 0 d o \r [ 032 l 4 2 6 8 \r i f 0045000 l i n k > > i t e m . s t a t e 0045020 e q S e l e c t e d t h e 0045040 n \r [ 032 l 5 5 3 8 \r l i n k > > 0045060 i t e m . s t a t e = A c t 0045100 i v e \r D i s p l a y O b j e c 0045120 t ( l i n k ) \r Z a p R e b u i 0045140 l d e r I t e m ( l i n k ) \r 0045160 / / j u s t i n c a s e t 0045200 h i s s e l e c t i o n h a 0045220 d c a u s e d s o m e t h i 0045240 n g e l s e \r / / t o 376 001 \0 317 0045260 @ b e p a i n t e d g r a 0045300 y \r 032 l 6 8 0 8 \r ] \r l i n k 0045320 = l i n k > > i t e m . l i n 0045340 k 032 l 5 5 3 8 \r ] \r R e m e m b 0045360 e r A r e a ( S e l A r e a , 0 0045400 ) / / i n i t i a l i z e 0045420 S e l e c t e d A r e a \r N S 0045440 e l e c t e d I t e m s = 0 0045460 \r 032 l 4 2 6 8 \r ] \r \r / / f i l 0045500 l i n a n i t e m w i t 0045520 h e v e r y t h i n g b u t 0045540 t h e l i n k a n d s t 0045560 r i n g \r a n d M a k e I t e 0045600 m ( p t r , x m i n , x m a x , 0045620 y m i n , y m a x , f o n t , s 0045640 t a t e ) b e \r [ 032 \r p t r > 0045660 > 376 001 \0 356 P i t e m . l i n k 0045700 = 0 \r p t r ! X m i n = x 0045720 m i n \t / / p t r > > i t e m . 0045740 x m i n = x m i n \r p t r ! 0045760 Y m i n = y m i n \t / / p t 0046000 r > > i t e m . y m i n = y 0046020 m i n \r p t r ! X m a x = x 0046040 m a x \t / / p t r > > i t e m . 0046060 x m a x = x m a x \r p t r ! 0046100 Y m a x = y m a x \t / / p t 0046120 r > > i t e m . y m a x = y 0046140 m a x \r p t r ! 5 = 0 \t \t 0046160 \t / / p t r > > i t e m . s t 0046200 r i n g = 0 \r p t r > > i t 0046220 e m . f o n t = f o n t \r p 0046240 t r > > i t e m . s t a t e = 0046260 s t a t e 376 001 \0 332 026 \r p t r > 0046300 > i t e m . c o l o r = C u 0046320 r r e n t C o l o r 032 l 4 2 6 9 0046340 \r ] \r \r \r a n d R e m e m b e 0046360 r A r e a ( a r e a , i t e m ) 0046400 b e \r [ 032 \r i f i t e m e 0046420 q 0 t h e n \r \t [ \r \t a r e 0046440 a ! X m i n = S c r e e n X 0046460 m a x \r \t a r e a ! Y m i n = 0046500 S c r e e n Y m a x \r \t a r e 0046520 a ! X m a x = 0 \r \t a r e a 0046540 ! Y m a x = 0 032 l 4 2 6 9 \r 0046560 \t r e t u r n \r \t ] \r i f i t 0046600 e m > > i t e m . x m i n l s 0046620 a r e a ! X m i n t h e n 0046640 a r e a ! X m i n = i t e m 0046660 > > i t e m . x m i n 376 001 \0 B ` 0046700 \r i f i t e m > > i t e m . y 0046720 m i n l s a r e a ! Y m i n 0046740 t h e n a r e a ! Y m i n 0046760 = i t e m > > i t e m . y m i 0047000 n \r i f i t e m > > i t e m . 0047020 x m a x g r a r e a ! X m a 0047040 x t h e n a r e a ! X m a x 0047060 = i t e m > > i t e m . x m 0047100 a x \r i f i t e m > > i t e m 0047120 . y m a x g r a r e a ! Y m 0047140 a x t h e n a r e a ! Y m a 0047160 x = i t e m > > i t e m . y 0047200 m a x 032 l 4 2 6 9 \r ] \r \r / / g 0047220 i v e n a p o i n t e r t 0047240 o a n o b j e c t , c h a 0047260 n g e i t s p o s i t i o n 0047300 376 001 \0 232 Y \r a n d M o v e O b 0047320 j e c t T o ( o b j , x , y ) 0047340 b e \r [ 032 \r P a i n t ( o b j , 0047360 t o W h i t e ) \t / / p a i n t 0047400 i t w h i t e \r \r / / l e t 0047420 t h e r e b u i l d e r f 0047440 i l l i n o v e r t h e 0047460 m o v e d o b j e c t \r Z a p 0047500 R e b u i l d e r I t e m ( o b 0047520 j ) \r / / i f t h e x , y 0047540 c o o r d i n a t e s a r e 0047560 < 0 , t h e n k i l l t 0047600 h e o b j e c t \r / / i f ( 0047620 ( x l s 0 ) % ( y l s 0047640 0 ) ) t h e n \r / / [ 032 l 4 0047660 2 6 8 \r / / i f o b j > > i t 0047700 e m . s t 376 001 \0 324 367 a t e e q 0047720 S e l e c t e d t h e n N 0047740 S e l e c t e d I t e m s = 0047760 N S e l e c t e d I t e m s - 1 0050000 \r / / o b j > > i t e m . s t a 0050020 t e = D e a d \r / / r e t u 0050040 r n 032 l 5 5 3 8 \r / / ] \r \r I n 0050060 c r e m e n t C o o r d s ( o b 0050100 j , x - o b j > > i t e m . x 0050120 m i n , y - o b j > > i t e 0050140 m . y m i n ) \r D i s p l a y 0050160 O b j e c t ( o b j ) / / d i 0050200 s p l a y i t i n i t s 0050220 n e w p o s i t i o n \r 032 l 4 0050240 2 6 8 \r ] \r \r \r / / T h e s c 0050260 r e e n r e b u i l d e r h 0050300 a s t h r e e s 376 001 \0 f 342 t 0050320 a t e s : \r / / 0 m e a n s 0050340 i d l e , 1 m e a n s r 0050360 e b u i l d i n g s e l e c t 0050400 e d i t e m s ( g r a y ) , 0050420 a n d 2 m e a n s \r / / r 0050440 e b u i l d i n g A c t i v e 0050460 i t e m s ( b l a c k ) . 0050500 Z a p R e b u i l d e r i 0050520 s \r / / p a s s e d a b o u 0050540 n d i n g r e c t a n g l e . 0050560 I f t h e s t a t e i 0050600 s = 0 , i t s e t s t h 0050620 e s t a t e t o \r / / 1 , 0050640 a n d s a v e s t h e r e 0050660 c t a n g l e . I f t h e 0050700 s t a t e i s > 0 , i 376 0050720 001 \0 " 233 t e x p a n d s t h 0050740 e \r / / b o u n d i n g r e c 0050760 t a n g l e a p p r o p r i a 0051000 t e l y . I n e i t h e r 0051020 c a s e , i t \r / / s e t s 0051040 R e s t a r t R e b u i l d e 0051060 r , w h i c h w i l l c a 0051100 u s e t h e r e b u i l d e 0051120 r t o s t a r t a t F i 0051140 r s t I t e m \r / / w h e n i 0051160 t i s n e x t s t a r t e 0051200 d . T h e r e b u i l d e r 0051220 s t a r t s i n s t a t e 0051240 1 , a n d a s i t \r / / 0051260 g o e s , i t k e e p s t 0051300 r a c k o f t h e l a r g 0051320 e s t 376 001 \0 ` 363 a r e a w h 0051340 i c h i t h a s p a i n t 0051360 e d g r a y \r / / d u r i n g 0051400 p a s s 1 . A t t h e 0051420 e n d o f p a s s 1 , 0051440 i t p u t s t h i s i n f 0051460 o r m a t i o n i n \r / / t h 0051500 e b o u n d i n g r e c t a 0051520 n g l e , s o t h a t u n 0051540 s e l e c t e d t h i n g s 0051560 w i t h i n t h e g r a y \r 0051600 / / a r e a w i l l b e p 0051620 a i n t e d b l a c k p r o 0051640 p e r l y . \r \r \r a n d Z a p 0051660 R e b u i l d e r I t e m ( p ) 0051700 b e \r Z a p R e b u i l d 0051720 e r ( p > > i t e 376 001 \0 ; 211 m . 0051740 x m i n , p > > i t e m . y m 0051760 i n , p > > i t e m . x m a x 0052000 , p > > i t e m . y m a x ) \r 0052020 \r a n d Z a p R e b u i l d e 0052040 r ( x m i n , y m i n , x m a x 0052060 , y m a x ; n u m a r g s n 0052100 a ) b e \r [ 032 \r i f n a e 0052120 q 0 t h e n \r [ 032 l 4 2 6 8 0052140 \r x m i n = 0 ; y m i n = 0 \r 0052160 x m a x = S c r e e n X m a x ; 0052200 y m a x = S c r e e n Y m a x 0052220 \r Z e r o ( D i s p l a y A r e 0052240 a , N w r d s * S c r e e n Y m 0052260 a x ) 032 l 5 5 3 8 \r ] \r l e t 0052300 f a k e = v e c 6 \r f a k 0052320 e ! X m i n = x m i n \r 376 001 0052340 \0 326 002 f a k e ! Y m i n = y 0052360 m i n \r f a k e ! X m a x = 0052400 x m a x \r f a k e ! Y m a x = 0052420 y m a x \r t e s t R e b u i 0052440 l d e r S t a t e e q 0 \r i 0052460 f s o \r [ 032 l 4 2 6 8 \r R e m e 0052500 m b e r A r e a ( R e b A r e a 0052520 , 0 ) \r R e m e m b e r A r e a 0052540 ( R e b A r e a , f a k e ) \r R 0052560 e b u i l d e r S t a t e = 0052600 1 ; U p d a t e S t a t u s = 0052620 t r u e 032 l 5 5 3 8 \r ] \r \r i f 0052640 n o t R e m e m b e r A r e 0052660 a ( R e b A r e a , f a k e ) \r 0052700 \r R e s t a r t R e b u i l d e 0052720 r = t r u e 032 l 4 2 6 8 \r ] 0052740 \r \r a 376 001 \0 343 357 n d R e b u i 0052760 l d S o m e ( ) b e \r [ 032 \r 032 0053000 l 4 2 6 8 \r i f ( B l i n k & 0053020 # 1 7 7 7 0 0 ) n e 0 t h 0053040 e n F l a s h M a r k ( ) \t / 0053060 / i . e . l s 0 o r g r 0053100 6 4 \r i f R e b u i l d e r 0053120 S t a t e e q 0 t h e n 0053140 r e t u r n / / n o t h i n 0053160 g t o d o \r i f R e s t a 0053200 r t R e b u i l d e r t h e n 0053220 \r [ 032 l 4 2 6 8 \r R e m e m b e 0053240 r A r e a ( R w A r e a , 0 ) \r 0053260 \r R e s t a r t R e b u i l d e 0053300 r = f a l s e \r R e b u i l 0053320 d e r S t a t e = 1 / / d 0053340 o s e l e c t 376 001 \0 364 \r e d 0053360 i t e m s \r R e b u i l d e r L 0053400 i n k = F i r s t I t e m 032 0053420 l 5 5 3 8 \r ] \r i f R e b u i 0053440 l d e r L i n k e q 0 t h 0053460 e n \t / / d o n e w i t h 0053500 t h i s p a s s 032 l 4 2 6 8 \r 0053520 [ 032 l 4 2 6 8 \r U p d a t e S t 0053540 a t u s = t r u e \r R e b u 0053560 i l d e r S t a t e = R e b 0053600 u i l d e r S t a t e + 1 \r i f 0053620 R e b u i l d e r S t a t e 0053640 g r 2 t h e n R e b u i l 0053660 d e r S t a t e = 0 \r R e b 0053700 u i l d e r L i n k = F i r 0053720 s t I t e m \r i f R e b u i l 0053740 d e r S t a t e e q 2 376 001 \0 0053760 262 212 t h e n R e m e m b e r 0054000 A r e a ( R e b A r e a , R w A 0054020 r e a ) \r l o o p 032 l 5 5 3 8 \r 0054040 ] \r l e t t = R e b u i l 0054060 d e r L i n k ; R e b u i l d 0054100 e r L i n k = R e b u i l d 0054120 e r L i n k > > i t e m . l i n 0054140 k \r l e t s t = t > > i t 0054160 e m . s t a t e \r u n l e s s 0054200 ( ( ( s t e q S e l e c t e 0054220 d ) & ( R e b u i l d e r S 0054240 t a t e e q 1 ) ) % ( ( 0054260 s t e q A c t i v e ) & 0054300 ( R e b u i l d e r S t a t e 0054320 e q 2 ) ) ) t h e n l o o 0054340 p \r \r \r i f ( t > > i t e m . 0054360 x m 376 001 \0 313 341 i n g r R e b 0054400 A r e a ! X m a x ) % ( t > 0054420 > i t e m . x m a x l s R e 0054440 b A r e a ! X m i n ) % ( t 0054460 > > i t e m . y m a x l s R 0054500 e b A r e a ! Y m i n ) % ( 0054520 t > > i t e m . y m i n g r 0054540 R e b A r e a ! Y m a x ) t h 0054560 e n l o o p 032 l 4 2 6 8 \r D i 0054600 s p l a y O b j e c t ( t ) / 0054620 / d i s p l a y i t \r / / c h 0054640 e c k f o r o b j e c t w 0054660 h i c h w a s j u s t p a 0054700 i n t e d g r a y b i g g e 0054720 r t h a n \r / / t h e p r e 0054740 s e n t ' m a x i m u m g r 0054760 a y ' w i n 376 \0 313 a 003 d o w \r 0055000 i f R e b u i l d e r S t a t 0055020 e e q 1 t h e n R e m e 0055040 m b e r A r e a ( R w A r e a , 0055060 t ) \r \r i f M o u s e B u f f 0055100 e r > > O s B U F . I n n e 0055120 M o u s e B u f f e r > > O s B 0055140 U F . O u t t h e n r e t u 0055160 r n \t / / u s e r i n p u t \r 0055200 i f n o t E n d o f s ( k e 0055220 y s ) t h e n r e t u r n 0055240 \t / / u s e r i n p u t 032 l 4 0055260 2 6 8 \r ] r e p e a t \r 032 l 0055300 2 9 9 8 \r 032 \r 377 \0 \0 s i l a . b 0055320 c p l \0 373 226 032 : : \0 \0 376 001 \0 343 225 0055340 / / S i l A . b c p l \r \r \r g e 0055360 t " s y s d e f s . d " \r g e 0055400 t " s i l . d e f s " \r e x t 0055420 e r n a l G e t C h a r \r \r s 0055440 t a t i c / / d e c l a r e d 0055460 e x t e r n a l i n n s i l 0055500 . d e f s \r [ \r C u r r e n t F 0055520 o n t = 2 / / u s e r f 0055540 o n t 1 \r C u r r e n t U F o 0055560 n t = 1 / / u s e r f o 0055600 n t 1 \r C u r r e n t F a c e 0055620 = 0 / / d e f a u l t f 0055640 a c e f r o m u s e r . c m 0055660 \r C u r r e n t C o l o r = 0055700 B l a c k / / d e f a u l t 0055720 t o B l a c k \r Y L o c k F l 0055740 376 001 \0 340 370 a g = f a l s e \r 0055760 O n e L e v e l = t r u e 0056000 / / f l a g f o r m a c r o 0056020 e x p a n s i o n \r ] \r \r s t 0056040 a t i c / / n o t d e c l a r 0056060 e d e x t e r n a l \r [ \r @ Y 0056100 L o c k I n c = 0 \r @ Y F o 0056120 n t I n c = 8 \r ] \r \r \r l e 0056140 t D o K e y b o a r d ( c h ) 0056160 b e \r [ 032 ( 6 3 5 ) \r l e t 0056200 O l d S t r i n g = f a l s 0056220 e \r l e t F F o r C m s g = 0056240 " F o n t , F a c e , o r 0056260 C o l o r " \r l e t m s g 0056300 = " ^ C = " \r m s g > > s t r 0056320 . c h a r ^ 2 = ( c h + # 1 0056340 0 0 ) / / 376 001 \0 262 260 c h a n g e 0056360 ' C ' i n m s g t o b 0056400 e t h e c u r r e n t c h 0056420 a r a c t e r \r s w i t c h o n 0056440 c h i n t o \r [ 032 l 4 2 6 8 0056460 \r c a s e 1 : / / c o n t 0056500 r o l A ( R e a d s i n 0056520 a n d d i s p l a y s a n 0056540 A l t e r n a t e t e x t 0056560 f i l e ) \r F i n d A n a l y z 0056600 e L i n e ( ) / / f i n d 0056620 a n d d i s p l a y t h e 0056640 n e x t l i n e \r r e t u r n 0056660 \r \r c a s e 2 : / / c o n 0056700 t r o l B ( d r a w a 0056720 b o x . o r i g i n a n d 0056740 m a r k a r e c 376 001 \0 212 i o 0056760 r n e r s ) \r [ 032 l 5 5 3 8 \r l 0057000 e t x m i n , x m a x , y m i 0057020 n , y m a x = n i l , n i l 0057040 , n i l , n i l \r l e t x = 0057060 O r i g i n O b j e c t > > i 0057100 t e m . x m i n \r l e t y = 0057120 O r i g i n O b j e c t > > i 0057140 t e m . y m i n \r \r t e s t N 0057160 e w X l s x 032 l 6 8 0 8 \r i 0057200 f s o [ x m i n = N e w 0057220 X ; x m a x = x ] \r i f 0057240 n o t [ x m i n = x ; 0057260 x m a x = N e w X ] 032 l 8 0057300 0 7 8 \r \r t e s t N e w Y l 0057320 s y 032 l 6 8 0 8 \r i f s o [ 0057340 y m i n = N e w Y ; y 376 0057360 001 \0 u = m a x = y ] \r i f 0057400 n o t [ y m i n = y ; 0057420 y m a x = N e w Y ] 032 l 0057440 8 0 7 8 \r \r C l e a r S e l e c 0057460 t i o n s ( ) \r t e s t C t r 0057500 l S h i f t \r i f n o t / / 0057520 i t s a r e g u l a r b o 0057540 x \r [ 032 l 6 8 0 8 \r P u s h C o 0057560 o r d s ( x m i n , y m i n ) \r 0057600 D o D r a w ( x m a x , y m i n 0057620 ) \r D o D r a w ( x m a x , y m 0057640 a x ) \r D o D r a w ( x m i n , 0057660 y m a x ) \r D o D r a w ( x m i 0057700 n , y m i n ) 032 l 8 0 7 8 \r ] 032 0057720 l 6 8 0 8 \r i f s o / / i t 0057740 s a b a c k g r o u n d a 0057760 r e a \r 376 001 \0 257 B [ 032 l 6 8 0 8 0060000 \r M a k e I t e m ( N e w I t e 0060020 m , x m i n , x m a x , y m i n 0060040 , y m a x , 1 5 , A c t i v e ) 0060060 \r M a k e S e l e c t e d ( N e 0060100 w I t e m ) \r M o v e O b j e c 0060120 t T o ( O r i g i n O b j e c t 0060140 , x m i n , y m i n ) \r / / M o 0060160 v e O b j e c t T o ( M a r k O 0060200 b j e c t , N e w X , N e w Y ) 0060220 \r A d d T o L i s t ( l v F i 0060240 r s t I t e m ) 032 l 8 0 7 8 \r ] 0060260 \r S e t C u r s o r ( ) \r C h a 0060300 n g e d = t r u e 032 l 6 8 0 0060320 8 \r ] \r r e t u r n \r \r c a s e 0060340 3 : / / c o n t r o l C 0060360 ( c o p y s e l 376 001 \0 [ 203 e c 0060400 t e d i t e m s ) \r C o p y S 0060420 e l e c t e d ( ) \r C h a n g e 0060440 d = t r u e \r r e t u r n \r 0060460 \r c a s e 4 : / / c o n t r 0060500 o l D ( d e l e t e s e 0060520 l e c t e d i t e m s ) \r D e 0060540 l e t e S e l e c t e d ( ) \r S 0060560 e t C u r s o r ( ) \r C h a n g 0060600 e d = t r u e \r r e t u r n 0060620 \r \r c a s e 5 : / / c o n t 0060640 r o l E ( e x p a n d a r 0060660 e a d e f i n e d b y l a 0060700 s t 2 m a r k s ) \r t e s t 0060720 M a g e q 1 \r i f s o \r [ 0060740 032 l 5 5 3 8 \r l e t d x = 0060760 N e w X g r O l d X ? 376 001 0061000 \0 z 203 N e w X - O l d X , O l d 0061020 X - N e w X \r l e t d y = 0061040 N e w Y g r O l d Y ? N e 0061060 w Y - O l d Y , O l d Y - N e w 0061100 Y \r M a g = d x g r d y 0061120 ? ( N w r d s * 1 6 ) / d x , 0061140 S c r e e n Y m a x / d y \r i f 0061160 M a g g r 9 t h e n M 0061200 a g = 9 \r i f M a g e q 0061220 1 t h e n r e t u r n / 0061240 / n o a c t i o n \r W i n d o 0061260 w X m i n = N e w X g r 0061300 O l d X ? O l d X , N e w X \r W 0061320 i n d o w Y m i n = N e w Y 0061340 g r O l d Y ? O l d Y , N e 0061360 w Y 032 l 6 8 0 8 \r ] \r i f n o t 0061400 \r [ 032 376 001 \0 001 035 l 5 5 3 8 \r M a 0061420 g = 1 \r W i n d o w X m i n 0061440 = 0 \r W i n d o w Y m i n 0061460 = 0 032 l 6 8 0 8 \r 032 l 6 8 0 8 0061500 \r ] \r S e t C u r s o r ( ) \r Z 0061520 a p R e b u i l d e r ( ) 032 l 5 0061540 5 3 8 \r r e t u r n \r \r c a s e 0061560 6 : / / c o n t r o l F 0061600 ( s e t f o n t ) \r [ 032 l 0061620 5 5 3 8 \r l e t m s g = " 0061640 N o S i l . l b x " \r l e t 0061660 c h a r = G e t C h a r ( F 0061700 F o r C m s g ) \r l e t c l r 0061720 = G e t C o l o r ( c h a r 0061740 ) \r l e t f n t = G e t F 0061760 o n t ( c h a r ) \r l e t f a 0062000 c e = G e t 376 001 \0 ; 310 F a c 0062020 e ( c h a r , C u r r e n t F a 0062040 c e , C u r r e n t U F o n t ) 0062060 \r i f c l r l s 1 6 t h 0062100 e n C u r r e n t C o l o r 0062120 = c l r \r i f f a c e g e 0062140 0 t h e n C u r r e n t F 0062160 a c e = f a c e \r i f f n 0062200 t l e 9 t h e n \r [ 032 l 0062220 6 8 0 8 \r i f ( f n t g e 0062240 5 ) & ( L p r v e c ! ( ( f n t 0062260 - 5 ) * D i r P r e a m b l e S 0062300 i z e ) e q 0 ) t h e n \r 0062320 \t [ m s g > > s t r . c h a r 0062340 ^ 1 0 = c h a r ; M e s s 0062360 a g e = m s g ; r e t u r 0062400 n ] \r C u r r e n t U 376 001 \0 0062420 306 356 F o n t = f n t ; C u 0062440 r r e n t F a c e = 0 \r C u 0062460 r r e n t F o n t = f n t 0062500 l e 3 ? 2 * f n t , f n t + 0062520 4 032 l 8 0 7 8 \r ] 032 l 6 8 0 8 \r 0062540 ] \r r e t u r n \r \r c a s e 7 0062560 : / / c o n t r o l G ( 0062600 s e t g r i d s i z e ) \r G r 0062620 i d M a s k = - 1 l s h i 0062640 f t ( G e t C h a r ( m s g ) 0062660 & 7 ) \r r e t u r n \r \r c a 0062700 s e # 1 0 : / / c o n t r o 0062720 l H ( e x p a n d m a c r 0062740 o ) F o n t 4 ( u s e r ) 0062760 o n l y ! \r [ 032 l 5 5 3 8 \r t 0063000 e s t B S k e y \r i f n o t \r 0063020 [ 032 376 001 \0 ` 332 l 6 8 0 8 \r c h 0063040 = G e t C h a r ( " E x p a n 0063060 d M a c r o " ) \r C l e a r S 0063100 e l e c t i o n s ( ) \r l e t 0063120 l i n k = M a c t ! c h \r u 0063140 n t i l l i n k e q 0 d 0063160 o 032 l 8 0 7 8 \r \t [ E x p a n 0063200 d ( l i n k , N e w X , N e w Y 0063220 ) ; l i n k = l i n k > > 0063240 i t e m . l i n k ] 032 l 8 0 7 0063260 8 \r S e l e c t I t e m C l e a 0063300 n u p ( ) / / S e t C u r s 0063320 o r ( ) \r C h a n g e d = t 0063340 r u e 032 l 8 0 7 8 \r ] \r i f s o 0063360 \r [ 032 l 6 8 0 8 \r i f N S e l 0063400 e c t e d I t e m s n e 1 0063420 t h e n r e 376 001 \0 / K t u r n 0063440 / / m u s t b e o n e 0063460 i t e m s e l e c t e d \r O l 0063500 d S t r i n g = D e l e t e 0063520 S e l e c t e d ( ) \r i f O l 0063540 d S t r i n g > > i t e m . f o 0063560 n t g e 1 4 d o [ U n 0063600 D e l e t e ( ) ; r e t u r n 0063620 ] \r M o v e B l o c k ( N e w 0063640 I t e m , O l d S t r i n g , L 0063660 e n g t h ( O l d S t r i n g ) 0063700 ) \r N e w I t e m > > i t e m . 0063720 s t a t e = A c t i v e \r D 0063740 i s p l a y O b j e c t ( N e w 0063760 I t e m ) \r c h = 0 / / A d 0064000 d T e x t w i l l i g n o r 0064020 t h i s c h a r a c 376 001 \0 320 0064040 j t e r a n d g e t t h e 0064060 n e x t \r e n d c a s e 032 l 8 0064100 0 7 8 \r ] \t 032 l 6 8 0 8 \r 032 l 6 0064120 8 0 8 \r 032 l 6 8 0 8 \r ] \r r e t 0064140 u r n \r c a s e # 1 1 : / / 0064160 c o n t r o l I ( i n p u t 0064200 ) \r i f n o t T A B k e y 0064220 t h e n F i l e I n ( t r u e 0064240 ) \r S e t C u r s o r ( ) \r r e 0064260 t u r n \r \r c a s e # 1 2 : 0064300 / / c o n t r o l J ( J a m 0064320 n e w f o n t o r c o l 0064340 o r i n t o i t e m ) \r [ 032 0064360 l 5 5 3 8 \r J a m I t e m s ( G 0064400 e t C h a r ( F F o r C m s g ) 0064420 ) \r C h a n g e d = t r u e 0064440 \r 376 001 \0 237 301 r e t u r n \r ] 032 l 0064460 5 5 3 8 \r \r c a s e # 1 3 : 0064500 / / c o n t r o l K ( r e 0064520 i n i t i a l i z e ) \r c a s e 0064540 # 2 1 : / / c o n t r o l 0064560 Q ( q u i t ) \r i f C h a 0064600 n g e d t h e n \r [ 032 l 5 5 3 0064620 8 \r i f G e t C h a r ( " C o 0064640 n f i r m ! ! P i c t u r e 0064660 C h a n g e d " ) n e $ * n 0064700 t h e n r e t u r n 032 l 6 0064720 8 0 8 \r ] \r i f c h e q # 0064740 2 1 t h e n f i n i s h \r S 0064760 i l R e I n i t ( ) \r r e t u r 0065000 n \r \r c a s e # 1 4 : / / 0065020 c o n t r o l L ( d e f i n 0065040 e m a c r 376 001 \0 240 356 o ) \r D e 0065060 f i n e M a c r o ( G e t C h a 0065100 r ( " D e f i n e M a c r o " 0065120 ) ) \r S e t C u r s o r ( ) \r C 0065140 h a n g e d = t r u e 032 l 5 0065160 5 3 8 \r r e t u r n \r \r c a s e 0065200 # 1 5 : / / c a r r i a g 0065220 e r e t u r n \r U p d a t e Y 0065240 C u r s o r ( ) \r r e t u r n \r 0065260 \r c a s e # 1 6 : / / c o n 0065300 t r o l N ( c o m p l e m e 0065320 n t O n e L e v e l ) \r O n e 0065340 L e v e l = n o t O n e L 0065360 e v e l \r r e t u r n \r 032 l 5 5 0065400 3 8 \r c a s e # 1 7 : / / 0065420 c o n t r o l O ( o u t p u 0065440 t f i l e ) \r i f 376 001 \0 262 255 0065460 F i l e O u t ( 0 ) t h e n 0065500 C h a n g e d = f a l s e 032 0065520 l 5 5 3 8 \r S e t C u r s o r ( 0065540 ) \r r e t u r n \r \r c a s e # 0065560 2 0 : / / c o n t r o l P 0065600 ( s n a p s h o t ) \r F i l e O 0065620 u t ( " S I L . T E M P " ) \r r 0065640 e t u r n \r \r / / c a s e # 2 0065660 1 : / / c o n t r o l Q 0065700 ( q u i t ) s e e c o n t 0065720 K ( r e i n i t i a l i z e 0065740 ) \r \r c a s e # 2 2 : / / 0065760 c o n t r o l R ( d e l e t 0066000 e a l l m a c r o d e f i 0066020 n i t i o n s ) \r i f G e t C 0066040 h a r ( " C o n f i r m t o 0066060 376 001 \0 8 311 d e s t r o y f o n 0066100 t 4 m a c r o s " ) e q 0066120 $ * n t h e n \r [ 032 l 5 5 3 0066140 8 \r f o r i = 0 t o 1 0066160 2 7 d o \r [ 032 l 6 8 0 8 \r l e 0066200 t p = M a c t ! i \r i f 0066220 p e q 0 t h e n l o o p 0066240 \r F l u s h L i s t ( p ) \r M a 0066260 c t ! i = 0 032 l 8 0 7 8 \r ] 0066300 032 l 6 8 0 8 \r / / r e m o v e 0066320 a l l f o n t 4 ( 8 ) m 0066340 a c r o c a l l s f r o m 0066360 t h e p i c t u r e \r l e t 0066400 l i n k = l v F i r s t I 0066420 t e m ; u n t i l @ l i n k 0066440 e q 0 d o \r [ 032 l 6 8 0 8 0066460 \r l e t 376 001 \0 ( z t l = @ 0066500 l i n k \r i f t l > > i t e m 0066520 . f o n t e q 8 t h e n \r 0066540 [ 032 l 8 0 7 8 \r @ l i n k = 0066560 @ t l \r @ t l = - 1 \r l o o 0066600 p 032 l 9 3 4 8 \r ] 032 l 8 0 7 8 \r 0066620 l i n k = @ l i n k 032 l 8 0 0066640 7 8 \r ] 032 l 6 8 0 8 \r ] \r Z a p 0066660 R e b u i l d e r ( ) \r r e t u 0066700 r n \r \r c a s e # 2 3 : / / 0066720 c o n t r o l S ( s h o w 0066740 o b j e c t s i n c u r s o 0066760 r ) \r [ 032 l 5 5 3 8 \r i f N S 0067000 e l e c t e d I t e m s e q 0067020 0 t h e n r e t u r n \r \r / 0067040 / c o p y a r e a a r o u n 0067060 d o r i g i n i 376 001 \0 036 247 n 0067100 t o c u r s o r \r M a k e G r 0067120 a y O K = f a l s e / / d 0067140 i s p l a y s o l i d e v e 0067160 n t h o u g h s e l e c t e 0067200 d \r P a i n t ( O r i g i n O b 0067220 j e c t , t o W h i t e ) / / 0067240 p a i n t w h i t e \r P a i n 0067260 t ( M a r k O b j e c t , t o W 0067300 h i t e ) / / p a i n t w h 0067320 i t e \r \r l e t x = O r i 0067340 g i n O b j e c t > > i t e m . 0067360 x m i n / / g e t c o o r d i 0067400 n a t e s f o r r e b u i l 0067420 d e r \r l e t y = O r i g 0067440 i n O b j e c t > > i t e m . y 0067460 m i n \r Z a p R e b u i l d e 376 0067500 001 \0 ~ \v r ( x , y , x + 1 6 , y 0067520 + 1 6 ) \r u n t i l R e b u i 0067540 l d e r S t a t e e q 0 d 0067560 o R e b u i l d S o m e ( ) \r 0067600 M a k e G r a y O K = t r u 0067620 e \r \r l e t M a g x = ( x 0067640 - W i n d o w X m i n ) * M a g 0067660 / / n o w m a k e s c r e e 0067700 n c o o r d i n a t e s \r l e 0067720 t M a g y = ( y - W i n d 0067740 o w Y m i n ) * M a g \r \r / / c 0067760 o p y a r e a \r l e t s w 0070000 = D i s p l a y A r e a + 0070020 ( N w r d s * M a g y ) + ( M a 0070040 g x r s h i f t 4 ) \r l e t 0070060 s b = M a g x & # 1 7 0070100 \r \r P l 376 001 \0 V 243 a c e S e l e 0070120 c t e d = f a l s e \r f o r 0070140 i = 0 t o 1 5 d o \r 0070160 [ 032 l 6 8 0 8 \r C u r s o r M a 0070200 p ! i = ( ( s w ! ( N w r d 0070220 s * i ) ) l s h i f t s b ) 0070240 % ( ( ( s w + 1 ) ! ( N w r 0070260 d s * i ) ) r s h i f t ( 1 0070300 6 - s b ) ) \r i f C u r s o r 0070320 M a p ! i n e 0 t h e n 0070340 P l a c e S e l e c t e d = 0070360 t r u e 032 l 8 0 7 8 \r ] \r \r i f 0070400 P l a c e S e l e c t e d t 0070420 h e n \r [ 032 l 6 8 0 8 \r Z a p R 0070440 e b u i l d e r ( x , y , x + 1 0070460 6 , y + 1 6 ) / / p u t c l 0070500 e a r e d s t u 376 001 \0 A 261 f f 0070520 b a c k \r r e t u r n 032 l 8 0 0070540 7 8 \r ] \r S e t C u r s o r ( ) 0070560 / / i f n o t h i n g w 0070600 a s t h e r e 032 l 6 8 0 8 \r \r 0070620 ] \r r e t u r n \r \r c a s e # 0070640 2 4 : / / c o n t r o l T 0070660 ( t u r n o n / o f f t i c 0070700 k s ) \r t e s t T i c k F l a 0070720 g i f s o T i c k F l a g 0070740 = 0 i f n o t T i c k F l 0070760 a g = # 1 0 0 0 0 0 \r P a i 0071000 n t T i c k s ( ) \r Z a p R e b 0071020 u i l d e r ( 0 , 0 , S c r e e 0071040 n X m a x , S c r e e n Y m a x 0071060 ) 032 l 5 5 3 8 \r r e t u r n \r \r 0071100 c a s e # 2 5 : / / c 376 001 0071120 \0 F 245 o n t r o l U ( u n d 0071140 e l e t e o n e l e v e l ) 0071160 \r U n D e l e t e ( ) \r S e t C 0071200 u r s o r ( ) \r r e t u r n \r \r 0071220 c a s e # 2 6 : / / c o n 0071240 t r o l V ( v i e w m a c 0071260 r o d e f i n i t i o n s ) \r 0071300 [ 032 l 5 5 3 8 \r l e t c h a r 0071320 = G e t C h a r ( F F o r C 0071340 m s g ) \r l e t u f n t = 0071360 G e t F o n t ( c h a r ) \r l e 0071400 t f a c e = G e t F a c e 0071420 ( c h a r , 0 ) ; l e t f a 0071440 c e b i t = c h a r & 3 0071460 / / i = 1 , b = 2 ! ! ! \r l e t 0071500 c l r = G e t C o l o r ( 0071520 c h a 376 001 \0 254 341 r ) \r i f ( c 0071540 l r l s 1 6 ) % ( u f n 0071560 t l s 4 ) % ( f a c e 0071600 g e 0 ) t h e n \r \t [ S e 0071620 l e c t S p e c i f i e d I t e 0071640 m s ( u f n t , f a c e , f a c 0071660 e b i t , c l r ) ; r e t u r 0071700 n ] \r / / l e t t s = l 0071720 v ( S t a t u s O b j e c t > > 0071740 i t e m . s t r i n g . l e n g 0071760 t h ) \r N e w I t e m ! 0 = 0072000 0 \r i f u f n t g r 9 t 0072020 h e n r e t u r n / / b a d 0072040 n o . \r l e t m b a s e = 0072060 M a c t + 1 2 8 * ( u f n 0072100 t - 4 ) \r A p p e n d C ( c 0072120 h a r , N e w I 376 001 \0 206 036 t e m 0072140 ) \r A p p e n d S ( " : " , N 0072160 e w I t e m ) \r f o r i = 0072200 0 t o 1 2 7 d o i f m 0072220 b a s e ! i n e 0 t h e n 0072240 \r [ 032 l 6 8 0 8 \r \t i f i l 0072260 s # 4 0 d o [ A p p e n 0072300 d C ( $ ^ , N e w I t e m ) ; 0072320 i = i + $ @ ] / / s h o u l d 0072340 n ' t h a p p e n ! \r \t A p p 0072360 e n d C ( i , N e w I t e m ) 032 0072400 l 6 8 0 8 \r ] \r \r U p d a t e ( 0072420 N e w I t e m ) 032 l 6 8 0 8 \r ] 0072440 \r r e t u r n \r \r c a s e # 2 0072460 7 : / / c o n t r o l W 0072500 ( s e t L i n e W i d t h ) \r 0072520 [ 032 l 5 5 3 8 \r l e t W 376 001 \0 0072540 330 i = G e t C h a r ( m s g 0072560 ) - $ 0 \r i f ( W g e 1 ) 0072600 & ( W l e 9 ) t h e n 0072620 L i n e W i d t h = W 032 l 0072640 6 8 0 8 \r ] \r r e t u r n \r \r c 0072660 a s e # 3 0 : / / c o n t 0072700 r o l X ( m o v e s e l e 0072720 c t e d o b j e c t s ) \r M o 0072740 v e S e l e c t e d ( ) \r C h a 0072760 n g e d = t r u e \r r e t u 0073000 r n \r \r c a s e # 3 1 : / / 0073020 c o n t r o l Y ( c o m p l 0073040 e m e n t Y L o c k F l a g ) 0073060 \r Y L o c k F l a g = n o t 0073100 Y L o c k F l a g \r i f Y L 0073120 o c k F l a g t h e n 032 l 5 5 0073140 3 8 376 001 \0 8 | \r [ 032 l 5 5 3 8 \r 0073160 Y L o c k I n c = N e w Y - 0073200 ( O r i g i n O b j e c t > > i 0073220 t e m . y m i n ) \r i f Y L o 0073240 c k I n c l s 0 t h e n 0073260 Y L o c k I n c = - Y L o c 0073300 k I n c 032 l 6 8 0 8 \r ] \r r e t 0073320 u r n \r \r c a s e # 3 2 : \t / 0073340 / c o n t r o l Z ( z a p 0073360 s c r e e n a n d r e b u i 0073400 l d ) / / s e e e n d o f 0073420 ^ R \r H a r d C o p y = H a 0073440 r d C o p y e q 0 \r Z a p R 0073460 e b u i l d e r ( ) \r r e t u r 0073500 n \r \r c a s e # 3 7 : / / c 0073520 o n t r o l " _ " ( M o v e 0073540 S t a t u s 376 001 \0 314 ~ L i n 0073560 e ) \r i f m y g r 7 4 8 0073600 t h e n m y = 7 4 8 \t \t \t 0073620 / / d o n ' t g o o f f t 0073640 h e b o t t o m \r M o v e O b 0073660 j e c t T o ( S t a t u s O b j 0073700 e c t , m x , m y ) \t / / o f 0073720 t h e s c r e e n \r M o v e O 0073740 b j e c t T o ( F N a m e O b j 0073760 e c t , m x , m y ) \r r e t u r 0074000 n \r \r \r \r d e f a u l t : / / 0074020 p r o b a b l y a d d t e x 0074040 t m o d e \r i f c h l e 0074060 # 4 0 t h e n r e t u r n 0074100 / / t h e c h a r a c t e r 0074120 i s a c o n t r o l c h 0074140 a r a c t e r o r s 376 001 \0 B 0074160 023 p a c e \r / / t h e c h a r 0074200 a c t e r i s a p r i n t 0074220 i n g c h a r a c t e r \r M a 0074240 k e I t e m ( N e w I t e m , N 0074260 e w X , N e w X , N e w Y , N e 0074300 w Y , C u r r e n t F o n t , A 0074320 c t i v e ) \r i f C u r r e n 0074340 t U F o n t l s 3 t h e n 0074360 N e w I t e m > > i t e m . f 0074400 a c e = C u r r e n t F a c 0074420 e \r 032 l 5 5 3 8 \r ] / / e n 0074440 d o f t h e s w i t c h o 0074460 n 032 l 4 2 6 8 \r \r / / t h e c 0074500 h a r a c t e r i s a p r 0074520 i n t i n g c h a r a c t e r 0074540 \r / / i f O l d S t r i n g 0074560 i 376 001 \0 327 w s z e r o , t h 0074600 i s i s a n e w o b j e 0074620 c t \r / / i f O l d S t r i n 0074640 g i s n o n - z e r o , w 0074660 e a r e e d i t i n g a 0074700 c o p y o f a n o l d s 0074720 t r i n g 032 l 4 2 6 8 \r / / i f 0074740 t h e e d i t i s s u c 0074760 e s s f u l l t h e n k i l 0075000 l t h e o r i g i n a l c 0075020 o p y \r / / i f t h e e d i 0075040 t i s a b o r t e d , U n 0075060 D e l e t e t h e o r i g i 0075100 n a l c o p y 032 l 5 5 3 8 \r \r 0075120 U p d a t e ( " A d d T e x t 0075140 " ) \r l e t D i d I t = 0075160 A d d T e x 376 001 \0 376 035 t ( N e w 0075200 I t e m , c h ) \r i f O l d S 0075220 t r i n g t h e n [ U n D 0075240 e l e t e ( ) ; i f D i d I 0075260 t t h e n O l d S t r i n g 0075300 > > i t e m . s t a t e = D e a 0075320 d ] \r M e s s a g e = " 0075340 " 032 l 4 2 6 8 \r t e s t D i d 0075360 I t \r i f s o \r [ 032 l 4 2 6 8 \r 0075400 \r A d d T o L i s t ( l v F i 0075420 r s t I t e m ) \r S e t C u r s 0075440 o r ( ) \r C h a n g e d = t 0075460 r u e \r C l e a r S e l e c t i 0075500 o n s ( ) \r M a k e S e l e c t 0075520 e d ( F i r s t I t e m ) \r U p 0075540 d a t e Y C u r s o r ( ) / / 0075560 m o v e s t h e m 376 001 \0 335 x 0075600 a r k \r M o v e O b j e c t T o 0075620 ( O r i g i n O b j e c t , F i 0075640 r s t I t e m > > i t e m . x m 0075660 i n , F i r s t I t e m > > i t 0075700 e m . y m i n ) 032 l 5 5 3 8 \r ] 0075720 \r i f n o t \r [ 032 l 4 2 6 8 \r P 0075740 a i n t ( N e w I t e m , t o W 0075760 h i t e ) \r Z a p R e b u i l d 0076000 e r I t e m ( N e w I t e m ) 032 0076020 l 5 5 3 8 \r ] \r 032 l 4 2 6 8 \r \r 0076040 \r ] \r \r a n d A d d T e x t ( 0076060 o b j , c h ) = v a l o f \r [ 0076100 032 \r l e t f i r s t c h a r 0076120 = t r u e \r [ 032 l 2 9 9 8 \r l 0076140 e t f o n t = o b j > > i 0076160 t e m . f o n t \r l e t l e n 0076200 376 001 \0 | 344 g t h = o b j > > 0076220 i t e m . s t r i n g . l e n g 0076240 t h \r s w i t c h o n c h i 0076260 n t o \r [ 032 l 4 2 6 8 \r c a s e 0076300 # 2 1 : / / c o n t r o l 0076320 Q ( a b o r t l i n e ) \r 0076340 l e n g t h = 0 / / n o 0076360 w l e t c o n t r o l l f 0076400 a l l t h r o u g h ^ W \r \r 0076420 c a s e # 2 7 : / / c o n t 0076440 r o l W ( b a c k s p a c e 0076460 ) \r [ 032 l 5 5 3 8 \r i f o b j 0076500 > > i t e m . s t r i n g . c h 0076520 a r ^ ( l e n g t h - 1 ) e q 0076540 # 4 0 t h e n b r e a k \r 0076560 l e n g t h = l e n g t h - 1 ; 0076600 i f l 376 001 \0 332 f e n g t h 0076620 l e 0 t h e n b r e a k 032 0076640 l 6 8 0 8 \r ] r e p e a t 0076660 / / n o w l e t c o n t r o 0076700 l l f a l l t h r o u g h 0076720 ^ A 032 l 5 5 3 8 \r \r / / ^ Q a 0076740 n d ^ W f a l l t h r o u 0076760 g h a n d c a l l R e W r 0077000 i t e O b j i n t h i e c 0077020 a s e s t a t e m e n t \r c a 0077040 s e # 0 1 : / / c o n t r o 0077060 l A ( b a c k s p a c e ) \r 0077100 c a s e # 1 0 : / / B S ( 0077120 b a c k s p a c e ) \r R e W r i 0077140 t e O b j ( o b j , l e n g t h 0077160 - 1 ) / / s e t t o z 0077200 e r o i f l e n 376 001 \0 337 201 g 0077220 h i s 0 \r e n d c a s e \r \r 0077240 c a s e # 1 7 7 : / / D E 0077260 L r e t u r n s f a l s e \r 0077300 r e s u l t i s f a l s e \r \r 0077320 c a s e $ * N : c a s e # 0077340 3 3 : / / C R o r E S C 0077360 ( t e r m i n a t e i n p u 0077400 t ) \r r e s u l t i s ( l e n 0077420 g t h g r 0 ) \r 032 l 5 5 3 8 0077440 \r c a s e # 2 3 : / / 0077460 c o n t r o l S - c o n 0077500 v e r t l a s t c h a r a c 0077520 t e r i n t o C o n t r o l 0077540 c h a r a c t e r \r o b j > > 0077560 i t e m . s t r i n g . c h a r 0077600 ^ l e n g t h = ( o b j > 376 0077620 001 \0 303 016 > i t e m . s t r i n g 0077640 . c h a r ^ l e n g t h ) & # 3 0077660 7 \r R e W r i t e O b j ( o b j 0077700 ) \r e n d c a s e \r 032 l 5 5 3 8 0077720 \r c a s e # 0 : / / m u s 0077740 t b e a c a l l f r o m 0077760 " B S " c o m m a n d - - 0100000 d o n o t h i n g \r e n d c 0100020 a s e \r \r d e f a u l t : / 0100040 / a d d c h t o s t r i n 0100060 g ( i f i t i s d e f i 0100100 n e d ) a n d d i s p l a y 0100120 i t \r i f f i r s t c h a r 0100140 d o R e W r i t e O b j ( o 0100160 b j , 0 ) / / i n i t s t 0100200 r i f 1 s t c h n o t 0100220 o n e 376 001 \0 253 & o f t h e 0100240 a b o v e \r i f c h l s # 0100260 4 0 t h e n e n d c a s e 0100300 / / d o n ' t a l l o w c o 0100320 n t r o l c h a r a c t e r s 0100340 \r i f f o n t e q 8 t h 0100360 e n i f M a c t ! c h e q 0100400 0 t h e n e n d c a s e 0100420 / / u n d e f i n e d u s e r 0100440 m a c r o \r \r i f f o n t 0100460 g r 8 t h e n / / l i b r 0100500 a r y m a c r o - - m a y h 0100520 a v e t o r e a d i t i 0100540 n \r [ 032 l 5 5 3 8 \r l e t m p 0100560 t r = M a c t + ( 1 2 8 * ( 0100600 f o n t - 8 ) ) + c h \r i f @ 0100620 m p t r e q 0 376 001 \0 263 b t 0100640 h e n / / h a v e t o r e 0100660 a d i t \r [ 032 l 6 8 0 8 \r / / 0100700 f i r s t , w e m u s t s 0100720 a v e o u r o b j e c t i 0100740 n c a s e r e a d i n g i 0100760 n t h e m a c r o \r / / d 0101000 e f i n i t i o n u s e s s 0101020 p a c e i n s t o r a g e \r 0101040 / / T h i s i s a c r o c 0101060 k , b u t w e k n o w t 0101100 h a t t h e f o n t w i l 0101120 l \r / / b e g r 8 o n l y 0101140 i f A d d T e x t w a s 0101160 c a l l e d f r o m D o K e 0101200 y b o a r d . \r / / i n t h i 0101220 s c a s e , o b j = 376 001 0101240 \0 341 & N e w I t e m , a n d 0101260 w e c a n f i d d l e i t 0101300 . \r l e t s a v e = v e c 0101320 1 2 8 \r M o v e B l o c k ( s 0101340 a v e , N e w I t e m , 1 2 8 ) 0101360 \r @ m p t r = - 1 \r L i b U 0101400 p d a t e ( f o n t ) / / t h 0101420 e r e a s o n f o r t h e 0101440 c r o c k i s t h a t t 0101460 h i s \r / / p r o c e d u r e 0101500 c a n c h a n g e N e w I t 0101520 e m \r M o v e B l o c k ( N e w 0101540 I t e m , s a v e , 1 2 8 ) / 0101560 / p u t i t b a c k \r o b j 0101600 = N e w I t e m \r i f @ m 0101620 p t r e q 0 t h e n e n 0101640 d c a 376 001 \0 " 9 s e / / c o u 0101660 l d n ' t f i n d i t 032 l 8 0101700 0 7 8 \r ] 032 l 6 8 0 8 \r ] \r \r A 0101720 p p e n d C ( c h , l v o b j 0101740 > > i t e m . s t r i n g . l e 0101760 n g t h ) \r D i s p l a y O b j 0102000 e c t ( o b j ) / / d i s p 0102020 l a y n e w s t r i n g \r i 0102040 f f o n t l s 8 t h e n 0102060 Y F o n t I n c = ( F o n 0102100 t V e c ! C u r r e n t U F o n 0102120 t ) ! - 2 \r 032 l 5 5 3 8 \r ] \r w 0102140 h i l e E n d o f s ( k e y s 0102160 ) d o \r [ \r \t i f M o u s 0102200 e B u f f e r > > O s B U F . I 0102220 n n e M o u s e B u f f e r 0102240 > > O s B U F . 376 001 \0 # 177 O u t 0102260 d o b r e a k \r \t R e b u i 0102300 l d S o m e ( ) \r ] \r i f E n 0102320 d o f s ( k e y s ) t h e n 0102340 [ c h = $ * n ; l o o p 0102360 ] / / s i m u l a t e C R 0102400 o n m o u s e a c t i o n 0102420 p e n d i n g \r c h = G e 0102440 t s ( k e y s ) \r f i r s t c h 0102460 a r = f a l s e 032 l 4 2 6 8 \r ] 0102500 r e p e a t \r ] \r \r a n d 0102520 R e W r i t e O b j ( o b j , l 0102540 e n g t h ; n u m a r g s n 0102560 a r g s ) b e \r [ 032 l 2 9 9 8 0102600 \r i f l e n g t h l s 0 0102620 t h e n l e n g t h = 0 \r P a 0102640 i n t ( o b j , t o W h i 376 001 \0 0102660 ( t e ) \r Z a p R e b u i l d 0102700 e r I t e m ( o b j ) \r i f n 0102720 a r g s g r 1 t h e n o 0102740 b j > > i t e m . s t r i n g . 0102760 l e n g t h = l e n g t h \r 0103000 D i s p l a y O b j e c t ( o b 0103020 j ) 032 l 4 2 6 8 \r ] 032 \r \r a n d 0103040 D e l e t e S e l e c t e d ( 0103060 ) = v a l o f \r [ 032 \r i f N 0103100 S e l e c t e d I t e m s e q 0103120 0 t h e n r e s u l t i s 0103140 0 \r l e t l i n k = F i 0103160 r s t I t e m \r l e t l a s t 0103200 D e l e t e d = 0 \r l e t 0103220 A r e a = v e c 6 \r R e m 0103240 e m b e r A r e a ( A r e a , 0 0103260 ) 376 001 \0 023 323 / / i n i t i a 0103300 l i z e A r e a \r \r u n t i l 0103320 l i n k e q 0 d o \r [ 032 0103340 l 4 2 6 8 \r l e t t l = l 0103360 i n k ; l i n k = l i n k 0103400 > > i t e m . l i n k \r l e t 0103420 s t = t l > > i t e m . s t 0103440 a t e \r i f s t e q A c t 0103460 i v e t h e n l o o p \r i f 0103500 s t e q D e a d t h e n 0103520 l o o p \r i f s t e q S 0103540 e l e c t e d t h e n \r [ 032 l 0103560 5 5 3 8 \r R e m e m b e r A r e 0103600 a ( A r e a , t l ) / / e x 0103620 p a n d t h e A r e a \r N S 0103640 e l e c t e d I t e m s = N 0103660 S e l e c t e 376 001 \0 b * d I t e 0103700 m s - 1 \r P a i n t ( t l , t o 0103720 W h i t e ) \r l a s t D e l e t 0103740 e d = t l 032 l 6 8 0 8 \r ] \r 0103760 t l > > i t e m . s t a t e = 0104000 s t + 1 / / s o m e o l 0104020 d d e l e t e d i t e m s 0104040 b e c o m e d e a d \r 032 l 5 5 0104060 3 8 \r ] \r \r Z a p R e b u i l d 0104100 e r I t e m ( A r e a ) \r P u s 0104120 h C o o r d s ( A r e a ! X m i 0104140 n , A r e a ! Y m i n ) / / s 0104160 e t m a r k \r M o v e O b j e 0104200 c t T o ( M a r k O b j e c t , 0104220 N e w X , N e w Y ) / / p o s 0104240 i t i o n t h e m a r k \r r 0104260 e s u l t i s l a s t 376 001 \0 ~ 0104300 ^ D e l e t e d 032 l 4 2 6 9 \r ] 0104320 \r \r \r a n d U n D e l e t e ( 0104340 ) b e \r [ 032 \r C l e a r S e l 0104360 e c t i o n s ( ) \r l e t l i 0104400 n k = F i r s t I t e m \r u 0104420 n t i l l i n k e q 0 d 0104440 o \r [ 032 l 4 2 6 8 \r l e t s t 0104460 = l i n k > > i t e m . s t 0104500 a t e \r i f ( s t g r S e 0104520 l e c t e d ) & ( s t n e 0104540 D e a d ) t h e n \r [ 032 l 5 0104560 5 3 8 \r s t = s t - 1 \r l i 0104600 n k > > i t e m . s t a t e = 0104620 s t \r i f s t e q S e l 0104640 e c t e d t h e n \r [ 032 l 6 8 0104660 0 8 \r R e m e m b e r A r e a ( 0104700 S 376 001 \0 w 017 e l A r e a , l i n 0104720 k ) / / e x p a n d t h e 0104740 A r e a \r N S e l e c t e d I 0104760 t e m s = N S e l e c t e d 0105000 I t e m s + 1 \r \r 032 l 8 0 7 8 \r 0105020 ] 032 l 6 8 0 8 \r ] \r l i n k = 0105040 l i n k > > i t e m . l i n k 0105060 \r ] \r \r S e l e c t I t e m C l 0105100 e a n u p ( ) \r 032 l 4 2 6 8 \r ] 0105120 \r \r \r a n d U p d a t e Y C u 0105140 r s o r ( ) b e / / i n c r 0105160 e m e n t t h e m a r k y 0105200 c o o r d i n a t e b y Y 0105220 L o c k I n c o r b y t h 0105240 e \r / / h e i g h t o f t h 0105260 e l a s t t h i n g a d d 0105300 e d t o 376 001 \0 034 324 t h e p 0105320 i c t u r e \r \r [ 032 \r N e w Y 0105340 = N e w Y + ( Y L o c k F l 0105360 a g ? Y L o c k I n c , Y F 0105400 o n t I n c + ( n o t G r 0105420 i d M a s k / 2 ) & G r i d M a 0105440 s k ) \r M o v e O b j e c t T o 0105460 ( M a r k O b j e c t , N e w X 0105500 , N e w Y ) \r 032 l 4 2 6 8 \r ] \r 0105520 \r \r \r a n d M o v e S e l e c 0105540 t e d ( ) b e \r / / m o v e 0105560 a l l s e l e c t e d i t e 0105600 m s s u c h t h a t t h e 0105620 o r i g i n i s a t t h 0105640 e m a r k . I f t h e r e 0105660 a r e \r / / n o s e l e c t 0105700 e d i t e m s , o 376 001 \0 234 [ 0105720 r i f t h e o r i g i n 0105740 a n d t h e m a r k a r e 0105760 c o i n c i d e n t , d o 0106000 n o t h i n g \r / / w h e n d 0106020 o n e , i n t e r c h a n g e 0106040 t h e p o s i t i o n s o 0106060 f t h e o r i g i n a n d 0106100 t h e m a r k \r [ 032 \r i f 0106120 N S e l e c t e d I t e m s e 0106140 q 0 t h e n r e t u r n \r 0106160 \r P u s h C o o r d s ( O r i g 0106200 i n O b j e c t > > i t e m . x 0106220 m i n , O r i g i n O b j e c t 0106240 > > i t e m . y m i n ) \r \r l e 0106260 t A r e a = v e c 6 \r R 0106300 e m e m b e r A r e a ( A r e a 0106320 376 001 \0 365 # , 0 ) / / i n i t 0106340 i a l i z e A r e a \r \r l e t 0106360 d e l x = O l d X - N 0106400 e w X \r l e t d e l y = O 0106420 l d Y - N e w Y \r \r i f ( 0106440 d e l x e q 0 ) & ( d e 0106460 l y e q 0 ) t h e n r e 0106500 t u r n \r \r l e t l i n k = 0106520 F i r s t I t e m \r u n t i l 0106540 l i n k e q 0 d o 032 l 4 0106560 2 6 8 \r [ 032 l 4 2 6 8 \r i f l 0106600 i n k > > i t e m . s t a t e 0106620 e q S e l e c t e d d o \r [ 0106640 032 l 5 5 3 8 \r R e m e m b e r A 0106660 r e a ( A r e a , l i n k ) 0106700 / / e x p a n d t h e A r e 0106720 a \r M o v 376 001 \0 312 307 e O b j e c 0106740 t T o ( l i n k , l i n k > > 0106760 i t e m . x m i n + d e l x , 0107000 l i n k > > i t e m . y m i n + 0107020 d e l y ) 032 l 6 8 0 8 \r ] \r \r l 0107040 i n k = l i n k > > i t e m . l 0107060 i n k 032 l 5 5 3 8 \r ] \r 032 l 4 2 0107100 6 8 \r M o v e O b j e c t T o ( 0107120 O r i g i n O b j e c t , O l d 0107140 X , O l d Y ) \r M o v e O b j e 0107160 c t T o ( M a r k O b j e c t , 0107200 N e w X , N e w Y ) \r i f ( ( 0107220 d e l x e q 0 ) % ( d e l y 0107240 e q 0 ) ) & n o t ( P 0107260 l a c e S e l e c t e d % C 0107300 t r l S h i f t ) t h e n 0107320 M o v e L i n e E n 376 001 \0 S b d 0107340 p o i n t s ( A r e a ! X m i n 0107360 - 1 , A r e a ! Y m i n - 1 , A 0107400 r e a ! X m a x + 1 , A r e a ! 0107420 Y m a x + 1 , d e l x , d e l y 0107440 ) 032 l 4 2 6 8 \r ] \r \r \r \r a n d 0107460 C o p y S e l e c t e d ( ) 0107500 b e \r / / c o p y a l l s e 0107520 l e c t e d i t e m s s u c 0107540 h t h a t t h e o r i g i 0107560 n i s a t t h e m a r k 0107600 . I f t h e r e a r e \r / 0107620 / n o s e l e c t e d i t e 0107640 m s , o r i f t h e o r 0107660 i g i n a n d t h e m a r 0107700 k a r e c o i n c i d e n t 0107720 , d o n o t h i n g \r [ 032 376 0107740 001 \0 # \b \r i f N S e l e c t e 0107760 d I t e m s e q 0 t h e n 0110000 r e t u r n \r \r l e t d e l 0110020 x = N e w X - O r i g i 0110040 n O b j e c t > > i t e m . x m 0110060 i n \r l e t d e l y = N e 0110100 w Y - O r i g i n O b j e c 0110120 t > > i t e m . y m i n \r \r i f 0110140 ( d e l x e q 0 ) & ( 0110160 d e l y e q 0 ) t h e n 0110200 r e t u r n \r \r l e t l i n k 0110220 = F i r s t I t e m \r u n t 0110240 i l l i n k e q 0 d o 032 0110260 l 4 2 6 8 \r [ 032 l 4 2 6 8 \r l e 0110300 t t l = l i n k ; l i n 0110320 k = l i n k > > i t e m . l 0110340 i n k \r 376 001 \0 M + i f t l > > 0110360 i t e m . s t a t e n e S e 0110400 l e c t e d t h e n l o o p 0110420 \r i f ( t l > > i t e m . x m 0110440 i n + d e l x l s 0 ) % 0110460 ( t l > > i t e m . y m i n + d 0110500 e l y l s 0 ) t h e n \r [ 0110520 M a k e U n S e l e c t e d ( 0110540 t l ) ; l o o p ] \r \r [ 032 l 0110560 5 5 3 8 \r M o v e B l o c k ( N 0110600 e w I t e m , t l , L e n g t h 0110620 ( t l ) ) / / N e w I t e m 0110640 w i l l b e S e l e c t e 0110660 d \r t l > > i t e m . s t a t e 0110700 = A c t i v e \r Z a p R e b 0110720 u i l d e r I t e m ( t l ) \r I 0110740 n c r e m e n t C 376 001 \0 257 252 o o 0110760 r d s ( N e w I t e m , d e l x 0111000 , d e l y ) \r D i s p l a y O b 0111020 j e c t ( N e w I t e m ) \r A d 0111040 d T o L i s t ( l v F i r s t 0111060 I t e m ) \r ] \r \r 032 l 5 5 3 8 \r 0111100 ] \r \r M o v e O b j e c t T o ( 0111120 O r i g i n O b j e c t , N e w 0111140 X , N e w Y ) \r 032 l 4 2 6 8 \r ] 0111160 \r \r a n d J a m I t e m s ( c 0111200 h a r ) b e \r [ / / N S e l 0111220 e c t e d I t e m s 032 \r l e t 0111240 c l r = G e t C o l o r ( c 0111260 h a r ) \r l e t u f n t = 0111300 G e t F o n t ( c h a r ) \r l e 0111320 t f a c e = G e t F a c e 0111340 ( c h a r , 0 ) \r i f ( u 376 001 0111360 \0 B ( f n t g r 3 ) & ( 0111400 f a c e e q - 1 ) & ( c 0111420 l r g e 1 6 ) t h e n r 0111440 e t u r n \r l e t l i n k = 0111460 F i r s t I t e m \r u n t i l 0111500 l i n k e q 0 d o \r [ 032 0111520 l 4 2 6 8 \r l e t T l i n k 0111540 = l i n k ; l i n k = l 0111560 i n k > > i t e m . l i n k 032 l 0111600 5 5 3 8 \r i f T l i n k > > i 0111620 t e m . s t a t e n e S e l 0111640 e c t e d t h e n l o o p \r 0111660 i f c l r l s 1 6 t h e 0111700 n [ T l i n k > > i t e m . 0111720 c o l o r = c l r ; l o o 0111740 p ] / / i t m u s t b e 0111760 a c 376 001 \0 022 n o l o r \r P a i 0112000 n t ( T l i n k , t o W h i t e 0112020 ) / / p a i n t o u t o b j 0112040 e c t \r Z a p R e b u i l d e r 0112060 I t e m ( T l i n k ) / / f i l 0112100 l i n o v e r a r e a \r l 0112120 e t t x t f o n t = T l i 0112140 n k > > i t e m . t x t f o n t 0112160 \r i f ( t x t f o n t l e 0112200 3 ) % ( N S e l e c t e d I t e 0112220 m s e q 1 ) t h e n \r [ 032 0112240 l 5 5 3 8 \r l e t d e f f a c 0112260 e = P r F a c e V e c ! ( T 0112300 l i n k > > i t e m . t x t f o 0112320 n t ) \r t e s t u f n t l e 0112340 3 \r \t i f s o T l i n k > > 0112360 i t e m . t x t 376 001 \0 \a 341 f o n 0112400 t = u f n t \r \t i f n o t 0112420 T l i n k > > i t e m . f a c e 0112440 = G e t F a c e ( c h a r , 0112460 T l i n k > > i t e m . f a c 0112500 e , t x t f o n t ) 032 l 6 8 0 0112520 8 \r ] \r D i s p l a y O b j e c 0112540 t ( T l i n k ) / / n o w r e 0112560 p a i n t s t r i n g 032 l 5 5 0112600 3 8 \r ] 032 l 4 2 6 8 \r ] \r \r a n 0112620 d S e l e c t S p e c i f i e 0112640 d I t e m s ( u f n t , f a c e 0112660 , f a c e b i t , c l r ) b e 0112700 \r [ / / s u b - s e t o f 0112720 s e l e c t e d i t e m s 0112740 i f C t r l S h i f t i s 0112760 d o w n , o t h e r w i 376 001 \0 0113000 ' @ s e s e l e c t f r o m 0113020 a l l 032 \r i f C t r l S h 0113040 i f t e q 0 t h e n C l 0113060 e a r S e l e c t i o n s ( ) \r 0113100 l e t l i n k = F i r s t 0113120 I t e m \r u n t i l l i n k 0113140 e q 0 d o \r [ 032 l 4 2 6 8 \r 0113160 i f l i n k > > i t e m . s t 0113200 a t e e q ( C t r l S h i f 0113220 t ? S e l e c t e d , A c t i 0113240 v e ) t h e n \r [ 032 l 5 5 3 8 0113260 \r l e t t x t f o n t = l 0113300 i n k > > i t e m . t x t f o n 0113320 t \r l e t i t e m f a c e = 0113340 l i n k > > i t e m . f a c e 0113360 x o r P r F a c e V e c ! t 0113400 x t 376 001 \0 235 336 f o n t \r t e s t 0113420 ( ( t x t f o n t l e 3 0113440 ) & ( ( i t e m f a c e & f 0113460 a c e b i t ) e q f a c e ) 0113500 ) % ( l i n k > > 0113520 i t e m . c o l o r e q c l 0113540 r ) % ( t x t f o n t e q 0113560 u f n t ) \r i f s o i f C 0113600 t r l S h i f t e q 0 t h 0113620 e n M a k e S e l e c t e d ( 0113640 l i n k ) 032 l 6 8 0 8 \r i f n o 0113660 t i f C t r l S h i f t n 0113700 e 0 t h e n M a k e U n S 0113720 e l e c t e d ( l i n k ) 032 l 6 0113740 8 0 8 \r ] \r l i n k = l i n 0113760 k > > i t e m . l i n k 032 l 5 5 0114000 3 8 \r ] \r S e 376 001 \0 \ k l e c t 0114020 I t e m C l e a n u p ( ) 032 l 4 0114040 2 6 8 \r ] \r \r \r a n d G e t C 0114060 o l o r ( c h a r ) = v a l o 0114100 f \r [ 032 \r l e t c o l o r m a 0114120 p = t a b l e \r [ \r A q u a 0114140 ; $ b ; C y a n ; B r o w 0114160 n ; $ e ; $ f ; G r e e n 0114200 ; $ h \r $ i ; $ j ; $ k ; 0114220 L i m e ; M a g e n t a ; 0114240 B l a c k ; O r a n g e ; P 0114260 i n k \r $ q ; R e d ; S m o 0114300 k e ; T u r q u o i s e ; U 0114320 l t r a V i o l e t ; V i o l 0114340 e t ; W h i t e ; $ x ; Y 0114360 e l l o w / / ; $ z \r ] \r 0114400 c h a r = c h a r 376 001 \0 230 0114420 314 % # 4 0 \r i f ( c h a r 0114440 l s $ a ) % ( c h a r g 0114460 r $ y ) t h e n r e s u l 0114500 t i s c h a r \r r e s u l t i 0114520 s c o l o r m a p ! ( ( c h a 0114540 r % # 4 0 ) - $ a ) \r 032 l 4 0114560 2 6 9 \r ] \r \r a n d G e t F o 0114600 n t ( c h a r ) = v a l o f \r 0114620 r e s u l t i s ( ( c h a r 0114640 g e $ 0 ) & ( c h a r l 0114660 e $ 9 ) ) ? c h a r - $ 0 0114700 , $ 9 \r \r \r a n d G e t F a 0114720 c e ( c h a r , o l d f a c e , 0114740 f o n t ; n u m a r g s n a 0114760 r g s ) = v a l o f \r [ 032 \r l 0115000 e t n o r m a l i z e r = 0115020 n 376 001 \0 345 203 a r g s g e 3 ? 0115040 P r F a c e V e c ! f o n t , 0115060 0 \r o l d f a c e = o l d f 0115100 a c e x o r n o r m a l i z 0115120 e r \r l e t v a l = s e l 0115140 e c t o n c h a r i n t o \r 0115160 [ 032 l 4 2 6 9 \r c a s e $ b : 0115200 o l d f a c e % 2 \r c a s 0115220 e $ B : o l d f a c e & 0115240 # 1 7 7 7 7 5 \r c a s e $ i : 0115260 o l d f a c e % 1 \r c a s 0115300 e $ I : o l d f a c e & 0115320 # 1 7 7 7 7 6 \r d e f a u l t : 0115340 - 1 032 l 5 5 3 9 \r ] \r r e s u 0115360 l t i s v a l x o r n o r 0115400 m a l i z e r 032 l 4 2 6 9 \r \r ] 0115420 \r \r 032 \r a n 376 \0 V | 331 d G e t 0115440 C h a r ( m s g ) = v a l o f 0115460 \r [ 032 l 2 9 9 8 \r U p d a t e ( 0115500 m s g ) \r M e s s a g e = " 0115520 " \r r e s u l t i s G e t s 0115540 ( k e y s ) 032 l 4 2 6 8 \r ] \r 032 0115560 \r 377 \0 \0 s i l a a . b c p l \0 373 0115600 224 = \a 214 \0 \0 376 001 \0 W 005 / / S i l 0115620 A A . b c p l - - F i l e 0115640 s t u f f \r \r \r g e t " s y s 0115660 d e f s . d " \r g e t " S i l 0115700 . d e f s " \r \r s t a t i c \r [ 0115720 \r \t A l t S = 0 ; f p A l t ; 0115740 I n i t S = 0 ; f p S i l I 0115760 n i t \r \t @ A l t F i l e P o 0116000 s = 0 ; @ L a s t A l t F i 0116020 l e P o s = 0 ; @ A l t L i 0116040 n e C n t = 0 ; @ L a s t L i 0116060 n e C n t = 0 \r \t @ A l t X C o 0116100 o r d = 0 ; @ A l t Y C o o r 0116120 d = 0 \r ] \r \r l e t F i l e O 0116140 u t ( s t r ) = v a l o f \r [ 0116160 032 ( 6 3 5 ) \r i f n o t s t 0116200 r t h e n \r [ 032 l 376 001 \0 353 322 0116220 4 2 6 8 \r i f n o t F i l e 0116240 N a m e ( t r u e , " O u t p u 0116260 t F i l e : " ) t h e n 0116300 r e s u l t i s f a l s e \r s 0116320 t r = l v ( F N a m e O b j 0116340 e c t > > i t e m . s t r i n g 0116360 . l e n g t h ) 032 l 5 5 3 8 \r ] 0116400 032 l 4 2 6 8 \r l e t S = O 0116420 p e n S i l F i l e ( s t r , 0 0116440 , k s T y p e W r i t e O n l y 0116460 , w o r d I t e m ) \r i f S 0116500 e q 0 t h e n \r [ 032 l 4 2 0116520 6 8 \r F i x F N a m e ( " B a d 0116540 O p e n : " ) \r r e s u l t i 0116560 s f a l s e 032 l 5 5 3 8 \r ] \r 0116600 / / w r i t e p a s s w o r d 0116620 376 001 \0 2 200 \r i f C h a n g e d 0116640 n e 0 t h e n R e m o v 0116660 e B u i l d M a r k ( ) \r P u t 0116700 s ( S , # 3 4 5 6 2 + ( V i r g 0116720 i n S i n c e B u i l d ? 1 , 0116740 0 ) ) \r \r / / w r i t e o u t 0116760 m a c r o s \r f o r i = 0117000 0 t o 1 2 7 d o / / f 0117020 o n t 4 m a c r o s ( u s 0117040 e r ) o n l y \r [ 032 l 4 2 6 8 0117060 \r l e t l i n k = M a c t 0117100 ! i \r u n t i l l i n k e q 0117120 0 d o \r [ 032 l 5 5 3 8 \r P u 0117140 t s ( S , i ) / / t h e m a 0117160 c r o n a m e \r W r i t e I t 0117200 e m ( S , l i n k ) \r l i n k 0117220 = l i n 376 001 \0 237 2 k > > i t e 0117240 m . l i n k 032 l 6 8 0 8 \r ] 032 l 0117260 5 5 3 8 \r ] \r / / e n d o f 0117300 m a c r o d e f i n i t i o 0117320 n s \r l e t l i n k = F i 0117340 r s t I t e m \r u n t i l l i 0117360 n k e q 0 d o \r [ 032 l 4 2 0117400 6 8 \r i f ( l i n k > > i t e 0117420 m . s t a t e l e S e l e c 0117440 t e d ) & ( l i n k > > i t e m 0117460 . y m i n g e 0 ) & ( l i n 0117500 k > > i t e m . x m a x l e 0117520 2 * S c r e e n X m a x ) & ( l 0117540 i n k > > i t e m . y m a x l 0117560 e 2 * S c r e e n Y m a x ) & 0117600 ( l i n k > > i t e m . y m a x 0117620 g r l i n k > > 376 001 \0 036 341 i 0117640 t e m . y m i n ) & ( l i n k > 0117660 > i t e m . x m a x g r l i 0117700 n k > > i t e m . x m i n ) & ( 0117720 ( l i n k > > i t e m . f o n t 0117740 g e 1 4 ) % ( l i n k > > i 0117760 t e m . s t r i n g . l e n g t 0120000 h g r 0 ) ) t h e n / / 0120020 o n l y w r i t e o u t g 0120040 o o d s t u f f \r [ 032 l 5 5 3 0120060 8 \r P u t s ( S , - 1 ) / / b 0120100 l o c k h e a d e r \r W r i t 0120120 e I t e m ( S , l i n k ) 032 l 6 0120140 8 0 8 \r ] 032 l 5 5 3 8 \r l i n k 0120160 = l i n k > > i t e m . l i 0120200 n k 032 l 5 5 3 8 \r ] \r C l o s e 0120220 s ( S ) \r F i x F N a m e ( " 376 0120240 001 \0 255 ) " ) \r r e s u l t i s 0120260 t r u e 032 l 4 2 6 8 \r ] \r \r a 0120300 n d W r i t e I t e m ( s , l 0120320 i n k ) b e \r [ 032 \r f o r i 0120340 = 1 t o 4 d o P u t 0120360 s ( s , l i n k ! i ) \r i f l 0120400 i n k > > i t e m . f o n t l 0120420 s 1 4 t h e n \r f o r i 0120440 = 5 t o 5 + ( l i n k > > 0120460 i t e m . s t r i n g . l e n g 0120500 t h / 2 ) d o P u t s ( s , 0120520 l i n k ! i ) 032 l 4 2 6 8 \r ] \r 0120540 \r a n d R e a d I t e m ( s ) 0120560 = v a l o f \r [ 032 \r f o r i 0120600 = 1 t o 4 d o N e w 0120620 I t e m ! i = G e t s ( s ) 0120640 \r N e w 376 001 \0 027 021 I t e m > > i 0120660 t e m . s t a t e = A c t i 0120700 v e \r i f N e w I t e m > > i 0120720 t e m . f o n t l s 1 4 t 0120740 h e n / / r e a d i n t h 0120760 e s t r i n g \r [ 032 l 4 2 6 8 0121000 \r N e w I t e m ! 5 = G e t 0121020 s ( s ) \r i f N e w I t e m > 0121040 > i t e m . s t r i n g . l e n 0121060 g t h g r 1 t h e n \r f o 0121100 r j = 1 t o ( N e w I 0121120 t e m > > i t e m . s t r i n g 0121140 . l e n g t h ) / 2 d o \r N e 0121160 w I t e m ! ( 5 + j ) = G e 0121200 t s ( s ) 032 l 5 5 3 8 \r ] \r r e 0121220 s u l t i s N e w I t e m > > 0121240 i t e m . f o n t 376 001 \0 220 n \r 032 0121260 l 4 2 6 8 \r ] \r \r \r a n d F i 0121300 l e I n ( c o n f i r m ) b e 0121320 \r [ 032 \r i f n o t F i l e 0121340 N a m e ( c o n f i r m , " I n 0121360 p u t F r o m : " ) t h e 0121400 n r e t u r n 032 l 4 2 6 8 \r \r 0121420 l e t s t k e n d = N e w 0121440 I t e m / / e n d o f s t 0121460 o r a g e a t s t a r t o 0121500 f i n p u t \r l e t S = 0121520 O p e n S i l F i l e ( l v ( F 0121540 N a m e O b j e c t > > i t e m 0121560 . s t r i n g . l e n g t h ) , 0121600 0 , k s T y p e R e a d O n l y 0121620 , w o r d I t e m ) \r i f S 0121640 e q 0 t h e n \r [ 032 l 4 376 001 0121660 \0 s 245 2 6 8 \r F i x F N a m e ( 0121700 " C a n ' t O p e n F i l e 0121720 " ) / / r e m o v e f i l 0121740 e n a m e \r r e t u r n 032 l 5 5 0121760 3 8 \r ] \r l e t p w = G e 0122000 t s ( S ) \r i f V i r g i n S 0122020 i n c e B u i l d t h e n R 0122040 e m o v e B u i l d M a r k ( ) 0122060 \r V i r g i n S i n c e B u i l 0122100 d = f a l s e \r t e s t p 0122120 w e q 3 4 5 6 3 B t h e n 0122140 V i r g i n S i n c e B u i l 0122160 d = t r u e \r o r i f p 0122200 w n e 3 4 5 6 2 B t h e n 0122220 \r [ 032 l 4 2 6 8 \r C l o s e s ( 0122240 S ) \r F i x F N a m e ( " P a s 0122260 s w o 376 001 \0 351 374 r d n o t 3 0122300 4 5 6 2 B " ) \r r e t u r n 032 l 0122320 5 5 3 8 \r ] \r C h a n g e d = 0122340 ( N e w I t e m n e S p a 0122360 c e B a s e ) \t / / I f r e 0122400 a d i n g i n o n t o p 0122420 o f s o m e t h i n g , c h 0122440 a n g e d . \r l e t p r e v = 0122460 ( l v F i r s t I t e m ) - o 0122500 f f s e t i t e m . l i n k / 0122520 / f i n d t h e e n d o f 0122540 c u r r e n t " I t e m " 0122560 l i s t \r w h i l e p r e v > 0122600 > i t e m . l i n k n e 0 0122620 d o p r e v = p r e v > > i t 0122640 e m . l i n k \r \r u n t i l E 0122660 n d o f s ( S ) 376 001 \0 262 H d o 0122700 / / r e a d f i l e \r [ 032 0122720 l 4 2 6 8 \r l e t m n a m e 0122740 = G e t s ( S ) \r l e t f o 0122760 n t = R e a d I t e m ( S ) 0123000 / / r e a d s i t e m i 0123020 n t o N e w I t e m \r i f ( 0123040 f o n t l s 1 4 ) & ( f o n 0123060 t g r 8 ) t h e n / / c k 0123100 f o r a n y l i b r a r y 0123120 m a c r o s u s e d i n 0123140 t h i s b l o c k \r [ 032 l 5 5 0123160 3 8 \r l e t m i n d e x = 0123200 M a c t + ( f o n t - 8 ) * 1 2 0123220 8 \r f o r i = 1 t o N 0123240 e w I t e m > > i t e m . s t r 0123260 i n g . l e n g t h d o 376 001 \0 0123300 204 031 \r i f m i n d e x ! ( N e 0123320 w I t e m > > i t e m . s t r i 0123340 n g . c h a r ^ i ) e q 0 0123360 t h e n \r m i n d e x ! ( N e w 0123400 I t e m > > i t e m . s t r i n 0123420 g . c h a r ^ i ) = - 1 032 l 0123440 6 8 0 8 \r 032 l 6 8 0 8 \r ] \r \r 0123460 t e s t m n a m e e q - 1 0123500 \r i f s o / / t h i s i s 0123520 a p i c t u r e e l e m e 0123540 n t . \r [ 032 l 5 5 3 8 \r i f 0123560 ( ( N e w I t e m > > i t e m . 0123600 x m i n e q N e w I t e m > 0123620 > i t e m . x m a x ) % ( N 0123640 e w I t e m > > i t e m . y m i 0123660 n e q N e w I t e m > > i t 0123700 e m 376 001 \0 226 354 . y m a x ) ) % 0123720 ( N e w I t e m > > i t e m . 0123740 y m i n l s 0 ) t h e n 0123760 l o o p \r \r / / p r e v = A 0124000 d d T o L i s t E n d ( p r e v 0124020 ) / / t h i s c a l l i n v 0124040 e r t s o r d e r o f i t 0124060 e m s r e a d \r / / t h e f 0124100 o l l o w i n g d o e s t h 0124120 e s a m e a s A d d T o L 0124140 i s t e x c e p t t h e o 0124160 r d e r \r / / o f i t e m s 0124200 w i l l b e i n v e r t e d 0124220 \r / / t h i s s t o p s S I 0124240 L o u t p u t / i n p u t f 0124260 r o m i n v e r t i n g t h 0124300 e o r d e r 376 001 \0 234 345 o f 0124320 i t e m s \r / / T h e o r d e 0124340 r i s i m p o r t a n t i 0124360 n p r e s s m o d e s o 0124400 t h a t b a c k g r o u n d s 0124420 o v e r l a p r i g h t \r t 0124440 e s t D i s p l a y A r e a 0124460 e q 0 / / h a r d c o p y 0124500 m o d e o r s c r e e n 0124520 m o d e \r \t i f s o A d d T o 0124540 L i s t ( p r e v ) / / n o 0124560 r m a l r e a d - d o n t 0124600 i n v e r t o r d e r o f 0124620 i t e m s \r \t i f n o t / 0124640 / r e a d i n g i n t o s c 0124660 r e e n m o d e - i n v e 0124700 r t o r d e r o f 376 001 \0 t 0124720 261 i t e m s \r \t [ \r \t \t l e t 0124740 l = N e w I t e m \r \t \t i f U 0124760 s c ( l , S p a c e T o p ) g 0125000 r 0 t h e n C a l l S w a 0125020 t ( " N o R o o m " ) \r \t \t N 0125040 e w I t e m > > i t e m . l i n 0125060 k = 0 \r \t \t p r e v > > i t e m 0125100 . l i n k = N e w I t e m \r \t \t 0125120 N e w I t e m = l + L e n g t h 0125140 ( N e w I t e m ) \r \t \t p r e v 0125160 = l \r \t \t / / e n d o f 0125200 c o d e s u b s t i t u t e \r 0125220 \t ] \r \r l o o p 032 l 6 8 0 8 \r ] 0125240 \r \r i f n o t / / t h i s b 0125260 l o c k i s p a r t o f 0125300 a m a c r o d e f i n i t i 0125320 o 376 001 \0 322 361 n i n t h e u 0125340 s e r ' s p r i v a t e m a 0125360 c r o s \r [ 032 l 5 5 3 8 \r l e t 0125400 m = M a c t ! m n a m e 0125420 \r i f ( m n e 0 ) & ( m 0125440 l s s t k e n d ) t h e n 0125460 / / t h e r e i s a p r 0125500 e v i o u s d e f i n i t i o 0125520 n . W e e i t h e r f l 0125540 u s h i t o r l o o p \r \r 0125560 [ 032 l 6 8 0 8 \r / / f o r t h 0125600 e m o m e n t , A L W A Y S 0125620 O V E R W R I T E C O N F L 0125640 I C T I N G D E F S . \r \r F l 0125660 u s h L i s t ( m ) / / r e m 0125700 o v e p r e v i o u s d e f 0125720 i n i t i o 376 001 \0 231 5 n \r M a c 0125740 t ! m n a m e = 0 032 l 8 0 7 0125760 8 \r ] \r \r / / a d d t h e d 0126000 e f i n i t i o n t o t h e 0126020 l i s t \r i f ( ( N e w I t 0126040 e m > > i t e m . x m i n e q 0126060 N e w I t e m > > i t e m . x 0126100 m a x ) % ( N e w I t e m > 0126120 > i t e m . y m i n e q N e 0126140 w I t e m > > i t e m . y m a x 0126160 ) ) t h e n l o o p \r A d d 0126200 T o L i s t ( l v ( M a c t ! 0126220 m n a m e ) ) 032 l 6 8 0 8 \r ] 032 0126240 l 5 5 3 8 \r ] 032 l 4 2 6 9 \r \r C 0126260 l o s e s ( S ) \r \r / / u p d a 0126300 t e a n y l i b r a r i e s 0126320 r e q u i r e d \r f 376 001 \0 \f 274 0126340 o r f o n t = 9 t o 1 0126360 3 d o L i b U p d a t e ( f 0126400 o n t ) \r \r i f D i s p l a y 0126420 A r e a n e 0 t h e n Z 0126440 a p R e b u i l d e r ( ) / / 0126460 r e b u i l d t h e d i s p 0126500 l a y \r F i x F N a m e ( " " 0126520 ) 032 l 4 2 6 9 \r \r ] \r \r a n d 0126540 A d d T o L i s t ( l v p t r ) 0126560 b e \r [ 032 \r l e t l = L 0126600 e n g t h ( N e w I t e m ) + N 0126620 e w I t e m \r i f U s c ( l , 0126640 S p a c e T o p ) g r 0 t h 0126660 e n \r [ 032 l 4 2 6 8 \r P a i n t 0126700 ( N e w I t e m , t o W h i t e 0126720 ) \r M e s s a g e = " S p a 0126740 376 001 \0 W M c e E x h a u s t e 0126760 d - i t e m l o s t " \r r 0127000 e t u r n 032 l 5 5 3 8 \r ] \r N e 0127020 w I t e m > > i t e m . l i n k 0127040 = @ l v p t r \r @ l v p t r 0127060 = N e w I t e m \r N e w I t 0127100 e m = l 032 l 4 2 6 8 \r ] \r \r a n 0127120 d F i l e N a m e ( c o n f i 0127140 r m , s t r ) = v a l o f \r 0127160 [ 032 \r \r i f D i s p l a y A r 0127200 e a e q 0 t h e n r e s 0127220 u l t i s t r u e \r l e t x 0127240 H a r d C o p y = H a r d C 0127260 o p y \r H a r d C o p y = 0 \r U 0127300 p d a t e ( s t r ) \r U p d a t 0127320 e ( s t r ) \r F N a m e O b j e 0127340 c t > > i 376 001 \0 220 263 t e m . x m 0127360 i n = S t a t u s O b j e c 0127400 t > > i t e m . x m a x \r F N a 0127420 m e O b j e c t > > i t e m . s 0127440 t a t e = A c t i v e / / 0127460 s h o w f i l e n a m e \r D i 0127500 s p l a y O b j e c t ( F N a m 0127520 e O b j e c t ) / / s h o w s 0127540 t r i n g \r R e W r i t e O b j 0127560 ( F N a m e O b j e c t ) \r l e 0127600 t D o i t = c o n f i r m 0127620 ? A d d T e x t ( F N a m e O 0127640 b j e c t , G e t s ( k e y s ) 0127660 ) , t r u e \r / / Z a p R e 0127700 b u i l d e r I t e m ( F N a m 0127720 e O b j e c t ) / / r e p a i n 0127740 t b e h i n d s 376 001 \0 > 005 t 0127760 r i n g 032 l 4 2 6 8 \r H a r d C 0130000 o p y = x H a r d C o p y \r 0130020 i f n o t D o i t t h e n 0130040 \r [ 032 l 4 2 6 8 \r F i x F N a m 0130060 e ( " " ) \r r e s u l t i s 0130100 f a l s e 032 l 5 5 3 8 \r ] \r r e 0130120 s u l t i s t r u e 032 l 4 2 6 0130140 8 \r ] \r \r / / R e m o v e t 0130160 h e m a r k l e f t b y 0130200 t h e B U I L D p r o g r a 0130220 m t h a t i n d i c a t e s 0130240 v i r g i n d r a w i n g . 0130260 \r \r a n d R e m o v e B u i l 0130300 d M a r k ( ) b e \r [ 032 \r l e 0130320 t p = F i r s t I t e m \r 0130340 w h i l e p n e 0 d o 376 0130360 001 \0 ; : \r [ 032 l 4 2 6 9 \r i f 0130400 p > > i t e m . f o n t e q 0130420 1 4 & \r p > > i t e m . y m a 0130440 x e q B u i l d Y m a x & 0130460 p > > i t e m . y m i n e q 0130500 B u i l d Y m a x - 7 t h e 0130520 n \r [ 032 l 5 5 3 9 \r P a i n t ( 0130540 p , t o W h i t e ) \t / / E r a 0130560 s e i t \r Z a p R e b u i l d 0130600 e r I t e m ( p ) \t / / A n d 0130620 z a p r e b u i l d e r \r p > 0130640 > i t e m . s t a t e = D e a d 0130660 032 l 6 8 0 9 \r ] \r p = p > > 0130700 i t e m . l i n k 032 l 5 5 3 9 \r 0130720 ] \r V i r g i n S i n c e B u i 0130740 l d = f a l s e 032 l 4 2 6 9 0130760 \r ] 032 \r 376 001 \0 ; 277 \r 032 \r / / n o 0131000 w t h e c o d e f o r h 0131020 a n d e l i n g " A l t e r n 0131040 a t e t e x t " f i l e s 0131060 ( a l i a s " A n a l i z e 0131100 " f i l e s ) \r / / a n d O 0131120 p e n A l t T e x t ( ) = v a 0131140 l o f \r / / [ 032 \r / / l e t N 0131160 a m e V e c = v e c F N a 0131200 m e L e n g t h \r / / Z e r o ( 0131220 f p A l t , 5 ) \r / / M o v e B 0131240 l o c k ( N a m e V e c , l v 0131260 F N a m e O b j e c t > > i t e 0131300 m . s t r i n g , F N a m e L e 0131320 n g t h ) \r / / t e s t F i l 0131340 e N a m e ( t r u e , " A l t 0131360 e r n a t e i n 376 001 \0 345 ( p u 0131400 t : " ) i f n o t M e s s 0131420 a g e = " " i f s o \r / 0131440 / [ 032 l 4 2 6 8 \r / / \t A l t S 0131460 = O p e n S i l F i l e ( l v ( 0131500 F N a m e O b j e c t > > i t e 0131520 m . s t r i n g ) , f p A l t , 0131540 k s T y p e R e a d O n l y , c 0131560 h a r I t e m ) 032 l 4 2 6 8 \r / 0131600 / \t M e s s a g e = " C a n 0131620 ' t O p e n F i l e " / / 0131640 s e t i n c a s e o p e n 0131660 f a i l e d 032 l 4 2 6 8 \r / / ] 0131700 \r / / M o v e B l o c k ( l v 0131720 F N a m e O b j e c t > > i t e 0131740 m . s t r i n g , N a m e V e 0131760 c , F N a m e L e n g t h ) 376 001 0132000 \0 C 217 \r / / F i x F N a m e ( M 0132020 e s s a g e ) / / r e m o v e 0132040 f i l e n a m e \r / / i f n 0132060 o t A l t S t h e n r e s 0132100 u l t i s - 1 032 l 4 2 6 9 \r 0132120 / / L a s t A l t F i l e P o s 0132140 = 0 \r / / L a s t L i n e C 0132160 n t = 1 \r / / r e s u l t i 0132200 s 0 032 l 4 2 6 9 \r / / ] \r \r \r 0132220 a n d F i n d A n a l y z e L 0132240 i n e ( ) b e \r [ 032 \r i f A 0132260 l t L i n e C n t e q 0 d 0132300 o / / n o f i l e o p e n 0132320 , s o a s k f o r n a m 0132340 e o f f i l e \r [ 032 l 4 2 6 0132360 8 \r l e t N a m e V e c = 0132400 v e c 376 001 \0 @ 365 F N a m e L e 0132420 n g t h \r Z e r o ( f p A l t , 0132440 5 ) \r M o v e B l o c k ( N a m 0132460 e V e c , l v F N a m e O b j 0132500 e c t > > i t e m . s t r i n g 0132520 , F N a m e L e n g t h ) \r t e 0132540 s t F i l e N a m e ( t r u e 0132560 , " A l t e r n a t e i n p 0132600 u t : " ) i f n o t M e s 0132620 s a g e = " " i f s o \r 0132640 [ 032 l 5 5 3 8 \r A l t S = O p e 0132660 n S i l F i l e ( l v ( F N a m 0132700 e O b j e c t > > i t e m . s t 0132720 r i n g ) , f p A l t , k s T y 0132740 p e R e a d O n l y , c h a r I 0132760 t e m ) 032 l 5 5 3 8 \r \t M e s s 0133000 a g e = " C 376 001 \0 [ 332 a n ' 0133020 t O p e n F i l e " / / s 0133040 e t i n c a s e o p e n f 0133060 a i l e d 032 l 5 5 3 8 \r ] \r M o 0133100 v e B l o c k ( l v F N a m e 0133120 O b j e c t > > i t e m . s t r 0133140 i n g , N a m e V e c , F N a 0133160 m e L e n g t h ) \r F i x F N a 0133200 m e ( M e s s a g e ) / / r e 0133220 m o v e f i l e n a m e \r i f 0133240 n o t A l t S t h e n r 0133260 e t u r n 032 l 5 5 3 9 \r L a s 0133300 t A l t F i l e P o s = 0 \r 0133320 L a s t L i n e C n t = 1 032 0133340 l 5 5 3 9 \r ] 032 l 4 2 6 9 \r i f 0133360 A l t S e q 0 d o / 0133400 / s t r e a m m u s t 376 001 \0 0133420 023 313 h a v e b e e n c l o s 0133440 e d f o r I / O , s o o 0133460 p e n i t a g a i n \r \t A l 0133500 t S = O p e n S i l F i l e 0133520 ( 0 , f p A l t , k s T y p e R 0133540 e a d O n l y , c h a r I t e m 0133560 ) \r i f C t r l S h i f t t 0133600 h e n [ M e s s a g e = 0133620 1 ; A l t F i l e P o s = 0133640 L a s t A l t F i l e P o s ; 0133660 A l t L i n e C n t = L a s 0133700 t L i n e C n t ] \r i f M e 0133720 s s a g e e q 0 t h e n 0133740 [ L a s t A l t F i l e P o s 0133760 = A l t F i l e P o s ; L 0134000 a s t L i n e C n t = A l t L 0134020 i n 376 001 \0 207 j e C n t ] \r [ 032 0134040 l 4 2 6 9 \r t e s t ( M e s s 0134060 a g e e q 0 ) % ( A l t 0134100 L i n e C n t e q 0 ) \r \t i 0134120 f s o [ A l t F i l e P o s 0134140 = F i l e P o s ( A l t S ) 0134160 ; A l t L i n e C n t = A 0134200 l t L i n e C n t + 1 ] \r \t i 0134220 f n o t S e t F i l e P o s ( 0134240 A l t S , 0 , A l t F i l e P o 0134260 s ) \r \r N e w I t e m ! 0 = 0 0134300 / / i n t m e s s a g e t 0134320 o e m p t y \r A l t X C o o r 0134340 d = - 1 / / i n i t n e w 0134360 c o o r d i n a t e s t o 0134400 " d o n ' t u p d a t e " \r A 0134420 p p e n d N ( 376 001 \0 035 205 A l t L 0134440 i n e C n t , N e w I t e m ) 0134460 / / e n t e r l i n e n u 0134500 m b e r i n t o s t r i n g 0134520 \r A p p e n d S ( " : " , N 0134540 e w I t e m ) \r l e t C h a r 0134560 = R e a d C h a r ( 0 ) 0134600 / / r e a d t h e f i r s t 0134620 c h a r a c t e r i n t h 0134640 e l i n e \r \r i f C h a r 0134660 e q t r u e t h e n \r [ 032 l 0134700 5 5 3 9 \r C l o s e s ( A l t S 0134720 ) ; A l t S = 0 ; A l t L i 0134740 n e C n t = 0 \r M e s s a g e 0134760 = " D o n e " \r r e t u r n 0135000 / / e n d o f f i l e , 0135020 r e s t o r e s t a t 376 001 \0 222 0135040 j e 032 l 6 8 0 9 \r ] \r i f C h 0135060 a r e q $ * n t h e n l 0135100 o o p \t \t / / d o n ' t d i 0135120 s p l a y b l a n k l i n e 0135140 s 032 l 5 5 3 9 \r i f C h a r 0135160 e q $ ( t h e n / / g 0135200 e t x , y c o o r d i n a t 0135220 e s i f a p p l i c a b l e 0135240 032 l 5 5 3 9 \r [ A l t X C o o 0135260 r d = E x t r a c t V a l ( 0135300 ) ; A l t Y C o o r d = E 0135320 x t r a c t V a l ( ) ] 032 l 6 0135340 8 0 9 \r C h a r = R e a d C 0135360 h a r ( t r u e ) / / r e a 0135400 d s a l l r e m a i n i n g 0135420 c h a r a c t e r s i n c 0135440 u 376 001 \0 242 361 r r e n t l i n e 0135460 \r i f ( C h a r e q $ ; ) 0135500 t h e n l o o p \t / / d o 0135520 n ' t d i s p l a y l i n e 0135540 s s t a r t i n g w i t h 0135560 " ; " 032 l 5 5 3 9 \r / / n o w 0135600 d i s p l a y t h e l i n 0135620 e \r i f A l t X C o o r d g 0135640 e 0 t h e n \r [ 032 l 5 5 3 9 0135660 \r m x = A l t X C o o r d \r m y 0135700 = A l t Y C o o r d \r P u s h C 0135720 o o r d s ( m x , m y ) \r M o v 0135740 e O b j e c t T o ( M a r k O b 0135760 j e c t , m x , m y ) 032 l 6 8 0 0136000 9 \r ] \r U p d a t e ( N e w I t 0136020 e m ) ; M e s s a g e = 0 0136040 032 l 5 5 3 9 376 001 \0 k $ \r r e t u 0136060 r n 032 l 5 5 3 9 \r ] r e p e a 0136100 t 032 l 4 2 6 9 \r ] \r 032 \r a n d 0136120 E x t r a c t V a l ( ) = v 0136140 a l o f / / g e t t h e 0136160 X , Y c o o r d i n a t e s 0136200 f r o m a l i n e \r [ 032 \r l 0136220 e t v a l = 0 \r [ 032 l 4 2 0136240 6 8 \r l e t c h a r = R e 0136260 a d C h a r ( 0 ) \r i f c h 0136300 a r l s $ 0 % c h a r 0136320 g r $ 9 t h e n r e s u l 0136340 t i s v a l / / n o n z e r 0136360 o i f c h a r l s 0 o 0136400 r g r 9 \r v a l = v a l 0136420 * 1 0 + c h a r - $ 0 032 l 5 0136440 5 3 8 \r ] r e p e a 376 001 \0 ] \a 0136460 t 032 l 4 2 6 9 \r ] \r 032 \r / / r e 0136500 a d t h e n e x t c h a r 0136520 a c t e r f r o m t h e f 0136540 i l e , a n d a p p e n d 0136560 t o t h e M e s s a g e s 0136600 t r i n g i f t h e l e n 0136620 g t h \r / / i s s m a l l e 0136640 n o u g h n o t t o o v e 0136660 r r u n t h e S t a t u s 0136700 O b j e c t s p a c e a l l 0136720 o c a t i o n \r a n d R e a d 0136740 C h a r ( f u l l L i n e ) = 0136760 v a l o f \r [ 032 \r i f E n d o 0137000 f s ( A l t S ) t h e n r e 0137020 s u l t i s t r u e \r l e t 0137040 c h a r = G e t s ( A l t S ) 0137060 376 001 \0 A o \r i f c h a r e 0137100 q $ * n t h e n r e s u l 0137120 t i s $ * n \r i f ( N e w I 0137140 t e m > > s t r . l e n g t h 0137160 l e 1 2 8 ) & ( c h a r 0137200 g e # 4 0 ) t h e n A p p 0137220 e n d C ( c h a r , N e w I t e 0137240 m ) \r u n l e s s f u l l L i 0137260 n e t h e n r e s u l t i s 0137300 c h a r 032 l 4 2 6 9 \r ] r e 0137320 p e a t \r 032 \r \r a n d F i x F 0137340 N a m e ( s t r ) b e / / t 0137360 u r n o f f f i l e n a m e 0137400 \r [ 032 \r i f D i s p l a y A r 0137420 e a t h e n / / d o n ' t 0137440 d o t h i s i n p r e s 0137460 s p r i 376 001 \0 B * n t m o d 0137500 e \r [ \r \t F N a m e O b j e c t 0137520 > > i t e m . s t a t e = 2 0137540 \r \t P a i n t ( F N a m e O b j 0137560 e c t , t o W h i t e ) \r \t Z a 0137600 p R e b u i l d e r I t e m ( F 0137620 N a m e O b j e c t ) \r ] \r M e 0137640 s s a g e = s t r 032 l 4 2 6 0137660 9 \r ] \r \r a n d O p e n S i l 0137700 F i l e ( n a m e , h i n t , d 0137720 i r e c t i o n , i t e m s i z 0137740 e ) = v a l o f / / t u r n 0137760 o f f f i l e n a m e \r [ 032 0140000 \r i f I n i t S n e 0 t 0140020 h e n [ C l o s e s ( I n i 0140040 t S ) ; I n i t S = 0 ] 0140060 \r i f A l t S n 376 \0 k 251 307 e 0140100 0 t h e n [ C l o s e s 0140120 ( A l t S ) ; A l t S = 0 0140140 ] \r r e s u l t i s O p e n 0140160 F i l e ( n a m e , d i r e c t 0140200 i o n , i t e m s i z e , 0 , h 0140220 i n t , 0 , S i l Z o n e ) 032 l 0140240 4 2 6 9 \r ] \r \r 032 \r 377 \0 \0 s i l 0140260 b . b c p l \0 373 224 = \a 214 \0 \0 376 001 0140300 \0 307 C / / S i l B . b c p l 0140320 - - l a s t m o d i f i 0140340 e d J a n u a r y 2 3 , 1 0140360 9 7 8 b y R . b a t e s \r 0140400 \r \r g e t " s y s d e f s . d 0140420 " \r g e t " S i l . d e f s " 0140440 \r \r s t a t i c \r [ \r l a s t l 0140460 i n k \r m a i n l \r ] \r \r / / M 0140500 a c r o d e f i n i t i o n : 0140520 f i r s t , d e t e r m i 0140540 n e w h e t h e r t h e m 0140560 a c r o w o u l d b e r e 0140600 c u r s i v e \r / / i f s o 0140620 d o n ' t a l l o w i t . 0140640 W h i l e l o o k i n g o 0140660 v e r t h e s e l e c t e d 0140700 i t 376 001 \0 y 327 e m s , d e t 0140720 e r m i n e t h e \r / / x m i 0140740 n a n d y m i n f o r t 0140760 h e c o l l e c t i o n o f 0141000 s e l e c t e d o b j e c t 0141020 s \r / / i f t h i s i s a 0141040 n o v e r w r i t e , r e l 0141060 e a s e t h e p r e s e n t 0141100 d e f i n i t i o n . \r / / M 0141120 o v e a l l s e l e c t e d 0141140 o b j e c t s f r o m t h 0141160 e m a i n l i s t t o t 0141200 h e m a c r o t a b l e . 0141220 R e l a t i v i z e \r / / t h e 0141240 c o o r d i n a t e s . \r 0141260 / / A d d a c a l l o n 0141300 t h e m a c r 376 001 \0 4 333 o t 0141320 o t h e m a i n s p a c e 0141340 . \r \r l e t D e f i n e M a c 0141360 r o ( c h a r ) b e \r [ 032 ( 6 0141400 3 5 ) \r l e t A r e a = v 0141420 e c 6 \r i f N S e l e c t e 0141440 d I t e m s e q 0 t h e n 0141460 [ M e s s a g e = " N o 0141500 t h i n g S e l e c t e d " ; 0141520