diff options
Diffstat (limited to 'src/mame/video/pocketc.cpp')
-rw-r--r-- | src/mame/video/pocketc.cpp | 62 |
1 files changed, 20 insertions, 42 deletions
diff --git a/src/mame/video/pocketc.cpp b/src/mame/video/pocketc.cpp index 276b525d947..b93c2bda448 100644 --- a/src/mame/video/pocketc.cpp +++ b/src/mame/video/pocketc.cpp @@ -3,24 +3,20 @@ #include "emu.h" #include "includes/pocketc.h" -/* PC126x - 24x2 5x7 space between char - 2000 .. 203b, 2800 .. 283b - 2040 .. 207b, 2840 .. 287b - 203d: 0 BUSY, 1 PRINT, 3 JAPAN, 4 SMALL, 5 SHIFT, 6 DEF - 207c: 1 DEF 1 RAD 2 GRAD 5 ERROR 6 FLAG */ +// TODO: Convert to SVG rendering or internal layout -static const uint8_t pocketc_palette[] = +const rgb_t pocketc_state::indirect_palette[] = { - 99,107,99, - 94,111,103, - 255,255,255, - 255,255,255, - 60, 66, 60, - 0, 0, 0 + rgb_t( 99, 107, 99), + rgb_t( 94, 111, 103), + rgb_t(255, 255, 255), + rgb_t(255, 255, 255), + rgb_t( 60, 66, 60), + rgb_t( 0, 0, 0) }; -const unsigned short pocketc_state::pocketc_colortable[8][2] = { +const int pocketc_state::colortable[8][2] = +{ { 5, 4 }, { 5, 0 }, { 5, 2 }, @@ -33,38 +29,20 @@ const unsigned short pocketc_state::pocketc_colortable[8][2] = { PALETTE_INIT_MEMBER(pocketc_state, pocketc) { - uint8_t i=0, r, b, g, color_count = 6; - - while (color_count--) - { - r = pocketc_palette[i++]; g = pocketc_palette[i++]; b = pocketc_palette[i++]; - palette.set_indirect_color(5 - color_count, rgb_t(r, g, b)); - } + for (int i = 0; i < 6; i++) + palette.set_indirect_color(i, indirect_palette[i]); - for( i = 0; i < 8; i++ ) + for (int i = 0; i < 8; i++) { - palette.set_pen_indirect(i*2, pocketc_colortable[i][0]); - palette.set_pen_indirect(i*2+1, pocketc_colortable[i][1]); + palette.set_pen_indirect(i*2, colortable[i][0]); + palette.set_pen_indirect(i*2+1, colortable[i][1]); } } - -/* Draw an indicator (DEG, SHIFT, etc) */ -void pocketc_state::pocketc_draw_special(bitmap_ind16 &bitmap, int x, int y, const POCKETC_FIGURE fig, int color) +void pocketc_state::pocketc_draw_special(bitmap_ind16 &bitmap, int x, int y, const char* const *fig, int color) { - int i,j; - for (i=0; fig[i]; i++, y++) - { - for (j=0; fig[i][j]!=0; j++) - { - switch(fig[i][j]) - { - case '1': - bitmap.pix16(y, x+j) = color; - break; - case 'e': - return; - } - } - } + for (int i = 0; i < 5; i++, y++) + for (int j = 0; fig[i][j]; j++) + if (fig[i][j] != ' ') + bitmap.pix16(y, x + j) = color; } |