From d70d0a66866d8c41cf6a8c9df266c0d7ea29c3dc Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 28 Aug 2006 19:22:13 +0000 Subject: - The memory leak reports will now print out in the logs also the revision they belong to. - Cleaned up the scriptable npc-shop code, it should be crash-proof now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8525 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 4 ++++ src/common/malloc.c | 2 +- src/map/clif.c | 21 +++------------------ src/map/npc.c | 21 +++++++++++++++++++++ 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 4b102033f..eb9aac590 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/08/28 + * The memory leak reports will now print out in the logs also the revision + they belong to. [Skotlex] + * Cleaned up the scriptable npc-shop code, it should be crash-proof now. + [Skotlex] * Added TK level-up buffs to SG too, and extended them to 10 min [DracoRPG] * Added "Barefeet Mastery" effect to TK_RUN (thanks Tharis for both) [DracoRPG] * Changed the produce_db format, now there's a skill-lv column right after diff --git a/src/common/malloc.c b/src/common/malloc.c index db76974b5..f06fe00ca 100644 --- a/src/common/malloc.c +++ b/src/common/malloc.c @@ -583,7 +583,7 @@ static void memmgr_log (char *buf) if (!log_fp) { log_fp = fopen(memmer_logfile,"w"); if (!log_fp) log_fp = stdout; - fprintf(log_fp, "Memory manager: Memory leaks found.\n"); + fprintf(log_fp, "Memory manager: Memory leaks found (Revision %s).\n", get_svn_revision()); } fprintf(log_fp, buf); return; diff --git a/src/map/clif.c b/src/map/clif.c index b3decf5b3..ed66dbabf 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9420,10 +9420,8 @@ void clif_parse_NpcBuySellSelected(int fd,struct map_session_data *sd) */ void clif_parse_NpcBuyListSend(int fd,struct map_session_data *sd) { - int fail=0,n, i; + int fail=0,n; unsigned short *item_list; - unsigned char npc_ev[51]; - struct npc_data *nd; RFIFOHEAD(fd); n = (RFIFOW(fd,2)-4) /4; @@ -9431,21 +9429,8 @@ void clif_parse_NpcBuyListSend(int fd,struct map_session_data *sd) if (sd->state.trading|| !sd->npc_shopid) fail = 1; - else { - if((nd = ((struct npc_data *)map_id2bl(sd->npc_shopid))->master_nd)){ - int regkey = add_str("@bought_nameid"); - int regkey2 = add_str("@bought_quantity"); - sprintf(npc_ev, "%s::OnBuyItem", nd->exname); - for(i=0;inpc_shopid = 0; //Clear shop data. WFIFOHEAD(fd,packet_len_table[0xca]); diff --git a/src/map/npc.c b/src/map/npc.c index cd6e0b997..5ff34647c 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1164,6 +1164,24 @@ int npc_buysellsel(struct map_session_data *sd,int id,int type) return 0; } +//npc_buylist for script-controlled shops. +static int npc_buylist_sub( + struct map_session_data *sd,int n, + unsigned short *item_list, struct npc_data *nd) +{ + unsigned char npc_ev[51]; + int i; + int regkey = add_str("@bought_nameid"); + int regkey2 = add_str("@bought_quantity"); + sprintf(npc_ev, "%s::OnBuyItem", nd->exname); + for(i=0;inpc_shopid))) == NULL) return 3; + if (nd->master_nd) //Script-based shops. + return npc_buylist_sub(sd,n,item_list,nd->master_nd); + if (nd->bl.subtype!=SHOP) return 3; -- cgit v1.2.3-70-g09d2