Skip to content

Messync support and fix for a few nvl lines#487

Open
KKhanhH wants to merge 2 commits into
masterfrom
messync
Open

Messync support and fix for a few nvl lines#487
KKhanhH wants to merge 2 commits into
masterfrom
messync

Conversation

@KKhanhH

@KKhanhH KKhanhH commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@KKhanhH KKhanhH linked an issue Jun 16, 2026 that may be closed by this pull request
@KKhanhH KKhanhH marked this pull request as ready for review June 16, 2026 08:13
@KKhanhH KKhanhH requested review from Gunoshozo and PringlesGang and removed request for PringlesGang June 16, 2026 08:13
@KKhanhH

KKhanhH commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator Author

Lowkey kinda human vibe coded but looks like it works and chlcc doesn't have any voiced synced lines

Comment thread src/ui/widgets/label.cpp
TextWidth += glyph.DestRect.Width;
}
Bounds = RectF(Text[0].DestRect.X, Text[0].DestRect.Y, TextWidth, fontSize);
Bounds = Text.empty() ? RectF()

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accidentally snuck in a bugfix but it needs to be merged in anyway so

@Gunoshozo Gunoshozo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍💗

@PringlesGang PringlesGang left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

During the butterfly scene, the wait icon shows on both the NVL and ADV line for MesSync, when it should only show for the ADV line

Fading also seems to be instant for sync lines when it shouldn't be

Comment thread src/vm/inst_dialogue.cpp
Comment on lines -218 to -222
if (!(type & 0b1000)) {
if (sync) {
dialoguePage.SyncEnabled = true;
} else {
SetFlag(SF_SYSTEMMENUDISABLE2, false);
SetFlag(SF_CHAANIME + thread->DialoguePageId, true);
dialoguePage.PlayLine();
}

SetFlag(SF_SYSTEMMENUDISABLE2, false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty sure SetFlag(SF_SYSTEMMENUDISABLE2, false) should be hit regardless

Comment thread src/vm/inst_dialogue.cpp
thread->DialoguePageId = pageId;
callback(pageId);
} else {
for (uint32_t pageId = 0; pageId < 3; pageId++) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pageId < DialoguePages.size()

Comment thread src/vm/inst_dialogue.cpp
Comment on lines 274 to 275
ImpLogSlow(LogLevel::Warning, LogChannel::VMStub,
"STUB instruction MesSync(type: {:d})\n", type);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No longer a stub

Comment thread src/vm/inst_dialogue.cpp
End = 2,
};

bool SCRcomMesSyncMain(int pageId, SyncType type, bool useAuto) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

static?

Also wouldn't InstMesSyncMain fit better with the rest of our instruction names, or did you mean to not have it clash too much with the names of actual VM instructions?

Comment thread src/vm/inst_dialogue.cpp
} break;
case 20: {
bool fading = false;
for (uint32_t pageId = 0; pageId < 3; pageId = pageId + 1) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for (DialoguePage& page : DialoguePages)

Comment thread src/vm/inst_dialogue.cpp
bool fading = false;
for (uint32_t pageId = 0; pageId < 3; pageId = pageId + 1) {
if (DialoguePages[pageId].SyncStatus != Stopped &&
DialoguePages[pageId].GetState() != DialoguePage::State::Hiding) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could be wrong, but I think this should be GetState() != DialoguePage::State::Shown?

Comment thread src/vm/inst_dialogue.cpp
return true;
case Shown: {
if (currentPage.AdvanceMethod == Skip) {
SetFlag(1291 + currentPage.Id, 0);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't know what this flag is?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement MesSync

4 participants