Implement native ADV message skip

This commit is contained in:
gamer147
2026-07-18 17:32:12 -04:00
parent f049ce786e
commit d52e5b4725
13 changed files with 241 additions and 22 deletions

View File

@@ -28,6 +28,11 @@ name = "sys4ini_records"
type = "void*"
note = "SYS4INI 80-byte record base {name[64],arc_id,file_number,offset,size}; record = base + id*0x50"
[[field]]
offset = 0x13dc
name = "message_skip_enabled"
type = "int"
note = "persistent all-message Skip flag; op 0x88 writes it and adv_interpreter_tick injects input bit 0x40 while nonzero"
[[field]]
offset = 0x3028
name = "alt_pack_table"
type = "int"
@@ -108,6 +113,11 @@ name = "cmd_type_table"
type = "int"
note = "per-object cmd-type column base (write *(0x53d88 + curCtx*0x78))"
[[field]]
offset = 0x550fc
name = "message_skip_display_enabled"
type = "int"
note = "persistent all-message Skip state returned by op 0x19a for the ADV control-strip active overlay"
[[field]]
offset = 0x55104
name = "auto_message_enabled"
type = "int"
@@ -143,6 +153,16 @@ name = "sleep_timer"
type = "int"
note = "sleep timer object (op 0xc8; +8 active, +0x14 start-ms, +0x18 duration)"
[[field]]
offset = 0x6da78
name = "message_skip_activation_guard"
type = "int"
note = "set when op 0x88 enables Skip; suppresses the enabling click from immediately becoming a hotspot activation"
[[field]]
offset = 0x6da80
name = "message_skip_cancel_click_phase"
type = "int"
note = "press/release phase used only when set:CancelMesSkipOnClick is nonzero"
[[field]]
offset = 0x6da88
name = "coroutine_yield_a"
type = "void*"
@@ -173,6 +193,16 @@ name = "adv_auto_voice_pending"
type = "int"
note = "set by play-voice ops when voice service exists; Auto waits for voice completion then arms AutoMessageTime0; op 0x1bc resets"
[[field]]
offset = 0x6dbf4
name = "message_skip_queued_voice_id"
type = "int"
note = "latest voice resource deferred by op 0xc4 while run_state_flags message-skip bit is active"
[[field]]
offset = 0x6dbf8
name = "message_skip_queued_voice_arg"
type = "int"
note = "second argument retained with message_skip_queued_voice_id; Himegari op 0xc4 stores zero"
[[field]]
offset = 0x9b24c
name = "dispatch_table"
type = "void*"