317 lines
9.8 KiB
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;
|
|
}
|