diff --git a/src/natives/actors.cpp b/src/natives/actors.cpp index bbfd6ec..1a2ad3c 100644 --- a/src/natives/actors.cpp +++ b/src/natives/actors.cpp @@ -40,6 +40,10 @@ cell AMX_NATIVE_CALL Natives::CreateDynamicActor(AMX *amx, cell *params) actor->invulnerable = static_cast(params[6]) != 0; actor->health = amx_ctof(params[7]); Utility::addToContainer(actor->worlds, static_cast(params[8])); + if (actor->worlds.empty()) + { + actor->worlds.insert(-1); + } Utility::addToContainer(actor->interiors, static_cast(params[9])); Utility::addToContainer(actor->players, static_cast(params[10])); actor->comparableStreamDistance = amx_ctof(params[11]) < STREAMER_STATIC_DISTANCE_CUTOFF ? amx_ctof(params[11]) : amx_ctof(params[11]) * amx_ctof(params[11]); diff --git a/src/natives/pickups.cpp b/src/natives/pickups.cpp index bfa8ce2..a198e65 100644 --- a/src/natives/pickups.cpp +++ b/src/natives/pickups.cpp @@ -39,6 +39,10 @@ cell AMX_NATIVE_CALL Natives::CreateDynamicPickup(AMX *amx, cell *params) pickup->type = static_cast(params[2]); pickup->position = Eigen::Vector3f(amx_ctof(params[3]), amx_ctof(params[4]), amx_ctof(params[5])); Utility::addToContainer(pickup->worlds, static_cast(params[6])); + if (pickup->worlds.empty()) + { + pickup->worlds.insert(-1); + } Utility::addToContainer(pickup->interiors, static_cast(params[7])); Utility::addToContainer(pickup->players, static_cast(params[8])); pickup->comparableStreamDistance = amx_ctof(params[9]) < STREAMER_STATIC_DISTANCE_CUTOFF ? amx_ctof(params[9]) : amx_ctof(params[9]) * amx_ctof(params[9]); diff --git a/src/streamer.cpp b/src/streamer.cpp index 93754b1..2d6230e 100644 --- a/src/streamer.cpp +++ b/src/streamer.cpp @@ -617,13 +617,7 @@ void Streamer::discoverActors(Player &player, const std::vector &cel { for (std::unordered_map::const_iterator a = (*c)->actors.begin(); a != (*c)->actors.end(); ++a) { - std::unordered_set worlds = a->second->worlds; - if (worlds.empty()) - { - worlds.insert(-1); - } - - for (std::unordered_set::const_iterator w = worlds.begin(); w != worlds.end(); ++w) + for (std::unordered_set::const_iterator w = a->second->worlds.begin(); w != a->second->worlds.end(); ++w) { if (player.worldId != *w && *w != -1) { @@ -1071,13 +1065,7 @@ void Streamer::discoverPickups(Player &player, const std::vector &ce { for (std::unordered_map::const_iterator p = (*c)->pickups.begin(); p != (*c)->pickups.end(); ++p) { - std::unordered_set worlds = p->second->worlds; - if (worlds.empty()) - { - worlds.insert(-1); - } - - for (std::unordered_set::const_iterator w = worlds.begin(); w != worlds.end(); ++w) + for (std::unordered_set::const_iterator w = p->second->worlds.begin(); w != p->second->worlds.end(); ++w) { if (player.worldId != *w && *w != -1) {