Game entry for the Game Programming Contest sponsored by OutrageousCircuits.com (RETRO Game Console)
Fork of Official_RETRO by
Diff: DisplayN18.cpp
- Revision:
- 4:2d41b942a823
- Parent:
- 1:cd8a3926f263
--- a/DisplayN18.cpp Sat Feb 14 11:40:55 2015 +0000 +++ b/DisplayN18.cpp Sun Mar 01 09:34:29 2015 +0000 @@ -189,10 +189,10 @@ } void DisplayN18::drawRect(int x, int y, int width, int height, unsigned short foreColor) { - this->drawLine(x, y, x + width, y, foreColor); - this->drawLine(x, y + height, x + width, y + height, foreColor); - this->drawLine(x, y, x, y + height, foreColor); - this->drawLine(x + width, y, x + width, y + height, foreColor); + //this->drawLine(x, y, x + width, y, foreColor); + //this->drawLine(x, y + height, x + width, y + height, foreColor); + //this->drawLine(x, y, x, y + height, foreColor); + //this->drawLine(x + width, y, x + width, y + height, foreColor); } void DisplayN18::fillCircle(int x, int y, int radius, unsigned short foreColor) { @@ -263,6 +263,7 @@ } } +/* void DisplayN18::drawLine(int x0, int y0, int x1, int y1, unsigned short foreColor) { if (x0 == x1) { if (y1 < y0) { @@ -349,10 +350,11 @@ } } } +*/ -unsigned char characters[95 * 5] = { +unsigned char characters[59 * 5] = { 0x00, 0x00, 0x00, 0x00, 0x00, /* Space 0x20 */ - 0x00, 0x00, 0x4f, 0x00, 0x00, /* ! */ + 0x00, 0x4f, 0x4f, 0x00, 0x00, /* ! */ 0x00, 0x07, 0x00, 0x07, 0x00, /* " */ 0x14, 0x7f, 0x14, 0x7f, 0x14, /* # */ 0x24, 0x2a, 0x7f, 0x2a, 0x12, /* $ */ @@ -367,87 +369,70 @@ 0x08, 0x08, 0x08, 0x08, 0x08, /* - */ 0x00, 0x60, 0x60, 0x00, 0x00, /* . */ 0x20, 0x10, 0x08, 0x04, 0x02, /* / */ - 0x3e, 0x51, 0x49, 0x45, 0x3e, /* 0 0x30 */ - 0x00, 0x42, 0x7f, 0x40, 0x00, /* 1 */ - 0x42, 0x61, 0x51, 0x49, 0x46, /* 2 */ - 0x21, 0x41, 0x45, 0x4b, 0x31, /* 3 */ - 0x18, 0x14, 0x12, 0x7f, 0x10, /* 4 */ - 0x27, 0x45, 0x45, 0x45, 0x39, /* 5 */ - 0x3c, 0x4a, 0x49, 0x49, 0x30, /* 6 */ - 0x01, 0x71, 0x09, 0x05, 0x03, /* 7 */ - 0x36, 0x49, 0x49, 0x49, 0x36, /* 8 */ - 0x06, 0x49, 0x49, 0x29, 0x1e, /* 9 */ + 0x3e, 0x41, 0x41, 0x7f, 0x3e, /* 0 0x30 */ + 0x00, 0x42, 0x7f, 0x7f, 0x40, /* 1 */ + 0x72, 0x59, 0x49, 0x4f, 0x46, /* 2 */ + 0x49, 0x49, 0x49, 0x7f, 0x36, /* 3 */ + 0x1f, 0x10, 0x10, 0x7f, 0x7f, /* 4 */ + 0x4f, 0x4f, 0x49, 0x79, 0x31, /* 5 */ + 0x3e, 0x7f, 0x49, 0x49, 0x32, /* 6 */ + 0x01, 0x61, 0x79, 0x1f, 0x07, /* 7 */ + 0x36, 0x49, 0x49, 0x7f, 0x36, /* 8 */ + 0x26, 0x49, 0x49, 0x7f, 0x3e, /* 9 */ 0x00, 0x36, 0x36, 0x00, 0x00, /* : */ 0x00, 0x56, 0x36, 0x00, 0x00, /* ; */ 0x08, 0x14, 0x22, 0x41, 0x00, /* < */ 0x14, 0x14, 0x14, 0x14, 0x14, /* = */ - 0x00, 0x41, 0x22, 0x14, 0x08, /* > */ + 0x08, 0x08, 0x08, 0x1C, 0x08, /* > */ 0x02, 0x01, 0x51, 0x09, 0x06, /* ? */ 0x3e, 0x41, 0x5d, 0x55, 0x1e, /* @ 0x40 */ - 0x7e, 0x11, 0x11, 0x11, 0x7e, /* A */ - 0x7f, 0x49, 0x49, 0x49, 0x36, /* B */ - 0x3e, 0x41, 0x41, 0x41, 0x22, /* C */ - 0x7f, 0x41, 0x41, 0x22, 0x1c, /* D */ - 0x7f, 0x49, 0x49, 0x49, 0x41, /* E */ - 0x7f, 0x09, 0x09, 0x09, 0x01, /* F */ + 0x7e, 0x7f, 0x11, 0x11, 0x7e, /* A */ + 0x7f, 0x7f, 0x49, 0x49, 0x36, /* B */ + 0x3e, 0x7f, 0x41, 0x41, 0x22, /* C */ + 0x7f, 0x7f, 0x41, 0x22, 0x1c, /* D */ + 0x7f, 0x7f, 0x49, 0x49, 0x49, /* E */ + 0x7f, 0x7f, 0x09, 0x09, 0x01, /* F */ 0x3e, 0x41, 0x49, 0x49, 0x7a, /* G */ - 0x7f, 0x08, 0x08, 0x08, 0x7f, /* H */ - 0x00, 0x41, 0x7f, 0x41, 0x00, /* I */ + 0x7f, 0x7f, 0x08, 0x08, 0x7f, /* H */ + 0x41, 0x7f, 0x7f, 0x41, 0x00, /* I */ 0x20, 0x40, 0x41, 0x3f, 0x01, /* J */ - 0x7f, 0x08, 0x14, 0x22, 0x41, /* K */ - 0x7f, 0x40, 0x40, 0x40, 0x40, /* L */ - 0x7f, 0x02, 0x0c, 0x02, 0x7f, /* M */ - 0x7f, 0x04, 0x08, 0x10, 0x7f, /* N */ - 0x3e, 0x41, 0x41, 0x41, 0x3e, /* O */ - 0x7f, 0x09, 0x09, 0x09, 0x06, /* P 0x50 */ - 0x3e, 0x41, 0x51, 0x21, 0x5e, /* Q */ - 0x7f, 0x09, 0x19, 0x29, 0x46, /* R */ - 0x26, 0x49, 0x49, 0x49, 0x32, /* S */ - 0x01, 0x01, 0x7f, 0x01, 0x01, /* T */ - 0x3f, 0x40, 0x40, 0x40, 0x3f, /* U */ - 0x1f, 0x20, 0x40, 0x20, 0x1f, /* V */ - 0x3f, 0x40, 0x38, 0x40, 0x3f, /* W */ + 0x7f, 0x7f, 0x14, 0x22, 0x41, /* K */ + 0x7f, 0x7f, 0x40, 0x40, 0x40, /* L */ + 0x7f, 0x7e, 0x0c, 0x06, 0x7f, /* M */ //02->06 + 0x7f, 0x7e, 0x08, 0x10, 0x7f, /* N */ + 0x3e, 0x7f, 0x41, 0x41, 0x3e, /* O */ + 0x7f, 0x7f, 0x09, 0x09, 0x06, /* P 0x50 */ + 0x3e, 0x7f, 0x51, 0x21, 0x5e, /* Q */ + 0x7f, 0x7f, 0x19, 0x29, 0x46, /* R */ + 0x26, 0x4f, 0x49, 0x79, 0x32, /* S */ + 0x01, 0x7f, 0x7f, 0x01, 0x01, /* T */ + 0x3f, 0x7f, 0x40, 0x40, 0x3f, /* U */ + 0x1f, 0x3f, 0x40, 0x20, 0x1f, /* V */ + //0x3f, 0x40, 0x38, 0x40, 0x3f, /* W */ + 0x7f, 0x3f, 0x18, 0x20, 0x7f, /* W */ 0x63, 0x14, 0x08, 0x14, 0x63, /* X */ - 0x07, 0x08, 0x70, 0x08, 0x07, /* Y */ + 0x07, 0x0f, 0x78, 0x08, 0x07, /* Y */ 0x61, 0x51, 0x49, 0x45, 0x43, /* Z */ - 0x00, 0x7f, 0x41, 0x41, 0x00, /* [ */ - 0x02, 0x04, 0x08, 0x10, 0x20, /* \ */ - 0x00, 0x41, 0x41, 0x7f, 0x00, /* ] */ - 0x04, 0x02, 0x01, 0x02, 0x04, /* ^ */ - 0x40, 0x40, 0x40, 0x40, 0x40, /* _ */ - 0x00, 0x00, 0x03, 0x05, 0x00, /* ` 0x60 */ - 0x20, 0x54, 0x54, 0x54, 0x78, /* a */ - 0x7F, 0x44, 0x44, 0x44, 0x38, /* b */ - 0x38, 0x44, 0x44, 0x44, 0x44, /* c */ - 0x38, 0x44, 0x44, 0x44, 0x7f, /* d */ - 0x38, 0x54, 0x54, 0x54, 0x18, /* e */ - 0x04, 0x04, 0x7e, 0x05, 0x05, /* f */ - 0x08, 0x54, 0x54, 0x54, 0x3c, /* g */ - 0x7f, 0x08, 0x04, 0x04, 0x78, /* h */ - 0x00, 0x44, 0x7d, 0x40, 0x00, /* i */ - 0x20, 0x40, 0x44, 0x3d, 0x00, /* j */ - 0x7f, 0x10, 0x28, 0x44, 0x00, /* k */ - 0x00, 0x41, 0x7f, 0x40, 0x00, /* l */ - 0x7c, 0x04, 0x7c, 0x04, 0x78, /* m */ - 0x7c, 0x08, 0x04, 0x04, 0x78, /* n */ - 0x38, 0x44, 0x44, 0x44, 0x38, /* o */ - 0x7c, 0x14, 0x14, 0x14, 0x08, /* p 0x70 */ - 0x08, 0x14, 0x14, 0x14, 0x7c, /* q */ - 0x7c, 0x08, 0x04, 0x04, 0x00, /* r */ - 0x48, 0x54, 0x54, 0x54, 0x24, /* s */ - 0x04, 0x04, 0x3f, 0x44, 0x44, /* t */ - 0x3c, 0x40, 0x40, 0x20, 0x7c, /* u */ - 0x1c, 0x20, 0x40, 0x20, 0x1c, /* v */ - 0x3c, 0x40, 0x30, 0x40, 0x3c, /* w */ - 0x44, 0x28, 0x10, 0x28, 0x44, /* x */ - 0x0c, 0x50, 0x50, 0x50, 0x3c, /* y */ - 0x44, 0x64, 0x54, 0x4c, 0x44, /* z */ - 0x08, 0x36, 0x41, 0x41, 0x00, /* { */ - 0x00, 0x00, 0x77, 0x00, 0x00, /* | */ - 0x00, 0x41, 0x41, 0x36, 0x08, /* } */ - 0x08, 0x08, 0x2a, 0x1c, 0x08 /* ~ */ }; +unsigned short numbers[10] = { 0xF6BE, 0x592E, 0xE7CE, 0xE79E, 0xB792, 0xF39E, 0xF3DE, 0xE492, 0xF7DE, 0xF79E }; + +void DisplayN18::drawNumber(int x, int y, const char character, unsigned short foreColor, unsigned short backColor) +{ + unsigned short mask = 0x8000; + + for (int i = 0; i < 5; i++) { + for (int j = 0; j < 3; j++) { + if( numbers[character] & mask ) + draw(&foreColor, x+j, y+i, 1, 1); + else + draw(&backColor, x+j, y+i, 1, 1); + + mask >>= 1; + } + } +} + void DisplayN18::drawCharacter(int x, int y, const char character, unsigned short foreColor, unsigned short backColor, unsigned char fontSize) { if (character > 126 || character < 32) return;