home *** CD-ROM | disk | FTP | other *** search
Unknown | 1993-03-01 | 10.8 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 01 12 2a 7c 73 74 | 61 72 74 20 53 70 72 69 |....*|st|art Spri|
|00000010| 74 65 0d 00 02 15 2a 7c | 21 53 70 72 69 74 65 20 |te....*||!Sprite |
|00000020| 4c 69 62 72 61 72 79 0d | 00 03 07 2a 7c 21 0d 00 |Library.|...*|!..|
|00000030| 04 33 2a 7c 21 56 65 72 | 73 69 6f 6e 20 33 2e 30 |.3*|!Ver|sion 3.0|
|00000040| 32 20 2d 20 28 43 29 20 | 54 6f 6d 20 48 75 67 68 |2 - (C) |Tom Hugh|
|00000050| 65 73 20 31 73 74 20 4d | 61 72 63 68 20 31 39 39 |es 1st M|arch 199|
|00000060| 33 0d 00 05 07 2a 7c 21 | 0d 00 06 45 2a 7c 21 54 |3....*|!|...E*|!T|
|00000070| 68 69 73 20 6c 69 62 72 | 61 72 79 20 63 6f 6e 74 |his libr|ary cont|
|00000080| 61 69 6e 73 20 72 6f 75 | 74 69 6e 65 73 20 66 6f |ains rou|tines fo|
|00000090| 72 20 68 61 6e 64 6c 69 | 6e 67 20 73 70 72 69 74 |r handli|ng sprit|
|000000a0| 65 73 20 61 6e 64 20 73 | 70 72 69 74 65 0d 00 07 |es and s|prite...|
|000000b0| 14 2a 7c 21 73 70 72 69 | 74 65 20 61 72 65 61 73 |.*|!spri|te areas|
|000000c0| 2e 0d 00 08 11 2a 7c 73 | 74 6f 70 20 53 70 72 69 |.....*|s|top Spri|
|000000d0| 74 65 0d 00 09 04 0d 00 | 0a 1b 2a 7c 73 74 61 72 |te......|..*|star|
|000000e0| 74 20 50 52 4f 43 73 70 | 72 69 74 65 5f 69 6e 69 |t PROCsp|rite_ini|
|000000f0| 74 0d 00 0b 16 2a 7c 21 | 50 52 4f 43 73 70 72 69 |t....*|!|PROCspri|
|00000100| 74 65 5f 69 6e 69 74 0d | 00 0c 07 2a 7c 21 0d 00 |te_init.|...*|!..|
|00000110| 0d 46 2a 7c 21 54 68 69 | 73 20 72 6f 75 74 69 6e |.F*|!Thi|s routin|
|00000120| 65 20 73 68 6f 75 6c 64 | 20 62 65 20 63 61 6c 6c |e should| be call|
|00000130| 65 64 20 62 65 66 6f 72 | 65 20 61 6e 79 20 6f 74 |ed befor|e any ot|
|00000140| 68 65 72 73 20 69 6e 20 | 74 68 65 20 6c 69 62 72 |hers in |the libr|
|00000150| 61 72 79 2c 0d 00 0e 3b | 2a 7c 21 61 73 20 69 74 |ary,...;|*|!as it|
|00000160| 20 69 6e 69 74 69 61 6c | 69 73 65 73 20 61 6c 6c | initial|ises all|
|00000170| 20 69 6e 74 65 72 6e 61 | 6c 20 64 61 74 61 20 66 | interna|l data f|
|00000180| 6f 72 20 74 68 65 20 6c | 69 62 72 61 72 79 2e 0d |or the l|ibrary..|
|00000190| 00 0f 12 dd 20 f2 73 70 | 72 69 74 65 5f 69 6e 69 |.... .sp|rite_ini|
|000001a0| 74 0d 00 10 18 5f 5f 73 | 70 72 69 74 65 5f 63 68 |t....__s|prite_ch|
|000001b0| 75 6e 6b 25 3d 34 30 39 | 36 0d 00 11 1b 5f 5f 73 |unk%=409|6....__s|
|000001c0| 70 72 69 74 65 5f 6d 61 | 78 6c 65 76 65 6c 25 20 |prite_ma|xlevel% |
|000001d0| 3d 20 31 30 0d 00 12 18 | 5f 5f 73 70 72 69 74 65 |= 10....|__sprite|
|000001e0| 5f 6c 65 76 65 6c 25 20 | 3d 20 2d 31 0d 00 13 2c |_level% |= -1...,|
|000001f0| de 20 5f 5f 73 70 72 69 | 74 65 5f 73 61 76 65 61 |. __spri|te_savea|
|00000200| 72 65 61 25 28 5f 5f 73 | 70 72 69 74 65 5f 6d 61 |rea%(__s|prite_ma|
|00000210| 78 6c 65 76 65 6c 25 29 | 0d 00 14 18 de 20 5f 5f |xlevel%)|..... __|
|00000220| 73 70 72 69 74 65 5f 73 | 63 61 6c 65 25 20 31 36 |sprite_s|cale% 16|
|00000230| 0d 00 15 05 e1 0d 00 16 | 1a 2a 7c 73 74 6f 70 20 |........|.*|stop |
|00000240| 50 52 4f 43 73 70 72 69 | 74 65 5f 69 6e 69 74 0d |PROCspri|te_init.|
|00000250| 00 17 04 0d 00 18 1d 2a | 7c 73 74 61 72 74 20 46 |.......*||start F|
|00000260| 4e 73 70 72 69 74 65 5f | 6c 6f 61 64 66 69 6c 65 |Nsprite_|loadfile|
|00000270| 0d 00 19 25 2a 7c 21 46 | 4e 73 70 72 69 74 65 5f |...%*|!F|Nsprite_|
|00000280| 6c 6f 61 64 66 69 6c 65 | 28 20 66 69 6c 65 5f 6e |loadfile|( file_n|
|00000290| 61 6d 65 20 29 0d 00 1a | 07 2a 7c 21 0d 00 1b 49 |ame )...|.*|!...I|
|000002a0| 2a 7c 21 54 68 69 73 20 | 66 75 6e 63 74 69 6f 6e |*|!This |function|
|000002b0| 20 6c 6f 61 64 73 20 61 | 20 73 70 65 63 69 66 69 | loads a| specifi|
|000002c0| 65 64 20 73 70 72 69 74 | 65 20 66 69 6c 65 20 69 |ed sprit|e file i|
|000002d0| 6e 74 6f 20 61 20 6e 65 | 77 20 73 70 72 69 74 65 |nto a ne|w sprite|
|000002e0| 20 61 72 65 61 0d 00 1c | 2a 2a 7c 21 61 6e 64 20 | area...|**|!and |
|000002f0| 72 65 74 75 72 6e 73 20 | 61 20 70 6f 69 6e 74 65 |returns |a pointe|
|00000300| 72 20 74 6f 20 74 68 61 | 74 20 61 72 65 61 2e 0d |r to tha|t area..|
|00000310| 00 1d 1d dd 20 a4 73 70 | 72 69 74 65 5f 6c 6f 61 |.... .sp|rite_loa|
|00000320| 64 66 69 6c 65 28 66 69 | 6c 65 24 29 0d 00 1e 1c |dfile(fi|le$)....|
|00000330| ea 20 70 74 72 25 2c 74 | 79 70 65 25 2c 66 74 79 |. ptr%,t|ype%,fty|
|00000340| 70 65 25 2c 65 78 74 25 | 0d 00 1f 32 c8 99 20 22 |pe%,ext%|...2.. "|
|00000350| 4f 53 5f 46 69 6c 65 22 | 2c 35 2c 66 69 6c 65 24 |OS_File"|,5,file$|
|00000360| 20 b8 20 74 79 70 65 25 | 2c 2c 66 74 79 70 65 25 | . type%|,,ftype%|
|00000370| 2c 2c 65 78 74 25 3b 6f | 6b 25 0d 00 20 2a e7 20 |,,ext%;o|k%.. *. |
|00000380| 74 79 70 65 25 3d 31 20 | 80 20 28 66 74 79 70 65 |type%=1 |. (ftype|
|00000390| 25 20 80 20 26 46 46 46 | 30 30 29 3d 26 46 46 39 |% . &FFF|00)=&FF9|
|000003a0| 30 30 20 8c 0d 00 21 1a | 20 20 70 74 72 25 3d a4 |00 ...!.| ptr%=.|
|000003b0| 6d 61 6c 6c 6f 63 28 65 | 78 74 25 2b 34 29 0d 00 |malloc(e|xt%+4)..|
|000003c0| 22 12 20 20 21 70 74 72 | 25 3d 65 78 74 25 2b 34 |". !ptr|%=ext%+4|
|000003d0| 0d 00 23 1f 20 20 c8 99 | 20 22 4f 53 5f 53 70 72 |..#. ..| "OS_Spr|
|000003e0| 69 74 65 4f 70 22 2c 32 | 36 35 2c 70 74 72 25 0d |iteOp",2|65,ptr%.|
|000003f0| 00 24 25 20 20 c8 99 20 | 22 4f 53 5f 53 70 72 69 |.$% .. |"OS_Spri|
|00000400| 74 65 4f 70 22 2c 32 36 | 36 2c 70 74 72 25 2c 66 |teOp",26|6,ptr%,f|
|00000410| 69 6c 65 24 0d 00 25 05 | cc 0d 00 26 2c 20 20 85 |ile$..%.|...&, .|
|00000420| 20 31 2c 22 27 22 2b 66 | 69 6c 65 24 2b 22 27 20 | 1,"'"+f|ile$+"' |
|00000430| 69 73 20 6e 6f 74 20 61 | 20 73 70 72 69 74 65 20 |is not a| sprite |
|00000440| 66 69 6c 65 22 0d 00 27 | 05 cd 0d 00 28 09 3d 70 |file"..'|....(.=p|
|00000450| 74 72 25 0d 00 29 1c 2a | 7c 73 74 6f 70 20 46 4e |tr%..).*||stop FN|
|00000460| 73 70 72 69 74 65 5f 6c | 6f 61 64 66 69 6c 65 0d |sprite_l|oadfile.|
|00000470| 00 2a 04 0d 00 2b 20 2a | 7c 73 74 61 72 74 20 50 |.*...+ *||start P|
|00000480| 52 4f 43 73 70 72 69 74 | 65 5f 6d 65 72 67 65 66 |ROCsprit|e_mergef|
|00000490| 69 6c 65 0d 00 2c 36 2a | 7c 21 50 52 4f 43 73 70 |ile..,6*||!PROCsp|
|000004a0| 72 69 74 65 5f 6d 65 72 | 67 65 66 69 6c 65 28 20 |rite_mer|gefile( |
|000004b0| 73 70 72 69 74 65 5f 61 | 72 65 61 20 2c 20 66 69 |sprite_a|rea , fi|
|000004c0| 6c 65 5f 6e 61 6d 65 20 | 29 0d 00 2d 07 2a 7c 21 |le_name |)..-.*|!|
|000004d0| 0d 00 2e 48 2a 7c 21 54 | 68 69 73 20 70 72 6f 63 |...H*|!T|his proc|
|000004e0| 65 64 75 72 65 20 6d 65 | 72 67 65 73 20 61 20 73 |edure me|rges a s|
|000004f0| 70 72 69 74 65 20 66 69 | 6c 65 20 69 6e 74 6f 20 |prite fi|le into |
|00000500| 61 6e 20 65 78 69 73 74 | 69 6e 67 20 73 70 72 69 |an exist|ing spri|
|00000510| 74 65 20 61 72 65 61 2e | 0d 00 2f 25 dd 20 f2 73 |te area.|../%. .s|
|00000520| 70 72 69 74 65 5f 6d 65 | 72 67 65 66 69 6c 65 28 |prite_me|rgefile(|
|00000530| f8 20 70 74 72 25 2c 66 | 69 6c 65 24 29 0d 00 30 |. ptr%,f|ile$)..0|
|00000540| 17 ea 20 74 79 70 65 25 | 2c 66 74 79 70 65 25 2c |.. type%|,ftype%,|
|00000550| 65 78 74 25 0d 00 31 32 | c8 99 20 22 4f 53 5f 46 |ext%..12|.. "OS_F|
|00000560| 69 6c 65 22 2c 35 2c 66 | 69 6c 65 24 20 b8 20 74 |ile",5,f|ile$ . t|
|00000570| 79 70 65 25 2c 2c 66 74 | 79 70 65 25 2c 2c 65 78 |ype%,,ft|ype%,,ex|
|00000580| 74 25 3b 6f 6b 25 0d 00 | 32 2a e7 20 74 79 70 65 |t%;ok%..|2*. type|
|00000590| 25 3d 31 20 80 20 28 66 | 74 79 70 65 25 20 80 20 |%=1 . (f|type% . |
|000005a0| 26 46 46 46 30 30 29 3d | 26 46 46 39 30 30 20 8c |&FFF00)=|&FF900 .|
|000005b0| 0d 00 33 28 20 20 f2 72 | 65 61 6c 6c 6f 63 28 70 |..3( .r|ealloc(p|
|000005c0| 74 72 25 2c 65 78 74 25 | 2b a4 73 69 7a 65 5f 6f |tr%,ext%|+.size_o|
|000005d0| 66 28 70 74 72 25 29 29 | 0d 00 34 16 20 20 21 70 |f(ptr%))|..4. !p|
|000005e0| 74 72 25 3d 65 78 74 25 | 2b 21 70 74 72 25 0d 00 |tr%=ext%|+!ptr%..|
|000005f0| 35 25 20 20 c8 99 20 22 | 4f 53 5f 53 70 72 69 74 |5% .. "|OS_Sprit|
|00000600| 65 4f 70 22 2c 32 36 37 | 2c 70 74 72 25 2c 66 69 |eOp",267|,ptr%,fi|
|00000610| 6c 65 24 0d 00 36 05 cc | 0d 00 37 2c 20 20 85 20 |le$..6..|..7, . |
|00000620| 31 2c 22 27 22 2b 66 69 | 6c 65 24 2b 22 27 20 69 |1,"'"+fi|le$+"' i|
|00000630| 73 20 6e 6f 74 20 61 20 | 73 70 72 69 74 65 20 66 |s not a |sprite f|
|00000640| 69 6c 65 22 0d 00 38 05 | cd 0d 00 39 05 e1 0d 00 |ile"..8.|...9....|
|00000650| 3a 1f 2a 7c 73 74 6f 70 | 20 50 52 4f 43 73 70 72 |:.*|stop| PROCspr|
|00000660| 69 74 65 5f 6d 65 72 67 | 65 66 69 6c 65 0d 00 3b |ite_merg|efile..;|
|00000670| 04 0d 00 3c 1f 2a 7c 73 | 74 61 72 74 20 50 52 4f |...<.*|s|tart PRO|
|00000680| 43 73 70 72 69 74 65 5f | 73 61 76 65 61 72 65 61 |Csprite_|savearea|
|00000690| 0d 00 3d 35 2a 7c 21 50 | 52 4f 43 73 70 72 69 74 |..=5*|!P|ROCsprit|
|000006a0| 65 5f 73 61 76 65 61 72 | 65 61 28 20 73 70 72 69 |e_savear|ea( spri|
|000006b0| 74 65 5f 61 72 65 61 20 | 2c 20 66 69 6c 65 5f 6e |te_area |, file_n|
|000006c0| 61 6d 65 20 29 0d 00 3e | 07 2a 7c 21 0d 00 3f 3b |ame )..>|.*|!..?;|
|000006d0| 2a 7c 21 54 68 69 73 20 | 70 72 6f 63 65 64 75 72 |*|!This |procedur|
|000006e0| 65 20 73 61 76 65 73 20 | 61 20 73 70 72 69 74 65 |e saves |a sprite|
|000006f0| 20 61 72 65 61 20 61 73 | 20 61 20 73 70 72 69 74 | area as| a sprit|
|00000700| 65 20 66 69 6c 65 2e 0d | 00 40 22 dd 20 f2 73 70 |e file..|.@". .sp|
|00000710| 72 69 74 65 5f 73 61 76 | 65 61 72 65 61 28 70 74 |rite_sav|earea(pt|
|00000720| 72 25 2c 66 69 6c 65 24 | 29 0d 00 41 23 c8 99 20 |r%,file$|)..A#.. |
|00000730| 22 4f 53 5f 53 70 72 69 | 74 65 4f 70 22 2c 32 36 |"OS_Spri|teOp",26|
|00000740| 38 2c 70 74 72 25 2c 66 | 69 6c 65 24 0d 00 42 05 |8,ptr%,f|ile$..B.|
|00000750| e1 0d 00 43 1e 2a 7c 73 | 74 6f 70 20 50 52 4f 43 |...C.*|s|top PROC|
|00000760| 73 70 72 69 74 65 5f 73 | 61 76 65 61 72 65 61 0d |sprite_s|avearea.|
|00000770| 00 44 04 0d 00 45 1f 2a | 7c 73 74 61 72 74 20 46 |.D...E.*||start F|
|00000780| 4e 73 70 72 69 74 65 5f | 63 72 65 61 74 65 61 72 |Nsprite_|createar|
|00000790| 65 61 0d 00 46 1a 2a 7c | 21 46 4e 73 70 72 69 74 |ea..F.*||!FNsprit|
|000007a0| 65 5f 63 72 65 61 74 65 | 61 72 65 61 0d 00 47 07 |e_create|area..G.|
|000007b0| 2a 7c 21 0d 00 48 49 2a | 7c 21 54 68 69 73 20 66 |*|!..HI*||!This f|
|000007c0| 75 6e 63 74 69 6f 6e 20 | 63 72 65 61 74 65 73 20 |unction |creates |
|000007d0| 61 20 6e 65 77 20 73 70 | 72 69 74 65 20 61 72 65 |a new sp|rite are|
|000007e0| 61 20 61 6e 64 20 72 65 | 74 75 72 6e 73 20 70 6f |a and re|turns po|
|000007f0| 69 6e 74 65 72 20 74 6f | 20 69 74 2e 0d 00 49 18 |inter to| it...I.|
|00000800| dd 20 a4 73 70 72 69 74 | 65 5f 63 72 65 61 74 65 |. .sprit|e_create|
|00000810| 61 72 65 61 0d 00 4a 0a | ea 20 70 74 72 25 0d 00 |area..J.|. ptr%..|
|00000820| 4b 21 70 74 72 25 3d a4 | 6d 61 6c 6c 6f 63 28 5f |K!ptr%=.|malloc(_|
|00000830| 5f 73 70 72 69 74 65 5f | 63 68 75 6e 6b 25 29 0d |_sprite_|chunk%).|
|00000840| 00 4c 19 21 70 74 72 25 | 3d 5f 5f 73 70 72 69 74 |.L.!ptr%|=__sprit|
|00000850| 65 5f 63 68 75 6e 6b 25 | 0d 00 4d 0d 70 74 72 25 |e_chunk%|..M.ptr%|
|00000860| 21 38 3d 31 36 0d 00 4e | 1d c8 99 20 22 4f 53 5f |!8=16..N|... "OS_|
|00000870| 53 70 72 69 74 65 4f 70 | 22 2c 32 36 35 2c 70 74 |SpriteOp|",265,pt|
|00000880| 72 25 0d 00 4f 09 3d 70 | 74 72 25 0d 00 50 1e 2a |r%..O.=p|tr%..P.*|
|00000890| 7c 73 74 6f 70 20 46 4e | 73 70 72 69 74 65 5f 63 ||stop FN|sprite_c|
|000008a0| 72 65 61 74 65 61 72 65 | 61 0d 00 51 04 0d 00 52 |reateare|a..Q...R|
|000008b0| 1b 2a 7c 73 74 61 72 74 | 20 50 52 4f 43 73 70 72 |.*|start| PROCspr|
|000008c0| 69 74 65 5f 6d 6f 76 65 | 0d 00 53 3b 2a 7c 21 50 |ite_move|..S;*|!P|
|000008d0| 52 4f 43 73 70 72 69 74 | 65 5f 6d 6f 76 65 28 20 |ROCsprit|e_move( |
|000008e0| 66 72 6f 6d 5f 61 72 65 | 61 20 2c 20 74 6f 5f 61 |from_are|a , to_a|
|000008f0| 72 65 61 20 2c 20 73 70 | 72 69 74 65 5f 6e 61 6d |rea , sp|rite_nam|
|00000900| 65 20 29 0d 00 54 07 2a | 7c 21 0d 00 55 44 2a 7c |e )..T.*||!..UD*||
|00000910| 21 54 68 69 73 20 70 72 | 6f 63 65 64 75 72 65 20 |!This pr|ocedure |
|00000920| 6d 6f 76 65 73 20 74 68 | 65 20 6e 61 6d 65 64 20 |moves th|e named |
|00000930| 73 70 72 69 74 65 20 66 | 72 6f 6d 20 6f 6e 65 20 |sprite f|rom one |
|00000940| 73 70 72 69 74 65 20 61 | 72 65 61 20 74 6f 0d 00 |sprite a|rea to..|
|00000950| 56 0f 2a 7c 21 61 6e 6f | 74 68 65 72 2e 0d 00 57 |V.*|!ano|ther...W|
|00000960| 27 dd 20 f2 73 70 72 69 | 74 65 5f 6d 6f 76 65 28 |'. .spri|te_move(|
|00000970| 66 72 6f 6d 25 2c f8 20 | 74 6f 25 2c 73 70 72 69 |from%,. |to%,spri|
|00000980| 74 65 24 29 0d 00 58 23 | f2 73 70 72 69 74 65 5f |te$)..X#|.sprite_|
|00000990| 63 6f 70 79 28 66 72 6f | 6d 25 2c 74 6f 25 2c 73 |copy(fro|m%,to%,s|
|000009a0| 70 72 69 74 65 24 29 0d | 00 59 21 f2 73 70 72 69 |prite$).|.Y!.spri|
|000009b0| 74 65 5f 64 65 6c 65 74 | 65 28 66 72 6f 6d 25 2c |te_delet|e(from%,|
|000009c0| 73 70 72 69 74 65 24 29 | 0d 00 5a 05 e1 0d 00 5b |sprite$)|..Z....[|
|000009d0| 1a 2a 7c 73 74 6f 70 20 | 50 52 4f 43 73 70 72 69 |.*|stop |PROCspri|
|000009e0| 74 65 5f 6d 6f 76 65 0d | 00 5c 04 0d 00 5d 1b 2a |te_move.|.\...].*|
|000009f0| 7c 73 74 61 72 74 20 50 | 52 4f 43 73 70 72 69 74 ||start P|ROCsprit|
|00000a00| 65 5f 63 6f 70 79 0d 00 | 5e 3b 2a 7c 21 50 52 4f |e_copy..|^;*|!PRO|
|00000a10| 43 73 70 72 69 74 65 5f | 63 6f 70 79 28 20 66 72 |Csprite_|copy( fr|
|00000a20| 6f 6d 5f 61 72 65 61 20 | 2c 20 74 6f 5f 61 72 65 |om_area |, to_are|
|00000a30| 61 20 2c 20 73 70 72 69 | 74 65 5f 6e 61 6d 65 20 |a , spri|te_name |
|00000a40| 29 0d 00 5f 07 2a 7c 21 | 0d 00 60 45 2a 7c 21 54 |).._.*|!|..`E*|!T|
|00000a50| 68 69 73 20 70 72 6f 63 | 65 64 75 72 65 20 63 6f |his proc|edure co|
|00000a60| 70 69 65 73 20 74 68 65 | 20 6e 61 6d 65 64 20 73 |pies the| named s|
|00000a70| 70 72 69 74 65 20 66 72 | 6f 6d 20 6f 6e 65 20 73 |prite fr|om one s|
|00000a80| 70 72 69 74 65 20 61 72 | 65 61 20 74 6f 0d 00 61 |prite ar|ea to..a|
|00000a90| 0f 2a 7c 21 61 6e 6f 74 | 68 65 72 2e 0d 00 62 27 |.*|!anot|her...b'|
|00000aa0| dd 20 f2 73 70 72 69 74 | 65 5f 63 6f 70 79 28 66 |. .sprit|e_copy(f|
|00000ab0| 72 6f 6d 25 2c f8 20 74 | 6f 25 2c 73 70 72 69 74 |rom%,. t|o%,sprit|
|00000ac0| 65 24 29 0d 00 63 2d ea | 20 77 25 2c 68 25 2c 6d |e$)..c-.| w%,h%,m|
|00000ad0| 61 73 6b 25 2c 6d 6f 64 | 65 25 2c 73 69 7a 65 25 |ask%,mod|e%,size%|
|00000ae0| 2c 66 72 6f 6d 70 74 72 | 25 2c 74 6f 70 74 72 25 |,fromptr|%,toptr%|
|00000af0| 0d 00 64 3d c8 99 20 22 | 4f 53 5f 53 70 72 69 74 |..d=.. "|OS_Sprit|
|00000b00| 65 4f 70 22 2c 32 39 36 | 2c 66 72 6f 6d 25 2c 73 |eOp",296|,from%,s|
|00000b10| 70 72 69 74 65 24 20 b8 | 20 2c 2c 2c 77 25 2c 68 |prite$ .| ,,,w%,h|
|00000b20| 25 2c 6d 61 73 6b 25 2c | 6d 6f 64 65 25 0d 00 65 |%,mask%,|mode%..e|
|00000b30| 2b f2 73 70 72 69 74 65 | 5f 63 72 65 61 74 65 28 |+.sprite|_create(|
|00000b40| 74 6f 25 2c 73 70 72 69 | 74 65 24 2c 6d 6f 64 65 |to%,spri|te$,mode|
|00000b50| 25 2c 77 25 2c 68 25 29 | 0d 00 66 2d e7 20 6d 61 |%,w%,h%)|..f-. ma|
|00000b60| 73 6b 25 20 8c 20 f2 73 | 70 72 69 74 65 5f 63 72 |sk% . .s|prite_cr|
|00000b70| 65 61 74 65 6d 61 73 6b | 28 74 6f 25 2c 73 70 72 |eatemask|(to%,spr|
|00000b80| 69 74 65 24 29 0d 00 67 | 34 c8 99 20 22 4f 53 5f |ite$)..g|4.. "OS_|
|00000b90| 53 70 72 69 74 65 4f 70 | 22 2c 32 39 33 2c 66 72 |SpriteOp|",293,fr|
|00000ba0| 6f 6d 25 2c 73 70 72 69 | 74 65 24 2c 2d 31 20 b8 |om%,spri|te$,-1 .|
|00000bb0| 20 2c 2c 2c 73 69 7a 65 | 25 0d 00 68 34 e7 20 73 | ,,,size|%..h4. s|
|00000bc0| 69 7a 65 25 20 8c 20 c8 | 99 20 22 4f 53 5f 53 70 |ize% . .|. "OS_Sp|
|00000bd0| 72 69 74 65 4f 70 22 2c | 32 39 33 2c 74 6f 25 2c |riteOp",|293,to%,|
|00000be0| 73 70 72 69 74 65 24 2c | 73 69 7a 65 25 0d 00 69 |sprite$,|size%..i|
|00000bf0| 33 c8 99 20 22 4f 53 5f | 53 70 72 69 74 65 4f 70 |3.. "OS_|SpriteOp|
|00000c00| 22 2c 32 38 30 2c 66 72 | 6f 6d 25 2c 73 70 72 69 |",280,fr|om%,spri|
|00000c10| 74 65 24 20 b8 20 2c 2c | 66 72 6f 6d 70 74 72 25 |te$ . ,,|fromptr%|
|00000c20| 0d 00 6a 2f c8 99 20 22 | 4f 53 5f 53 70 72 69 74 |..j/.. "|OS_Sprit|
|00000c30| 65 4f 70 22 2c 32 38 30 | 2c 74 6f 25 2c 73 70 72 |eOp",280|,to%,spr|
|00000c40| 69 74 65 24 20 b8 20 2c | 2c 74 6f 70 74 72 25 0d |ite$ . ,|,toptr%.|
|00000c50| 00 6b 13 73 69 7a 65 25 | 3d 21 66 72 6f 6d 70 74 |.k.size%|=!frompt|
|00000c60| 72 25 0d 00 6c 15 e3 20 | 49 3d 30 20 b8 20 73 69 |r%..l.. |I=0 . si|
|00000c70| 7a 65 25 20 88 20 34 0d | 00 6d 1f 20 20 21 28 74 |ze% . 4.|.m. !(t|
|00000c80| 6f 70 74 72 25 2b 49 29 | 3d 21 28 66 72 6f 6d 70 |optr%+I)|=!(fromp|
|00000c90| 74 72 25 2b 49 29 0d 00 | 6e 07 ed 20 49 0d 00 6f |tr%+I)..|n.. I..o|
|00000ca0| 05 e1 0d 00 70 1a 2a 7c | 73 74 6f 70 20 50 52 4f |....p.*||stop PRO|
|00000cb0| 43 73 70 72 69 74 65 5f | 63 6f 70 79 0d 00 71 04 |Csprite_|copy..q.|
|00000cc0| 0d 00 72 1d 2a 7c 73 74 | 61 72 74 20 50 52 4f 43 |..r.*|st|art PROC|
|00000cd0| 73 70 72 69 74 65 5f 63 | 72 65 61 74 65 0d 00 73 |sprite_c|reate..s|
|00000ce0| 4d 2a 7c 21 50 52 4f 43 | 73 70 72 69 74 65 5f 63 |M*|!PROC|sprite_c|
|00000cf0| 72 65 61 74 65 28 20 73 | 70 72 69 74 65 5f 61 72 |reate( s|prite_ar|
|00000d00| 65 61 20 2c 20 73 70 72 | 69 74 65 5f 6e 61 6d 65 |ea , spr|ite_name|
|00000d10| 20 2c 20 6d 6f 64 65 20 | 2c 20 77 69 64 74 68 20 | , mode |, width |
|00000d20| 2c 20 68 65 69 67 68 74 | 20 29 0d 00 74 07 2a 7c |, height| )..t.*||
|00000d30| 21 0d 00 75 49 2a 7c 21 | 54 68 69 73 20 72 6f 75 |!..uI*|!|This rou|
|00000d40| 74 69 6e 65 20 63 72 65 | 61 74 65 73 20 61 20 6e |tine cre|ates a n|
|00000d50| 65 77 20 73 70 72 69 74 | 65 20 69 6e 20 74 68 65 |ew sprit|e in the|
|00000d60| 20 73 70 65 63 69 66 69 | 65 64 20 61 72 65 61 2c | specifi|ed area,|
|00000d70| 20 75 73 69 6e 67 20 74 | 68 65 0d 00 76 31 2a 7c | using t|he..v1*||
|00000d80| 21 67 69 76 65 6e 20 6e | 61 6d 65 2c 20 73 63 72 |!given n|ame, scr|
|00000d90| 65 65 6e 20 6d 6f 64 65 | 2c 20 77 69 64 74 68 20 |een mode|, width |
|00000da0| 61 6e 64 20 68 65 69 67 | 68 74 2e 0d 00 77 30 dd |and heig|ht...w0.|
|00000db0| 20 f2 73 70 72 69 74 65 | 5f 63 72 65 61 74 65 28 | .sprite|_create(|
|00000dc0| f8 20 70 74 72 25 2c 73 | 70 72 69 74 65 24 2c 6d |. ptr%,s|prite$,m|
|00000dd0| 6f 64 65 25 2c 77 25 2c | 68 25 29 0d 00 78 0e ea |ode%,w%,|h%)..x..|
|00000de0| 20 65 72 72 25 2c 6f 6b | 25 0d 00 79 05 f5 0d 00 | err%,ok|%..y....|
|00000df0| 7a 41 20 20 c8 99 20 22 | 58 4f 53 5f 53 70 72 69 |zA .. "|XOS_Spri|
|00000e00| 74 65 4f 70 22 2c 32 37 | 31 2c 70 74 72 25 2c 73 |teOp",27|1,ptr%,s|
|00000e10| 70 72 69 74 65 24 2c 30 | 2c 77 25 2c 68 25 2c 6d |prite$,0|,w%,h%,m|
|00000e20| 6f 64 65 25 20 b8 20 65 | 72 72 25 3b 6f 6b 25 0d |ode% . e|rr%;ok%.|
|00000e30| 00 7b 17 20 20 6f 6b 25 | 3d 28 28 6f 6b 25 20 80 |.{. ok%|=((ok% .|
|00000e40| 20 31 29 3d 30 29 0d 00 | 7c 0f 20 20 e7 20 ac 20 | 1)=0)..||. . . |
|00000e50| 6f 6b 25 20 8c 0d 00 7d | 17 20 20 20 20 e7 20 21 |ok% ...}|. . !|
|00000e60| 65 72 72 25 20 3d 20 31 | 33 30 20 8c 0d 00 7e 37 |err% = 1|30 ...~7|
|00000e70| 20 20 20 20 20 20 f2 72 | 65 61 6c 6c 6f 63 28 70 | .r|ealloc(p|
|00000e80| 74 72 25 2c 5f 5f 73 70 | 72 69 74 65 5f 63 68 75 |tr%,__sp|rite_chu|
|00000e90| 6e 6b 25 2b a4 73 69 7a | 65 5f 6f 66 28 70 74 72 |nk%+.siz|e_of(ptr|
|00000ea0| 25 29 29 0d 00 7f 22 20 | 20 20 20 20 20 21 70 74 |%))..." | !pt|
|00000eb0| 72 25 20 2b 3d 20 5f 5f | 73 70 72 69 74 65 5f 63 |r% += __|sprite_c|
|00000ec0| 68 75 6e 6b 25 0d 00 80 | 09 20 20 20 20 cc 0d 00 |hunk%...|. ...|
|00000ed0| 81 27 20 20 20 20 20 20 | 85 20 21 65 72 72 25 2c |.' |. !err%,|
|00000ee0| a4 6f 73 5f 67 65 74 73 | 74 72 69 6e 67 28 65 72 |.os_gets|tring(er|
|00000ef0| 72 25 2b 34 29 0d 00 82 | 09 20 20 20 20 cd 0d 00 |r%+4)...|. ...|
|00000f00| 83 07 20 20 cd 0d 00 84 | 09 fd 20 6f 6b 25 0d 00 |.. ....|.. ok%..|
|00000f10| 85 05 e1 0d 00 86 1c 2a | 7c 73 74 6f 70 20 50 52 |.......*||stop PR|
|00000f20| 4f 43 73 70 72 69 74 65 | 5f 63 72 65 61 74 65 0d |OCsprite|_create.|
|00000f30| 00 87 04 0d 00 88 22 2a | 7c 73 74 61 72 74 20 46 |......"*||start F|
|00000f40| 4e 73 70 72 69 74 65 5f | 61 64 64 66 72 6f 6d 6d |Nsprite_|addfromm|
|00000f50| 65 6d 6f 72 79 0d 00 89 | 36 2a 7c 21 46 4e 73 70 |emory...|6*|!FNsp|
|00000f60| 72 69 74 65 5f 61 64 64 | 66 72 6f 6d 6d 65 6d 6f |rite_add|frommemo|
|00000f70| 72 79 28 20 73 70 72 69 | 74 65 5f 61 72 65 61 20 |ry( spri|te_area |
|00000f80| 2c 20 70 6f 69 6e 74 65 | 72 20 29 0d 00 8a 07 2a |, pointe|r )....*|
|00000f90| 7c 21 0d 00 8b 4c 2a 7c | 21 54 68 69 73 20 72 6f ||!...L*||!This ro|
|00000fa0| 75 74 69 6e 65 20 74 61 | 6b 65 73 20 61 20 70 6f |utine ta|kes a po|
|00000fb0| 69 6e 74 65 72 20 74 6f | 20 61 20 62 6c 6f 63 6b |inter to| a block|
|00000fc0| 20 6f 66 20 6d 65 6d 6f | 72 79 20 63 6f 6e 74 61 | of memo|ry conta|
|00000fd0| 69 6e 69 6e 67 20 61 20 | 73 70 72 69 74 65 0d 00 |ining a |sprite..|
|00000fe0| 8c 48 2a 7c 21 61 6e 64 | 20 61 64 64 73 20 74 68 |.H*|!and| adds th|
|00000ff0| 61 74 20 73 70 72 69 74 | 65 20 74 6f 20 74 68 65 |at sprit|e to the|
|00001000| 20 73 70 65 63 69 66 69 | 65 64 20 61 72 65 61 2c | specifi|ed area,|
|00001010| 20 72 65 74 75 72 6e 69 | 6e 67 20 74 68 65 20 73 | returni|ng the s|
|00001020| 70 72 69 74 65 73 0d 00 | 8d 3f 2a 7c 21 6e 61 6d |prites..|.?*|!nam|
|00001030| 65 2e 20 54 68 65 20 6d | 61 69 6e 20 75 73 65 72 |e. The m|ain user|
|00001040| 20 6f 66 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 | of this| routine|
|00001050| 20 69 73 20 74 68 65 20 | 64 72 61 77 20 6c 69 62 | is the |draw lib|
|00001060| 72 61 72 79 2e 0d 00 8e | 29 dd 20 a4 73 70 72 69 |rary....|). .spri|
|00001070| 74 65 5f 61 64 64 66 72 | 6f 6d 6d 65 6d 6f 72 79 |te_addfr|ommemory|
|00001080| 28 f8 20 61 72 65 61 25 | 2c 70 74 72 25 29 0d 00 |(. area%|,ptr%)..|
|00001090| 8f 0f ea 20 49 2c 73 70 | 72 69 74 65 24 0d 00 90 |... I,sp|rite$...|
|000010a0| 25 c8 95 20 28 61 72 65 | 61 25 21 30 29 20 2d 20 |%.. (are|a%!0) - |
|000010b0| 28 61 72 65 61 25 21 31 | 32 29 20 3c 20 21 70 74 |(area%!1|2) < !pt|
|000010c0| 72 25 0d 00 91 34 20 20 | f2 72 65 61 6c 6c 6f 63 |r%...4 |.realloc|
|000010d0| 28 61 72 65 61 25 2c 5f | 5f 73 70 72 69 74 65 5f |(area%,_|_sprite_|
|000010e0| 63 68 75 6e 6b 25 2b a4 | 73 69 7a 65 5f 6f 66 28 |chunk%+.|size_of(|
|000010f0| 70 74 72 25 29 29 0d 00 | 92 1f 20 20 21 61 72 65 |ptr%))..|.. !are|
|00001100| 61 25 20 2b 3d 20 5f 5f | 73 70 72 69 74 65 5f 63 |a% += __|sprite_c|
|00001110| 68 75 6e 6b 25 0d 00 93 | 05 ce 0d 00 94 10 61 72 |hunk%...|......ar|
|00001120| 65 61 25 21 34 20 2b 3d | 20 31 0d 00 95 19 e3 20 |ea%!4 +=| 1..... |
|00001130| 49 3d 30 20 b8 20 28 21 | 70 74 72 25 29 2d 34 20 |I=0 . (!|ptr%)-4 |
|00001140| 88 20 34 0d 00 96 28 20 | 20 21 28 61 72 65 61 25 |. 4...( | !(area%|
|00001150| 20 2b 20 28 61 72 65 61 | 25 21 31 32 29 20 2b 20 | + (area|%!12) + |
|00001160| 49 29 20 3d 20 70 74 72 | 25 21 49 0d 00 97 07 ed |I) = ptr|%!I.....|
|00001170| 20 49 0d 00 98 0e e3 20 | 49 3d 34 20 b8 20 31 35 | I..... |I=4 . 15|
|00001180| 0d 00 99 2d 20 20 73 70 | 72 69 74 65 24 20 2b 3d |...- sp|rite$ +=|
|00001190| 20 bd 28 3f 28 61 72 65 | 61 25 20 2b 20 28 61 72 | .(?(are|a% + (ar|
|000011a0| 65 61 25 21 31 32 29 20 | 2b 20 49 29 29 0d 00 9a |ea%!12) |+ I))...|
|000011b0| 07 ed 20 49 0d 00 9b 16 | c8 95 20 c2 73 70 72 69 |.. I....|.. .spri|
|000011c0| 74 65 24 2c 31 29 3d 22 | 20 22 0d 00 9c 19 20 20 |te$,1)="| ".... |
|000011d0| 73 70 72 69 74 65 24 20 | 3d 20 c0 73 70 72 69 74 |sprite$ |= .sprit|
|000011e0| 65 24 29 0d 00 9d 05 ce | 0d 00 9e 15 61 72 65 61 |e$).....|....area|
|000011f0| 25 21 31 32 20 2b 3d 20 | 21 70 74 72 25 0d 00 9f |%!12 += |!ptr%...|
|00001200| 0c 3d 73 70 72 69 74 65 | 24 0d 00 a0 21 2a 7c 73 |.=sprite|$...!*|s|
|00001210| 74 6f 70 20 46 4e 73 70 | 72 69 74 65 5f 61 64 64 |top FNsp|rite_add|
|00001220| 66 72 6f 6d 6d 65 6d 6f | 72 79 0d 00 a1 04 0d 00 |frommemo|ry......|
|00001230| a2 21 2a 7c 73 74 61 72 | 74 20 50 52 4f 43 73 70 |.!*|star|t PROCsp|
|00001240| 72 69 74 65 5f 63 72 65 | 61 74 65 6d 61 73 6b 0d |rite_cre|atemask.|
|00001250| 00 a3 39 2a 7c 21 50 52 | 4f 43 73 70 72 69 74 65 |..9*|!PR|OCsprite|
|00001260| 5f 63 72 65 61 74 65 6d | 61 73 6b 28 20 73 70 72 |_createm|ask( spr|
|00001270| 69 74 65 5f 61 72 65 61 | 20 2c 20 73 70 72 69 74 |ite_area| , sprit|
|00001280| 65 5f 6e 61 6d 65 20 29 | 0d 00 a4 07 2a 7c 21 0d |e_name )|....*|!.|
|00001290| 00 a5 3a 2a 7c 21 54 68 | 69 73 20 70 72 6f 63 65 |..:*|!Th|is proce|
|000012a0| 64 75 72 65 20 61 64 64 | 73 20 61 20 6d 61 73 6b |dure add|s a mask|
|000012b0| 20 74 6f 20 74 68 65 20 | 73 70 65 63 69 66 69 65 | to the |specifie|
|000012c0| 64 20 73 70 72 69 74 65 | 2e 0d 00 a6 28 dd 20 f2 |d sprite|....(. .|
|000012d0| 73 70 72 69 74 65 5f 63 | 72 65 61 74 65 6d 61 73 |sprite_c|reatemas|
|000012e0| 6b 28 f8 20 70 74 72 25 | 2c 73 70 72 69 74 65 24 |k(. ptr%|,sprite$|
|000012f0| 29 0d 00 a7 0e ea 20 65 | 72 72 25 2c 6f 6b 25 0d |)..... e|rr%,ok%.|
|00001300| 00 a8 05 f5 0d 00 a9 33 | 20 20 c8 99 20 22 58 4f |.......3| .. "XO|
|00001310| 53 5f 53 70 72 69 74 65 | 4f 70 22 2c 32 38 35 2c |S_Sprite|Op",285,|
|00001320| 70 74 72 25 2c 73 70 72 | 69 74 65 24 20 b8 20 65 |ptr%,spr|ite$ . e|
|00001330| 72 72 25 3b 6f 6b 25 0d | 00 aa 17 20 20 6f 6b 25 |rr%;ok%.|... ok%|
|00001340| 3d 28 28 6f 6b 25 20 80 | 20 31 29 3d 30 29 0d 00 |=((ok% .| 1)=0)..|
|00001350| ab 0f 20 20 e7 20 ac 20 | 6f 6b 25 20 8c 0d 00 ac |.. . . |ok% ....|
|00001360| 17 20 20 20 20 e7 20 21 | 65 72 72 25 20 3d 20 31 |. . !|err% = 1|
|00001370| 33 30 20 8c 0d 00 ad 37 | 20 20 20 20 20 20 f2 72 |30 ....7| .r|
|00001380| 65 61 6c 6c 6f 63 28 70 | 74 72 25 2c 5f 5f 73 70 |ealloc(p|tr%,__sp|
|00001390| 72 69 74 65 5f 63 68 75 | 6e 6b 25 2b a4 73 69 7a |rite_chu|nk%+.siz|
|000013a0| 65 5f 6f 66 28 70 74 72 | 25 29 29 0d 00 ae 22 20 |e_of(ptr|%))..." |
|000013b0| 20 20 20 20 20 21 70 74 | 72 25 20 2b 3d 20 5f 5f | !pt|r% += __|
|000013c0| 73 70 72 69 74 65 5f 63 | 68 75 6e 6b 25 0d 00 af |sprite_c|hunk%...|
|000013d0| 09 20 20 20 20 cc 0d 00 | b0 27 20 20 20 20 20 20 |. ...|.' |
|000013e0| 85 20 21 65 72 72 25 2c | a4 6f 73 5f 67 65 74 73 |. !err%,|.os_gets|
|000013f0| 74 72 69 6e 67 28 65 72 | 72 25 2b 34 29 0d 00 b1 |tring(er|r%+4)...|
|00001400| 09 20 20 20 20 cd 0d 00 | b2 07 20 20 cd 0d 00 b3 |. ...|.. ....|
|00001410| 09 fd 20 6f 6b 25 0d 00 | b4 05 e1 0d 00 b5 20 2a |.. ok%..|...... *|
|00001420| 7c 73 74 6f 70 20 50 52 | 4f 43 73 70 72 69 74 65 ||stop PR|OCsprite|
|00001430| 5f 63 72 65 61 74 65 6d | 61 73 6b 0d 00 b6 04 0d |_createm|ask.....|
|00001440| 00 b7 1d 2a 7c 73 74 61 | 72 74 20 50 52 4f 43 73 |...*|sta|rt PROCs|
|00001450| 70 72 69 74 65 5f 64 65 | 6c 65 74 65 0d 00 b8 35 |prite_de|lete...5|
|00001460| 2a 7c 21 50 52 4f 43 73 | 70 72 69 74 65 5f 64 65 |*|!PROCs|prite_de|
|00001470| 6c 65 74 65 28 20 73 70 | 72 69 74 65 5f 61 72 65 |lete( sp|rite_are|
|00001480| 61 20 2c 20 73 70 72 69 | 74 65 5f 6e 61 6d 65 20 |a , spri|te_name |
|00001490| 29 0d 00 b9 07 2a 7c 21 | 0d 00 ba 33 2a 7c 21 54 |)....*|!|...3*|!T|
|000014a0| 68 69 73 20 70 72 6f 63 | 65 64 75 72 65 20 64 65 |his proc|edure de|
|000014b0| 6c 65 74 65 73 20 74 68 | 65 20 73 70 65 63 69 66 |letes th|e specif|
|000014c0| 69 65 64 20 73 70 72 69 | 74 65 2e 0d 00 bb 22 dd |ied spri|te....".|
|000014d0| 20 f2 73 70 72 69 74 65 | 5f 64 65 6c 65 74 65 28 | .sprite|_delete(|
|000014e0| 70 74 72 25 2c 73 70 72 | 69 74 65 24 29 0d 00 bc |ptr%,spr|ite$)...|
|000014f0| 25 c8 99 20 22 4f 53 5f | 53 70 72 69 74 65 4f 70 |%.. "OS_|SpriteOp|
|00001500| 22 2c 32 38 31 2c 70 74 | 72 25 2c 73 70 72 69 74 |",281,pt|r%,sprit|
|00001510| 65 24 0d 00 bd 05 e1 0d | 00 be 1c 2a 7c 73 74 6f |e$......|...*|sto|
|00001520| 70 20 50 52 4f 43 73 70 | 72 69 74 65 5f 64 65 6c |p PROCsp|rite_del|
|00001530| 65 74 65 0d 00 bf 04 0d | 00 c0 1d 2a 7c 73 74 61 |ete.....|...*|sta|
|00001540| 72 74 20 50 52 4f 43 73 | 70 72 69 74 65 5f 72 65 |rt PROCs|prite_re|
|00001550| 6e 61 6d 65 0d 00 c1 3d | 2a 7c 21 50 52 4f 43 73 |name...=|*|!PROCs|
|00001560| 70 72 69 74 65 5f 72 65 | 6e 61 6d 65 28 20 73 70 |prite_re|name( sp|
|00001570| 72 69 74 65 5f 61 72 65 | 61 20 2c 20 6f 6c 64 5f |rite_are|a , old_|
|00001580| 6e 61 6d 65 20 2c 20 6e | 65 77 5f 6e 61 6d 65 20 |name , n|ew_name |
|00001590| 29 0d 00 c2 07 2a 7c 21 | 0d 00 c3 3f 2a 7c 21 54 |)....*|!|...?*|!T|
|000015a0| 68 69 73 20 70 72 6f 63 | 65 64 75 72 65 20 63 68 |his proc|edure ch|
|000015b0| 61 6e 67 65 73 20 74 68 | 65 20 6e 61 6d 65 20 6f |anges th|e name o|
|000015c0| 66 20 74 68 65 20 73 70 | 65 63 69 66 69 65 64 20 |f the sp|ecified |
|000015d0| 73 70 72 69 74 65 2e 0d | 00 c4 24 dd 20 f2 73 70 |sprite..|..$. .sp|
|000015e0| 72 69 74 65 5f 72 65 6e | 61 6d 65 28 70 74 72 25 |rite_ren|ame(ptr%|
|000015f0| 2c 6f 6c 64 24 2c 6e 65 | 77 24 29 0d 00 c5 27 c8 |,old$,ne|w$)...'.|
|00001600| 99 20 22 4f 53 5f 53 70 | 72 69 74 65 4f 70 22 2c |. "OS_Sp|riteOp",|
|00001610| 32 38 32 2c 70 74 72 25 | 2c 6f 6c 64 24 2c 6e 65 |282,ptr%|,old$,ne|
|00001620| 77 24 0d 00 c6 05 e1 0d | 00 c7 1c 2a 7c 73 74 6f |w$......|...*|sto|
|00001630| 70 20 50 52 4f 43 73 70 | 72 69 74 65 5f 72 65 6e |p PROCsp|rite_ren|
|00001640| 61 6d 65 0d 00 c8 04 0d | 00 c9 20 2a 7c 73 74 61 |ame.....|.. *|sta|
|00001650| 72 74 20 50 52 4f 43 73 | 70 72 69 74 65 5f 64 75 |rt PROCs|prite_du|
|00001660| 70 6c 69 63 61 74 65 0d | 00 ca 3f 2a 7c 21 50 52 |plicate.|..?*|!PR|
|00001670| 4f 43 73 70 72 69 74 65 | 5f 64 75 70 6c 69 63 61 |OCsprite|_duplica|
|00001680| 74 65 28 20 73 70 72 69 | 74 65 5f 61 72 65 61 20 |te( spri|te_area |
|00001690| 2c 20 6f 6c 64 5f 6e 61 | 6d 65 20 2c 6e 65 77 5f |, old_na|me ,new_|
|000016a0| 6e 61 6d 65 20 29 0d 00 | cb 07 2a 7c 21 0d 00 cc |name )..|..*|!...|
|000016b0| 3d 2a 7c 21 54 68 69 73 | 20 70 72 6f 63 65 64 75 |=*|!This| procedu|
|000016c0| 72 65 20 63 72 65 61 74 | 65 73 20 61 20 63 6f 70 |re creat|es a cop|
|000016d0| 79 20 6f 66 20 74 68 65 | 20 73 70 65 63 69 66 69 |y of the| specifi|
|000016e0| 65 64 20 73 70 72 69 74 | 65 2e 0d 00 cd 29 dd 20 |ed sprit|e....). |
|000016f0| f2 73 70 72 69 74 65 5f | 64 75 70 6c 69 63 61 74 |.sprite_|duplicat|
|00001700| 65 28 f8 20 70 74 72 25 | 2c 6f 6c 64 24 2c 6e 65 |e(. ptr%|,old$,ne|
|00001710| 77 24 29 0d 00 ce 0e ea | 20 65 72 72 25 2c 6f 6b |w$).....| err%,ok|
|00001720| 25 0d 00 cf 05 f5 0d 00 | d0 35 20 20 c8 99 20 22 |%.......|.5 .. "|
|00001730| 58 4f 53 5f 53 70 72 69 | 74 65 4f 70 22 2c 32 38 |XOS_Spri|teOp",28|
|00001740| 33 2c 70 74 72 25 2c 6f | 6c 64 24 2c 6e 65 77 24 |3,ptr%,o|ld$,new$|
|00001750| 20 b8 20 65 72 72 25 3b | 6f 6b 25 0d 00 d1 17 20 | . err%;|ok%.... |
|00001760| 20 6f 6b 25 3d 28 28 6f | 6b 25 20 80 20 31 29 3d | ok%=((o|k% . 1)=|
|00001770| 30 29 0d 00 d2 0f 20 20 | e7 20 ac 20 6f 6b 25 20 |0).... |. . ok% |
|00001780| 8c 0d 00 d3 17 20 20 20 | 20 e7 20 21 65 72 72 25 |..... | . !err%|
|00001790| 20 3d 20 31 33 30 20 8c | 0d 00 d4 37 20 20 20 20 | = 130 .|...7 |
|000017a0| 20 20 f2 72 65 61 6c 6c | 6f 63 28 70 74 72 25 2c | .reall|oc(ptr%,|
|000017b0| 5f 5f 73 70 72 69 74 65 | 5f 63 68 75 6e 6b 25 2b |__sprite|_chunk%+|
|000017c0| a4 73 69 7a 65 5f 6f 66 | 28 70 74 72 25 29 29 0d |.size_of|(ptr%)).|
|000017d0| 00 d5 22 20 20 20 20 20 | 20 21 70 74 72 25 20 2b |.." | !ptr% +|
|000017e0| 3d 20 5f 5f 73 70 72 69 | 74 65 5f 63 68 75 6e 6b |= __spri|te_chunk|
|000017f0| 25 0d 00 d6 09 20 20 20 | 20 cc 0d 00 d7 27 20 20 |%.... | ....' |
|00001800| 20 20 20 20 85 20 21 65 | 72 72 25 2c a4 6f 73 5f | . !e|rr%,.os_|
|00001810| 67 65 74 73 74 72 69 6e | 67 28 65 72 72 25 2b 34 |getstrin|g(err%+4|
|00001820| 29 0d 00 d8 09 20 20 20 | 20 cd 0d 00 d9 07 20 20 |).... | ..... |
|00001830| cd 0d 00 da 09 fd 20 6f | 6b 25 0d 00 db 05 e1 0d |...... o|k%......|
|00001840| 00 dc 1f 2a 7c 73 74 6f | 70 20 50 52 4f 43 73 70 |...*|sto|p PROCsp|
|00001850| 72 69 74 65 5f 64 75 70 | 6c 69 63 61 74 65 0d 00 |rite_dup|licate..|
|00001860| dd 04 0d 00 de 19 2a 7c | 73 74 61 72 74 20 46 4e |......*||start FN|
|00001870| 73 70 72 69 74 65 5f 73 | 69 7a 65 0d 00 df 31 2a |sprite_s|ize...1*|
|00001880| 7c 21 46 4e 73 70 72 69 | 74 65 5f 73 69 7a 65 28 ||!FNspri|te_size(|
|00001890| 20 73 70 72 69 74 65 5f | 61 72 65 61 20 2c 20 73 | sprite_|area , s|
|000018a0| 70 72 69 74 65 5f 6e 61 | 6d 65 20 29 0d 00 e0 07 |prite_na|me )....|
|000018b0| 2a 7c 21 0d 00 e1 41 2a | 7c 21 54 68 69 73 20 66 |*|!...A*||!This f|
|000018c0| 75 6e 63 74 69 6f 6e 20 | 72 65 74 75 72 6e 73 20 |unction |returns |
|000018d0| 74 68 65 20 73 69 7a 65 | 20 69 6e 20 62 79 74 65 |the size| in byte|
|000018e0| 73 20 6f 66 20 61 20 67 | 69 76 65 6e 20 73 70 72 |s of a g|iven spr|
|000018f0| 69 74 65 73 0d 00 e2 12 | 2a 7c 21 64 65 66 69 6e |ites....|*|!defin|
|00001900| 69 74 69 6f 6e 2e 0d 00 | e3 20 dd 20 a4 73 70 72 |ition...|. . .spr|
|00001910| 69 74 65 5f 73 69 7a 65 | 28 70 74 72 25 2c 73 70 |ite_size|(ptr%,sp|
|00001920| 72 69 74 65 24 29 0d 00 | e4 08 ea 20 70 25 0d 00 |rite$)..|... p%..|
|00001930| e5 2c c8 99 20 22 4f 53 | 5f 53 70 72 69 74 65 4f |.,.. "OS|_SpriteO|
|00001940| 70 22 2c 32 38 30 2c 70 | 74 72 25 2c 73 70 72 69 |p",280,p|tr%,spri|
|00001950| 74 65 24 20 b8 20 2c 2c | 70 25 0d 00 e6 0c 3d 28 |te$ . ,,|p%....=(|
|00001960| 21 70 25 29 2d 34 0d 00 | e7 18 2a 7c 73 74 6f 70 |!p%)-4..|..*|stop|
|00001970| 20 46 4e 73 70 72 69 74 | 65 5f 73 69 7a 65 0d 00 | FNsprit|e_size..|
|00001980| e8 04 0d 00 e9 1f 2a 7c | 73 74 61 72 74 20 46 4e |......*||start FN|
|00001990| 73 70 72 69 74 65 5f 67 | 65 74 70 6f 69 6e 74 65 |sprite_g|etpointe|
|000019a0| 72 0d 00 ea 37 2a 7c 21 | 46 4e 73 70 72 69 74 65 |r...7*|!|FNsprite|
|000019b0| 5f 67 65 74 70 6f 69 6e | 74 65 72 28 20 73 70 72 |_getpoin|ter( spr|
|000019c0| 69 74 65 5f 61 72 65 61 | 20 2c 20 73 70 72 69 74 |ite_area| , sprit|
|000019d0| 65 5f 6e 61 6d 65 20 29 | 0d 00 eb 07 2a 7c 21 0d |e_name )|....*|!.|
|000019e0| 00 ec 48 2a 7c 21 54 68 | 69 73 20 66 75 6e 63 74 |..H*|!Th|is funct|
|000019f0| 69 6f 6e 20 72 65 74 75 | 72 6e 73 20 61 20 70 6f |ion retu|rns a po|
|00001a00| 69 6e 74 65 72 20 74 6f | 20 74 68 65 20 73 70 65 |inter to| the spe|
|00001a10| 63 69 66 69 65 64 20 73 | 70 72 69 74 65 73 20 6c |cified s|prites l|
|00001a20| 6f 63 61 74 69 6f 6e 0d | 00 ed 44 2a 7c 21 69 6e |ocation.|..D*|!in|
|00001a30| 20 6d 65 6d 6f 72 79 2e | 20 54 68 65 20 6d 61 69 | memory.| The mai|
|00001a40| 6e 20 75 73 65 72 20 6f | 66 20 74 68 69 73 20 72 |n user o|f this r|
|00001a50| 6f 75 74 69 6e 65 20 69 | 73 20 74 68 65 20 64 72 |outine i|s the dr|
|00001a60| 61 77 20 6c 69 62 72 61 | 72 79 2e 0d 00 ee 26 dd |aw libra|ry....&.|
|00001a70| 20 a4 73 70 72 69 74 65 | 5f 67 65 74 70 6f 69 6e | .sprite|_getpoin|
|00001a80| 74 65 72 28 70 74 72 25 | 2c 73 70 72 69 74 65 24 |ter(ptr%|,sprite$|
|00001a90| 29 0d 00 ef 08 ea 20 70 | 25 0d 00 f0 2c c8 99 20 |)..... p|%...,.. |
|00001aa0| 22 4f 53 5f 53 70 72 69 | 74 65 4f 70 22 2c 32 38 |"OS_Spri|teOp",28|
|00001ab0| 30 2c 70 74 72 25 2c 73 | 70 72 69 74 65 24 20 b8 |0,ptr%,s|prite$ .|
|00001ac0| 20 2c 2c 70 25 0d 00 f1 | 07 3d 70 25 0d 00 f2 1e | ,,p%...|.=p%....|
|00001ad0| 2a 7c 73 74 6f 70 20 46 | 4e 73 70 72 69 74 65 5f |*|stop F|Nsprite_|
|00001ae0| 67 65 74 70 6f 69 6e 74 | 65 72 0d 00 f3 04 0d 00 |getpoint|er......|
|00001af0| f4 1a 2a 7c 73 74 61 72 | 74 20 46 4e 73 70 72 69 |..*|star|t FNspri|
|00001b00| 74 65 5f 77 69 64 74 68 | 0d 00 f5 32 2a 7c 21 46 |te_width|...2*|!F|
|00001b10| 4e 73 70 72 69 74 65 5f | 77 69 64 74 68 28 20 73 |Nsprite_|width( s|
|00001b20| 70 72 69 74 65 5f 61 72 | 65 61 20 2c 20 73 70 72 |prite_ar|ea , spr|
|00001b30| 69 74 65 5f 6e 61 6d 65 | 20 29 0d 00 f6 07 2a 7c |ite_name| )....*||
|00001b40| 21 0d 00 f7 39 2a 7c 21 | 54 68 69 73 20 66 75 6e |!...9*|!|This fun|
|00001b50| 63 74 69 6f 6e 20 72 65 | 74 75 72 6e 73 20 74 68 |ction re|turns th|
|00001b60| 65 20 77 69 64 74 68 20 | 6f 66 20 61 20 67 69 76 |e width |of a giv|
|00001b70| 65 6e 20 73 70 72 69 74 | 65 2e 0d 00 f8 21 dd 20 |en sprit|e....!. |
|00001b80| a4 73 70 72 69 74 65 5f | 77 69 64 74 68 28 70 74 |.sprite_|width(pt|
|00001b90| 72 25 2c 73 70 72 69 74 | 65 24 29 0d 00 f9 0c ea |r%,sprit|e$).....|
|00001ba0| 20 77 69 64 74 68 25 0d | 00 fa 31 c8 99 20 22 4f | width%.|..1.. "O|
|00001bb0| 53 5f 53 70 72 69 74 65 | 4f 70 22 2c 32 39 36 2c |S_Sprite|Op",296,|
|00001bc0| 70 74 72 25 2c 73 70 72 | 69 74 65 24 20 b8 20 2c |ptr%,spr|ite$ . ,|
|00001bd0| 2c 2c 77 69 64 74 68 25 | 0d 00 fb 0b 3d 77 69 64 |,,width%|....=wid|
|00001be0| 74 68 25 0d 00 fc 19 2a | 7c 73 74 6f 70 20 46 4e |th%....*||stop FN|
|00001bf0| 73 70 72 69 74 65 5f 77 | 69 64 74 68 0d 00 fd 04 |sprite_w|idth....|
|00001c00| 0d 00 fe 1b 2a 7c 73 74 | 61 72 74 20 46 4e 73 70 |....*|st|art FNsp|
|00001c10| 72 69 74 65 5f 68 65 69 | 67 68 74 0d 00 ff 33 2a |rite_hei|ght...3*|
|00001c20| 7c 21 46 4e 73 70 72 69 | 74 65 5f 68 65 69 67 68 ||!FNspri|te_heigh|
|00001c30| 74 28 20 73 70 72 69 74 | 65 5f 61 72 65 61 20 2c |t( sprit|e_area ,|
|00001c40| 20 73 70 72 69 74 65 5f | 6e 61 6d 65 20 29 0d 01 | sprite_|name )..|
|00001c50| 00 07 2a 7c 21 0d 01 01 | 3a 2a 7c 21 54 68 69 73 |..*|!...|:*|!This|
|00001c60| 20 66 75 6e 63 74 69 6f | 6e 20 72 65 74 75 72 6e | functio|n return|
|00001c70| 73 20 74 68 65 20 68 65 | 69 67 68 74 20 6f 66 20 |s the he|ight of |
|00001c80| 61 20 67 69 76 65 6e 20 | 73 70 72 69 74 65 2e 0d |a given |sprite..|
|00001c90| 01 02 22 dd 20 a4 73 70 | 72 69 74 65 5f 68 65 69 |..". .sp|rite_hei|
|00001ca0| 67 68 74 28 70 74 72 25 | 2c 73 70 72 69 74 65 24 |ght(ptr%|,sprite$|
|00001cb0| 29 0d 01 03 0d ea 20 68 | 65 69 67 68 74 25 0d 01 |)..... h|eight%..|
|00001cc0| 04 33 c8 99 20 22 4f 53 | 5f 53 70 72 69 74 65 4f |.3.. "OS|_SpriteO|
|00001cd0| 70 22 2c 32 39 36 2c 70 | 74 72 25 2c 73 70 72 69 |p",296,p|tr%,spri|
|00001ce0| 74 65 24 20 b8 20 2c 2c | 2c 2c 68 65 69 67 68 74 |te$ . ,,|,,height|
|00001cf0| 25 0d 01 05 0c 3d 68 65 | 69 67 68 74 25 0d 01 06 |%....=he|ight%...|
|00001d00| 1a 2a 7c 73 74 6f 70 20 | 46 4e 73 70 72 69 74 65 |.*|stop |FNsprite|
|00001d10| 5f 68 65 69 67 68 74 0d | 01 07 04 0d 01 08 19 2a |_height.|.......*|
|00001d20| 7c 73 74 61 72 74 20 46 | 4e 73 70 72 69 74 65 5f ||start F|Nsprite_|
|00001d30| 6d 6f 64 65 0d 01 09 31 | 2a 7c 21 46 4e 73 70 72 |mode...1|*|!FNspr|
|00001d40| 69 74 65 5f 6d 6f 64 65 | 28 20 73 70 72 69 74 65 |ite_mode|( sprite|
|00001d50| 5f 61 72 65 61 20 2c 20 | 73 70 72 69 74 65 5f 6e |_area , |sprite_n|
|00001d60| 61 6d 65 20 29 0d 01 0a | 07 2a 7c 21 0d 01 0b 3d |ame )...|.*|!...=|
|00001d70| 2a 7c 21 54 68 69 73 20 | 66 75 6e 63 74 69 6f 6e |*|!This |function|
|00001d80| 20 72 65 74 75 72 6e 73 | 20 74 68 65 20 6d 6f 64 | returns| the mod|
|00001d90| 65 20 69 6e 20 77 68 69 | 63 68 20 61 20 67 69 76 |e in whi|ch a giv|
|00001da0| 65 6e 20 73 70 72 69 74 | 65 0d 01 0c 13 2a 7c 21 |en sprit|e....*|!|
|00001db0| 77 61 73 20 64 65 66 69 | 6e 65 64 2e 0d 01 0d 20 |was defi|ned.... |
|00001dc0| dd 20 a4 73 70 72 69 74 | 65 5f 6d 6f 64 65 28 70 |. .sprit|e_mode(p|
|00001dd0| 74 72 25 2c 73 70 72 69 | 74 65 24 29 0d 01 0e 0b |tr%,spri|te$)....|
|00001de0| ea 20 6d 6f 64 65 25 0d | 01 0f 33 c8 99 20 22 4f |. mode%.|..3.. "O|
|00001df0| 53 5f 53 70 72 69 74 65 | 4f 70 22 2c 32 39 36 2c |S_Sprite|Op",296,|
|00001e00| 70 74 72 25 2c 73 70 72 | 69 74 65 24 20 b8 20 2c |ptr%,spr|ite$ . ,|
|00001e10| 2c 2c 2c 2c 2c 6d 6f 64 | 65 25 0d 01 10 0a 3d 6d |,,,,,mod|e%....=m|
|00001e20| 6f 64 65 25 0d 01 11 18 | 2a 7c 73 74 6f 70 20 46 |ode%....|*|stop F|
|00001e30| 4e 73 70 72 69 74 65 5f | 6d 6f 64 65 0d 01 12 04 |Nsprite_|mode....|
|00001e40| 0d 01 13 19 2a 7c 73 74 | 61 72 74 20 46 4e 73 70 |....*|st|art FNsp|
|00001e50| 72 69 74 65 5f 6d 61 73 | 6b 0d 01 14 31 2a 7c 21 |rite_mas|k...1*|!|
|00001e60| 46 4e 73 70 72 69 74 65 | 5f 6d 61 73 6b 28 20 73 |FNsprite|_mask( s|
|00001e70| 70 72 69 74 65 5f 61 72 | 65 61 20 2c 20 73 70 72 |prite_ar|ea , spr|
|00001e80| 69 74 65 5f 6e 61 6d 65 | 20 29 0d 01 15 07 2a 7c |ite_name| )....*||
|00001e90| 21 0d 01 16 45 2a 7c 21 | 54 68 69 73 20 66 75 6e |!...E*|!|This fun|
|00001ea0| 63 74 69 6f 6e 20 72 65 | 74 75 72 6e 73 20 54 52 |ction re|turns TR|
|00001eb0| 55 45 20 69 66 20 74 68 | 65 20 73 70 65 63 69 66 |UE if th|e specif|
|00001ec0| 69 65 64 20 73 70 72 69 | 74 65 20 68 61 73 20 61 |ied spri|te has a|
|00001ed0| 20 6d 61 73 6b 2c 0d 01 | 17 20 2a 7c 21 61 6e 64 | mask,..|. *|!and|
|00001ee0| 20 46 41 4c 53 45 20 69 | 66 20 69 74 20 64 6f 65 | FALSE i|f it doe|
|00001ef0| 73 20 6e 6f 74 2e 0d 01 | 18 20 dd 20 a4 73 70 72 |s not...|. . .spr|
|00001f00| 69 74 65 5f 6d 61 73 6b | 28 70 74 72 25 2c 73 70 |ite_mask|(ptr%,sp|
|00001f10| 72 69 74 65 24 29 0d 01 | 19 0b ea 20 6d 61 73 6b |rite$)..|... mask|
|00001f20| 25 0d 01 1a 32 c8 99 20 | 22 4f 53 5f 53 70 72 69 |%...2.. |"OS_Spri|
|00001f30| 74 65 4f 70 22 2c 32 39 | 36 2c 70 74 72 25 2c 73 |teOp",29|6,ptr%,s|
|00001f40| 70 72 69 74 65 24 20 b8 | 20 2c 2c 2c 2c 2c 6d 61 |prite$ .| ,,,,,ma|
|00001f50| 73 6b 25 0d 01 1b 10 3d | 28 6d 61 73 6b 25 20 3d |sk%....=|(mask% =|
|00001f60| 20 31 29 0d 01 1c 18 2a | 7c 73 74 6f 70 20 46 4e | 1)....*||stop FN|
|00001f70| 73 70 72 69 74 65 5f 6d | 61 73 6b 0d 01 1d 04 0d |sprite_m|ask.....|
|00001f80| 01 1e 1b 2a 7c 73 74 61 | 72 74 20 50 52 4f 43 73 |...*|sta|rt PROCs|
|00001f90| 70 72 69 74 65 5f 70 6c | 6f 74 0d 01 1f 47 2a 7c |prite_pl|ot...G*||
|00001fa0| 21 50 52 4f 43 73 70 72 | 69 74 65 5f 70 6c 6f 74 |!PROCspr|ite_plot|
|00001fb0| 28 20 73 70 72 69 74 65 | 5f 61 72 65 61 20 2c 20 |( sprite|_area , |
|00001fc0| 73 70 72 69 74 65 5f 6e | 61 6d 65 2c 20 78 20 2c |sprite_n|ame, x ,|
|00001fd0| 20 79 20 2c 20 70 6c 6f | 74 5f 73 74 79 6c 65 20 | y , plo|t_style |
|00001fe0| 29 0d 01 20 07 2a 7c 21 | 0d 01 21 49 2a 7c 21 54 |).. .*|!|..!I*|!T|
|00001ff0| 68 69 73 20 70 72 6f 63 | 65 64 75 72 65 20 70 6c |his proc|edure pl|
|00002000| 6f 74 73 20 74 68 65 20 | 73 70 65 63 69 66 69 65 |ots the |specifie|
|00002010| 64 20 73 70 72 69 74 65 | 20 61 74 20 28 78 2c 79 |d sprite| at (x,y|
|00002020| 29 20 75 73 69 6e 67 20 | 74 68 65 20 67 69 76 65 |) using |the give|
|00002030| 6e 0d 01 22 12 2a 7c 21 | 70 6c 6f 74 20 73 74 79 |n..".*|!|plot sty|
|00002040| 6c 65 2e 0d 01 23 2c dd | 20 f2 73 70 72 69 74 65 |le...#,.| .sprite|
|00002050| 5f 70 6c 6f 74 28 70 74 | 72 25 2c 73 70 72 69 74 |_plot(pt|r%,sprit|
|00002060| 65 24 2c 78 25 2c 79 25 | 2c 74 79 70 65 25 29 0d |e$,x%,y%|,type%).|
|00002070| 01 24 12 ea 20 73 69 7a | 65 25 2c 74 61 62 6c 65 |.$.. siz|e%,table|
|00002080| 25 0d 01 25 43 c8 99 20 | 22 43 6f 6c 6f 75 72 54 |%..%C.. |"ColourT|
|00002090| 72 61 6e 73 5f 53 65 6c | 65 63 74 54 61 62 6c 65 |rans_Sel|ectTable|
|000020a0| 22 2c 70 74 72 25 2c 73 | 70 72 69 74 65 24 2c 2d |",ptr%,s|prite$,-|
|000020b0| 31 2c 2d 31 2c 30 2c 32 | 20 b8 20 2c 2c 2c 2c 73 |1,-1,0,2| . ,,,,s|
|000020c0| 69 7a 65 25 0d 01 26 19 | 74 61 62 6c 65 25 3d a4 |ize%..&.|table%=.|
|000020d0| 6d 61 6c 6c 6f 63 28 73 | 69 7a 65 25 29 0d 01 27 |malloc(s|ize%)..'|
|000020e0| 3c c8 99 20 22 43 6f 6c | 6f 75 72 54 72 61 6e 73 |<.. "Col|ourTrans|
|000020f0| 5f 53 65 6c 65 63 74 54 | 61 62 6c 65 22 2c 70 74 |_SelectT|able",pt|
|00002100| 72 25 2c 73 70 72 69 74 | 65 24 2c 2d 31 2c 2d 31 |r%,sprit|e$,-1,-1|
|00002110| 2c 74 61 62 6c 65 25 2c | 32 0d 01 28 35 c8 99 20 |,table%,|2..(5.. |
|00002120| 22 4f 53 5f 53 70 72 69 | 74 65 4f 70 22 2c 32 39 |"OS_Spri|teOp",29|
|00002130| 30 2c 70 74 72 25 2c 73 | 70 72 69 74 65 24 2c 78 |0,ptr%,s|prite$,x|
|00002140| 25 2c 79 25 2c 74 79 70 | 65 25 20 84 20 38 0d 01 |%,y%,typ|e% . 8..|
|00002150| 29 11 f2 66 72 65 65 28 | 74 61 62 6c 65 25 29 0d |)..free(|table%).|
|00002160| 01 2a 05 e1 0d 01 2b 1a | 2a 7c 73 74 6f 70 20 50 |.*....+.|*|stop P|
|00002170| 52 4f 43 73 70 72 69 74 | 65 5f 70 6c 6f 74 0d 01 |ROCsprit|e_plot..|
|00002180| 2c 04 0d 01 2d 21 2a 7c | 73 74 61 72 74 20 50 52 |,...-!*||start PR|
|00002190| 4f 43 73 70 72 69 74 65 | 5f 70 6c 6f 74 73 63 61 |OCsprite|_plotsca|
|000021a0| 6c 65 64 0d 01 2e 4e 2a | 7c 21 50 52 4f 43 73 70 |led...N*||!PROCsp|
|000021b0| 72 69 74 65 5f 70 6c 6f | 74 73 63 61 6c 65 64 28 |rite_plo|tscaled(|
|000021c0| 20 61 72 65 61 20 2c 20 | 6e 61 6d 65 2c 20 78 20 | area , |name, x |
|000021d0| 2c 20 79 20 2c 20 73 74 | 79 6c 65 20 2c 20 78 6d |, y , st|yle , xm|
|000021e0| 20 2c 20 78 64 20 2c 20 | 79 6d 20 2c 20 79 64 20 | , xd , |ym , yd |
|000021f0| 29 0d 01 2f 07 2a 7c 21 | 0d 01 30 49 2a 7c 21 54 |)../.*|!|..0I*|!T|
|00002200| 68 69 73 20 70 72 6f 63 | 65 64 75 72 65 20 70 6c |his proc|edure pl|
|00002210| 6f 74 73 20 74 68 65 20 | 73 70 65 63 69 66 69 65 |ots the |specifie|
|00002220| 64 20 73 70 72 69 74 65 | 20 61 74 20 28 78 2c 79 |d sprite| at (x,y|
|00002230| 29 20 75 73 69 6e 67 20 | 74 68 65 20 67 69 76 65 |) using |the give|
|00002240| 6e 0d 01 31 49 2a 7c 21 | 70 6c 6f 74 20 73 74 79 |n..1I*|!|plot sty|
|00002250| 6c 65 2e 20 54 68 65 20 | 73 70 72 69 74 65 20 69 |le. The |sprite i|
|00002260| 73 20 73 63 61 6c 65 64 | 20 62 79 20 61 20 66 61 |s scaled| by a fa|
|00002270| 63 74 6f 72 20 6f 66 20 | 78 6d 2f 78 64 20 68 6f |ctor of |xm/xd ho|
|00002280| 72 69 7a 6f 6e 74 61 6c | 6c 79 0d 01 32 1c 2a 7c |rizontal|ly..2.*||
|00002290| 21 61 6e 64 20 79 6d 2f | 79 64 20 76 65 72 74 69 |!and ym/|yd verti|
|000022a0| 63 61 6c 6c 79 2e 0d 01 | 33 3c dd 20 f2 73 70 72 |cally...|3<. .spr|
|000022b0| 69 74 65 5f 70 6c 6f 74 | 73 63 61 6c 65 64 28 70 |ite_plot|scaled(p|
|000022c0| 74 72 25 2c 73 70 72 69 | 74 65 24 2c 78 25 2c 79 |tr%,spri|te$,x%,y|
|000022d0| 25 2c 68 31 25 2c 68 32 | 25 2c 76 31 25 2c 76 32 |%,h1%,h2|%,v1%,v2|
|000022e0| 25 29 0d 01 34 12 ea 20 | 73 69 7a 65 25 2c 74 61 |%)..4.. |size%,ta|
|000022f0| 62 6c 65 25 0d 01 35 2f | 5f 5f 73 70 72 69 74 65 |ble%..5/|__sprite|
|00002300| 5f 73 63 61 6c 65 25 21 | 30 3d 68 31 25 3a 5f 5f |_scale%!|0=h1%:__|
|00002310| 73 70 72 69 74 65 5f 73 | 63 61 6c 65 25 21 38 3d |sprite_s|cale%!8=|
|00002320| 68 32 25 0d 01 36 30 5f | 5f 73 70 72 69 74 65 5f |h2%..60_|_sprite_|
|00002330| 73 63 61 6c 65 25 21 34 | 3d 76 31 25 3a 5f 5f 73 |scale%!4|=v1%:__s|
|00002340| 70 72 69 74 65 5f 73 63 | 61 6c 65 25 21 31 32 3d |prite_sc|ale%!12=|
|00002350| 76 32 25 0d 01 37 43 c8 | 99 20 22 43 6f 6c 6f 75 |v2%..7C.|. "Colou|
|00002360| 72 54 72 61 6e 73 5f 53 | 65 6c 65 63 74 54 61 62 |rTrans_S|electTab|
|00002370| 6c 65 22 2c 70 74 72 25 | 2c 73 70 72 69 74 65 24 |le",ptr%|,sprite$|
|00002380| 2c 2d 31 2c 2d 31 2c 30 | 2c 32 20 b8 20 2c 2c 2c |,-1,-1,0|,2 . ,,,|
|00002390| 2c 73 69 7a 65 25 0d 01 | 38 19 74 61 62 6c 65 25 |,size%..|8.table%|
|000023a0| 3d a4 6d 61 6c 6c 6f 63 | 28 73 69 7a 65 25 29 0d |=.malloc|(size%).|
|000023b0| 01 39 3c c8 99 20 22 43 | 6f 6c 6f 75 72 54 72 61 |.9<.. "C|olourTra|
|000023c0| 6e 73 5f 53 65 6c 65 63 | 74 54 61 62 6c 65 22 2c |ns_Selec|tTable",|
|000023d0| 70 74 72 25 2c 73 70 72 | 69 74 65 24 2c 2d 31 2c |ptr%,spr|ite$,-1,|
|000023e0| 2d 31 2c 74 61 62 6c 65 | 25 2c 32 0d 01 3a 3f c8 |-1,table|%,2..:?.|
|000023f0| 99 20 22 4f 53 5f 53 70 | 72 69 74 65 4f 70 22 2c |. "OS_Sp|riteOp",|
|00002400| 33 30 38 2c 70 74 72 25 | 2c 73 70 72 69 74 65 24 |308,ptr%|,sprite$|
|00002410| 2c 78 25 2c 79 25 2c 38 | 2c 5f 5f 73 70 72 69 74 |,x%,y%,8|,__sprit|
|00002420| 65 5f 73 63 61 6c 65 25 | 2c 30 0d 01 3b 11 f2 66 |e_scale%|,0..;..f|
|00002430| 72 65 65 28 74 61 62 6c | 65 25 29 0d 01 3c 05 e1 |ree(tabl|e%)..<..|
|00002440| 0d 01 3d 20 2a 7c 73 74 | 6f 70 20 50 52 4f 43 73 |..= *|st|op PROCs|
|00002450| 70 72 69 74 65 5f 70 6c | 6f 74 73 63 61 6c 65 64 |prite_pl|otscaled|
|00002460| 0d 01 3e 04 0d 01 3f 2b | 2a 7c 73 74 61 72 74 20 |..>...?+|*|start |
|00002470| 50 52 4f 43 73 70 72 69 | 74 65 5f 73 77 69 74 63 |PROCspri|te_switc|
|00002480| 68 6f 75 74 70 75 74 74 | 6f 73 70 72 69 74 65 0d |houtputt|osprite.|
|00002490| 01 40 43 2a 7c 21 50 52 | 4f 43 73 70 72 69 74 65 |.@C*|!PR|OCsprite|
|000024a0| 5f 73 77 69 74 63 68 6f | 75 74 70 75 74 74 6f 73 |_switcho|utputtos|
|000024b0| 70 72 69 74 65 28 20 73 | 70 72 69 74 65 5f 61 72 |prite( s|prite_ar|
|000024c0| 65 61 20 2c 20 73 70 72 | 69 74 65 5f 6e 61 6d 65 |ea , spr|ite_name|
|000024d0| 20 29 0d 01 41 07 2a 7c | 21 0d 01 42 46 2a 7c 21 | )..A.*||!..BF*|!|
|000024e0| 54 68 65 20 56 44 55 20 | 6f 75 74 70 75 74 20 69 |The VDU |output i|
|000024f0| 73 20 73 77 69 74 63 68 | 65 64 20 74 6f 20 74 68 |s switch|ed to th|
|00002500| 65 20 73 70 65 63 69 66 | 69 65 64 20 73 70 72 69 |e specif|ied spri|
|00002510| 74 65 2c 20 73 74 6f 72 | 69 6e 67 20 74 68 65 0d |te, stor|ing the.|
|00002520| 01 43 29 2a 7c 21 67 72 | 61 70 68 69 63 73 20 63 |.C)*|!gr|aphics c|
|00002530| 6f 6e 74 65 78 74 20 66 | 6f 72 20 6c 61 74 65 72 |ontext f|or later|
|00002540| 20 72 65 74 75 72 6e 2e | 0d 01 44 30 dd 20 f2 73 | return.|..D0. .s|
|00002550| 70 72 69 74 65 5f 73 77 | 69 74 63 68 6f 75 74 70 |prite_sw|itchoutp|
|00002560| 75 74 74 6f 73 70 72 69 | 74 65 28 70 74 72 25 2c |uttospri|te(ptr%,|
|00002570| 73 70 72 69 74 65 24 29 | 0d 01 45 11 ea 20 73 69 |sprite$)|..E.. si|
|00002580| 7a 65 25 2c 61 72 65 61 | 25 0d 01 46 43 e7 20 5f |ze%,area|%..FC. _|
|00002590| 5f 73 70 72 69 74 65 5f | 6c 65 76 65 6c 25 20 3d |_sprite_|level% =|
|000025a0| 20 5f 5f 73 70 72 69 74 | 65 5f 6d 61 78 6c 65 76 | __sprit|e_maxlev|
|000025b0| 65 6c 25 20 8c 20 85 20 | 31 2c 22 54 6f 6f 20 6d |el% . . |1,"Too m|
|000025c0| 75 63 68 20 6e 65 73 74 | 69 6e 67 22 0d 01 47 30 |uch nest|ing"..G0|
|000025d0| c8 99 20 22 4f 53 5f 53 | 70 72 69 74 65 4f 70 22 |.. "OS_S|priteOp"|
|000025e0| 2c 33 31 38 2c 70 74 72 | 25 2c 73 70 72 69 74 65 |,318,ptr|%,sprite|
|000025f0| 24 20 b8 20 2c 2c 2c 73 | 69 7a 65 25 0d 01 48 1d |$ . ,,,s|ize%..H.|
|00002600| 61 72 65 61 25 20 3d 20 | a4 6d 61 6c 6c 6f 63 28 |area% = |.malloc(|
|00002610| 73 69 7a 65 25 2b 31 36 | 29 0d 01 49 10 61 72 65 |size%+16|)..I.are|
|00002620| 61 25 21 31 36 20 3d 20 | 30 0d 01 4a 51 c8 99 20 |a%!16 = |0..JQ.. |
|00002630| 22 4f 53 5f 53 70 72 69 | 74 65 4f 70 22 2c 33 31 |"OS_Spri|teOp",31|
|00002640| 36 2c 70 74 72 25 2c 73 | 70 72 69 74 65 24 2c 61 |6,ptr%,s|prite$,a|
|00002650| 72 65 61 25 2b 31 36 20 | b8 20 61 72 65 61 25 21 |rea%+16 |. area%!|
|00002660| 30 2c 61 72 65 61 25 21 | 34 2c 61 72 65 61 25 21 |0,area%!|4,area%!|
|00002670| 38 2c 61 72 65 61 25 21 | 31 32 0d 01 4b 18 5f 5f |8,area%!|12..K.__|
|00002680| 73 70 72 69 74 65 5f 6c | 65 76 65 6c 25 20 2b 3d |sprite_l|evel% +=|
|00002690| 20 31 0d 01 4c 2f 5f 5f | 73 70 72 69 74 65 5f 73 | 1..L/__|sprite_s|
|000026a0| 61 76 65 61 72 65 61 25 | 28 5f 5f 73 70 72 69 74 |avearea%|(__sprit|
|000026b0| 65 5f 6c 65 76 65 6c 25 | 29 20 3d 20 61 72 65 61 |e_level%|) = area|
|000026c0| 25 0d 01 4d 05 e1 0d 01 | 4e 2a 2a 7c 73 74 6f 70 |%..M....|N**|stop|
|000026d0| 20 50 52 4f 43 73 70 72 | 69 74 65 5f 73 77 69 74 | PROCspr|ite_swit|
|000026e0| 63 68 6f 75 74 70 75 74 | 74 6f 73 70 72 69 74 65 |choutput|tosprite|
|000026f0| 0d 01 4f 04 0d 01 50 29 | 2a 7c 73 74 61 72 74 20 |..O...P)|*|start |
|00002700| 50 52 4f 43 73 70 72 69 | 74 65 5f 73 77 69 74 63 |PROCspri|te_switc|
|00002710| 68 6f 75 74 70 75 74 74 | 6f 6d 61 73 6b 0d 01 51 |houtputt|omask..Q|
|00002720| 41 2a 7c 21 50 52 4f 43 | 73 70 72 69 74 65 5f 73 |A*|!PROC|sprite_s|
|00002730| 77 69 74 63 68 6f 75 74 | 70 75 74 74 6f 6d 61 73 |witchout|puttomas|
|00002740| 6b 28 20 73 70 72 69 74 | 65 5f 61 72 65 61 20 2c |k( sprit|e_area ,|
|00002750| 20 73 70 72 69 74 65 5f | 6e 61 6d 65 20 29 0d 01 | sprite_|name )..|
|00002760| 52 07 2a 7c 21 0d 01 53 | 4c 2a 7c 21 54 68 65 20 |R.*|!..S|L*|!The |
|00002770| 56 44 55 20 6f 75 74 70 | 75 74 20 69 73 20 73 77 |VDU outp|ut is sw|
|00002780| 69 74 63 68 65 64 20 74 | 6f 20 74 68 65 20 73 70 |itched t|o the sp|
|00002790| 65 63 69 66 69 65 64 20 | 73 70 72 69 74 65 73 20 |ecified |sprites |
|000027a0| 6d 61 73 6b 2c 20 73 74 | 6f 72 69 6e 67 20 74 68 |mask, st|oring th|
|000027b0| 65 0d 01 54 29 2a 7c 21 | 67 72 61 70 68 69 63 73 |e..T)*|!|graphics|
|000027c0| 20 63 6f 6e 74 65 78 74 | 20 66 6f 72 20 6c 61 74 | context| for lat|
|000027d0| 65 72 20 72 65 74 75 72 | 6e 2e 0d 01 55 2e dd 20 |er retur|n...U.. |
|000027e0| f2 73 70 72 69 74 65 5f | 73 77 69 74 63 68 6f 75 |.sprite_|switchou|
|000027f0| 74 70 75 74 74 6f 6d 61 | 73 6b 28 70 74 72 25 2c |tputtoma|sk(ptr%,|
|00002800| 73 70 72 69 74 65 24 29 | 0d 01 56 11 ea 20 73 69 |sprite$)|..V.. si|
|00002810| 7a 65 25 2c 61 72 65 61 | 25 0d 01 57 43 e7 20 5f |ze%,area|%..WC. _|
|00002820| 5f 73 70 72 69 74 65 5f | 6c 65 76 65 6c 25 20 3d |_sprite_|level% =|
|00002830| 20 5f 5f 73 70 72 69 74 | 65 5f 6d 61 78 6c 65 76 | __sprit|e_maxlev|
|00002840| 65 6c 25 20 8c 20 85 20 | 31 2c 22 54 6f 6f 20 6d |el% . . |1,"Too m|
|00002850| 75 63 68 20 6e 65 73 74 | 69 6e 67 22 0d 01 58 30 |uch nest|ing"..X0|
|00002860| c8 99 20 22 4f 53 5f 53 | 70 72 69 74 65 4f 70 22 |.. "OS_S|priteOp"|
|00002870| 2c 33 31 38 2c 70 74 72 | 25 2c 73 70 72 69 74 65 |,318,ptr|%,sprite|
|00002880| 24 20 b8 20 2c 2c 2c 73 | 69 7a 65 25 0d 01 59 1d |$ . ,,,s|ize%..Y.|
|00002890| 61 72 65 61 25 20 3d 20 | a4 6d 61 6c 6c 6f 63 28 |area% = |.malloc(|
|000028a0| 73 69 7a 65 25 2b 31 36 | 29 0d 01 5a 10 61 72 65 |size%+16|)..Z.are|
|000028b0| 61 25 21 31 36 20 3d 20 | 30 0d 01 5b 51 c8 99 20 |a%!16 = |0..[Q.. |
|000028c0| 22 4f 53 5f 53 70 72 69 | 74 65 4f 70 22 2c 33 31 |"OS_Spri|teOp",31|
|000028d0| 37 2c 70 74 72 25 2c 73 | 70 72 69 74 65 24 2c 61 |7,ptr%,s|prite$,a|
|000028e0| 72 65 61 25 2b 31 36 20 | b8 20 61 72 65 61 25 21 |rea%+16 |. area%!|
|000028f0| 30 2c 61 72 65 61 25 21 | 34 2c 61 72 65 61 25 21 |0,area%!|4,area%!|
|00002900| 38 2c 61 72 65 61 25 21 | 31 32 0d 01 5c 18 5f 5f |8,area%!|12..\.__|
|00002910| 73 70 72 69 74 65 5f 6c | 65 76 65 6c 25 20 2b 3d |sprite_l|evel% +=|
|00002920| 20 31 0d 01 5d 2f 5f 5f | 73 70 72 69 74 65 5f 73 | 1..]/__|sprite_s|
|00002930| 61 76 65 61 72 65 61 25 | 28 5f 5f 73 70 72 69 74 |avearea%|(__sprit|
|00002940| 65 5f 6c 65 76 65 6c 25 | 29 20 3d 20 61 72 65 61 |e_level%|) = area|
|00002950| 25 0d 01 5e 05 e1 0d 01 | 5f 28 2a 7c 73 74 6f 70 |%..^....|_(*|stop|
|00002960| 20 50 52 4f 43 73 70 72 | 69 74 65 5f 73 77 69 74 | PROCspr|ite_swit|
|00002970| 63 68 6f 75 74 70 75 74 | 74 6f 6d 61 73 6b 0d 01 |choutput|tomask..|
|00002980| 60 04 0d 01 61 24 2a 7c | 73 74 61 72 74 20 50 52 |`...a$*||start PR|
|00002990| 4f 43 73 70 72 69 74 65 | 5f 72 65 73 74 6f 72 65 |OCsprite|_restore|
|000029a0| 6f 75 74 70 75 74 0d 01 | 62 1f 2a 7c 21 50 52 4f |output..|b.*|!PRO|
|000029b0| 43 73 70 72 69 74 65 5f | 72 65 73 74 6f 72 65 6f |Csprite_|restoreo|
|000029c0| 75 74 70 75 74 0d 01 63 | 07 2a 7c 21 0d 01 64 4c |utput..c|.*|!..dL|
|000029d0| 2a 7c 21 54 68 69 73 20 | 72 6f 75 74 69 6e 65 20 |*|!This |routine |
|000029e0| 72 65 74 75 72 6e 73 20 | 74 68 65 20 56 44 55 20 |returns |the VDU |
|000029f0| 6f 75 74 70 75 74 20 74 | 6f 20 74 68 65 20 70 72 |output t|o the pr|
|00002a00| 65 76 69 6f 75 73 20 67 | 72 61 70 68 69 63 73 20 |evious g|raphics |
|00002a10| 63 6f 6e 74 65 78 74 2e | 0d 01 65 1b dd 20 f2 73 |context.|..e.. .s|
|00002a20| 70 72 69 74 65 5f 72 65 | 73 74 6f 72 65 6f 75 74 |prite_re|storeout|
|00002a30| 70 75 74 0d 01 66 0b ea | 20 61 72 65 61 25 0d 01 |put..f..| area%..|
|00002a40| 67 48 e7 20 5f 5f 73 70 | 72 69 74 65 5f 6c 65 76 |gH. __sp|rite_lev|
|00002a50| 65 6c 25 20 3d 20 2d 31 | 20 8c 20 85 20 31 2c 22 |el% = -1| . . 1,"|
|00002a60| 4f 75 74 70 75 74 20 6e | 6f 74 20 73 77 69 74 63 |Output n|ot switc|
|00002a70| 68 65 64 20 74 6f 20 73 | 70 72 69 74 65 20 6f 72 |hed to s|prite or|
|00002a80| 20 6d 61 73 6b 22 0d 01 | 68 2f 61 72 65 61 25 20 | mask"..|h/area% |
|00002a90| 3d 20 5f 5f 73 70 72 69 | 74 65 5f 73 61 76 65 61 |= __spri|te_savea|
|00002aa0| 72 65 61 25 28 5f 5f 73 | 70 72 69 74 65 5f 6c 65 |rea%(__s|prite_le|
|00002ab0| 76 65 6c 25 29 0d 01 69 | 18 5f 5f 73 70 72 69 74 |vel%)..i|.__sprit|
|00002ac0| 65 5f 6c 65 76 65 6c 25 | 20 2d 3d 20 31 0d 01 6a |e_level%| -= 1..j|
|00002ad0| 35 c8 99 20 22 4f 53 5f | 53 70 72 69 74 65 4f 70 |5.. "OS_|SpriteOp|
|00002ae0| 22 2c 61 72 65 61 25 21 | 30 2c 61 72 65 61 25 21 |",area%!|0,area%!|
|00002af0| 34 2c 61 72 65 61 25 21 | 38 2c 61 72 65 61 25 21 |4,area%!|8,area%!|
|00002b00| 31 32 0d 01 6b 10 f2 66 | 72 65 65 28 61 72 65 61 |12..k..f|ree(area|
|00002b10| 25 29 0d 01 6c 05 e1 0d | 01 6d 23 2a 7c 73 74 6f |%)..l...|.m#*|sto|
|00002b20| 70 20 50 52 4f 43 73 70 | 72 69 74 65 5f 72 65 73 |p PROCsp|rite_res|
|00002b30| 74 6f 72 65 6f 75 74 70 | 75 74 0d ff |toreoutp|ut.. |
+--------+-------------------------+-------------------------+--------+--------+