Part of Slepp's ProjectsPastebinTURLImagebinFilebin
Feedback -- English French German Japanese
Create Upload Newest Tools Donate
Sign In | Create Account

drawing bmp problem
Wednesday, October 3rd, 2007 at 7:56:52am UTC 

  1. /* here's amaze_tiles.h (auto-generated)  I just put amaze_tiles.bmp in rockbox/apps/plugins/bitmaps/native/SOURCES */
  2. #define BMPHEIGHT_amaze_tiles 81
  3. #define BMPWIDTH_amaze_tiles 9
  4. extern const unsigned short amaze_tiles[];
  5.  
  6. /* here are the defines (at top of file) */
  7.  
  8. #include "amaze_tiles.h"
  9.  
  10. #define TILE_WIDTH  BMP_amaze_tiles     
  11. #define TILE_HEIGHT (BMP_amaze_tiles/9)
  12.  
  13. #define t_up       0
  14. #define t_down    1
  15. #define t_left    2
  16. #define t_right         3
  17. #define t_visited       4
  18. #define t_obspace       5
  19. #define t_goal           6
  20. #define t_block          7
  21. #define t_space  8
  22.  
  23.  
  24. /* here's the drawing function */
  25.  
  26. void drawtilemap(void)
  27. {
  28.         int x,y;
  29.         char map_unit;
  30.         int unit_fmt;
  31.  
  32.         clearscreen();
  33.  
  34.         #   define DRAW_TILE( a )                                         \
  35.                     rb->lcd_bitmap_part( amaze_tiles, 0,                   \
  36.                                          a*TILE_HEIGHT, TILE_WIDTH,       \
  37.                                          x * TILE_WIDTH,  \
  38.                                          y * TILE_HEIGHT, \
  39.                                          TILE_WIDTH, TILE_HEIGHT);
  40.  
  41.         for(y=0; y < umap->maxy; y++)
  42.                 for (x=0; x < umap->maxx; x++) {
  43.  
  44.                         map_unit = umap->coords[y][x].chr;
  45.                         unit_fmt = umap->coords[y][x].attrib;
  46.                        
  47.                         switch (map_unit) {
  48.                                 case '^':
  49.                                         DRAW_TILE(t_up);
  50.                                         break;
  51.                                 case 'v':
  52.                                         DRAW_TILE(t_down);
  53.                                         break;
  54.                                 case '<':
  55.                                         DRAW_TILE(t_left);
  56.                                         break;
  57.                                 case '>':
  58.                                         DRAW_TILE(t_right);
  59.                                         break;
  60.                                 case '.':
  61.                                         DRAW_TILE(t_visited);
  62.                                         break;
  63.                                 case '#':
  64.                                         DRAW_TILE(t_obspace);
  65.                                         break;
  66.                                 case '%':
  67.                                         DRAW_TILE(t_goal);
  68.                                         break;
  69.                                 case ' ':
  70.                                         if(unit_fmt==A_NORMAL)
  71.                                                 DRAW_TILE(t_space)
  72.                                         else
  73.                                                 DRAW_TILE(t_block)
  74.                                         break;
  75.                         }
  76.         }
  77.  
  78.         rb->lcd_update();
  79. }

Update the Post

Either update this post and resubmit it with changes, or make a new post.

You may also comment on this post.

update paste below
details of the post (optional)

Note: Only the paste content is required, though the following information can be useful to others.

Save name / title?

(space separated, optional)



Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.

comments powered by Disqus
worth-right worth-right