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

@@ -1666,9 +1666,9 @@ int intif_parse_GuildInfo(int fd)
guild_recv_noinfo(RFIFOL(fd,4));
return 0;
}
if( RFIFOW(fd,2)!=sizeof(struct guild)+4 )
ShowError("intif: guild info : data size error Gid: %d recv size: %d Expected size: %" PRIuPTR "\n",RFIFOL(fd,4),RFIFOW(fd,2),sizeof(struct guild)+4);
guild_recv_info((struct guild *)RFIFOP(fd,4));
if( RFIFOW(fd,2)!=sizeof(struct mmo_guild)+4 )
ShowError("intif: guild info : data size error Gid: %d recv size: %d Expected size: %" PRIuPTR "\n",RFIFOL(fd,4),RFIFOW(fd,2),sizeof(struct mmo_guild)+4);
guild_recv_info(*(struct mmo_guild *)RFIFOP(fd,4));
return 1;
}
@@ -1731,14 +1731,14 @@ int intif_parse_GuildBasicInfoChanged(int fd)
int type = RFIFOW(fd,8);
//void* data = RFIFOP(fd,10);
struct guild* g = guild_search(guild_id);
auto g = guild_search(guild_id);
if( g == NULL )
return 0;
switch(type) {
case GBI_EXP: g->exp = RFIFOQ(fd,10); break;
case GBI_GUILDLV: g->guild_lv = RFIFOW(fd,10); break;
case GBI_SKILLPOINT: g->skill_point = RFIFOL(fd,10); break;
case GBI_EXP: g->guild.exp = RFIFOQ(fd,10); break;
case GBI_GUILDLV: g->guild.guild_lv = RFIFOW(fd,10); break;
case GBI_SKILLPOINT: g->guild.skill_point = RFIFOL(fd,10); break;
}
return 1;
@@ -1759,25 +1759,24 @@ int intif_parse_GuildMemberInfoChanged(int fd)
int type = RFIFOW(fd,16);
//void* data = RFIFOP(fd,18);
struct guild* g;
int idx;
g = guild_search(guild_id);
if( g == NULL )
auto g = guild_search(guild_id);
if( g == nullptr )
return 0;
idx = guild_getindex(g,account_id,char_id);
idx = guild_getindex(g->guild,account_id,char_id);
if( idx == -1 )
return 0;
switch( type ) {
case GMI_POSITION: g->member[idx].position = RFIFOW(fd,18); guild_memberposition_changed(g,idx,RFIFOW(fd,18)); break;
case GMI_EXP: g->member[idx].exp = RFIFOQ(fd,18); break;
case GMI_HAIR: g->member[idx].hair = RFIFOW(fd,18); break;
case GMI_HAIR_COLOR: g->member[idx].hair_color = RFIFOW(fd,18); break;
case GMI_GENDER: g->member[idx].gender = RFIFOW(fd,18); break;
case GMI_CLASS: g->member[idx].class_ = RFIFOW(fd,18); break;
case GMI_LEVEL: g->member[idx].lv = RFIFOW(fd,18); break;
case GMI_POSITION: g->guild.member[idx].position = RFIFOW(fd,18); guild_memberposition_changed(g->guild,idx,RFIFOW(fd,18)); break;
case GMI_EXP: g->guild.member[idx].exp = RFIFOQ(fd,18); break;
case GMI_HAIR: g->guild.member[idx].hair = RFIFOW(fd,18); break;
case GMI_HAIR_COLOR: g->guild.member[idx].hair_color = RFIFOW(fd,18); break;
case GMI_GENDER: g->guild.member[idx].gender = RFIFOW(fd,18); break;
case GMI_CLASS: g->guild.member[idx].class_ = RFIFOW(fd,18); break;
case GMI_LEVEL: g->guild.member[idx].lv = RFIFOW(fd,18); break;
}
return 1;
}