marioparty4/src/REL/instDll/font.c

317 lines
9.8 KiB
C

#include "game/sprite.h"
#include "REL/instDll.h"
s32 lbl_1_data_150[0xC6] = {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x26),
DATA_MAKE_NUM(DATADIR_INST, 0x27),
DATA_MAKE_NUM(DATADIR_INST, 0x28),
DATA_MAKE_NUM(DATADIR_INST, 0x29),
DATA_MAKE_NUM(DATADIR_INST, 0x2A),
DATA_MAKE_NUM(DATADIR_INST, 0x2B),
DATA_MAKE_NUM(DATADIR_INST, 0x2C),
DATA_MAKE_NUM(DATADIR_INST, 0x2D),
DATA_MAKE_NUM(DATADIR_INST, 0x2E),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x2F),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x34),
DATA_MAKE_NUM(DATADIR_INST, 0x35),
DATA_MAKE_NUM(DATADIR_INST, 0x36),
DATA_MAKE_NUM(DATADIR_INST, 0x37),
DATA_MAKE_NUM(DATADIR_INST, 0x38),
DATA_MAKE_NUM(DATADIR_INST, 0x39),
DATA_MAKE_NUM(DATADIR_INST, 0x3A),
DATA_MAKE_NUM(DATADIR_INST, 0x3B),
DATA_MAKE_NUM(DATADIR_INST, 0x3C),
DATA_MAKE_NUM(DATADIR_INST, 0x3D),
DATA_MAKE_NUM(DATADIR_INST, 0x3E),
DATA_MAKE_NUM(DATADIR_INST, 0x3F),
DATA_MAKE_NUM(DATADIR_INST, 0x40),
DATA_MAKE_NUM(DATADIR_INST, 0x41),
DATA_MAKE_NUM(DATADIR_INST, 0x42),
DATA_MAKE_NUM(DATADIR_INST, 0x43),
DATA_MAKE_NUM(DATADIR_INST, 0x44),
DATA_MAKE_NUM(DATADIR_INST, 0x45),
DATA_MAKE_NUM(DATADIR_INST, 0x46),
DATA_MAKE_NUM(DATADIR_INST, 0x47),
DATA_MAKE_NUM(DATADIR_INST, 0x48),
DATA_MAKE_NUM(DATADIR_INST, 0x49),
DATA_MAKE_NUM(DATADIR_INST, 0x4A),
DATA_MAKE_NUM(DATADIR_INST, 0x4B),
DATA_MAKE_NUM(DATADIR_INST, 0x4C),
DATA_MAKE_NUM(DATADIR_INST, 0x4D),
DATA_MAKE_NUM(DATADIR_INST, 0x42),
DATA_MAKE_NUM(DATADIR_INST, 0x32),
DATA_MAKE_NUM(DATADIR_INST, 0x42),
DATA_MAKE_NUM(DATADIR_INST, 0x42),
DATA_MAKE_NUM(DATADIR_INST, 0x42),
DATA_MAKE_NUM(DATADIR_INST, 0x42),
DATA_MAKE_NUM(DATADIR_INST, 0x4E),
DATA_MAKE_NUM(DATADIR_INST, 0x4F),
DATA_MAKE_NUM(DATADIR_INST, 0x50),
DATA_MAKE_NUM(DATADIR_INST, 0x51),
DATA_MAKE_NUM(DATADIR_INST, 0x52),
DATA_MAKE_NUM(DATADIR_INST, 0x53),
DATA_MAKE_NUM(DATADIR_INST, 0x54),
DATA_MAKE_NUM(DATADIR_INST, 0x55),
DATA_MAKE_NUM(DATADIR_INST, 0x56),
DATA_MAKE_NUM(DATADIR_INST, 0x57),
DATA_MAKE_NUM(DATADIR_INST, 0x58),
DATA_MAKE_NUM(DATADIR_INST, 0x59),
DATA_MAKE_NUM(DATADIR_INST, 0x5A),
DATA_MAKE_NUM(DATADIR_INST, 0x5B),
DATA_MAKE_NUM(DATADIR_INST, 0x5C),
DATA_MAKE_NUM(DATADIR_INST, 0x5D),
DATA_MAKE_NUM(DATADIR_INST, 0x5E),
DATA_MAKE_NUM(DATADIR_INST, 0x5F),
DATA_MAKE_NUM(DATADIR_INST, 0x60),
DATA_MAKE_NUM(DATADIR_INST, 0x61),
DATA_MAKE_NUM(DATADIR_INST, 0x62),
DATA_MAKE_NUM(DATADIR_INST, 0x63),
DATA_MAKE_NUM(DATADIR_INST, 0x64),
DATA_MAKE_NUM(DATADIR_INST, 0x65),
DATA_MAKE_NUM(DATADIR_INST, 0x66),
DATA_MAKE_NUM(DATADIR_INST, 0x67),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x2F),
DATA_MAKE_NUM(DATADIR_INST, 0x33),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x30),
DATA_MAKE_NUM(DATADIR_INST, 0x31),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
DATA_MAKE_NUM(DATADIR_INST, 0x25),
};
s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag)
{
char *var_r31;
s16 var_r30;
s16 *var_r29;
s16 var_r28;
s32 *var_r27;
s16 var_r26;
s16 var_r25;
s32 var_r24;
s16 *var_r22;
AnimData **var_r21;
s16 var_r20;
s16 var_r19;
var_r27 = lbl_1_data_150;
for (var_r25 = 0; var_r25 < 0x10; var_r25++) {
if (work->spr_grp[var_r25] == -1) {
break;
}
}
if (var_r25 == 0x10) {
return -1;
}
var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190);
var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8);
for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) {
if (var_r31[0] == 0x20 || var_r31[0] == 0x10) {
var_r30 += 0xE;
}
else if (var_r31[0] < 0x30) {
}
else if (var_r31[0] == 0x80) {
}
else if (var_r31[0] == 0x81) {
}
else {
if (var_r31[1] == 0x80) {
if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) {
var_r24 = var_r27[var_r31[0] + 0x6A];
}
else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) {
var_r24 = var_r27[var_r31[0] + 0x65];
}
else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) {
var_r24 = var_r27[var_r31[0] + 0x43];
}
else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) {
var_r24 = var_r27[var_r31[0] + 0x3E];
}
}
else if (var_r31[1] == 0x81) {
if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) {
var_r24 = var_r27[var_r31[0] + 0x6A];
}
else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) {
var_r24 = var_r27[var_r31[0] + 0x43];
}
}
else {
var_r24 = var_r27[var_r31[0]];
}
var_r21[var_r28] = HuSprAnimReadFile(var_r24);
var_r22[var_r28] = var_r30;
if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) {
var_r29[var_r28] = 2;
var_r30 += 0x12;
}
else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) {
var_r29[var_r28] = 0;
var_r30 += 0x12;
}
else if (var_r31[0] == 0x5C || var_r31[0] == 0x85) {
var_r29[var_r28] = 0;
var_r30 += 8;
}
else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) {
var_r29[var_r28] = 4;
var_r30 += 0x18;
}
else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) {
var_r29[var_r28] = 4;
var_r30 += 0x18;
}
else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) {
var_r29[var_r28] = 0;
var_r30 += 0x14;
}
else {
var_r29[var_r28] = 0;
var_r30 += 0x1C;
}
var_r28++;
}
}
var_r20 = HuSprGrpCreate(var_r28);
work->spr_grp[var_r25] = var_r20;
work->alt_word_len = var_r30;
var_r30 = (var_r30 / 2) - 0xE;
for (var_r26 = 0; var_r26 < var_r28; var_r26++) {
var_r19 = HuSprCreate(var_r21[var_r26], 0, 0);
HuSprGrpMemberSet(var_r20, var_r26, var_r19);
HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]);
}
work->word_len = var_r28;
HuMemDirectFree(var_r21);
HuMemDirectFree(var_r22);
HuMemDirectFree(var_r29);
return var_r25;
}