diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 8600d520a..209f32e0b 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -12137,23 +12137,12 @@ static int packetdb_readdb(void) ln++; continue; } - for(j=0;j<ARRAYLENGTH(clif_parse_func);j++){ - if(clif_parse_func[j].name != NULL && strcmp(str[2],clif_parse_func[j].name)==0) - { - if (packet_db[packet_ver][cmd].func != clif_parse_func[j].func) - { //If we are updating a function, we need to zero up the previous one. [Skotlex] - for(i=0;i<=MAX_PACKET_DB;i++){ - if (packet_db[packet_ver][i].func == clif_parse_func[j].func) - { - memset(&packet_db[packet_ver][i], 0, sizeof(struct s_packet_db)); - break; - } - } - } - packet_db[packet_ver][cmd].func = clif_parse_func[j].func; - break; - } - } + + // look up processing function by name + ARR_FIND( 0, ARRAYLENGTH(clif_parse_func), j, clif_parse_func[j].name != NULL && strcmp(str[2],clif_parse_func[j].name)==0 ); + if( j < ARRAYLENGTH(clif_parse_func) ) + packet_db[packet_ver][cmd].func = clif_parse_func[j].func; + // set the identifying cmd for the packet_db version if (strcmp(str[2],"wanttoconnection")==0) clif_config.connect_cmd[packet_ver] = cmd; |