home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume6 / ega-wanderer / part01 / icon.c < prev    next >
C/C++ Source or Header  |  1989-02-14  |  3KB  |  145 lines

  1. #include "wand_head.h"
  2. #include "bitmap.h"
  3.  
  4. #ifdef    EGA
  5. extern    bitmap    *b48x48[];
  6. extern    char    *EGAaddr;
  7. #endif
  8.  
  9. /* this is where the pretty graphics are */
  10. /* all defined - change them if you want.. */
  11.  
  12. static
  13. char    *backslide[] ={ "\\_ ",
  14.             "  \\" },
  15.     *fwdslide[]  ={ " _/",
  16.             "/  " },
  17.     *space[]     ={ "   ",
  18.             "   " },
  19.     *whoops[]    ={ "OOO",
  20.             "OOO" },
  21.     *wall[]      ={ "###",
  22.             "###" },
  23.     *rarrow[]    ={ "-->",
  24.             "-->" },
  25.     *larrow[]    ={ "<--",
  26.             "<--" },
  27.     *rock[]      ={ "/^\\",
  28.             "\\_/" },
  29.     *dirt[]      ={ ". .",
  30.             " . " },
  31.     *diamond[]   ={ "/$\\",
  32.             "\\$/" },
  33.     *brick[]      ={ "=-=",
  34.             "-=-" },
  35.     *player[]    ={ " o ",
  36.             "<|>" },
  37.     *teleport[]  ={ "(*)",
  38.             "(*)" },
  39.     *wayout[]    ={ "Way",
  40.             "Out" },
  41.     *landmine[]  ={ " I ",
  42.             " o " },
  43.     *monster[]   ={ "}o{",
  44.             "/^\\" },
  45.     *sprite[]    ={ "-o-",
  46.             "/*\\" },
  47.     *balloon[]   ={ "/~\\",
  48.             "\\_X" },
  49.     *timecapsule[]={"   ",
  50.             "<O>" },
  51.     *cage[]      ={ "TTT",
  52.             "III" },
  53.  
  54.     **icons[] ={ backslide, balloon, brick, cage, diamond, dirt,
  55.              fwdslide, landmine, larrow, monster, player,
  56.              rarrow, rock, space, sprite, teleport, timecapsule,
  57.              wall, wayout, whoops,
  58.            };
  59.  
  60.  
  61. void draw_symbol(x,y,ch)
  62. int  x,y;
  63. char ch;
  64. {
  65.     int what = symbol(ch);
  66. #ifdef    EGA
  67.     static char drawn[7][11];
  68.     extern int EGAmode;
  69.  
  70.     if(EGAmode != 48) {
  71.     EGAmode = 48;
  72.     memset( drawn, 0, sizeof(drawn) );
  73.     }
  74.  
  75.     if(EGAaddr) {
  76.     bitmap *map = b48x48[what];
  77.  
  78.     x /= 3;
  79.     y /= 2;
  80.     if(drawn[y][x] != ch) {
  81.         drawn[y][x] = ch;
  82.         egapaint( 4 + map->width * x, 4 + map->height * y, map );
  83.         }
  84.     }
  85.     else
  86. #endif
  87.     {
  88.     mvaddstr(++y,++x,icons[what][0]);
  89.     mvaddstr(++y,x,icons[what][1]);
  90.     }
  91. }
  92.  
  93.  
  94. int symbol( ch )
  95. char ch;
  96. {
  97. switch( ch )
  98.     {
  99.     case ' ':            /*  space  */
  100.     return( SPACE );
  101.     case '#':            /*  rock  */
  102.     return( WALL );
  103.     case '<':            /*  arrows  */
  104.     return( LARROW );
  105.     case '>':
  106.     return( RARROW );
  107.     case 'O':            /* boulder  */
  108.     return( ROCK );
  109.     case ':':            /*  earth  */
  110.     return( DIRT );
  111.     case '/':            /*  slopes */
  112.     return( FWDSLIDE );
  113.     case '\\':
  114.     return( BACKSLIDE );
  115.     case '*':            /*  diamond  */
  116.     return( DIAMOND );
  117.     case '=':            /*  brick  */
  118.     return( BRICK );
  119.     case '@':            /*  YOU!!! */
  120.     return( PLAYER );
  121.     case 'T':            /*  teleport  */
  122.     return( TELEPORT );
  123.     case 'X':            /*  exits  */
  124.     return( WAYOUT );
  125.     case '!':            /*  landmine  */
  126.     return( LANDMINE );
  127.     case 'M':            /* big monster  */
  128.     return( MONSTER );
  129.     case 'S':            /* baby monster */
  130.     return( SPRITE );
  131.     case '^':            /* balloon */
  132.     return( BALLOON );
  133.     case 'C':            /* time capsule */
  134.     return( TIMECAPSULE );
  135.     case '+':            /* cage */
  136.     return( CAGE );
  137.     case 'A':            /* teleport arrival */
  138.     return( ARRIVAL );
  139.     }
  140.  
  141.     /* this is what it uses if it doesn't */
  142.     /* recognise the character  */
  143.     return( WHOOPS );
  144. }
  145.