mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 03:08:26 +00:00
demonstar55's entity list changes (slightly modified) and a crash fix for the #repop command used in rapid succession.
This commit is contained in:
+8
-12
@@ -203,16 +203,14 @@ void Trap::Trigger(Mob* trigger)
|
||||
}
|
||||
|
||||
Trap* EntityList::FindNearbyTrap(Mob* searcher, float max_dist) {
|
||||
LinkedListIterator<Trap*> iterator(trap_list);
|
||||
iterator.Reset();
|
||||
float dist = 999999;
|
||||
Trap* current_trap = nullptr;
|
||||
|
||||
float max_dist2 = max_dist*max_dist;
|
||||
Trap *cur;
|
||||
while(iterator.MoreElements())
|
||||
{
|
||||
cur = iterator.GetData();
|
||||
auto it = trap_list.begin();
|
||||
while (it != trap_list.end()) {
|
||||
cur = it->second;
|
||||
if(!cur->disarmed) {
|
||||
float curdist = 0;
|
||||
float tmp = searcher->GetX() - cur->x;
|
||||
@@ -228,23 +226,21 @@ Trap* EntityList::FindNearbyTrap(Mob* searcher, float max_dist) {
|
||||
current_trap = cur;
|
||||
}
|
||||
}
|
||||
iterator.Advance();
|
||||
++it;
|
||||
}
|
||||
return current_trap;
|
||||
}
|
||||
|
||||
Mob* EntityList::GetTrapTrigger(Trap* trap) {
|
||||
LinkedListIterator<Client*> iterator(client_list);
|
||||
|
||||
Mob* savemob = 0;
|
||||
iterator.Reset();
|
||||
|
||||
float xdiff, ydiff, zdiff;
|
||||
|
||||
float maxdist = trap->radius * trap->radius;
|
||||
|
||||
while(iterator.MoreElements()) {
|
||||
Client* cur = iterator.GetData();
|
||||
auto it = client_list.begin();
|
||||
while (it != client_list.end()) {
|
||||
Client* cur = it->second;
|
||||
zdiff = cur->GetZ() - trap->z;
|
||||
if(zdiff < 0)
|
||||
zdiff = 0 - zdiff;
|
||||
@@ -259,7 +255,7 @@ Mob* EntityList::GetTrapTrigger(Trap* trap) {
|
||||
else
|
||||
savemob = cur;
|
||||
}
|
||||
iterator.Advance();
|
||||
++it;
|
||||
}
|
||||
return savemob;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user