summaryrefslogtreecommitdiff
path: root/src/tmw-athena.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/tmw-athena.patch')
-rw-r--r--src/tmw-athena.patch228
1 files changed, 0 insertions, 228 deletions
diff --git a/src/tmw-athena.patch b/src/tmw-athena.patch
deleted file mode 100644
index 8104073..0000000
--- a/src/tmw-athena.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-diff -ru athena/src/char/char.c athena-tmw/src/char/char.c
---- athena/src/char/char.c 2007-11-15 18:19:02.000000000 +0100
-+++ athena-tmw/src/char/char.c 2007-11-15 17:58:30.000000000 +0100
-@@ -91,7 +91,7 @@
- int autosave_interval = DEFAULT_AUTOSAVE_INTERVAL;
- int start_zeny = 500;
- int start_weapon = 1201;
--int start_armor = 2301;
-+int start_armor = 1202;
-
- // Initial position (it's possible to set it in conf file)
- struct point start_point = {"new_1-1.gat", 53, 111};
-@@ -768,7 +768,7 @@
- if (dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29] != 5*6 || // stats
- dat[30] >= 9 || // slots (dat[30] can not be negativ)
- dat[33] <= 0 || dat[33] >= 20 || // hair style
-- dat[31] >= 9) { // hair color (dat[31] can not be negativ)
-+ dat[31] >= 12) { // hair color (dat[31] can not be negativ)
- char_log("Make new char error (invalid values): (connection #%d, account: %d) slot %d, name: %s, stats: %d+%d+%d+%d+%d+%d=%d, hair: %d, hair color: %d" RETCODE,
- fd, sd->account_id, dat[30], dat, dat[24], dat[25], dat[26], dat[27], dat[28], dat[29], dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29], dat[33], dat[31]);
- return -1;
-diff -ru athena/src/login/login.c athena-tmw/src/login/login.c
---- athena/src/login/login.c 2007-11-15 18:19:02.000000000 +0100
-+++ athena-tmw/src/login/login.c 2007-11-15 17:58:24.000000000 +0100
-@@ -1036,7 +1036,7 @@
- if (newaccount) {
- login_log("Attempt of creation of an already existant account (account: %s_%c, pass: %s, received pass: %s, ip: %s)" RETCODE,
- account->userid, account->userid[len+1], auth_dat[i].pass, account->passwd, ip);
-- return 1; // 1 = Incorrect Password
-+ return 9; // 9 = Account already exists
- }
- ld = session[fd]->session_data;
- #ifdef PASSWORDENC
-diff -ru athena/src/map/clif.c athena-tmw/src/map/clif.c
---- athena/src/map/clif.c 2007-11-15 18:19:02.000000000 +0100
-+++ athena-tmw/src/map/clif.c 2007-11-15 17:59:24.000000000 +0100
-@@ -3208,17 +3208,19 @@
- * アイテム追加成功/失敗
- *------------------------------------------
- */
--int clif_tradeitemok(struct map_session_data *sd,int index,int fail)
-+int clif_tradeitemok(struct map_session_data *sd,int index,int amount,int fail)
- {
- int fd;
-
- nullpo_retr(0, sd);
-
- fd=sd->fd;
-- WFIFOW(fd,0)=0xea;
-+ WFIFOW(fd,0)=0x1b1;
-+ //WFIFOW(fd,0)=0xea;
- WFIFOW(fd,2)=index;
-- WFIFOB(fd,4)=fail;
-- WFIFOSET(fd,packet_len_table[0xea]);
-+ WFIFOW(fd,4)=amount;
-+ WFIFOB(fd,6)=fail;
-+ WFIFOSET(fd,packet_len_table[0x1b1]);
-
- return 0;
- }
-@@ -7887,8 +7889,11 @@
- if(sd->sc_data && ( sd->sc_data[SC_BLADESTOP].timer!=-1 || sd->sc_data[SC_BERSERK].timer!=-1 )) return;
-
- if(sd->status.inventory[index].identify != 1) { // 未鑑定
-- clif_equipitemack(sd,index,0,0); // fail
-- return;
-+ // Bjorn: Auto-identify items when equipping them as there
-+ // is no nice way to do this in the client yet.
-+ sd->status.inventory[index].identify = 1;
-+ //clif_equipitemack(sd,index,0,0); // fail
-+ //return;
- }
- //ペット用装備であるかないか
- if(sd->inventory_data[index]) {
-diff -ru athena/src/map/clif.h athena-tmw/src/map/clif.h
---- athena/src/map/clif.h 2007-11-15 18:19:16.000000000 +0100
-+++ athena-tmw/src/map/clif.h 2007-11-15 17:59:18.000000000 +0100
-@@ -97,7 +97,7 @@
- int clif_traderequest(struct map_session_data *sd,char *name);
- int clif_tradestart(struct map_session_data *sd,int type);
- int clif_tradeadditem(struct map_session_data *sd,struct map_session_data *tsd,int index,int amount);
--int clif_tradeitemok(struct map_session_data *sd,int index,int fail);
-+int clif_tradeitemok(struct map_session_data *sd,int index,int amount,int fail);
- int clif_tradedeal_lock(struct map_session_data *sd,int fail);
- int clif_tradecancelled(struct map_session_data *sd);
- int clif_tradecompleted(struct map_session_data *sd,int fail);
-diff -ru athena/src/map/map.c athena-tmw/src/map/map.c
---- athena/src/map/map.c 2007-11-15 18:19:02.000000000 +0100
-+++ athena-tmw/src/map/map.c 2007-11-15 17:59:25.000000000 +0100
-@@ -1390,10 +1390,10 @@
- *------------------------------------------
- */
- static int map_readmap(int m,char *fn, char *alias) {
-- unsigned char *gat="";
-+ unsigned char *gat = "";
- int s;
- int x,y,xs,ys;
-- struct gat_1cell {float high[4]; int type;} *p=NULL;
-+ struct gat_1cell {char type;} *p;
- int wh;
- size_t size;
-
-@@ -1401,28 +1401,34 @@
- gat=grfio_read(fn);
- if(gat==NULL)
- return -1;
--
-+
- printf("\rLoading Maps [%d/%d]: %-50s ",m,map_num,fn);
- fflush(stdout);
-
- map[m].m=m;
-- xs=map[m].xs=*(int*)(gat+6);
-- ys=map[m].ys=*(int*)(gat+10);
-- map[m].gat = (unsigned char *)aCalloc(s = map[m].xs * map[m].ys,sizeof(unsigned char));
-+ xs=map[m].xs=*(short*)(gat);
-+ ys=map[m].ys=*(short*)(gat+2);
-+ printf("\n%i %i\n", xs, ys);
-+ map[m].gat = calloc(s = map[m].xs * map[m].ys, 1);
-+ if(map[m].gat==NULL){
-+ printf("out of memory : map_readmap gat\n");
-+ exit(1);
-+ }
-+
- map[m].npc_num=0;
- map[m].users=0;
- memset(&map[m].flag,0,sizeof(map[m].flag));
- if(battle_config.pk_mode) map[m].flag.pvp = 1; // make all maps pvp for pk_mode [Valaris]
- wh=map_waterheight(map[m].name);
- for(y=0;y<ys;y++){
-- p=(struct gat_1cell*)(gat+y*xs*20+14);
-+ p=(struct gat_1cell*)(gat+y*xs+4);
- for(x=0;x<xs;x++){
-- if(wh!=NO_WATER && p->type==0){
-+ /*if(wh!=NO_WATER && p->type==0){
- // 水場判定
- map[m].gat[x+y*xs]=(p->high[0]>wh || p->high[1]>wh || p->high[2]>wh || p->high[3]>wh) ? 3 : 0;
-- } else {
-+ } else {*/
- map[m].gat[x+y*xs]=p->type;
-- }
-+ //}
- p++;
- }
- }
-@@ -1431,12 +1437,36 @@
- map[m].bxs=(xs+BLOCK_SIZE-1)/BLOCK_SIZE;
- map[m].bys=(ys+BLOCK_SIZE-1)/BLOCK_SIZE;
- size = map[m].bxs * map[m].bys * sizeof(struct block_list*);
-- map[m].block = (struct block_list **)aCalloc(1,size);
-- map[m].block_mob = (struct block_list **)aCalloc(1,size);
-+
-+ map[m].block = calloc(size, 1);
-+ if(map[m].block == NULL){
-+ printf("out of memory : map_readmap block\n");
-+ exit(1);
-+ }
-+
-+ map[m].block_mob = calloc(size, 1);
-+ if (map[m].block_mob == NULL) {
-+ printf("out of memory : map_readmap block_mob\n");
-+ exit(1);
-+ }
-+
- size = map[m].bxs*map[m].bys*sizeof(int);
-- map[m].block_count = (int *)aCalloc(1,size);
-- map[m].block_mob_count=(int *)aCalloc(1,size);
-- strdb_insert(map_db,map[m].name,&map[m]);
-+
-+ map[m].block_count = calloc(size, 1);
-+ if(map[m].block_count==NULL){
-+ printf("out of memory : map_readmap block\n");
-+ exit(1);
-+ }
-+ memset(map[m].block_count,0,size);
-+
-+ map[m].block_mob_count=calloc(size, 1);
-+ if(map[m].block_mob_count==NULL){
-+ printf("out of memory : map_readmap block_mob\n");
-+ exit(1);
-+ }
-+ memset(map[m].block_mob_count,0,size);
-+
-+ strdb_insert(map_db,map[m].name,&map[m]);
-
- // printf("%s read done\n",fn);
-
-diff -ru athena/src/map/pc.c athena-tmw/src/map/pc.c
---- athena/src/map/pc.c 2007-11-15 18:19:02.000000000 +0100
-+++ athena-tmw/src/map/pc.c 2007-11-15 17:59:19.000000000 +0100
-@@ -6110,6 +6110,7 @@
- nameid = sd->status.inventory[n].nameid;
- id = sd->inventory_data[n];
- pos = pc_equippoint(sd,n);
-+
- if(battle_config.battle_log)
- printf("equip %d(%d) %x:%x\n",nameid,n,id->equip,pos);
- if(!pc_isequip(sd,n) || !pos || sd->status.inventory[n].broken==1 ) { // [Valaris]
-diff -ru athena/src/map/trade.c athena-tmw/src/map/trade.c
---- athena/src/map/trade.c 2007-11-15 18:19:02.000000000 +0100
-+++ athena-tmw/src/map/trade.c 2007-11-15 17:59:18.000000000 +0100
-@@ -98,7 +98,7 @@
- if(sd->deal_item_amount[trade_i] == 0){
- trade_weight+=sd->inventory_data[index-2]->weight*amount;
- if(target_sd->weight + trade_weight > target_sd->max_weight){
-- clif_tradeitemok(sd,index,1); //fail to add item -- the player was over weighted.
-+ clif_tradeitemok(sd,index,0,1); //fail to add item -- the player was over weighted.
- amount = 0; // [MouseJstr]
- }else{
- for(c=0; c==trade_i-1;c++){ // re-deal exploit protection [Valaris]
-@@ -109,7 +109,7 @@
- }
- sd->deal_item_index[trade_i] =index;
- sd->deal_item_amount[trade_i]+=amount;
-- clif_tradeitemok(sd,index,0); //success to add item
-+ clif_tradeitemok(sd,index,amount,0); //success to add item
- clif_tradeadditem(sd,target_sd,index,amount);
- }
- break;
-@@ -143,7 +143,7 @@
-
- if((target_sd = map_id2sd(sd->trade_partner)) != NULL){
- sd->deal_locked=1;
-- clif_tradeitemok(sd,0,0);
-+ clif_tradeitemok(sd,0,0,0);
- clif_tradedeal_lock(sd,0);
- clif_tradedeal_lock(target_sd,1);
- }