|
|
@@ -14,253 +14,6 @@ using WalrusRPG::Graphics::Texture;
|
|
|
|
|
|
namespace
|
|
|
{
|
|
|
- // x, y, width, height, xoffset, yoffset
|
|
|
- const int16_t haeccity[][6] = {
|
|
|
- ///*32*/{0, 0, 0, 0},
|
|
|
- /*33*/ {0, 0, 1, 6, 0, 3},
|
|
|
- /*34*/ {1, 0, 3, 2, 0, 3},
|
|
|
- /*35*/ {4, 0, 5, 5, 0, 3},
|
|
|
- /*36*/ {9, 0, 5, 7, 0, 3},
|
|
|
- /*37*/ {0, 6, 8, 6, 0, 3},
|
|
|
- /*38*/ {14, 0, 5, 6, 0, 3},
|
|
|
- /*39*/ {1, 2, 1, 2, 0, 3},
|
|
|
- /*40*/ {19, 0, 2, 8, 0, 2},
|
|
|
- /*41*/ {8, 7, 2, 8, 0, 2},
|
|
|
- /*42*/ {0, 12, 5, 5, 0, 2},
|
|
|
- /*43*/ {5, 12, 3, 3, 0, 5},
|
|
|
- /*44*/ {1, 4, 2, 2, 0, 8},
|
|
|
- /*45*/ {2, 2, 2, 2, 0, 5},
|
|
|
- /*46*/ {8, 5, 1, 1, 0, 8},
|
|
|
- /*47*/ {10, 7, 3, 7, 0, 3},
|
|
|
- /*48*/ {13, 7, 4, 6, 0, 3},
|
|
|
- /*49*/ {17, 6, 2, 6, 0, 3},
|
|
|
- /*50*/ {21, 0, 4, 6, 0, 3},
|
|
|
- /*51*/ {25, 0, 3, 6, 0, 3},
|
|
|
- /*52*/ {28, 0, 5, 6, 0, 3},
|
|
|
- /*53*/ {33, 0, 3, 6, 0, 3},
|
|
|
- /*54*/ {36, 0, 4, 6, 0, 3},
|
|
|
- /*55*/ {40, 0, 3, 6, 0, 3},
|
|
|
- /*56*/ {43, 0, 4, 6, 0, 3},
|
|
|
- /*57*/ {47, 0, 4, 6, 0, 3},
|
|
|
- /*58*/ {51, 0, 1, 5, 0, 4},
|
|
|
- /*59*/ {52, 0, 2, 6, 0, 4},
|
|
|
- /*60*/ {54, 0, 3, 5, 0, 4},
|
|
|
- /*61*/ {57, 0, 3, 3, 0, 5},
|
|
|
- /*62*/ {60, 0, 3, 5, 0, 4},
|
|
|
- /*63*/ {57, 3, 3, 6, 0, 3},
|
|
|
- /*64*/ {19, 8, 5, 6, 0, 3},
|
|
|
- /*65*/ {13, 13, 4, 6, 0, 3},
|
|
|
- /*66*/ {0, 17, 4, 6, 0, 3},
|
|
|
- /*67*/ {4, 17, 4, 6, 0, 3},
|
|
|
- /*68*/ {8, 15, 4, 6, 0, 3},
|
|
|
- /*69*/ {24, 6, 3, 6, 0, 3},
|
|
|
- /*70*/ {27, 6, 3, 6, 0, 3},
|
|
|
- /*71*/ {30, 6, 4, 6, 0, 3},
|
|
|
- /*72*/ {34, 6, 4, 6, 0, 3},
|
|
|
- /*73*/ {12, 14, 1, 6, 0, 3},
|
|
|
- /*74*/ {38, 6, 3, 7, 0, 3},
|
|
|
- /*75*/ {24, 12, 4, 6, 0, 3},
|
|
|
- /*76*/ {17, 14, 3, 6, 0, 3},
|
|
|
- /*77*/ {28, 12, 5, 6, 0, 3},
|
|
|
- /*78*/ {13, 19, 4, 6, 0, 3},
|
|
|
- /*79*/ {0, 23, 4, 6, 0, 3},
|
|
|
- /*80*/ {4, 23, 4, 6, 0, 3},
|
|
|
- /*81*/ {8, 21, 5, 7, 0, 3},
|
|
|
- /*82*/ {20, 14, 4, 6, 0, 3},
|
|
|
- /*83*/ {33, 12, 4, 6, 0, 3},
|
|
|
- /*84*/ {41, 6, 3, 6, 0, 3},
|
|
|
- /*85*/ {44, 6, 4, 6, 0, 3},
|
|
|
- /*86*/ {48, 6, 5, 6, 0, 3},
|
|
|
- /*87*/ {63, 0, 5, 6, 0, 3},
|
|
|
- /*88*/ {68, 0, 5, 6, 0, 3},
|
|
|
- /*89*/ {73, 0, 5, 6, 0, 3},
|
|
|
- /*90*/ {53, 6, 4, 6, 0, 3},
|
|
|
- /*91*/ {60, 5, 2, 8, 0, 2},
|
|
|
- /*92*/ {41, 12, 3, 7, 0, 3},
|
|
|
- /*93*/ {24, 18, 2, 8, 0, 2},
|
|
|
- /*94*/ {13, 25, 5, 3, 0, 2},
|
|
|
- /*95*/ {3, 5, 4, 1, 0, 10},
|
|
|
- /*96*/ {17, 12, 2, 2, 1, 1},
|
|
|
- /*97*/ {17, 20, 4, 5, 0, 4},
|
|
|
- /*98*/ {18, 25, 4, 7, 0, 2},
|
|
|
- /*99*/ {21, 20, 3, 5, 0, 4},
|
|
|
- /*100*/ {0, 29, 4, 7, 0, 2},
|
|
|
- /*101*/ {4, 29, 4, 5, 0, 4},
|
|
|
- /*102*/ {8, 28, 4, 8, 0, 2},
|
|
|
- /*103*/ {4, 34, 4, 6, 0, 4},
|
|
|
- /*104*/ {0, 36, 4, 7, 0, 2},
|
|
|
- /*105*/ {12, 28, 1, 7, 0, 2},
|
|
|
- /*106*/ {13, 28, 2, 8, 0, 2},
|
|
|
- /*107*/ {26, 18, 4, 7, 0, 2},
|
|
|
- /*108*/ {15, 28, 2, 7, 0, 2},
|
|
|
- /*109*/ {30, 18, 5, 5, 0, 4},
|
|
|
- /*110*/ {35, 18, 4, 5, 0, 4},
|
|
|
- /*111*/ {37, 13, 4, 5, 0, 4},
|
|
|
- /*112*/ {44, 12, 4, 6, 0, 4},
|
|
|
- /*113*/ {48, 12, 4, 6, 0, 4},
|
|
|
- /*114*/ {52, 12, 3, 5, 0, 4},
|
|
|
- /*115*/ {55, 12, 4, 5, 0, 4},
|
|
|
- /*116*/ {78, 0, 3, 6, 0, 3},
|
|
|
- /*117*/ {81, 0, 4, 5, 0, 4},
|
|
|
- /*118*/ {85, 0, 3, 5, 0, 4},
|
|
|
- /*119*/ {88, 0, 5, 5, 0, 4},
|
|
|
- /*120*/ {93, 0, 3, 5, 0, 4},
|
|
|
- /*121*/ {96, 0, 4, 6, 0, 4},
|
|
|
- /*122*/ {81, 5, 3, 5, 0, 4},
|
|
|
- /*123*/ {62, 6, 3, 8, 0, 2},
|
|
|
- /*124*/ {12, 35, 1, 7, 0, 3},
|
|
|
- /*125*/ {4, 40, 3, 8, 0, 2},
|
|
|
- /*126*/ {7, 40, 5, 2, 0, 5},
|
|
|
- /*127*/ {65, 6, 5, 5, 0, 4},
|
|
|
- /*uncovered by littera for now*/
|
|
|
- /*128*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*129*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*130*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*131*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*132*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*133*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*134*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*135*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*136*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*137*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*138*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*139*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*140 = 338*/ {22, 26, 6, 6, 0, 3},
|
|
|
- /*141*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*142*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*143*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*144*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*145*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*146*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*147*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*148*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*149*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*150*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*151*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*152*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*153*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*154*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*155 = 339*/ {32, 25, 6, 5, 0, 4},
|
|
|
- /*156*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*157*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*158*/ {7, 42, 5, 8, 0, 1},
|
|
|
- /*159*/ {0, 0, 0, 0, 0, 0},
|
|
|
- /*160*/ {0, 0, 0, 0, 0, 0},
|
|
|
- // End of Littera Mess
|
|
|
- /*161*/ {0, 48, 1, 6, 0, 4},
|
|
|
- /*162*/ {1, 48, 4, 7, 0, 3},
|
|
|
- /*163*/ {32, 30, 4, 6, 0, 3},
|
|
|
- /*164*/ {21, 35, 6, 4, 0, 3},
|
|
|
- /*165*/ {27, 34, 5, 6, 0, 3},
|
|
|
- /*166*/ {0, 54, 1, 7, 0, 3},
|
|
|
- /*167*/ {21, 39, 3, 7, 0, 3},
|
|
|
- /*168*/ {14, 6, 3, 1, 1, 2},
|
|
|
- /*169*/ {36, 30, 6, 7, 0, 2},
|
|
|
- /*170*/ {38, 25, 4, 5, 0, 2},
|
|
|
- /*171*/ {16, 42, 5, 3, 0, 5},
|
|
|
- /*172*/ {35, 23, 4, 2, 0, 5},
|
|
|
- /*173*/ {15, 35, 2, 2, 0, 5},
|
|
|
- /*174*/ {84, 5, 7, 8, 0, 2},
|
|
|
- /*175*/ {54, 5, 3, 1, 0, 2},
|
|
|
- /*176*/ {16, 45, 3, 3, 0, 2},
|
|
|
- /*177*/ {12, 47, 3, 5, 0, 4},
|
|
|
- /*178*/ {5, 50, 2, 4, 0, 3},
|
|
|
- /*179*/ {7, 50, 2, 4, 0, 3},
|
|
|
- /*180*/ {15, 37, 2, 2, 1, 1},
|
|
|
- /*181*/ {75, 10, 5, 6, 0, 4},
|
|
|
- /*182*/ {32, 36, 4, 7, 0, 3},
|
|
|
- /*183*/ {8, 6, 1, 1, 0, 6},
|
|
|
- /*184*/ {5, 48, 2, 2, 1, 9},
|
|
|
- /*185*/ {75, 6, 2, 4, 0, 3},
|
|
|
- /*186*/ {24, 40, 4, 5, 0, 2},
|
|
|
- /*187*/ {70, 13, 5, 3, 0, 5},
|
|
|
- /*188*/ {100, 0, 7, 6, 0, 3},
|
|
|
- /*189*/ {107, 0, 6, 6, 0, 3},
|
|
|
- /*190*/ {113, 0, 7, 6, 0, 3},
|
|
|
- /*191*/ {9, 50, 3, 6, 0, 4},
|
|
|
- /*192*/ {1, 55, 4, 9, 0, 0},
|
|
|
- /*193*/ {5, 54, 4, 9, 0, 0},
|
|
|
- /*194*/ {28, 40, 4, 9, 0, 0},
|
|
|
- /*195*/ {15, 48, 4, 9, 0, 0},
|
|
|
- /*196*/ {9, 56, 4, 8, 0, 1},
|
|
|
- /*197*/ {5, 63, 4, 9, 0, 0},
|
|
|
- /*198*/ {19, 46, 6, 6, 0, 3},
|
|
|
- /*199*/ {0, 64, 4, 8, 0, 3},
|
|
|
- /*200*/ {25, 45, 3, 9, 0, 0},
|
|
|
- /*201*/ {19, 52, 3, 9, 0, 0},
|
|
|
- /*202*/ {13, 57, 3, 9, 0, 0},
|
|
|
- /*203*/ {9, 64, 3, 8, 0, 1},
|
|
|
- /*204*/ {16, 57, 2, 9, 0, 0},
|
|
|
- /*205*/ {22, 52, 2, 9, 0, 0},
|
|
|
- /*206*/ {46, 23, 3, 9, -1, 0},
|
|
|
- /*207*/ {61, 18, 3, 8, -1, 1},
|
|
|
- /*208*/ {49, 24, 5, 6, 0, 3},
|
|
|
- /*209*/ {54, 24, 4, 9, 0, 0},
|
|
|
- /*210*/ {42, 32, 4, 9, 0, 0},
|
|
|
- /*211*/ {36, 37, 4, 9, 0, 0},
|
|
|
- /*212*/ {32, 43, 4, 9, 0, 0},
|
|
|
- /*213*/ {28, 49, 4, 9, 0, 0},
|
|
|
- /*214*/ {24, 54, 4, 8, 0, 1},
|
|
|
- /*215*/ {12, 52, 3, 3, 0, 5},
|
|
|
- /*216*/ {18, 61, 4, 6, 0, 3},
|
|
|
- /*217*/ {12, 66, 4, 9, 0, 0},
|
|
|
- /*218*/ {0, 72, 4, 9, 0, 0},
|
|
|
- /*219*/ {4, 72, 4, 9, 0, 0},
|
|
|
- /*220*/ {8, 72, 4, 8, 0, 1},
|
|
|
- /*221*/ {46, 32, 5, 9, 0, 0},
|
|
|
- /*222*/ {80, 10, 4, 6, 0, 3},
|
|
|
- /*223*/ {91, 5, 4, 6, 0, 3},
|
|
|
- /*224*/ {120, 0, 4, 8, 0, 1},
|
|
|
- /*225*/ {95, 6, 4, 8, 0, 1},
|
|
|
- /*226*/ {84, 13, 4, 8, 0, 1},
|
|
|
- /*227*/ {64, 19, 4, 8, 0, 1},
|
|
|
- /*228*/ {58, 26, 4, 7, 0, 2},
|
|
|
- /*229*/ {68, 19, 4, 8, 0, 1},
|
|
|
- /*230*/ {72, 16, 5, 5, 0, 4},
|
|
|
- /*231*/ {77, 16, 4, 7, 0, 4},
|
|
|
- /*232*/ {72, 21, 4, 8, 0, 1},
|
|
|
- /*233*/ {62, 27, 4, 8, 0, 1},
|
|
|
- /*234*/ {51, 33, 4, 8, 0, 1},
|
|
|
- /*235*/ {55, 33, 4, 7, 0, 2},
|
|
|
- /*236*/ {16, 66, 2, 8, 0, 1},
|
|
|
- /*237*/ {22, 61, 2, 8, 0, 1},
|
|
|
- /*238*/ {18, 67, 3, 8, -1, 1},
|
|
|
- /*239*/ {59, 33, 3, 7, -1, 2},
|
|
|
- /*240*/ {66, 27, 4, 7, 0, 2},
|
|
|
- /*241*/ {88, 13, 4, 8, 0, 1},
|
|
|
- /*242*/ {99, 6, 4, 8, 0, 1},
|
|
|
- /*243*/ {103, 6, 4, 8, 0, 1},
|
|
|
- /*244*/ {107, 6, 4, 8, 0, 1},
|
|
|
- /*245*/ {111, 6, 4, 8, 0, 1},
|
|
|
- /*246*/ {115, 6, 4, 7, 0, 2},
|
|
|
- /*247*/ {81, 16, 3, 5, 0, 4},
|
|
|
- /*248*/ {124, 0, 4, 5, 0, 4},
|
|
|
- /*249*/ {128, 0, 4, 8, 0, 1},
|
|
|
- /*250*/ {124, 5, 4, 8, 0, 1},
|
|
|
- /*251*/ {119, 8, 4, 8, 0, 1},
|
|
|
- /*252*/ {92, 14, 4, 7, 0, 2},
|
|
|
- /*253*/ {96, 14, 4, 9, 0, 1},
|
|
|
- /*254*/ {81, 21, 3, 8, 0, 2},
|
|
|
- /*255*/ {76, 23, 4, 8, 0, 2}};
|
|
|
-
|
|
|
- const int8_t haeccity_kernings[][3] = {
|
|
|
- {66, 74, -1}, {67, 74, -1}, {68, 74, -1}, {70, 44, -2}, {70, 46, -1},
|
|
|
- {70, 59, -1}, {70, 74, -2}, {71, 74, -1}, {76, 34, -1}, {76, 39, -1},
|
|
|
- {76, 84, -1}, {76, 86, -1}, {76, 87, -1}, {76, 89, -1}, {76, 121, -1},
|
|
|
- {79, 74, -1}, {80, 44, -2}, {80, 46, -1}, {80, 59, -1}, {80, 74, -1},
|
|
|
- {80, 88, -1}, {80, 97, -1}, {84, 44, -1}, {84, 46, -1}, {84, 59, -1},
|
|
|
- {84, 74, -1}, {84, 97, -1}, {86, 44, -2}, {86, 46, -1}, {86, 59, -1},
|
|
|
- {86, 74, -1}, {86, 97, -1}, {87, 59, -1}, {87, 74, -1}, {89, 44, -2},
|
|
|
- {89, 46, -1}, {89, 59, -1}, {89, 74, -1}, {98, 44, -1}, {98, 106, -1},
|
|
|
- {101, 44, -1}, {101, 97, -1}, {101, 106, -1}, {102, 34, 1}, {102, 39, 1},
|
|
|
- {102, 44, -1}, {102, 97, -1}, {107, 97, -1}, {107, 102, -1}, {107, 103, -1},
|
|
|
- {107, 115, -1}, {107, 116, -1}, {107, 118, -1}, {107, 121, -1}, {108, 97, -1},
|
|
|
- {108, 102, -1}, {108, 103, -1}, {108, 115, -1}, {108, 116, -1}, {108, 121, -1},
|
|
|
- {111, 44, -1}, {111, 106, -1}, {112, 44, -1}, {112, 106, -1}, {114, 44, -2},
|
|
|
- {114, 46, -1}, {114, 97, -1}, {114, 100, -1}, {114, 106, -1}, {115, 44, -1},
|
|
|
- {115, 102, -1}, {115, 106, -1}, {115, 116, -1}, {118, 44, -1}, {118, 106, -1},
|
|
|
- {119, 44, -1}, {119, 106, -1},
|
|
|
- };
|
|
|
|
|
|
void print_debug_camera_data(const Camera &camera)
|
|
|
{
|
|
|
@@ -275,21 +28,15 @@ namespace
|
|
|
|
|
|
void StateMap::putchar_haeccity(unsigned char c, unsigned x, unsigned y)
|
|
|
{
|
|
|
- if (c <= 32)
|
|
|
- return;
|
|
|
- c -= 33;
|
|
|
- Rect letter{haeccity[c][0], haeccity[c][1], haeccity[c][2], haeccity[c][3]};
|
|
|
- put_sprite(tex_haeccity, x + haeccity[c][4], y + haeccity[c][5], letter);
|
|
|
+ // Rect letter{haeccity[c][0], haeccity[c][1], haeccity[c][2], haeccity[c][3]};
|
|
|
+ // put_sprite(tex_haeccity, x + haeccity[c][4], y + haeccity[c][5], letter);
|
|
|
+ put_sprite(txt.font_tex, x + txt.chars[c].x_offset, y + txt.chars[c].y_offset, txt.chars[c].dimensions);
|
|
|
}
|
|
|
|
|
|
void StateMap::putchar_haeccity_tint(unsigned char c, unsigned x, unsigned y,
|
|
|
const Pixel &col)
|
|
|
{
|
|
|
- if (c <= 32)
|
|
|
- return;
|
|
|
- c -= 33;
|
|
|
- Rect letter{haeccity[c][0], haeccity[c][1], haeccity[c][2], haeccity[c][3]};
|
|
|
- put_sprite_tint(tex_haeccity, x + haeccity[c][4], y + haeccity[c][5], letter, col);
|
|
|
+ put_sprite_tint(txt.font_tex, x + txt.chars[c].x_offset, y + txt.chars[c].y_offset, txt.chars[c].dimensions, col);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -300,19 +47,12 @@ void StateMap::print_haeccity(const char *str, unsigned x, unsigned y,
|
|
|
for (unsigned i = 0; str[i] && x < 320; i++)
|
|
|
{
|
|
|
unsigned char c = str[i];
|
|
|
- if (c < 32)
|
|
|
- continue;
|
|
|
- if (c == 32)
|
|
|
- {
|
|
|
- x += 2;
|
|
|
- continue;
|
|
|
- }
|
|
|
// printf("%c = %d\n", c, c);
|
|
|
if (must_tint)
|
|
|
putchar_haeccity_tint(c, x, y, col);
|
|
|
else
|
|
|
putchar_haeccity(c, x, y);
|
|
|
- x += haeccity[c - 33][2] + 1;
|
|
|
+ x += txt.chars[c].dimensions.width + 1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -351,7 +91,7 @@ void StateMap::render(unsigned dt)
|
|
|
{
|
|
|
for (int j = 0; j < 16; ++j)
|
|
|
{
|
|
|
- putchar_haeccity_tint(16 * j + i + 32, 6 * i, 9 * j + 54,
|
|
|
+ putchar_haeccity_tint(16 * j + i, 6 * i, 9 * j + 54,
|
|
|
Pixel(i * 16, j * 16, 255));
|
|
|
}
|
|
|
}
|