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:
parent
bfb4b26dff
commit
4b1bceefbb
12 changed files with 142 additions and 8 deletions
|
|
@ -518,6 +518,21 @@ public sealed class GameEventWiringTests
|
|||
Assert.Contains("0x009C", e.Text);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0x003Bu)] // ILeftTheWorld
|
||||
[InlineData(0x003Cu)] // ITeleported
|
||||
public void WireAll_RetailSilentClientControlStatus_DoesNotReachChat(uint code)
|
||||
{
|
||||
var (dispatcher, _, _, _, chat) = MakeAll();
|
||||
byte[] payload = new byte[4];
|
||||
BinaryPrimitives.WriteUInt32LittleEndian(payload, code);
|
||||
|
||||
dispatcher.Dispatch(GameEventEnvelope.TryParse(
|
||||
WrapEnvelope(GameEventType.WeenieError, payload))!.Value);
|
||||
|
||||
Assert.Equal(0, chat.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WireAll_WeenieErrorWithString_RoutesToChatLogWithInterpolation()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue