fix(world): preserve portal materialization effects

Route accepted Hidden and UnHide transitions through retail's internal typed-script path so their DAT scripts queue while the owner is cell-less and resume at the destination. Consume ACE's successful teleport control statuses silently, matching retail HandleFailureEvent.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-16 08:14:48 +02:00
parent bfb4b26dff
commit 4b1bceefbb
12 changed files with 142 additions and 8 deletions

View file

@ -152,6 +152,18 @@ public sealed class ChatLogTests
Assert.Contains("Mana Stone", e.Text);
}
[Theory]
[InlineData(0x003Bu)] // ILeftTheWorld
[InlineData(0x003Cu)] // ITeleported
public void OnWeenieError_RetailSilentClientControlStatus_DoesNotAppend(uint code)
{
var log = new ChatLog();
log.OnWeenieError(code, param: null);
Assert.Empty(log.Snapshot());
}
[Fact]
public void OnLocalSpeech_EmptySender_SubstitutesYou()
{