CutsceneUnk4 (#1623)
Some checks failed
Format code / format (push) Failing after 0s
Build C code / extract-assets (push) Failing after 0s
Build C code / build-linux (push) Has been skipped
Build C code / build-macos (push) Has been skipped
Build C code / build-windows (push) Has been skipped
Build C code / build-linux-lle (push) Has been skipped
Build Saturn version / build-and-test-saturn (push) Has been skipped
Build Saturn version / function-finder-saturn (push) Has been skipped
Build Debug Module tool / build (push) Failing after 0s
Build PSX and PSP version / build-and-test (pspeu, hd) (push) Has been skipped
Build PSX and PSP version / build-and-test (pspeu, pspeu) (push) Has been skipped
Build PSX and PSP version / build-and-test (us, us) (push) Has been skipped
Build PSX and PSP version / generate-progress-report (pspeu, hd) (push) Has been skipped
Build PSX and PSP version / generate-progress-report (pspeu, pspeu) (push) Has been skipped
Build PSX and PSP version / generate-progress-report (us, us) (push) Has been skipped
Build PSX and PSP version / generate-duplicates-report (us, us) (push) Has been skipped
Build PSX and PSP version / generate-duplicates-report-psp (pspeu, pspeu) (push) Has been skipped

This commit is contained in:
sozud 2024-09-16 23:15:59 -07:00 committed by GitHub
parent e337ab398a
commit 76dee745d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 60 additions and 139 deletions

View File

@ -3,7 +3,8 @@ D_80180608 = 0x80180744;
g_StoneDoorTiles = 0x801812DC;
CutsceneUnk1 = 0x8018AFC4;
CutsceneUnk2 = 0x8018B018;
CutsceneUnk3 = 0x8018B1DC;
CutsceneUnk4 = 0x8018B238;
CutsceneUnk6 = 0x8018B474;
CutsceneRun = 0x8018B4A0;
EntityMariaCutscene = 0x8018B850;
DestroyEntity = 0x80190388;

View File

@ -9,11 +9,11 @@ extern Dialogue g_Dialogue;
#include "../../st/cutscene_unk3.h"
INCLUDE_ASM("boss/mar/nonmatchings/AFC4", func_us_8018B238);
#include "../../st/cutscene_unk4.h"
INCLUDE_ASM("boss/mar/nonmatchings/AFC4", func_us_8018B2F0);
INCLUDE_ASM("boss/mar/nonmatchings/AFC4", func_us_8018B474);
#include "../../st/cutscene_unk6.h"
#include "../../st/cutscene.h"

View File

@ -52,23 +52,7 @@ static const char _pad[4] = "";
#include "../cutscene_unk3.h"
void func_8018E180(void) {
Primitive* prim;
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x10;
prim->clut = g_Dialogue.clutIndex;
prim->y0 = g_Dialogue.nextLineY;
prim->u0 = 0;
prim->x0 = g_Dialogue.startX;
prim->x0 = prim->x0 + 4;
prim->v0 = g_Dialogue.nextCharY * 0xC - 0x80;
prim->u1 = 0xC0;
prim->v1 = 0xC;
prim->priority = 0x1FF;
prim->drawMode = DRAW_DEFAULT;
}
#include "../cutscene_unk4.h"
// Creates primitives for the actor name at the head of the dialogue
void func_8018E238(u16 actorIndex, Entity* self) {
@ -129,11 +113,7 @@ void func_8018E238(u16 actorIndex, Entity* self) {
}
}
void func_8018E3BC(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}
#include "../cutscene_unk6.h"
void CutsceneRun(void) {
Entity* entity;
@ -290,7 +270,7 @@ void EntityHolyGlassesCutscene(Entity* self) {
if (g_Dialogue.nextCharY >= 5) {
g_Dialogue.nextCharY = 0;
}
func_8018E180();
CutsceneUnk4();
if (!(g_Dialogue.unk12 & 1)) {
if (g_Dialogue.nextCharY >= 4) {
g_Dialogue.unk12 |= 1;
@ -352,7 +332,7 @@ void EntityHolyGlassesCutscene(Entity* self) {
g_Dialogue.startY + 0x24;
g_Dialogue.clutIndex = D_801805EC[i];
CutsceneUnk1();
func_8018E180();
CutsceneUnk4();
prim->priority = 0x1FE;
prim->drawMode = DRAW_DEFAULT;
func_8018E238(i, self);
@ -436,7 +416,7 @@ void EntityHolyGlassesCutscene(Entity* self) {
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
bit_shifty <<= 4;
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
func_8018E3BC((u8*)bit_shifty);
CutsceneUnk6((u8*)bit_shifty);
continue;
case 13:
continue;

18
src/st/cutscene_unk4.h Normal file
View File

@ -0,0 +1,18 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
void CutsceneUnk4(void) {
Primitive* prim;
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x10;
prim->clut = g_Dialogue.clutIndex;
prim->y0 = g_Dialogue.nextLineY;
prim->u0 = 0;
prim->x0 = g_Dialogue.startX;
prim->x0 = prim->x0 + 4;
prim->v0 = g_Dialogue.nextCharY * 0xC - 0x80;
prim->u1 = 0xC0;
prim->v1 = 0xC;
prim->priority = 0x1FF;
prim->drawMode = DRAW_DEFAULT;
}

6
src/st/cutscene_unk6.h Normal file
View File

@ -0,0 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
void CutsceneUnk6(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}

View File

@ -7,23 +7,7 @@
#include "../cutscene_unk3.h"
void func_801949E8(void) {
Primitive* prim;
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x10;
prim->clut = g_Dialogue.clutIndex;
prim->y0 = g_Dialogue.nextLineY;
prim->u0 = 0;
prim->x0 = g_Dialogue.startX;
prim->x0 = prim->x0 + 4;
prim->v0 = g_Dialogue.nextCharY * 0xC - 0x80;
prim->u1 = 0xC0;
prim->v1 = 0xC;
prim->priority = 0x1FF;
prim->drawMode = DRAW_DEFAULT;
}
#include "../cutscene_unk4.h"
// This array is in Data, but the strings within it are rodata. That rodata
// lives between the jump tables in this file, so we have to import the rodata,
@ -89,11 +73,7 @@ void func_80194AA0(u16 actorIndex, Entity* self) {
}
}
void func_80194C24(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}
#include "../cutscene_unk6.h"
void CutsceneRun(void) {
Entity* entity;
@ -277,7 +257,7 @@ void EntitySuccubusCutscene(Entity* self) {
if (g_Dialogue.nextCharY >= 5) {
g_Dialogue.nextCharY = 0;
}
func_801949E8();
CutsceneUnk4();
if (!(g_Dialogue.unk12 & 1)) {
if (g_Dialogue.nextCharY >= 4) {
g_Dialogue.unk12 |= 1;
@ -339,7 +319,7 @@ void EntitySuccubusCutscene(Entity* self) {
g_Dialogue.startY + 0x24;
g_Dialogue.clutIndex = D_801808A0[i];
CutsceneUnk1();
func_801949E8();
CutsceneUnk4();
prim->priority = 0x1FE;
prim->drawMode = DRAW_DEFAULT;
func_80194AA0(i, self);
@ -423,7 +403,7 @@ void EntitySuccubusCutscene(Entity* self) {
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
bit_shifty <<= 4;
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
func_80194C24((u8*)bit_shifty);
CutsceneUnk6((u8*)bit_shifty);
continue;
case 13:
continue;

View File

@ -14,7 +14,7 @@ void CutsceneUnk1(void) {
#include "../cutscene_unk2.h"
void func_801BE75C(s16 yOffset) {
void CutsceneUnk3(s16 yOffset) {
RECT rect;
rect.x = 384;
@ -24,10 +24,10 @@ void func_801BE75C(s16 yOffset) {
ClearImage(&rect, 0, 0, 0);
}
void func_801BE7BC(void) {
void CutsceneUnk4(void) {
Primitive* prim;
func_801BE75C(g_Dialogue.nextCharY);
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x16;
prim->clut = g_Dialogue.clutIndex;
@ -101,11 +101,7 @@ void func_801BE870(u16 actorIndex, Entity* self) {
}
}
void func_801BE9F4(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}
#include "../cutscene_unk6.h"
#include "../cutscene.h"
@ -219,7 +215,7 @@ void EntityDeathCutscene(Entity* self) {
if (g_Dialogue.nextCharY >= 5) {
g_Dialogue.nextCharY = 0;
}
func_801BE7BC();
CutsceneUnk4();
if (!(g_Dialogue.unk12 & 1)) {
if (g_Dialogue.nextCharY >= 4) {
g_Dialogue.unk12 |= 1;
@ -281,7 +277,7 @@ void EntityDeathCutscene(Entity* self) {
g_Dialogue.startY + 0x24;
g_Dialogue.clutIndex = D_80181A38[i];
CutsceneUnk1();
func_801BE7BC();
CutsceneUnk4();
prim->priority = 0x1FE;
prim->drawMode = DRAW_DEFAULT;
func_801BE870(i, self);
@ -365,7 +361,7 @@ void EntityDeathCutscene(Entity* self) {
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
bit_shifty <<= 4;
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
func_801BE9F4((u8*)bit_shifty);
CutsceneUnk6((u8*)bit_shifty);
continue;
case 13:
continue;

View File

@ -11,23 +11,7 @@
#include "../cutscene_unk3.h"
void func_801B7740(void) {
Primitive* prim;
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x10;
prim->clut = g_Dialogue.clutIndex;
prim->y0 = g_Dialogue.nextLineY;
prim->u0 = 0;
prim->x0 = g_Dialogue.startX;
prim->x0 = prim->x0 + 4;
prim->v0 = g_Dialogue.nextCharY * 0xC - 0x80;
prim->u1 = 0xC0;
prim->v1 = 0xC;
prim->priority = 0x1FF;
prim->drawMode = DRAW_DEFAULT;
}
#include "../cutscene_unk4.h"
// Creates primitives for the actor name at the head of the dialogue
void func_801B77F8(u16 actorIndex, Entity* self) {
@ -88,11 +72,7 @@ void func_801B77F8(u16 actorIndex, Entity* self) {
}
}
void func_801B797C(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}
#include "../cutscene_unk6.h"
#include "../cutscene.h"
@ -201,7 +181,7 @@ void EntityMariaCutscene(Entity* self) {
if (g_Dialogue.nextCharY >= 5) {
g_Dialogue.nextCharY = 0;
}
func_801B7740();
CutsceneUnk4();
if (!(g_Dialogue.unk12 & 1)) {
if (g_Dialogue.nextCharY >= 4) {
g_Dialogue.unk12 |= 1;
@ -263,7 +243,7 @@ void EntityMariaCutscene(Entity* self) {
g_Dialogue.startY + 0x24;
g_Dialogue.clutIndex = D_801813D8[i];
CutsceneUnk1();
func_801B7740();
CutsceneUnk4();
prim->priority = 0x1FE;
prim->drawMode = DRAW_DEFAULT;
func_801B77F8(i, self);
@ -347,7 +327,7 @@ void EntityMariaCutscene(Entity* self) {
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
bit_shifty <<= 4;
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
func_801B797C((u8*)bit_shifty);
CutsceneUnk6((u8*)bit_shifty);
continue;
case 13:
continue;

View File

@ -67,23 +67,7 @@ u8 CutsceneUnk2(const char* textDialogue) {
#include "../cutscene_unk3.h"
void func_801B66A4(void) {
Primitive* prim;
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x10;
prim->clut = g_Dialogue.clutIndex;
prim->y0 = g_Dialogue.nextLineY;
prim->u0 = 0;
prim->x0 = g_Dialogue.startX;
prim->x0 = prim->x0 + 4;
prim->v0 = g_Dialogue.nextCharY * 0xC - 0x80;
prim->u1 = 0xC0;
prim->v1 = 0xC;
prim->priority = 0x1FF;
prim->drawMode = DRAW_DEFAULT;
}
#include "../cutscene_unk4.h"
u8 D_80180824[] = {
0x00,
@ -187,11 +171,7 @@ void func_801B675C(u16 actorIndex, Entity* self) {
}
}
void func_801B68E0(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}
#include "../cutscene_unk6.h"
void func_801B690C(u8 ySteps, Entity* self) {
s32 primIndex = g_Dialogue.nextCharY + 1;
@ -263,7 +243,7 @@ void func_801B69F8(Entity* entity) {
if (++g_Dialogue.nextCharY >= 5) {
g_Dialogue.nextCharY = 0;
}
func_801B66A4();
CutsceneUnk4();
if (!(g_Dialogue.unk12 & 1)) {
if (g_Dialogue.nextCharY < 4) {
continue;
@ -323,7 +303,7 @@ void func_801B69F8(Entity* entity) {
g_Dialogue.startY + 0x24;
g_Dialogue.clutIndex = D_80180838[j];
CutsceneUnk1();
func_801B66A4();
CutsceneUnk4();
prim->priority = 0x1FE;
prim->blendMode = 0;
func_801B675C(j, entity);
@ -400,7 +380,7 @@ void func_801B69F8(Entity* entity) {
i |= g_Dialogue.nextCharDialogue++[0];
i <<= 4;
i |= g_Dialogue.nextCharDialogue++[0];
func_801B68E0(i);
CutsceneUnk6(i);
continue;
case 13:
continue;

View File

@ -71,23 +71,7 @@ s32 CutsceneUnk2(const char* textDialogue) {
#include "../cutscene_unk3.h"
void func_801A8BF8(void) {
Primitive* prim;
CutsceneUnk3(g_Dialogue.nextCharY);
prim = g_Dialogue.prim[g_Dialogue.nextCharY];
prim->tpage = 0x10;
prim->clut = g_Dialogue.clutIndex;
prim->y0 = g_Dialogue.nextLineY;
prim->u0 = 0;
prim->x0 = g_Dialogue.startX;
prim->x0 = prim->x0 + 4;
prim->v0 = g_Dialogue.nextCharY * 0xC - 0x80;
prim->u1 = 0xC0;
prim->v1 = 0xC;
prim->priority = 0x1FF;
prim->drawMode = DRAW_DEFAULT;
}
#include "../cutscene_unk4.h"
const char* D_80180828[] = {_S("Richter"), _S("Dracula")};
@ -150,11 +134,7 @@ void func_801A8CB0(u16 actorIndex, Entity* self) {
}
}
void func_801A8E34(s32 arg0) {
g_Dialogue.unk40 = arg0 + 0x100000;
g_Dialogue.timer = 0;
g_Dialogue.unk3C = 1;
}
#include "../cutscene_unk6.h"
#include "../../st/cutscene.h"
@ -261,7 +241,7 @@ void EntityDraculaCutscene(Entity* self) {
if (g_Dialogue.nextCharY >= 5) {
g_Dialogue.nextCharY = 0;
}
func_801A8BF8();
CutsceneUnk4();
if (!(g_Dialogue.unk12 & 1)) {
if (g_Dialogue.nextCharY >= 4) {
g_Dialogue.unk12 |= 1;
@ -323,7 +303,7 @@ void EntityDraculaCutscene(Entity* self) {
g_Dialogue.startY + 0x24;
g_Dialogue.clutIndex = D_80180794[i];
CutsceneUnk1();
func_801A8BF8();
CutsceneUnk4();
prim->priority = 0x1FE;
prim->drawMode = DRAW_DEFAULT;
func_801A8CB0(i, self);
@ -407,7 +387,7 @@ void EntityDraculaCutscene(Entity* self) {
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
bit_shifty <<= 4;
bit_shifty |= (s32)*g_Dialogue.nextCharDialogue++;
func_801A8E34((u8*)bit_shifty);
CutsceneUnk6((u8*)bit_shifty);
continue;
case 13:
continue;