You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
add new fonts very easily; comic sans font added
This commit is contained in:
43
config.h
43
config.h
@@ -3,19 +3,48 @@
|
||||
#ifndef S2D_CONFIG_H
|
||||
#define S2D_CONFIG_H
|
||||
|
||||
#define const
|
||||
/**
|
||||
* SET YOUR FONT NAME HERE
|
||||
*/
|
||||
#define FONTNAME comicsans
|
||||
|
||||
|
||||
/***********
|
||||
* Helpful defines to change
|
||||
***********/
|
||||
|
||||
#define BASE_SCALE 1.0f
|
||||
|
||||
/******************************
|
||||
*
|
||||
* ONLY CHANGE THE BELOW CONTENTS IF YOU'RE DEVELOPING
|
||||
* FOR A GAME THAT ISN'T SM64
|
||||
*
|
||||
*****************************/
|
||||
|
||||
// magic macros and font header inclusion
|
||||
#define GLUE(a, b) a##b
|
||||
#define GLUE2(a, b) GLUE(a, b)
|
||||
#define STR(x) #x
|
||||
#define STR2(x) STR(x)
|
||||
|
||||
#define __headername(hd) fonts/hd.h
|
||||
|
||||
#define _FONT_HEADER STR2(__headername(FONTNAME))
|
||||
|
||||
#include _FONT_HEADER
|
||||
|
||||
// include your font header here
|
||||
#include "fonts/impact.h"
|
||||
|
||||
// get your font symbols defined here
|
||||
#define s2d_font impact_obj
|
||||
#define s2d_tex impact_tex
|
||||
#define s2d_kerning_table impact_kerning_table
|
||||
#define s2d_font GLUE2(FONTNAME, _obj)
|
||||
#define s2d_dropshadow GLUE2(FONTNAME, _obj_dropshadow)
|
||||
#define s2d_tex GLUE2(FONTNAME, _tex)
|
||||
#define s2d_kerning_table GLUE2(FONTNAME, _kerning_table)
|
||||
|
||||
extern char s2d_kerning_table[];
|
||||
|
||||
// Debug: bypass custom matrix setup
|
||||
#define s2d_mat impact_mtx
|
||||
#define s2d_mat GLUE2(FONTNAME, _mtx)
|
||||
|
||||
// Homebrew users: use this to rename your gdl head
|
||||
#define gdl_head gDisplayListHead
|
||||
|
||||
1796
fonts/comicsans.c
Normal file
1796
fonts/comicsans.c
Normal file
File diff suppressed because one or more lines are too long
136
fonts/comicsans.h
Normal file
136
fonts/comicsans.h
Normal file
@@ -0,0 +1,136 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gs2dex.h>
|
||||
extern uObjTxtrBlock_t comicsans_tex[];
|
||||
extern uObjMtx comicsans_mtx;
|
||||
extern uObjSprite comicsans_obj;
|
||||
extern void call_comicsans_sprite_dl(int idx, int x, int y, uObjMtx *buffer, int buf_idx);
|
||||
extern u8 comicsans_tex_0[];
|
||||
extern u8 comicsans_tex_1[];
|
||||
extern u8 comicsans_tex_2[];
|
||||
extern u8 comicsans_tex_3[];
|
||||
extern u8 comicsans_tex_4[];
|
||||
extern u8 comicsans_tex_5[];
|
||||
extern u8 comicsans_tex_6[];
|
||||
extern u8 comicsans_tex_7[];
|
||||
extern u8 comicsans_tex_8[];
|
||||
extern u8 comicsans_tex_9[];
|
||||
extern u8 comicsans_tex_10[];
|
||||
extern u8 comicsans_tex_11[];
|
||||
extern u8 comicsans_tex_12[];
|
||||
extern u8 comicsans_tex_13[];
|
||||
extern u8 comicsans_tex_14[];
|
||||
extern u8 comicsans_tex_15[];
|
||||
extern u8 comicsans_tex_16[];
|
||||
extern u8 comicsans_tex_17[];
|
||||
extern u8 comicsans_tex_18[];
|
||||
extern u8 comicsans_tex_19[];
|
||||
extern u8 comicsans_tex_20[];
|
||||
extern u8 comicsans_tex_21[];
|
||||
extern u8 comicsans_tex_22[];
|
||||
extern u8 comicsans_tex_23[];
|
||||
extern u8 comicsans_tex_24[];
|
||||
extern u8 comicsans_tex_25[];
|
||||
extern u8 comicsans_tex_26[];
|
||||
extern u8 comicsans_tex_27[];
|
||||
extern u8 comicsans_tex_28[];
|
||||
extern u8 comicsans_tex_29[];
|
||||
extern u8 comicsans_tex_30[];
|
||||
extern u8 comicsans_tex_31[];
|
||||
extern u8 comicsans_tex_32[];
|
||||
extern u8 comicsans_tex_33[];
|
||||
extern u8 comicsans_tex_34[];
|
||||
extern u8 comicsans_tex_35[];
|
||||
extern u8 comicsans_tex_36[];
|
||||
extern u8 comicsans_tex_37[];
|
||||
extern u8 comicsans_tex_38[];
|
||||
extern u8 comicsans_tex_39[];
|
||||
extern u8 comicsans_tex_40[];
|
||||
extern u8 comicsans_tex_41[];
|
||||
extern u8 comicsans_tex_42[];
|
||||
extern u8 comicsans_tex_43[];
|
||||
extern u8 comicsans_tex_44[];
|
||||
extern u8 comicsans_tex_45[];
|
||||
extern u8 comicsans_tex_46[];
|
||||
extern u8 comicsans_tex_47[];
|
||||
extern u8 comicsans_tex_48[];
|
||||
extern u8 comicsans_tex_49[];
|
||||
extern u8 comicsans_tex_50[];
|
||||
extern u8 comicsans_tex_51[];
|
||||
extern u8 comicsans_tex_52[];
|
||||
extern u8 comicsans_tex_53[];
|
||||
extern u8 comicsans_tex_54[];
|
||||
extern u8 comicsans_tex_55[];
|
||||
extern u8 comicsans_tex_56[];
|
||||
extern u8 comicsans_tex_57[];
|
||||
extern u8 comicsans_tex_58[];
|
||||
extern u8 comicsans_tex_59[];
|
||||
extern u8 comicsans_tex_60[];
|
||||
extern u8 comicsans_tex_61[];
|
||||
extern u8 comicsans_tex_62[];
|
||||
extern u8 comicsans_tex_63[];
|
||||
extern u8 comicsans_tex_64[];
|
||||
extern u8 comicsans_tex_65[];
|
||||
extern u8 comicsans_tex_66[];
|
||||
extern u8 comicsans_tex_67[];
|
||||
extern u8 comicsans_tex_68[];
|
||||
extern u8 comicsans_tex_69[];
|
||||
extern u8 comicsans_tex_70[];
|
||||
extern u8 comicsans_tex_71[];
|
||||
extern u8 comicsans_tex_72[];
|
||||
extern u8 comicsans_tex_73[];
|
||||
extern u8 comicsans_tex_74[];
|
||||
extern u8 comicsans_tex_75[];
|
||||
extern u8 comicsans_tex_76[];
|
||||
extern u8 comicsans_tex_77[];
|
||||
extern u8 comicsans_tex_78[];
|
||||
extern u8 comicsans_tex_79[];
|
||||
extern u8 comicsans_tex_80[];
|
||||
extern u8 comicsans_tex_81[];
|
||||
extern u8 comicsans_tex_82[];
|
||||
extern u8 comicsans_tex_83[];
|
||||
extern u8 comicsans_tex_84[];
|
||||
extern u8 comicsans_tex_85[];
|
||||
extern u8 comicsans_tex_86[];
|
||||
extern u8 comicsans_tex_87[];
|
||||
extern u8 comicsans_tex_88[];
|
||||
extern u8 comicsans_tex_89[];
|
||||
extern u8 comicsans_tex_90[];
|
||||
extern u8 comicsans_tex_91[];
|
||||
extern u8 comicsans_tex_92[];
|
||||
extern u8 comicsans_tex_93[];
|
||||
extern u8 comicsans_tex_94[];
|
||||
extern u8 comicsans_tex_95[];
|
||||
extern u8 comicsans_tex_96[];
|
||||
extern u8 comicsans_tex_97[];
|
||||
extern u8 comicsans_tex_98[];
|
||||
extern u8 comicsans_tex_99[];
|
||||
extern u8 comicsans_tex_100[];
|
||||
extern u8 comicsans_tex_101[];
|
||||
extern u8 comicsans_tex_102[];
|
||||
extern u8 comicsans_tex_103[];
|
||||
extern u8 comicsans_tex_104[];
|
||||
extern u8 comicsans_tex_105[];
|
||||
extern u8 comicsans_tex_106[];
|
||||
extern u8 comicsans_tex_107[];
|
||||
extern u8 comicsans_tex_108[];
|
||||
extern u8 comicsans_tex_109[];
|
||||
extern u8 comicsans_tex_110[];
|
||||
extern u8 comicsans_tex_111[];
|
||||
extern u8 comicsans_tex_112[];
|
||||
extern u8 comicsans_tex_113[];
|
||||
extern u8 comicsans_tex_114[];
|
||||
extern u8 comicsans_tex_115[];
|
||||
extern u8 comicsans_tex_116[];
|
||||
extern u8 comicsans_tex_117[];
|
||||
extern u8 comicsans_tex_118[];
|
||||
extern u8 comicsans_tex_119[];
|
||||
extern u8 comicsans_tex_120[];
|
||||
extern u8 comicsans_tex_121[];
|
||||
extern u8 comicsans_tex_122[];
|
||||
extern u8 comicsans_tex_123[];
|
||||
extern u8 comicsans_tex_124[];
|
||||
extern u8 comicsans_tex_125[];
|
||||
extern u8 comicsans_tex_126[];
|
||||
extern u8 comicsans_tex_127[];
|
||||
|
||||
extern char comicsans_obj_dropshadow[];
|
||||
103
fonts/impact.c
103
fonts/impact.c
@@ -1694,4 +1694,107 @@ uObjSprite impact_obj_dropshadow = {
|
||||
0, /* imageFlags */
|
||||
};
|
||||
|
||||
char impact_kerning_table[] = {
|
||||
// unprintable characters
|
||||
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
||||
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
||||
|
||||
/* */ 8,
|
||||
/* ! */ 3,
|
||||
/* " */ 6,
|
||||
/* # */ 9,
|
||||
/* $ */ 7,
|
||||
/* % */ 9,
|
||||
/* & */ 8,
|
||||
/* ' */ 3,
|
||||
/* ( */ 4,
|
||||
/* ) */ 4,
|
||||
/* * */ 4,
|
||||
/* + */ 6,
|
||||
/* , */ 3,
|
||||
/* - */ 5,
|
||||
/* . */ 3,
|
||||
/* / */ 8,
|
||||
/* 0 */ 6,
|
||||
/* 1 */ 5,
|
||||
/* 2 */ 6,
|
||||
/* 3 */ 6,
|
||||
/* 4 */ 6,
|
||||
/* 5 */ 6,
|
||||
/* 6 */ 7,
|
||||
/* 7 */ 5,
|
||||
/* 8 */ 6,
|
||||
/* 9 */ 7,
|
||||
/* : */ 3,
|
||||
/* ; */ 3,
|
||||
/* < */ 5,
|
||||
/* = */ 7,
|
||||
/* > */ 5,
|
||||
/* ? */ 6,
|
||||
/* @ */ 10,
|
||||
/* A */ 7,
|
||||
/* B */ 7,
|
||||
/* C */ 7,
|
||||
/* D */ 7,
|
||||
/* E */ 5,
|
||||
/* F */ 5,
|
||||
/* G */ 7,
|
||||
/* H */ 7,
|
||||
/* I */ 3,
|
||||
/* J */ 3,
|
||||
/* K */ 6,
|
||||
/* L */ 5,
|
||||
/* M */ 9,
|
||||
/* N */ 7,
|
||||
/* O */ 7,
|
||||
/* P */ 6,
|
||||
/* Q */ 7,
|
||||
/* R */ 6,
|
||||
/* S */ 6,
|
||||
/* T */ 6,
|
||||
/* U */ 7,
|
||||
/* V */ 6,
|
||||
/* W */ 10,
|
||||
/* X */ 7,
|
||||
/* Y */ 7,
|
||||
/* Z */ 5,
|
||||
/* [ */ 4,
|
||||
/* \ */ 4,
|
||||
/* ] */ 4,
|
||||
/* ^ */ 7,
|
||||
/* _ */ 8,
|
||||
/* ` */ 3,
|
||||
/* a */ 6,
|
||||
/* b */ 6,
|
||||
/* c */ 6,
|
||||
/* d */ 6,
|
||||
/* e */ 6,
|
||||
/* f */ 4,
|
||||
/* g */ 6,
|
||||
/* h */ 6,
|
||||
/* i */ 3,
|
||||
/* j */ 4,
|
||||
/* k */ 6,
|
||||
/* l */ 3,
|
||||
/* m */ 9,
|
||||
/* n */ 6,
|
||||
/* o */ 6,
|
||||
/* p */ 6,
|
||||
/* q */ 6,
|
||||
/* r */ 4,
|
||||
/* s */ 6,
|
||||
/* t */ 4,
|
||||
/* u */ 6,
|
||||
/* v */ 6,
|
||||
/* w */ 8,
|
||||
/* x */ 6,
|
||||
/* y */ 5,
|
||||
/* z */ 4,
|
||||
/* { */ 3,
|
||||
/* | */ 3,
|
||||
/* } */ 3,
|
||||
/* ~ */ 6,
|
||||
};
|
||||
|
||||
|
||||
// 16 16
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "config.h"
|
||||
#include "mtx.h"
|
||||
|
||||
int myScale = 1;
|
||||
float myScale = 1.0f;
|
||||
int myDegrees = 0;
|
||||
uObjMtx final_mtx, rot_mtx;
|
||||
int s2d_red = 255, s2d_green = 255, s2d_blue = 255, s2d_alpha = 255;
|
||||
@@ -68,7 +68,7 @@ void mtx_pipeline2(uObjMtx *m, int x, int y) {
|
||||
// init
|
||||
Mat4 tmp, rot, scal, translate;
|
||||
guMtxIdentF(tmp);
|
||||
guScaleF(scal, myScale, myScale, 0);
|
||||
guScaleF(scal, BASE_SCALE * (myScale), BASE_SCALE * (myScale), 0);
|
||||
guRotateF(rot, (f32) myDegrees, 0, 0, 1.0f);
|
||||
guTranslateF(translate, x, y, 0);
|
||||
|
||||
@@ -100,7 +100,7 @@ void draw_s2d_glyph(char c, int x, int y, uObjMtx *mt) {
|
||||
CLAMP_0(s2d_green - 100),
|
||||
CLAMP_0(s2d_blue - 100),
|
||||
s2d_alpha);
|
||||
gSPObjSprite(gdl_head++, &impact_obj_dropshadow);
|
||||
gSPObjSprite(gdl_head++, &s2d_dropshadow);
|
||||
gDPPipeSync(gdl_head++);
|
||||
gDPSetEnvColor(gdl_head++, s2d_red, s2d_green, s2d_blue, s2d_alpha);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define S2D_DRAW_H
|
||||
#include <ultra64.h>
|
||||
|
||||
extern int myScale;
|
||||
extern float myScale;
|
||||
extern int myDegrees;
|
||||
extern int drop_shadow;
|
||||
extern uObjMtx final_mtx, rot_mtx;
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
char impact_kerning_table[] = {
|
||||
// unprintable characters
|
||||
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
||||
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
||||
|
||||
/* */ 8,
|
||||
/* ! */ 3,
|
||||
/* " */ 6,
|
||||
/* # */ 9,
|
||||
/* $ */ 7,
|
||||
/* % */ 9,
|
||||
/* & */ 8,
|
||||
/* ' */ 3,
|
||||
/* ( */ 4,
|
||||
/* ) */ 4,
|
||||
/* * */ 4,
|
||||
/* + */ 6,
|
||||
/* , */ 3,
|
||||
/* - */ 5,
|
||||
/* . */ 3,
|
||||
/* / */ 8,
|
||||
/* 0 */ 6,
|
||||
/* 1 */ 5,
|
||||
/* 2 */ 6,
|
||||
/* 3 */ 6,
|
||||
/* 4 */ 6,
|
||||
/* 5 */ 6,
|
||||
/* 6 */ 7,
|
||||
/* 7 */ 5,
|
||||
/* 8 */ 6,
|
||||
/* 9 */ 7,
|
||||
/* : */ 3,
|
||||
/* ; */ 3,
|
||||
/* < */ 5,
|
||||
/* = */ 7,
|
||||
/* > */ 5,
|
||||
/* ? */ 6,
|
||||
/* @ */ 10,
|
||||
/* A */ 7,
|
||||
/* B */ 7,
|
||||
/* C */ 7,
|
||||
/* D */ 7,
|
||||
/* E */ 5,
|
||||
/* F */ 5,
|
||||
/* G */ 7,
|
||||
/* H */ 7,
|
||||
/* I */ 3,
|
||||
/* J */ 3,
|
||||
/* K */ 6,
|
||||
/* L */ 5,
|
||||
/* M */ 9,
|
||||
/* N */ 7,
|
||||
/* O */ 7,
|
||||
/* P */ 6,
|
||||
/* Q */ 7,
|
||||
/* R */ 6,
|
||||
/* S */ 6,
|
||||
/* T */ 6,
|
||||
/* U */ 7,
|
||||
/* V */ 6,
|
||||
/* W */ 10,
|
||||
/* X */ 7,
|
||||
/* Y */ 7,
|
||||
/* Z */ 5,
|
||||
/* [ */ 4,
|
||||
/* \ */ 4,
|
||||
/* ] */ 4,
|
||||
/* ^ */ 7,
|
||||
/* _ */ 8,
|
||||
/* ` */ 3,
|
||||
/* a */ 6,
|
||||
/* b */ 6,
|
||||
/* c */ 6,
|
||||
/* d */ 6,
|
||||
/* e */ 6,
|
||||
/* f */ 4,
|
||||
/* g */ 6,
|
||||
/* h */ 6,
|
||||
/* i */ 3,
|
||||
/* j */ 4,
|
||||
/* k */ 6,
|
||||
/* l */ 3,
|
||||
/* m */ 9,
|
||||
/* n */ 6,
|
||||
/* o */ 6,
|
||||
/* p */ 6,
|
||||
/* q */ 6,
|
||||
/* r */ 4,
|
||||
/* s */ 6,
|
||||
/* t */ 4,
|
||||
/* u */ 6,
|
||||
/* v */ 6,
|
||||
/* w */ 8,
|
||||
/* x */ 6,
|
||||
/* y */ 5,
|
||||
/* z */ 4,
|
||||
/* { */ 3,
|
||||
/* | */ 3,
|
||||
/* } */ 3,
|
||||
/* ~ */ 6,
|
||||
};
|
||||
|
||||
@@ -42,7 +42,7 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
|
||||
switch (current_char) {
|
||||
case CH_SCALE:
|
||||
CH_SKIP(p);
|
||||
myScale = s2d_atoi(p, &p);
|
||||
myScale = (f32)s2d_atoi(p, &p) / 100.0f;
|
||||
break;
|
||||
case CH_ROT:
|
||||
CH_SKIP(p);
|
||||
@@ -117,15 +117,17 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
|
||||
break;
|
||||
default:
|
||||
if (current_char != '\0' && current_char != CH_SEPARATOR) {
|
||||
char *tbl = segmented_to_virtual(s2d_kerning_table);
|
||||
|
||||
draw_s2d_glyph(current_char, x, y, (buf++));
|
||||
(x += (s2d_kerning_table[(int) current_char] * myScale));
|
||||
(x += (tbl[(int) current_char] * (BASE_SCALE * myScale)));
|
||||
}
|
||||
}
|
||||
if (*p == '\0') break;
|
||||
p++;
|
||||
tmp_len++;
|
||||
} while (tmp_len < len);
|
||||
myScale = 1;
|
||||
myScale = 1.0f;
|
||||
myDegrees = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user