Convert guild_db to unordered_map (#7612)

* Refactor guild db to STL container

* Split up struct guild and MapGuild/CharGuild
This commit is contained in:
Vincent Stumpf
2023-06-16 19:42:55 -07:00
committed by GitHub
parent 39cdaa6b84
commit 833966f47b
21 changed files with 962 additions and 1016 deletions

View File

@@ -305,7 +305,7 @@ void instance_getsd(int instance_id, map_session_data *&sd, enum send_target *ta
(*target) = SELF;
break;
case IM_GUILD:
sd = guild_getavailablesd(guild_search(idata->owner_id));
sd = guild_getavailablesd(guild_search(idata->owner_id)->guild);
(*target) = GUILD;
break;
case IM_PARTY:
@@ -348,7 +348,7 @@ static TIMER_FUNC(instance_subscription_timer){
map_session_data *sd;
struct party_data *pd;
struct guild *gd;
std::shared_ptr<MapGuild> gd;
struct clan *cd;
e_instance_mode mode = idata->mode;
int ret = instance_addmap(instance_id); // Check that maps have been added
@@ -613,7 +613,7 @@ int instance_create(int owner_id, const char *name, e_instance_mode mode) {
map_session_data *sd = nullptr;
struct party_data *pd;
struct guild *gd;
std::shared_ptr<MapGuild> gd;
struct clan* cd;
switch(mode) {
@@ -683,7 +683,7 @@ int instance_create(int owner_id, const char *name, e_instance_mode mode) {
break;
case IM_GUILD:
gd->instance_id = instance_id;
sd = map_charid2sd(gd->member[0].char_id);
sd = map_charid2sd(gd->guild.member[0].char_id);
break;
case IM_CLAN:
cd->instance_id = instance_id;
@@ -878,7 +878,7 @@ void instance_destroy_command(map_session_data *sd) {
instance_id = pd->instance_id;
} else if (sd->instance_mode == IM_GUILD && sd->guild != nullptr && sd->guild->instance_id > 0) {
guild *gd = guild_search(sd->status.guild_id);
auto gd = guild_search(sd->status.guild_id);
if (gd == nullptr)
return;
@@ -888,7 +888,7 @@ void instance_destroy_command(map_session_data *sd) {
if (idata == nullptr)
return;
if (strcmp(sd->status.name, gd->master) != 0) // Player is not guild master
if (strcmp(sd->status.name, gd->guild.master) != 0) // Player is not guild master
return;
instance_id = gd->instance_id;
@@ -915,7 +915,7 @@ void instance_destroy_command(map_session_data *sd) {
instance_reqinfo(sd, pd->instance_id);
}
if (sd->guild != nullptr && sd->guild->instance_id > 0) {
guild *gd = guild_search(sd->status.guild_id);
auto gd = guild_search(sd->status.guild_id);
if (gd == nullptr)
return;
@@ -938,7 +938,7 @@ bool instance_destroy(int instance_id)
map_session_data *sd;
struct party_data *pd;
struct guild *gd;
std::shared_ptr<MapGuild> gd;
struct clan *cd;
e_instance_mode mode = idata->mode;
e_instance_notify type = IN_NOTIFY;
@@ -1065,7 +1065,7 @@ e_instance_enter instance_enter(map_session_data *sd, int instance_id, const cha
std::shared_ptr<s_instance_data> idata = nullptr;
struct party_data *pd;
struct guild *gd;
std::shared_ptr<MapGuild> gd;
struct clan *cd;
e_instance_mode mode;
@@ -1103,7 +1103,7 @@ e_instance_enter instance_enter(map_session_data *sd, int instance_id, const cha
return IE_NOMEMBER;
if (gd->instance_id == 0) // Guild must have an instance
return IE_NOINSTANCE;
if (idata->owner_id != gd->guild_id)
if (idata->owner_id != gd->guild.guild_id)
return IE_OTHER;
break;
case IM_CLAN:
@@ -1249,7 +1249,7 @@ void do_reload_instance(void)
if (sd && mapdata->instance_id > 0) {
struct party_data *pd;
struct guild *gd;
std::shared_ptr<MapGuild> gd;
struct clan *cd;
int instance_id;
std::shared_ptr<s_instance_data> idata = util::umap_find(instances, map[sd->bl.m].instance_id);