//---------------------------------------------------------------------- // SpawnShell SpawnShell::SpawnShell(FilterMgr& filterMgr, ZoneMgr* zoneMgr, Player* player, GuildMgr* guildMgr) : QObject(NULL, "spawnshell"), m_zoneMgr(zoneMgr), m_player(player), m_filterMgr(filterMgr), m_guildMgr(guildMgr), m_spawns(701), m_drops(211), m_doors(307), m_players(2) { m_cntDeadSpawnIDs = 0; m_posDeadSpawnIDs = 0; for (int i = 0; i < MAX_DEAD_SPAWNIDS; i++) m_deadSpawnID[i] = 0; // these should auto delete m_spawns.setAutoDelete(true); m_drops.setAutoDelete(true); m_doors.setAutoDelete(true); // we don't want this one to auto-delete m_players.setAutoDelete(false); // bogus list m_players.insert(0, m_player); // connect the FilterMgr's signals to SpawnShells slots connect(&m_filterMgr, SIGNAL(filtersChanged()), this, SLOT(refilterSpawns())); connect(&m_filterMgr, SIGNAL(runtimeFiltersChanged(uint8_t)), this, SLOT(refilterSpawnsRuntime())); // connect SpawnShell slots to ZoneMgr signals connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)), this, SLOT(clear(void))); connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)), this, SLOT(clear(void))); // connect Player signals to SpawnShell signals connect(m_player, SIGNAL(changeItem(const Item*, uint32_t)), this, SIGNAL(changeItem(const Item*, uint32_t))); // connect Player signals to SpawnShell slots connect(m_player, SIGNAL(changedID(uint16_t)), this, SLOT(playerChangedID(uint16_t))); // restore the spawn list if necessary if (showeq_params->restoreSpawns) restoreSpawns(); // create the timer m_timer = new QTimer(this); // connect the timer connect(m_timer, SIGNAL(timeout()), this, SLOT(saveSpawns(void))); // start the timer (changed to oneshot to help prevent a backlog on slower // machines) if (showeq_params->saveSpawns) m_timer->start(showeq_params->saveSpawnsFrequency, true); }
void SpawnShell::refilterSpawnsRuntime() { refilterSpawnsRuntime(tSpawn); }