Replaced deprecated bound functions with modern lambda-functions.

This commit is contained in:
2024-11-16 15:51:09 +00:00
parent d4fa88b7e2
commit e921594eff
8 changed files with 28 additions and 125 deletions

View File

@ -1009,7 +1009,8 @@ void CHARACTER::ItemDropPenalty(LPCHARACTER pkKiller)
if (!vec_bSlots.empty())
{
random_shuffle(vec_bSlots.begin(), vec_bSlots.end());
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::shuffle(vec_bSlots.begin(), vec_bSlots.end(), std::default_random_engine(seed));
int iQty = std::min<int>(vec_bSlots.size(), r.iInventoryQty);
@ -1041,7 +1042,9 @@ void CHARACTER::ItemDropPenalty(LPCHARACTER pkKiller)
if (!vec_bSlots.empty())
{
random_shuffle(vec_bSlots.begin(), vec_bSlots.end());
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::shuffle(vec_bSlots.begin(), vec_bSlots.end(), std::default_random_engine(seed));
int iQty;
if (isDropAllEquipments)

View File

@ -663,7 +663,7 @@ void CHARACTER_MANAGER::Update(int iPulse)
else
{
//for_each(v.begin(), v.end(), mem_fun(&CFSM::Update));
for_each(v.begin(), v.end(), bind2nd(mem_fun(&CHARACTER::UpdateCharacter), iPulse));
for (auto& ch : v) ch->UpdateCharacter(iPulse);
}
}
@ -678,7 +678,7 @@ void CHARACTER_MANAGER::Update(int iPulse)
v.reserve(m_set_pkChrState.size());
transform(m_set_pkChrState.begin(), m_set_pkChrState.end(), back_inserter(v), identity<CHARACTER_SET::value_type>());
for_each(v.begin(), v.end(), bind2nd(mem_fun(&CHARACTER::UpdateStateMachine), iPulse));
for (auto& ch : v) ch->UpdateStateMachine(iPulse);
}
}
@ -688,8 +688,7 @@ void CHARACTER_MANAGER::Update(int iPulse)
if (CHARACTER_MANAGER::instance().GetCharactersByRaceNum(xmas::MOB_SANTA_VNUM, i))
{
for_each(i.begin(), i.end(),
bind2nd(mem_fun(&CHARACTER::UpdateStateMachine), iPulse));
for (auto& ch : i) ch->UpdateStateMachine(iPulse);
}
}

View File

@ -618,15 +618,15 @@ void CGuild::Load(DWORD guild_id)
m_data.guild_id = guild_id;
DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&CGuild::LoadGuildData), this),
DBManager::instance().FuncQuery([this](auto const& msg) { LoadGuildData(msg); },
"SELECT master, level, exp, name, skill_point, skill, sp, ladder_point, win, draw, loss, gold FROM guild%s WHERE id = %u", get_table_postfix(), m_data.guild_id);
SPDLOG_DEBUG("GUILD: loading guild id {:>12} {}", m_data.name, guild_id);
DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&CGuild::LoadGuildGradeData), this),
DBManager::instance().FuncQuery([this](auto const& msg) { LoadGuildGradeData(msg); },
"SELECT grade, name, auth+0 FROM guild_grade%s WHERE guild_id = %u", get_table_postfix(), m_data.guild_id);
DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&CGuild::LoadGuildMemberData), this),
DBManager::instance().FuncQuery([this](auto const& msg) { LoadGuildMemberData(msg); },
"SELECT pid, grade, is_general, offer, level, job, name FROM guild_member%s, player%s WHERE guild_id = %u and pid = id", get_table_postfix(), get_table_postfix(), guild_id);
}
@ -756,7 +756,7 @@ void CGuild::__P2PUpdateGrade(SQLMsg* pmsg)
void CGuild::P2PChangeGrade(BYTE grade)
{
DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&CGuild::__P2PUpdateGrade),this),
DBManager::instance().FuncQuery([this](auto const& msg) { __P2PUpdateGrade(msg); },
"SELECT grade, name, auth+0 FROM guild_grade%s WHERE guild_id = %u and grade = %d", get_table_postfix(), m_data.guild_id, grade);
}
@ -1011,7 +1011,7 @@ void CGuild::AddComment(LPCHARACTER ch, const std::string& str)
char text[GUILD_COMMENT_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(text, sizeof(text), str.c_str(), str.length());
DBManager::instance().FuncAfterQuery(void_bind(std::bind1st(std::mem_fun(&CGuild::RefreshCommentForce),this),ch->GetPlayerID()),
DBManager::instance().FuncAfterQuery([this, ch]() { this->RefreshCommentForce(ch->GetPlayerID()); },
"INSERT INTO guild_comment%s(guild_id, name, notice, content, time) VALUES(%u, '%s', %d, '%s', NOW())",
get_table_postfix(), m_data.guild_id, ch->GetName(), (str[0] == '!') ? 1 : 0, text);
}
@ -1223,7 +1223,7 @@ void CGuild::SkillLevelUp(DWORD dwVnum)
break;
}*/
for_each(m_memberOnline.begin(), m_memberOnline.end(), std::bind1st(std::mem_fun_ref(&CGuild::SendSkillInfoPacket),*this));
for (auto& ch : m_memberOnline) SendSkillInfoPacket(ch);
SPDLOG_DEBUG("Guild SkillUp: {} {} level {} type {}", GetName(), pkSk->dwVnum, m_data.abySkill[dwRealVnum], pkSk->dwType);
}
@ -1482,7 +1482,7 @@ void CGuild::GuildPointChange(BYTE type, int amount, bool save)
SaveSkill();
}
for_each(m_memberOnline.begin(), m_memberOnline.end(), std::bind1st(std::mem_fun_ref(&CGuild::SendSkillInfoPacket),*this));
for (auto& ch : m_memberOnline) SendSkillInfoPacket(ch);
break;
case POINT_EXP:
@ -1513,7 +1513,7 @@ void CGuild::GuildPointChange(BYTE type, int amount, bool save)
ChangeLadderPoint(GUILD_LADDER_POINT_PER_LEVEL);
// NOTIFY_GUILD_EXP_CHANGE
for_each(m_memberOnline.begin(), m_memberOnline.end(), std::bind1st(std::mem_fun(&CGuild::SendGuildInfoPacket), this));
for (auto& ch : m_memberOnline) SendGuildInfoPacket(ch);
// END_OF_NOTIFY_GUILD_EXP_CHANGE
}

View File

@ -284,7 +284,7 @@ int CGuildManager::GetRank(CGuild* g)
return rank;
}
struct FGuildCompare : public std::binary_function<CGuild*, CGuild*, bool>
struct FGuildCompare
{
bool operator () (CGuild* g1, CGuild* g2) const
{
@ -942,16 +942,13 @@ std::vector<CGuildWarReserveForGame *> & CGuildManager::GetReserveWarRef()
void CGuildManager::ChangeMaster(DWORD dwGID)
{
TGuildMap::iterator iter = m_mapGuild.find(dwGID);
auto iter = m_mapGuild.find(dwGID);
if ( iter != m_mapGuild.end() )
{
if (iter != m_mapGuild.end())
iter->second->Load(dwGID);
}
// 업데이트된 정보 보내주기
DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&CGuild::SendGuildDataUpdateToAllMember), iter->second),
DBManager::instance().FuncQuery([iter](auto const& msg) { iter->second->SendGuildDataUpdateToAllMember(msg); },
"SELECT 1");
}

View File

@ -1682,7 +1682,7 @@ void CInputDB::ReloadProto(const char * c_pData)
CMotionManager::instance().Build();
CHARACTER_MANAGER::instance().for_each_pc(std::mem_fun(&CHARACTER::ComputePoints));
CHARACTER_MANAGER::instance().for_each_pc([](auto& pc) { pc->ComputePoints(); });
}
void CInputDB::GuildSkillUsableChange(const char* c_pData)

View File

@ -43,7 +43,7 @@ void MessengerManager::Login(MessengerManager::keyA account)
if (m_set_loginAccount.find(account) != m_set_loginAccount.end())
return;
DBManager::instance().FuncQuery(std::bind1st(std::mem_fun(&MessengerManager::LoadList), this),
DBManager::instance().FuncQuery([this](auto const& msg) { LoadList(msg); },
"SELECT account, companion FROM messenger_list%s WHERE account='%s'", get_table_postfix(), account.c_str());
m_set_loginAccount.insert(account);

View File

@ -109,7 +109,7 @@ bool CMobManager::Initialize(TMobTable * pTable, int iSize)
// END_OF_LOCALE_SERVICE
//exit(EXIT_FAILURE);
CHARACTER_MANAGER::instance().for_each_pc(std::bind1st(std::mem_fun(&CMobManager::RebindMobProto),this));
CHARACTER_MANAGER::instance().for_each_pc([this](auto& pc) { RebindMobProto(pc); });
return true;
}