1 /****************************************************************************
4 * LPC1224/SSD1306 implementation of the famous pacman game
7 * Copyright 2017 Nathael Pajani <nathael.pajani@ed3l.fr>
10 * This program is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 *************************************************************************** */
72 static const uint8_t font[] =
183 // Left looking ghost
192 // Right looking ghost
210 // Down looking ghost
406 // "3D" isometric pacman (5 positions per direction, 4 directions, with mask)
407 static const uint8_t pacmania_nw_01_mask[] =
446 static const uint8_t pacmania_nw_01[] =
485 static const uint8_t pacmania_nw_02_mask[] =
524 static const uint8_t pacmania_nw_02[] =
563 static const uint8_t pacmania_nw_03_mask[] =
602 static const uint8_t pacmania_nw_03[] =
641 static const uint8_t pacmania_nw_04_mask[] =
680 static const uint8_t pacmania_nw_04[] =
719 static const uint8_t pacmania_nw_05_mask[] =
758 static const uint8_t pacmania_nw_05[] =
797 static const uint8_t pacmania_se_01_mask[] =
836 static const uint8_t pacmania_se_01[] =
875 static const uint8_t pacmania_se_02_mask[] =
914 static const uint8_t pacmania_se_02[] =
953 static const uint8_t pacmania_se_03_mask[] =
992 static const uint8_t pacmania_se_03[] =
1031 static const uint8_t pacmania_se_04_mask[] =
1070 static const uint8_t pacmania_se_04[] =
1109 static const uint8_t pacmania_se_05_mask[] =
1148 static const uint8_t pacmania_se_05[] =
1187 // a 16x16 pacman for the intermission
1188 static const uint8_t big_pacman_0[] =
1227 static const uint8_t big_pacman_1[] =
1266 static const uint8_t big_pacman_2[] =
1305 static const uint8_t big_ghost_0[] =
1344 static const uint8_t big_ghost_1[] =
1383 static const uint8_t big_frightened_ghost_0[] =
1422 static const uint8_t big_frightened_ghost_1[] =
1461 static const uint32_t walls_mask[] =
1463 0b11111111111111111111111111111111, // 0
1464 0b11100000000000011000000000000111, // 1
1465 0b11101111011111011011111011110111, // 2
1466 0b11101111011111011011111011110111, // 3
1467 0b11101111011111011011111011110111, // 4
1468 0b11100000000000000000000000000111, // 5
1469 0b11101111011011111111011011110111, // 6
1470 0b11101111011011111111011011110111, // 7
1471 0b11100000011000011000011000000111, // 8
1472 0b11111111011111011011111011111111, // 9
1473 0b11111111011111011011111011111111, // 10
1474 0b11111111011000000000011011111111, // 11
1475 0b11111111011011100111011011111111, // 12
1476 0b11111111011010000001011011111111, // 13
1477 0b00000000000010000001000000000000, // 14
1478 0b11111111011011111111011011111111, // 15
1479 0b11111111011011111111011011111111, // 16
1480 0b11111111011000000000011011111111, // 17
1481 0b11111111011011111111011011111111, // 18
1482 0b11111111011011111111011011111111, // 19
1483 0b11100000000000011000000000000111, // 20
1484 0b11101111011111011011111011110111, // 21
1485 0b11101111011111011011111011110111, // 22
1486 0b11100011000000000000000011000111, // 23
1487 0b11111011011011111111011011011111, // 24
1488 0b11111011011011111111011011011111, // 25
1489 0b11100000011000011000011000000111, // 26
1490 0b11101111111111011011111111110111, // 27
1491 0b11101111111111011011111111110111, // 28
1492 0b11100000000000000000000000000111, // 29
1493 0b11111111111111111111111111111111 // 30
1496 static const uint32_t all_pills[] =
1498 0b00000000000000000000000000000000, // 0
1499 0b00011111111111100111111111111000, // 1
1500 0b00010000100000100100000100001000, // 2
1501 0b00010000100000100100000100001000, // 3
1502 0b00010000100000100100000100001000, // 4
1503 0b00011111111111111111111111111000, // 5
1504 0b00010000100100000000100100001000, // 6
1505 0b00010000100100000000100100001000, // 7
1506 0b00011111100111100111100111111000, // 8
1507 0b00000000100000000000000100000000, // 9
1508 0b00000000100000000000000100000000, // 10
1509 0b00000000100000000000000100000000, // 11
1510 0b00000000100000000000000100000000, // 12
1511 0b00000000100000000000000100000000, // 13
1512 0b00000000100000000000000100000000, // 14
1513 0b00000000100000000000000100000000, // 15
1514 0b00000000100000000000000100000000, // 16
1515 0b00000000100000000000000100000000, // 17
1516 0b00000000100000000000000100000000, // 18
1517 0b00000000100000000000000100000000, // 19
1518 0b00011111111111100111111111111000, // 20
1519 0b00010000100000100100000100001000, // 21
1520 0b00010000100000100100000100001000, // 22
1521 0b00011100111111100111111100111000, // 23
1522 0b00000100100100000000100100100000, // 24
1523 0b00000100100100000000100100100000, // 25
1524 0b00011111100111100111100111111000, // 26
1525 0b00010000000000100100000000001000, // 27
1526 0b00010000000000100100000000001000, // 28
1527 0b00011111111111111111111111111000, // 29
1528 0b00000000000000000000000000000000 // 30