diff --git a/soh/soh/Network/Anchor/DummyPlayer.cpp b/soh/soh/Network/Anchor/DummyPlayer.cpp index 9192c3c02..4351e27f0 100644 --- a/soh/soh/Network/Anchor/DummyPlayer.cpp +++ b/soh/soh/Network/Anchor/DummyPlayer.cpp @@ -243,4 +243,10 @@ void DummyPlayer_Draw(Actor* actor, PlayState* play) { } void DummyPlayer_Destroy(Actor* actor, PlayState* play) { + // DummyPlayer Actors are initially spawned as ACTOR_PLAYER, but change their + // ID shortly afterwards to ACTOR_EN_OE2. This would cause ACTOR_PLAYER's + // ActorDB Entry's `numLoaded` to leak, which is mostly harmless but hits debug + // asserts. Set the id back to ACTOR_PLAYER so that `numLoaded` will be decremented + // correctly. + actor->id = ACTOR_PLAYER; }