You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Fix puppyprint font kerning
This commit is contained in:
@@ -17,22 +17,11 @@ ALIGNED8 static const Texture small_font_2[] = {
|
||||
#include "textures/segment2/custom_text2.i4.inc.c"
|
||||
};
|
||||
|
||||
const Texture *const puppyprint_font_lut[2] =
|
||||
{
|
||||
const Texture *const puppyprint_font_lut[2] = {
|
||||
small_font_1, small_font_2
|
||||
};
|
||||
|
||||
static const u8 small_font_kerning_1[80] =
|
||||
{
|
||||
/*0*/ 7, /*1*/ 7, /*2*/ 7, /*3*/ 7, /*4*/ 7, /*5*/ 7, /*6*/ 7, /*7*/ 7, /*8*/ 7, /*9*/ 7, /*-*/ 7, /*+*/ 7, /*(*/ 4, /*)*/ 4, /*!*/ 5, /*?*/ 6,
|
||||
/*A*/ 7, /*B*/ 7, /*C*/ 7, /*D*/ 7, /*E*/ 7, /*F*/ 7, /*G*/ 7, /*H*/ 7, /*I*/ 7, /*J*/ 7, /*K*/ 7, /*L*/ 7, /*M*/ 7, /*N*/ 7, /*O*/ 7, /*P*/ 7,
|
||||
/*Q*/ 7, /*R*/ 7, /*S*/ 7, /*T*/ 7, /*U*/ 7, /*V*/ 7, /*W*/ 7, /*X*/ 7, /*Y*/ 7, /*Z*/ 7, /*"*/ 5, /*'*/ 2, /*:*/ 3, /*;*/ 3, /*.*/ 3, /*,*/ 3,
|
||||
/*a*/ 6, /*b*/ 6, /*c*/ 6, /*d*/ 6, /*e*/ 6, /*f*/ 6, /*g*/ 6, /*h*/ 6, /*i*/ 2, /*j*/ 6, /*k*/ 6, /*l*/ 3, /*m*/ 6, /*n*/ 6, /*o*/ 6, /*p*/ 6,
|
||||
/*q*/ 6, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 6, /*w*/ 6, /*x*/ 6, /*y*/ 6, /*z*/ 6, /*~*/ 7, /*¨*/ 6, /*^*/ 7, /*/*/ 6, /*%*/ 6, /*&*/ 7,
|
||||
};
|
||||
|
||||
static const u8 small_font_kerning_2[80] =
|
||||
{
|
||||
static const u8 small_font_kerning_1[80] = {
|
||||
/*0*/ 6, /*1*/ 5, /*2*/ 7, /*3*/ 7, /*4*/ 7, /*5*/ 7, /*6*/ 8, /*7*/ 7, /*8*/ 7, /*9*/ 6, /*-*/ 8, /*+*/ 8, /*(*/ 5, /*)*/ 5, /*!*/ 4, /*?*/ 6,
|
||||
/*A*/ 7, /*B*/ 7, /*C*/ 7, /*D*/ 7, /*E*/ 6, /*F*/ 5, /*G*/ 8, /*H*/ 6, /*I*/ 6, /*J*/ 5, /*K*/ 7, /*L*/ 6, /*M*/ 7, /*N*/ 7, /*O*/ 7, /*P*/ 6,
|
||||
/*Q*/ 8, /*R*/ 6, /*S*/ 7, /*T*/ 7, /*U*/ 7, /*V*/ 7, /*W*/ 8, /*X*/ 7, /*Y*/ 7, /*Z*/ 7, /*"*/ 5, /*'*/ 2, /*:*/ 3, /*;*/ 3, /*.*/ 3, /*,*/ 3,
|
||||
@@ -40,8 +29,15 @@ static const u8 small_font_kerning_2[80] =
|
||||
/*q*/ 7, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 7, /*w*/ 8, /*x*/ 6, /*y*/ 8, /*z*/ 7, /*~*/ 8, /*¨*/ 7, /*^*/ 8, /*/*/ 8, /*%*/ 8, /*&*/ 8,
|
||||
};
|
||||
|
||||
const u8 *const puppyprint_kerning_lut[2][80] =
|
||||
{
|
||||
static const u8 small_font_kerning_2[80] = {
|
||||
/*0*/ 7, /*1*/ 7, /*2*/ 7, /*3*/ 7, /*4*/ 7, /*5*/ 7, /*6*/ 7, /*7*/ 7, /*8*/ 7, /*9*/ 7, /*-*/ 7, /*+*/ 7, /*(*/ 4, /*)*/ 4, /*!*/ 5, /*?*/ 6,
|
||||
/*A*/ 7, /*B*/ 7, /*C*/ 7, /*D*/ 7, /*E*/ 7, /*F*/ 7, /*G*/ 7, /*H*/ 7, /*I*/ 7, /*J*/ 7, /*K*/ 7, /*L*/ 7, /*M*/ 7, /*N*/ 7, /*O*/ 7, /*P*/ 7,
|
||||
/*Q*/ 7, /*R*/ 7, /*S*/ 7, /*T*/ 7, /*U*/ 7, /*V*/ 7, /*W*/ 7, /*X*/ 7, /*Y*/ 7, /*Z*/ 7, /*"*/ 5, /*'*/ 2, /*:*/ 3, /*;*/ 3, /*.*/ 3, /*,*/ 3,
|
||||
/*a*/ 6, /*b*/ 6, /*c*/ 6, /*d*/ 6, /*e*/ 6, /*f*/ 6, /*g*/ 6, /*h*/ 6, /*i*/ 2, /*j*/ 6, /*k*/ 6, /*l*/ 3, /*m*/ 6, /*n*/ 6, /*o*/ 6, /*p*/ 6,
|
||||
/*q*/ 6, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 6, /*w*/ 6, /*x*/ 6, /*y*/ 6, /*z*/ 6, /*~*/ 7, /*¨*/ 6, /*^*/ 7, /*/*/ 6, /*%*/ 6, /*&*/ 7,
|
||||
};
|
||||
|
||||
const u8 *const puppyprint_kerning_lut[2][80] = {
|
||||
small_font_kerning_1, small_font_kerning_2
|
||||
};
|
||||
|
||||
|
||||
@@ -180,39 +180,35 @@ void mtxf_rot_trans_mul(Vec3s rot, Vec3f trans, Mat4 dest, Mat4 src) {
|
||||
|
||||
register f32 sz = sins(rot[2]);
|
||||
register f32 cz = coss(rot[2]);
|
||||
register f32 entry0;
|
||||
register f32 entry1;
|
||||
register f32 entry2;
|
||||
register Vec3f entry;
|
||||
|
||||
entry0 = cy * cz;
|
||||
entry1 = cy * sz;
|
||||
entry2 = -sy;
|
||||
dest[0][0] = entry0 * src[0][0] + entry1 * src[1][0] + entry2 * src[2][0];
|
||||
dest[0][1] = entry0 * src[0][1] + entry1 * src[1][1] + entry2 * src[2][1];
|
||||
dest[0][2] = entry0 * src[0][2] + entry1 * src[1][2] + entry2 * src[2][2];
|
||||
entry[0] = cy * cz;
|
||||
entry[1] = cy * sz;
|
||||
entry[2] = -sy;
|
||||
dest[0][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0];
|
||||
dest[0][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1];
|
||||
dest[0][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2];
|
||||
|
||||
entry1 = sx * sy;
|
||||
entry0 = entry1 * cz - cx * sz;
|
||||
entry1 = entry1 * sz + cx * cz;
|
||||
entry2 = sx * cy;
|
||||
dest[1][0] = entry0 * src[0][0] + entry1 * src[1][0] + entry2 * src[2][0];
|
||||
dest[1][1] = entry0 * src[0][1] + entry1 * src[1][1] + entry2 * src[2][1];
|
||||
dest[1][2] = entry0 * src[0][2] + entry1 * src[1][2] + entry2 * src[2][2];
|
||||
entry[1] = sx * sy;
|
||||
entry[0] = (entry[1] * cz) - (cx * sz);
|
||||
entry[1] = (entry[1] * sz) + (cx * cz);
|
||||
entry[2] = sx * cy;
|
||||
dest[1][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0];
|
||||
dest[1][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1];
|
||||
dest[1][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2];
|
||||
|
||||
entry1 = cx * sy;
|
||||
entry0 = entry1 * cz + sx * sz;
|
||||
entry1 = entry1 * sz - sx * cz;
|
||||
entry2 = cx * cy;
|
||||
dest[2][0] = entry0 * src[0][0] + entry1 * src[1][0] + entry2 * src[2][0];
|
||||
dest[2][1] = entry0 * src[0][1] + entry1 * src[1][1] + entry2 * src[2][1];
|
||||
dest[2][2] = entry0 * src[0][2] + entry1 * src[1][2] + entry2 * src[2][2];
|
||||
entry[1] = cx * sy;
|
||||
entry[0] = (entry[1] * cz) + (sx * sz);
|
||||
entry[1] = (entry[1] * sz) - (sx * cz);
|
||||
entry[2] = cx * cy;
|
||||
dest[2][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0];
|
||||
dest[2][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1];
|
||||
dest[2][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2];
|
||||
|
||||
entry0 = trans[0];
|
||||
entry1 = trans[1];
|
||||
entry2 = trans[2];
|
||||
dest[3][0] = entry0 * src[0][0] + entry1 * src[1][0] + entry2 * src[2][0] + src[3][0];
|
||||
dest[3][1] = entry0 * src[0][1] + entry1 * src[1][1] + entry2 * src[2][1] + src[3][1];
|
||||
dest[3][2] = entry0 * src[0][2] + entry1 * src[1][2] + entry2 * src[2][2] + src[3][2];
|
||||
vec3_copy(entry, trans);
|
||||
dest[3][0] = entry[0] * src[0][0] + entry[1] * src[1][0] + entry[2] * src[2][0] + src[3][0];
|
||||
dest[3][1] = entry[0] * src[0][1] + entry[1] * src[1][1] + entry[2] * src[2][1] + src[3][1];
|
||||
dest[3][2] = entry[0] * src[0][2] + entry[1] * src[1][2] + entry[2] * src[2][2] + src[3][2];
|
||||
dest[0][3] = dest[1][3] = dest[2][3] = 0;
|
||||
((u32 *) dest)[15] = 0x3F800000;
|
||||
}
|
||||
@@ -228,7 +224,7 @@ void mtxf_lookat(Mat4 mtx, Vec3f from, Vec3f to, s32 roll) {
|
||||
register f32 dx = (to[0] - from[0]);
|
||||
register f32 dz = (to[2] - from[2]);
|
||||
register f32 invLength = sqrtf(sqr(dx) + sqr(dz));
|
||||
invLength = -(1.0f / MAX(invLength, NEAR_ZERO));
|
||||
invLength = -(1.0f / MAX(invLength, __FLT_EPSILON__));
|
||||
dx *= invLength;
|
||||
dz *= invLength;
|
||||
f32 sr = sins(roll);
|
||||
|
||||
Reference in New Issue
Block a user