?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. // Создание файлов из 96 б атриб + 96 б конв + 4096..10240б спрайтов
  2. #include <stdio.h>
  3. #include <alloc.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6. #include <process.h>
  7. #include <io.h>
  8. #include <fcntl.h>
  9. #include <sys\stat.h>
  10. #include <dos.h>
  11. #include <conio.h>
  12.  
  13. #define X2 9  // к-во ландшафтов по 32 спрайта
  14. #define X5 10 // к-во ландшафтов по 80 спрайтов
  15. #define nn 0xFF // конвертируется сам в себя
  16. #define Xlen 1*1 + 1*3 + X2*2 + X5*5
  17. #define ATstruct struct at_st
  18. ATstruct
  19.  {
  20.   char s_[16];
  21.   char b_[16];
  22.   char m_[16];
  23.   char t_[16];
  24.   char f_[16];
  25.  };
  26. ATstruct  xat [Xlen] ={
  27. /*XM0................................*/
  28.             {
  29.             "SSS......SSS.SSS",
  30.             "BBB......BBB...B",
  31.             "..M.......MMMM.M",
  32.             "............DD..",
  33.             "3333333333333333"
  34.             },
  35. /*XM1................................*/
  36.             {
  37.             "....SSS.........",
  38.             "................",
  39.             "................",
  40.             "FF..............",
  41.             "1111111333333333"
  42.             },
  43.             {
  44.             "...S.S..........",
  45.             "................",
  46.             "..MMMM..........",
  47.             "..DDDD..........",
  48.             "3333333333223333"
  49.             },
  50.             {
  51.             "SSSS....SSSS..SS",
  52.             "BBBB....BBBB..BB",
  53.             "....MMMM.M....MM",
  54.             "....DDDD.L......",
  55.             "3333222203313331"
  56.             },
  57. /*XM2===========================*/
  58.             {
  59.             "SSSSSS..SSSSSSSS",
  60.             "BBBBBB....BBBBBB",
  61.             "MMMMM.......MM.M",
  62.             "............LL..",
  63.             "0000003311113310"
  64.             },
  65.             {
  66.             "SSSSSSSS.SSSSSSS",
  67.             "BB.BBBBB.BBBBBBB",
  68.             "MM..MMMM..MMMM.M",
  69.             "..FF............",
  70.             "0000000031000000"
  71.             },
  72. /*XM3============================*/
  73.             {
  74.             "SSSSSSS....SSSS.",
  75.             "BBBBB......BBBB.",
  76.             "MMMMM.......MM..",
  77.             "................",
  78.             "0000011331330012"
  79.             },
  80.             {
  81.             "SSSSSSSSSSSSSSSS",
  82.             "BBBB.BB....BBBB.",
  83.             "M.M...M....M.MM.",
  84.             "..../...........",
  85.             "0100330333301001"
  86.             },
  87. /*XM4---------------------------*/
  88.             {
  89.             "SSSSSSSSSSSSS.SS",
  90.             "BBBBBBBBBBBBB.B.",
  91.             "MMMMMMMMMMMMM...",
  92.             "................",
  93.             "0000000000000000"
  94.             },
  95.             {
  96.             "........SSSSSSSS",
  97.             "........BBBBB.BB",
  98.             "................",
  99.             "................",
  100.             "2233332211210100"
  101.             },
  102.             {
  103.             "..S..S.SSSSSS..S",
  104.             "..B..B.BBB..B..B",
  105.             "MMMMMM...M......",
  106.             "DD.DD.....F.....",
  107.             "1111113110100000"
  108.             },
  109.             {
  110.             "SS..SSSS.SS.SSSS",
  111.             "BB............BB",
  112.             "M.............MM",
  113.             "L.GGGGGGGGGG/`..",
  114.             "3311111111113300"
  115.             },
  116.             {
  117.             "S.S.S.S.S.S.S.SS",
  118.             "............B.B.",
  119.             "................",
  120.             "GGGGGGGGGGGG....",
  121.             "1111111111110011"
  122.             },
  123. /*XM5---------------------------*/
  124.             {
  125.             "....SSS.........",
  126.             "................",
  127.             "................",
  128.             "FF..............",
  129.             "1111111333333333"
  130.             },
  131.             {
  132.             "...S.S..........",
  133.             "................",
  134.             "..MMMM..........",
  135.             "..DDDD..........",
  136.             "3322223333223333"
  137.             },
  138.             {
  139.             "SSSS....SSSS..SS",
  140.             "BBBB....BBBB..BB",
  141.             "....MMMM.M....MM",
  142.             "....DDDD.L......",
  143.             "3333222203313331"
  144.             },
  145.             {
  146.             "SSSSSS..SSS.SSSS",
  147.             "BBBBB....BB.BBBB",
  148.             "MMMMM.......MM.M",
  149.             ".....F..........",
  150.             "0000013312210000"
  151.             },
  152.             {
  153.             "SSSSS..S..SS.SSS",
  154.             "BBBBB..B..B..BBB",
  155.             "MMM.M...........",
  156.             "......F.....F...",
  157.             "0000031311111333"
  158.             },
  159. /*XM6----------------------------*/
  160.             {
  161.             "SSS....SSS......",
  162.             "BBB....BBB......",
  163.             "MMM......MMMMMMM",
  164.             ".........LDDDDDD",
  165.             "0002233223222222"
  166.             },
  167.             {
  168.             "...........SS.SS",
  169.             "...........BB...",
  170.             "................",
  171.             "............../`",
  172.             "2233333333322333"
  173.             },
  174.             {
  175.             ".SS.SSSSSSSSSSSS",
  176.             ".B.....BBBBBBBBB",
  177.             "...............M",
  178.             "................",
  179.             "3333333333333330"
  180.             },
  181.             {
  182.             "SSSSSSSSSSSSSSSS",
  183.             ".B..BBB..B.....B",
  184.             ".M..............",
  185.             "F.GG.........F..",
  186.             "1011000110021131"
  187.             },
  188.             {
  189.             "SS.S.SSSSSSSS.SS",
  190.             "BB.B.B....B.B.BB",
  191.             "................",
  192.             ".......F........",
  193.             "1011112100021233"
  194.             },
  195. /*XM7---------------------------*/
  196.             {
  197.             "SSSSS...SSS.SSSS",
  198.             "BBBBB...B.B...B.",
  199.             "MMMM..........M.",
  200.             "............GGL.",
  201.             "1111332211000031"
  202.             },
  203.             {
  204.             "SSSS.SSSSSSS..SS",
  205.             "...B.B....BB....",
  206.             "..........M.....",
  207.             ".........F..GGGG",
  208.             "3333333331112222"
  209.             },
  210.             {
  211.             ".S..SSSSSSS...SS",
  212.             ".B..............",
  213.             "................",
  214.             "F...GGGGGGGGGGGG",
  215.             "1100000000111111"
  216.             },
  217.             {
  218.             "SSSSSSSS...S..SS",
  219.             "BBBBBBBB........",
  220.             "MMMMMMMM........",
  221.             "DDD..DDD....GGGG",
  222.             "2222222211111111"
  223.             },
  224.             {
  225.             "..SS..SSSSSS..SS",
  226.             "......BBBBBB..BB",
  227.             "........M..M..MM",
  228.             "GGGG.........F..",
  229.             "1111331313333033"
  230.             },
  231. /*XM8---------------------------*/
  232.             {
  233.             "SSS....SSS......",
  234.             "BBB....BBB......",
  235.             "MMM......MMMMMMM",
  236.             ".........LDDDDDD",
  237.             "0002233323222222"
  238.             },
  239.             {
  240.             "...........SS.SS",
  241.             "...........BB...",
  242.             "................",
  243.             "............../`",
  244.             "2233333333322233"
  245.             },
  246.             {
  247.             ".SS.SSSSSSSSSSSS",
  248.             "............BBBB",
  249.             "..............MM",
  250.             "................",
  251.             "3333333333332010"
  252.             },
  253.             {
  254.             "SSSSSS....S.SSS.",
  255.             "..BBB.....B.BBB.",
  256.             "................",
  257.             "FF...F..........",
  258.             "0011011010112232"
  259.             },
  260.             {
  261.             "SS..........S...",
  262.             ".B..............",
  263.             ".M.........MM...",
  264.             "...........DD...",
  265.             "2122333322222333"
  266.             },
  267. /*XM9---------------------------*/
  268.             {
  269.             "SSSSSSSSSSSSS.SS",
  270.             "BBBBBBBBBBBBB.BB",
  271.             "MMMM.....M..M...",
  272.             "................",
  273.             "0000000020000000"
  274.             },
  275.             {
  276.             "........SSSS.SSS",
  277.             "........BBBB.BBB",
  278.             ".............MMM",
  279.             "................",
  280.             "2233332212221000"
  281.             },
  282.             {
  283.             "SSSSSSSSSSSSSSSS",
  284.             "BBBBBBBBB.....BB",
  285.             "MMMMMMMMM.......",
  286.             "DD.DD..../`.....",
  287.             "1111110003333333"
  288.             },
  289.             {
  290.             ".SSSSSSSSS......",
  291.             ".B..B..BBB......",
  292.             ".M..............",
  293.             "..F.............",
  294.             "3310011003223333"
  295.             },
  296.             {
  297.             "..SS..SSSSSSSS..",
  298.             ".....B.BBBBBBBBB",
  299.             "........M.......",
  300.             "GGGG...F........",
  301.             "1111112100000033"
  302.             },
  303. /*XM10---------------------------*/
  304.             {
  305.             "SSS.S...........",
  306.             "BBB.B...........",
  307.             "MMM.MMMM........",
  308.             "....LDDD........",
  309.             "1113333333333333"
  310.             },
  311.             {
  312.             "................",
  313.             "................",
  314.             "................",
  315.             "................",
  316.             "3323333333333223"
  317.             },
  318.             {
  319.             "..............S.",
  320.             "................",
  321.             "................",
  322.             "................",
  323.             "3333333333333111"
  324.             },
  325.             {
  326.             "SSSSSSSSSSSSSSSS",
  327.             "BBBBBBBBBBBBBBBB",
  328.             "MMMMMMMMMMMMMMMM",
  329.             "................",
  330.             "3333333333333333"
  331.             },
  332.             {
  333.             "SSSSSSSSSSSSSSSS",
  334.             "................",
  335.             "................",
  336.             "EEEEEEEEEEEEEEEE",
  337.             "1010101010101010"
  338.             },
  339. /*XM11--------------------------*/
  340.             {
  341.             "SSSSSSSSSS......",
  342.             "BBBBBBBBB.......",
  343.             "MMMMMM..........",
  344.             "........FF......",
  345.             "0000000011022323"
  346.             },
  347.             {
  348.             "........SSSS.SSS",
  349.             "........BBBB.BBB",
  350.             ".............MMM",
  351.             "................",
  352.             "2233332222211000"
  353.             },
  354.             {
  355.             "SSSSSSSS...SSSS.",
  356.             "BBBB..BB...BBB..",
  357.             "MMM........MMM..",
  358.             "...........DD...",
  359.             "3330110011100022"
  360.             },
  361.             {
  362.             "......SSSSSSSSS.",
  363.             "........BBBB....",
  364.             "MMMMMM..M..M....",
  365.             "DD.DD./`.GG.GGGG",
  366.             "1111113301100011"
  367.             },
  368.             {
  369.             "SS.SS..........S",
  370.             "B..BB..........B",
  371.             "....M........MMM",
  372.             "..F..........DD.",
  373.             "3313122333322223"
  374.             },
  375. /*XM12---------------------------*/
  376.             {
  377.             "..S.SSSSSS.SSS.S",
  378.             "................",
  379.             "................",
  380.             "GF...FEEEEGGGF..",
  381.             "1112111111111121"
  382.             },
  383.             {
  384.             "..........S.SSSS",
  385.             "..........B..B..",
  386.             "......MMMMM.....",
  387.             "......DDDDL.F...",
  388.             "2233332222331211"
  389.             },
  390.             {
  391.             "..............SS",
  392.             "..............BB",
  393.             "..............MM",
  394.             "................",
  395.             "3333333333333300"
  396.             },
  397.             {
  398.             ".....SSSSSSS....",
  399.             "...........B....",
  400.             "................",
  401.             "..F....GGGG.....",
  402.             "2113333111113333"
  403.             },
  404.             {
  405.             "S...SSSSSSSSSSSS",
  406.             "B...BBBB..BBBBBB",
  407.             "MMMMMMMM.....MMM",
  408.             ".DDD.....F......",
  409.             "0333111131322333"
  410.             },
  411. /*XM13---------------------------*/
  412.             {
  413.             "....SSSSSS.SSS..",
  414.             "......BB.B......",
  415.             "................",
  416.             "GF......F.GGG...",
  417.             "1111111111111111"
  418.             },
  419.             {
  420.             "..........S.SSSS",
  421.             "..........B...BB",
  422.             "......MMMMM.....",
  423.             "......DDDDL.GGGG",
  424.             "2233332222331111"
  425.             },
  426.             {
  427.             "..............SS",
  428.             "..............BB",
  429.             "..............MM",
  430.             "................",
  431.             "3333333333333300"
  432.             },
  433.             {
  434.             ".....SSSS..S....",
  435.             "...........B....",
  436.             "................",
  437.             "..F....GGGG.....",
  438.             "2113333111113333"
  439.             },
  440.             {
  441.             "S...SSSSSSSSSSS.",
  442.             "B...BBBB..BBBBB.",
  443.             "MMMMMMMM.....MMM",
  444.             ".DDD.....F......",
  445.             "0333111131322003"
  446.             },
  447. /*XM14===========================*/
  448.             {
  449.             "SSSSSSS..SSS..SS",
  450.             "BBBBBBB....B..BB",
  451.             "MMMM.M........M.",
  452.             "................",
  453.             "0000100333323301"
  454.             },
  455.             {
  456.             "SSSSSS..SS..SSSS",
  457.             "BBBBBB......BBBB",
  458.             "MMM.MM......MMMM",
  459.             "......GGGGGG....",
  460.             "0000001111003333"
  461.             },
  462. /*XM15===========================*/
  463.             {
  464.             "SSSSSS.SSSS.....",
  465.             "BBBBBB.BBBB.....",
  466.             "MMMMM..MM.M.....",
  467.             "................",
  468.             "0000003000033333"
  469.             },
  470.             {
  471.             ".....S.SS..SSSSS",
  472.             ".....B.BB..B..BB",
  473.             ".......MM.....MM",
  474.             "..........F.....",
  475.             "3333321003131233"
  476.             },
  477. /*XM16===========================*/
  478.             {
  479.             "SSSSSSSSSSSSSS.S",
  480.             "BBBBBB....BB....",
  481.             "MMMMM...........",
  482.             "............/`..",
  483.             "0000003111333331"
  484.             },
  485.             {
  486.             "SSSSSSSSSSSSS...",
  487.             "...BBBBB.BBB.BBB",
  488.             "...MMM.M..MM.MMM",
  489.             "........F.......",
  490.             "3330000000002333"
  491.             },
  492. /*XM17===========================*/
  493.             {
  494.             "SSSSSSS...SSSSSS",
  495.             "BBBB..B...BBB..B",
  496.             "MMMM...MMM......",
  497.             "..../`.DDD......",
  498.             "0000332222222222"
  499.             },
  500.             {
  501.             "SSSSSSSSSSSSSSS.",
  502.             "BBBBBBBBBBBBBBB.",
  503.             ".......M..MMMMM.",
  504.             "................",
  505.             "2223313001000001"
  506.             },
  507. /*XM18===========================*/
  508.             {
  509.             "SSSS.SSSSSSSSSSS",
  510.             "BBBB..BB..BBBBBB",
  511.             "MMMM............",
  512.             "........FF......",
  513.             "0000111111111111"
  514.             },
  515.             {
  516.             "SSSSSSSSSSSSSSSS",
  517.             "BB..BB.BBB.BBBBB",
  518.             ".......MMM.MMMM.",
  519.             "../`............",
  520.             "1133113000100310"
  521.             },
  522. /*XM19===========================*/
  523.             {
  524.             "SSSSSSSSSSSSSSS.",
  525.             "BBBBBBBBBBBBBBB.",
  526.             "MMMMM.MM..MMMMM.",
  527.             "................",
  528.             "0000000001000020"
  529.             },
  530.             {
  531.             "................",
  532.             "................",
  533.             "................",
  534.             "................",
  535.             "3333333333333333"
  536.             },
  537. /*XM20===========================*/
  538.             {
  539.             "SSSSSSSSSS..SSSS",
  540.             "BBBBBBBB.....BBB",
  541.             "MMMM.MMM.......M",
  542.             "......../.......",
  543.             "0000000031111210"
  544.             },
  545.             {
  546.             "SSSSSSSSS.SSSSSS",
  547.             ".BBBBBBBB.BB.BB.",
  548.             "...MMMM......MM.",
  549.             "................",
  550.             "1210000001012002"
  551.             }
  552.       }; /*END OF DATA*/
  553. /*-----------------------------------------------------------------*/
  554. char xcnv [Xlen][16] ={
  555. /*xm0*/
  556. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,13,02,nn,nn},
  557. /*xm1*/
  558. {59,59,59,59,62,62,62,nn,nn,nn,nn,nn,nn,nn,nn,nn},
  559. {nn,nn,35,63,37,63,nn,nn,nn,nn,62,62,62,62,62,62},
  560. {nn,nn,nn,nn,53,63,55,63,00,nn,nn,62,nn,nn,nn,62},
  561. /*xm2*/
  562. {65,66,67,nn,65,65,nn,nn,74,75,66,66,nn,nn,66,65},
  563. {65,65,66,67,65,65,65,65,nn,66,65,65,66,66,65,nn},
  564. /*xm3*/
  565. {65,66,67,nn,65,00,00,nn,nn,75,67,nn,82,65,66,78},
  566. {65,82,91,65,nn,nn,91,nn,nn,nn,nn,nn,66,65,65,82},
  567. /*xm4*/
  568. {17,18,19,nn,nn,17,17,17,17,17,17,17,17,30,18,18},
  569. {17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16},
  570. {49,50,17,52,53,17,19,17,17,17,18,17,17,17,17,16},
  571. {nn,nn,17,17,18,18,18,18,18,18,18,18,nn,nn,17,78},
  572. {18,18,18,18,18,18,18,18,18,18,18,18,17,92,17,94},
  573. /*xm5*/
  574. {90,59,59,59,90,90,62,nn,nn,nn,nn,nn,nn,nn,nn,nn},
  575. {nn,nn,35,63,37,63,nn,nn,nn,nn,62,62,62,62,62,62},
  576. {nn,nn,nn,nn,53,63,55,63,00,nn,nn,62,nn,nn,nn,62},
  577. {65,66,67,nn,65,76,nn,nn,62,62,62,59,nn,65,65,65},
  578. {65,65,65,65,65,nn,87,nn,90,90,62,62,90,nn,nn,nn},
  579. /*xm6*/
  580. {17,18,nn,17,17,17,17,17,17,nn,27,28,16,30,31,16},
  581. {17,17,17,17,17,17,17,17,17,17,17,17,17,17,nn,nn},
  582. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn},
  583. {17,nn,17,17,16,16,16,16,16,16,16,17,17,17,nn,16},
  584. {16,18,17,17,17,16,17,17,17,17,17,nn,16,17,nn,nn},
  585. /*xm7*/
  586. {17,18,19,nn,nn,nn,17,17,17,24,16,16,16,16,nn,24},
  587. {nn,nn,nn,nn,nn,nn,nn,nn,nn,18,nn,17,18,18,18,18},
  588. {49,18,16,16,16,16,16,16,16,16,16,16,18,18,18,18},
  589. {65,66,67,nn,nn,68,69,70,17,17,17,17,17,17,17,17},
  590. {18,18,18,18,nn,nn,17,nn,nn,nn,nn,nn,nn,17,nn,nn},
  591. /*xm8*/
  592. {17,18,nn,17,17,17,17,nn,17,nn,27,28,16,30,31,16},
  593. {17,17,17,17,17,17,17,17,17,17,17,17,17,17,nn,nn},
  594. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,16,nn,nn},
  595. {17,17,16,16,16,17,16,16,16,16,16,74,17,17,nn,00},
  596. {nn,nn,17,17,17,17,17,17,17,17,17,92,16,nn,nn,nn},
  597. /*xm9*/
  598. {17,18,19,nn,17,17,17,17,18,17,17,17,18,28,17,17},
  599. {46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,nn},
  600. {49,50,46,52,53,46,17,nn,54,nn,nn,nn,nn,nn,nn,nn},
  601. {nn,nn,46,45,45,45,45,45,45,nn,46,46,46,46,46,46},
  602. {17,17,17,17,85,nn,00,17,nn,88,88,88,88,88,88,88},
  603. /*xm10*/
  604. {17,18,nn,nn,nn,22,23,16,nn,nn,nn,nn,nn,nn,nn,nn},
  605. {nn,nn,17,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,17,17,nn},
  606. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,17,17,62},
  607. {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
  608. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn},
  609. /*xm11*/
  610. {17,18,nn,20,21,nn,20,20,21,21,20,17,17,17,17,17},
  611. {17,17,17,17,17,17,17,17,17,17,17,17,17,46,47,nn},
  612. {nn,nn,nn,16,16,16,16,16,17,17,17,60,61,20,20,17},
  613. {65,66,16,68,69,16,nn,nn,75,75,75,nn,16,16,17,17},
  614. {nn,nn,00,nn,nn,17,17,17,17,17,17,17,17,94,16,nn},
  615. /*xm12*/
  616. {93,75,75,93,75,62,62,62,62,62,93,93,93,62,93,75},
  617. {62,62,62,62,62,62,39,63,41,63,nn,nn,63,62,62,62},
  618. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,93,62},
  619. {62,62,75,nn,nn,nn,nn,93,93,93,93,93,nn,nn,nn,nn},
  620. {nn,82,83,63,nn,nn,nn,nn,nn,90,nn,62,62,nn,nn,nn},
  621. /*xm13*/
  622. {93,75,75,93,62,62,62,62,62,62,93,93,93,62,93,75},
  623. {62,62,62,62,62,62,39,63,41,63,nn,nn,62,62,62,62},
  624. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,93,62},
  625. {62,62,75,nn,nn,nn,nn,93,93,93,93,93,nn,nn,nn,nn},
  626. {nn,82,83,63,nn,nn,nn,nn,nn,90,nn,62,62,nn,nn,nn},
  627. /*xm14*/
  628. {65,66,67,nn,65,65,65,nn,nn,nn,nn,66,nn,nn,65,65},
  629. {65,65,65,65,65,65,66,66,66,66,65,65,nn,nn,nn,nn},
  630. /*xm15*/
  631. {65,66,67,nn,65,65,nn,65,65,65,66,nn,nn,nn,nn,nn},
  632. {nn,nn,nn,nn,nn,nn,62,nn,66,nn,91,nn,62,62,62,62},
  633. /*xm16*/
  634. {65,66,67,nn,65,65,nn,80,81,82,nn,nn,nn,nn,nn,80},
  635. {nn,nn,nn,65,65,65,66,65,89,66,65,65,66,66,66,66},
  636. /*xm17*/
  637. {65,66,67,nn,nn,nn,62,72,73,63,62,62,75,62,65,65},
  638. {65,65,65,65,65,62,65,65,65,65,65,65,65,65,65,62},
  639. /*xm18*/
  640. {65,66,67,nn,69,70,66,89,89,89,89,89,89,89,89,89},
  641. {89,89,nn,nn,89,89,nn,nn,65,nn,89,65,65,nn,66,65},
  642. /*xm19*/
  643. {65,66,67,nn,65,65,65,65,65,65,65,65,65,65,67,66},
  644. {nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn},
  645. /*xm20*/
  646. {65,66,67,nn,66,65,65,65,nn,86,76,80,77,78,79,66},
  647. {81,82,83,66,65,86,nn,86,86,90,nn,66,86,nn,65,66}
  648. };
  649. char ftyp [21] =
  650.  {1,3,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,2};
  651. /*********************************/
  652. char xa[128];
  653. char xc[128];
  654. char xs[10240];
  655.  
  656. char GetAt (char s,char b,char m,char t,char f) //Выдача байта параметров
  657. {
  658.  char typ=0,fire_typ=0;
  659.  if (s!='S' && s!='.') printf("Неверный тип видимости %c%c\n",s,07);
  660.  if (b!='B' && b!='.') printf("Неверный тип пробиваемости %c%c\n",b,07);
  661.  if (m!='M' && m!='.') printf("Неверный тип проходимости %c%c\n",m,07);
  662.  switch ( t )
  663.   {
  664.    case '.':typ=0;break;
  665.    case 'D':typ=1;break;
  666.    case '`':typ=2;break;
  667.    case '/':typ=3;break;
  668.    case 'L':typ=4;break;
  669.    case 'G':typ=5;break;
  670.    case 'F':typ=6;break;
  671.    case 'E':typ=7;break;
  672.    default:printf("Неверный тип объекта %c%c\n",t,07);
  673.   }
  674.  if (f<'0' || f>'3')
  675.   { printf("Неверный тип поражаемости %c%c\n",f,07);}
  676.   else fire_typ=f-'0';
  677.  return (s=='S'?128:0)+(b=='B'?64:0)+(m=='M'?32:0)+(typ<<2)+fire_typ;
  678. }
  679.  
  680. void copy_data(char bnk,char len,char pos)
  681. {
  682.  int k;
  683.  int j;
  684.  for (k=bnk;k<bnk+len;k++)
  685.   for (j=0;j<16;j++)
  686.   {
  687.    xc[pos]=xcnv[k][j];
  688.    xa[pos]=GetAt(xat[k].s_[j],
  689.                  xat[k].b_[j],
  690.                  xat[k].m_[j],
  691.                  xat[k].t_[j],
  692.                  xat[k].f_[j]);
  693.    pos++;
  694.   }
  695. }
  696. int HO,HI;
  697. int main() // ***MAIN***
  698. {
  699.  char *z,*b,*m,*name;
  700.  char nf;
  701.  unsigned i,j,k;
  702.  char bnk=1+3; //текущ.блок данных
  703.  unsigned blen;
  704.  char *Fname=(char*)malloc(80);
  705.  printf("\n\t (c)1996  Медноногов В.C.\t\t");
  706.  printf("\n\tСоздание файлов аттр+конв+спрайт\n");
  707.  printf("\tdata+xmNN.dat --> xmNN.cnv\n\n");
  708.    copy_data(0,1,00);   //инициализ.спр.истребителя
  709.  for(i=2;i<21;i++)
  710.   {
  711.    sprintf(Fname,"..\\zx_disc\\xm%u.dat",i);
  712.    HI=open(Fname,O_RDONLY | O_BINARY);
  713.    if(HI==-1) {perror("Fatal! \7");return 1;}
  714.    blen=(ftyp[i]==2?4096:10240);
  715.    printf("   Длина: %u\n",blen+96+96);
  716.    read(HI,xs,blen);
  717.    close (HI);
  718.    /**/
  719.    sprintf(Fname,"..\\zx_disc\\xm%u.CNV",i);
  720.    HO=open(Fname,O_BINARY | O_CREAT | O_TRUNC | O_RDWR,S_IWRITE);
  721.    if (HO==-1) {perror("Ошибка создания выходного файла\7\n");return 1;}
  722.    /**/
  723.    if (ftyp[i]==2)
  724.     {
  725.      copy_data(1,3,16);
  726.      copy_data(bnk,2,64);
  727.     }
  728.    else
  729.      copy_data(bnk,5,16);
  730.    bnk+=ftyp[i];
  731.    write(HO,xa,96);
  732.    write(HO,xc,96);
  733.    write(HO,xs,blen);
  734.    close (HO);
  735.    printf("Cоздан файл #%u\n",i);
  736.   }
  737.   printf("\nO.K.\n");
  738.   return 0;
  739. }
  740.