aboutsummaryrefslogtreecommitdiffstats
path: root/dogs.c
diff options
context:
space:
mode:
Diffstat (limited to 'dogs.c')
-rw-r--r--dogs.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/dogs.c b/dogs.c
index b401c39..a2d3baf 100644
--- a/dogs.c
+++ b/dogs.c
@@ -212,3 +212,121 @@ void draw_bitmap(int x, int y, const unsigned char *buffer)
}
}
+static const unsigned char draw_number_bitmaps[10][10] = {
+ { 8, 8, // '0'
+ 0b00011000,
+ 0b00100100,
+ 0b01000010,
+ 0b01000010,
+ 0b01000010,
+ 0b01000010,
+ 0b00100100,
+ 0b00011000,
+ },
+ { 8, 8, // '1'
+ 0b00011000,
+ 0b00101000,
+ 0b00001000,
+ 0b00001000,
+ 0b00001000,
+ 0b00001000,
+ 0b00001000,
+ 0b00111110,
+ },
+ { 8, 8, // '2'
+ 0b00011000,
+ 0b00100100,
+ 0b01000010,
+ 0b00000010,
+ 0b00000100,
+ 0b00001000,
+ 0b00010000,
+ 0b01111110,
+ },
+ { 8, 8, // '3'
+ 0b00111000,
+ 0b01000100,
+ 0b00000010,
+ 0b00111100,
+ 0b00000100,
+ 0b00000010,
+ 0b01000100,
+ 0b00111000,
+ },
+ { 8, 8, // '4'
+ 0b00000100,
+ 0b00001100,
+ 0b00010100,
+ 0b00100100,
+ 0b01111100,
+ 0b00000100,
+ 0b00000100,
+ 0b00000100,
+ },
+ { 8, 8, // '5'
+ 0b01111110,
+ 0b01000000,
+ 0b01111000,
+ 0b00000100,
+ 0b00000010,
+ 0b00000010,
+ 0b01000100,
+ 0b00111000,
+ },
+ { 8, 8, // '6'
+ 0b00011100,
+ 0b00100000,
+ 0b01000000,
+ 0b01011100,
+ 0b01100010,
+ 0b01000010,
+ 0b00100100,
+ 0b00011000,
+ },
+ { 8, 8, // '7'
+ 0b01111110,
+ 0b00000010,
+ 0b00000100,
+ 0b00001000,
+ 0b00010000,
+ 0b00010000,
+ 0b00010000,
+ 0b00010000,
+ },
+ { 8, 8, // '8'
+ 0b00011000,
+ 0b00100100,
+ 0b01000010,
+ 0b00111100,
+ 0b00100100,
+ 0b01000010,
+ 0b00100100,
+ 0b00011000,
+ },
+ { 8, 8, // '9'
+ 0b00011000,
+ 0b00100100,
+ 0b01000010,
+ 0b00100010,
+ 0b00011110,
+ 0b00000010,
+ 0b01000100,
+ 0b00111000,
+ },
+};
+
+void draw_number(int x, int y, int number)
+{
+ if (number < 0)
+ number = -number;
+ int tmp = number;
+ int count;
+ for (count = 0; tmp; count++)
+ tmp /= 10;
+ x += count * 8;
+ do {
+ x -= 8;
+ draw_bitmap(x, y, draw_number_bitmaps[number % 10]);
+ } while (number /= 10);
+}
+