diff options
-rw-r--r-- | Changelog-Trunk.txt | 1 | ||||
-rw-r--r-- | src/char/char.c | 28 | ||||
-rw-r--r-- | src/char_sql/char.c | 28 | ||||
-rw-r--r-- | src/map/clif.c | 70 |
4 files changed, 64 insertions, 63 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 2840900ee..2e72dba94 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,7 @@ Date Added 2011/07/10 * Temporary fix for bugreport:4961 (unintended conversion from signed to unsigned). [FlavioJS] * CMake: lowered required version to 2.8.3 and moved custom cmake modules to 3rdparty/cmake. + * Changed limit definitions used in WBUF* and WFIFO* to the intended fixed size alternatives. 2011/07/09 * Added script command 'getmercinfo' for retrieving information about a mercenary of an online character. [Ai4rei] * CMake: added search for math library, made CPack existence optional, updated the search for mysqlclient and corrected misspelled variables (tested with FreeBSD-8.2-i386) [FlavioJS] diff --git a/src/char/char.c b/src/char/char.c index 617e3d10c..4c9e1fb7d 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -1804,33 +1804,33 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) buf = WBUFP(buffer,0); WBUFL(buf,0) = p->char_id; - WBUFL(buf,4) = min(p->base_exp, LONG_MAX); + WBUFL(buf,4) = min(p->base_exp, INT32_MAX); WBUFL(buf,8) = p->zeny; - WBUFL(buf,12) = min(p->job_exp, LONG_MAX); + WBUFL(buf,12) = min(p->job_exp, INT32_MAX); WBUFL(buf,16) = p->job_level; WBUFL(buf,20) = 0; // probably opt1 WBUFL(buf,24) = 0; // probably opt2 WBUFL(buf,28) = p->option; WBUFL(buf,32) = p->karma; WBUFL(buf,36) = p->manner; - WBUFW(buf,40) = min(p->status_point, SHRT_MAX); + WBUFW(buf,40) = min(p->status_point, INT16_MAX); #if PACKETVER > 20081217 WBUFL(buf,42) = p->hp; WBUFL(buf,46) = p->max_hp; offset+=4; buf = WBUFP(buffer,offset); #else - WBUFW(buf,42) = min(p->hp, SHRT_MAX); - WBUFW(buf,44) = min(p->max_hp, SHRT_MAX); + WBUFW(buf,42) = min(p->hp, INT16_MAX); + WBUFW(buf,44) = min(p->max_hp, INT16_MAX); #endif - WBUFW(buf,46) = min(p->sp, SHRT_MAX); - WBUFW(buf,48) = min(p->max_sp, SHRT_MAX); + WBUFW(buf,46) = min(p->sp, INT16_MAX); + WBUFW(buf,48) = min(p->max_sp, INT16_MAX); WBUFW(buf,50) = DEFAULT_WALK_SPEED; // p->speed; WBUFW(buf,52) = p->class_; WBUFW(buf,54) = p->hair; WBUFW(buf,56) = p->option&0x20 ? 0 : p->weapon; //When the weapon is sent and your option is riding, the client crashes on login!? WBUFW(buf,58) = p->base_level; - WBUFW(buf,60) = min(p->skill_point, SHRT_MAX); + WBUFW(buf,60) = min(p->skill_point, INT16_MAX); WBUFW(buf,62) = p->head_bottom; WBUFW(buf,64) = p->shield; WBUFW(buf,66) = p->head_top; @@ -1838,12 +1838,12 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) WBUFW(buf,70) = p->hair_color; WBUFW(buf,72) = p->clothes_color; memcpy(WBUFP(buf,74), p->name, NAME_LENGTH); - WBUFB(buf,98) = min(p->str, UCHAR_MAX); - WBUFB(buf,99) = min(p->agi, UCHAR_MAX); - WBUFB(buf,100) = min(p->vit, UCHAR_MAX); - WBUFB(buf,101) = min(p->int_, UCHAR_MAX); - WBUFB(buf,102) = min(p->dex, UCHAR_MAX); - WBUFB(buf,103) = min(p->luk, UCHAR_MAX); + WBUFB(buf,98) = min(p->str, UINT8_MAX); + WBUFB(buf,99) = min(p->agi, UINT8_MAX); + WBUFB(buf,100) = min(p->vit, UINT8_MAX); + WBUFB(buf,101) = min(p->int_, UINT8_MAX); + WBUFB(buf,102) = min(p->dex, UINT8_MAX); + WBUFB(buf,103) = min(p->luk, UINT8_MAX); WBUFW(buf,104) = p->slot; #if PACKETVER >= 20061023 WBUFW(buf,106) = ( p->rename > 0 ) ? 0 : 1; diff --git a/src/char_sql/char.c b/src/char_sql/char.c index b1c171ebf..1844295b8 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -1565,33 +1565,33 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) buf = WBUFP(buffer,0); WBUFL(buf,0) = p->char_id; - WBUFL(buf,4) = min(p->base_exp, LONG_MAX); + WBUFL(buf,4) = min(p->base_exp, INT32_MAX); WBUFL(buf,8) = p->zeny; - WBUFL(buf,12) = min(p->job_exp, LONG_MAX); + WBUFL(buf,12) = min(p->job_exp, INT32_MAX); WBUFL(buf,16) = p->job_level; WBUFL(buf,20) = 0; // probably opt1 WBUFL(buf,24) = 0; // probably opt2 WBUFL(buf,28) = p->option; WBUFL(buf,32) = p->karma; WBUFL(buf,36) = p->manner; - WBUFW(buf,40) = min(p->status_point, SHRT_MAX); + WBUFW(buf,40) = min(p->status_point, INT16_MAX); #if PACKETVER > 20081217 WBUFL(buf,42) = p->hp; WBUFL(buf,46) = p->max_hp; offset+=4; buf = WBUFP(buffer,offset); #else - WBUFW(buf,42) = min(p->hp, SHRT_MAX); - WBUFW(buf,44) = min(p->max_hp, SHRT_MAX); + WBUFW(buf,42) = min(p->hp, INT16_MAX); + WBUFW(buf,44) = min(p->max_hp, INT16_MAX); #endif - WBUFW(buf,46) = min(p->sp, SHRT_MAX); - WBUFW(buf,48) = min(p->max_sp, SHRT_MAX); + WBUFW(buf,46) = min(p->sp, INT16_MAX); + WBUFW(buf,48) = min(p->max_sp, INT16_MAX); WBUFW(buf,50) = DEFAULT_WALK_SPEED; // p->speed; WBUFW(buf,52) = p->class_; WBUFW(buf,54) = p->hair; WBUFW(buf,56) = p->option&0x20 ? 0 : p->weapon; //When the weapon is sent and your option is riding, the client crashes on login!? WBUFW(buf,58) = p->base_level; - WBUFW(buf,60) = min(p->skill_point, SHRT_MAX); + WBUFW(buf,60) = min(p->skill_point, INT16_MAX); WBUFW(buf,62) = p->head_bottom; WBUFW(buf,64) = p->shield; WBUFW(buf,66) = p->head_top; @@ -1599,12 +1599,12 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) WBUFW(buf,70) = p->hair_color; WBUFW(buf,72) = p->clothes_color; memcpy(WBUFP(buf,74), p->name, NAME_LENGTH); - WBUFB(buf,98) = min(p->str, UCHAR_MAX); - WBUFB(buf,99) = min(p->agi, UCHAR_MAX); - WBUFB(buf,100) = min(p->vit, UCHAR_MAX); - WBUFB(buf,101) = min(p->int_, UCHAR_MAX); - WBUFB(buf,102) = min(p->dex, UCHAR_MAX); - WBUFB(buf,103) = min(p->luk, UCHAR_MAX); + WBUFB(buf,98) = min(p->str, UINT8_MAX); + WBUFB(buf,99) = min(p->agi, UINT8_MAX); + WBUFB(buf,100) = min(p->vit, UINT8_MAX); + WBUFB(buf,101) = min(p->int_, UINT8_MAX); + WBUFB(buf,102) = min(p->dex, UINT8_MAX); + WBUFB(buf,103) = min(p->luk, UINT8_MAX); WBUFW(buf,104) = p->slot; #if PACKETVER >= 20061023 WBUFW(buf,106) = ( p->rename > 0 ) ? 0 : 1; diff --git a/src/map/clif.c b/src/map/clif.c index 8d2159823..071401acf 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1214,8 +1214,8 @@ int clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag) WBUFW(buf,29)=hd->homunculus.hunger; WBUFW(buf,31)=(unsigned short) (hd->homunculus.intimacy / 100) ; WBUFW(buf,33)=0; // equip id - WBUFW(buf,35)=cap_value(status->rhw.atk2+status->batk, 0, SHRT_MAX); - WBUFW(buf,37)=cap_value(status->matk_max, 0, SHRT_MAX); + WBUFW(buf,35)=cap_value(status->rhw.atk2+status->batk, 0, INT16_MAX); + WBUFW(buf,37)=cap_value(status->matk_max, 0, INT16_MAX); WBUFW(buf,39)=status->hit; if (battle_config.hom_setting&0x10) WBUFW(buf,41)=status->luk/3 + 1; //crit is a +1 decimal value! Just display purpose.[Vicious] @@ -1225,14 +1225,14 @@ int clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag) WBUFW(buf,45)=status->mdef; WBUFW(buf,47)=status->flee; WBUFW(buf,49)=(flag)?0:status->amotion; - if (status->max_hp > SHRT_MAX) { + if (status->max_hp > INT16_MAX) { WBUFW(buf,51) = status->hp/(status->max_hp/100); WBUFW(buf,53) = 100; } else { WBUFW(buf,51)=status->hp; WBUFW(buf,53)=status->max_hp; } - if (status->max_sp > SHRT_MAX) { + if (status->max_sp > INT16_MAX) { WBUFW(buf,55) = status->sp/(status->max_sp/100); WBUFW(buf,57) = 100; } else { @@ -2828,18 +2828,18 @@ int clif_initialstatus(struct map_session_data *sd) buf=WFIFOP(fd,0); WBUFW(buf,0)=0xbd; - WBUFW(buf,2)=min(sd->status.status_point, SHRT_MAX); - WBUFB(buf,4)=min(sd->status.str, UCHAR_MAX); + WBUFW(buf,2)=min(sd->status.status_point, INT16_MAX); + WBUFB(buf,4)=min(sd->status.str, UINT8_MAX); WBUFB(buf,5)=pc_need_status_point(sd,SP_STR,1); - WBUFB(buf,6)=min(sd->status.agi, UCHAR_MAX); + WBUFB(buf,6)=min(sd->status.agi, UINT8_MAX); WBUFB(buf,7)=pc_need_status_point(sd,SP_AGI,1); - WBUFB(buf,8)=min(sd->status.vit, UCHAR_MAX); + WBUFB(buf,8)=min(sd->status.vit, UINT8_MAX); WBUFB(buf,9)=pc_need_status_point(sd,SP_VIT,1); - WBUFB(buf,10)=min(sd->status.int_, UCHAR_MAX); + WBUFB(buf,10)=min(sd->status.int_, UINT8_MAX); WBUFB(buf,11)=pc_need_status_point(sd,SP_INT,1); - WBUFB(buf,12)=min(sd->status.dex, UCHAR_MAX); + WBUFB(buf,12)=min(sd->status.dex, UINT8_MAX); WBUFB(buf,13)=pc_need_status_point(sd,SP_DEX,1); - WBUFB(buf,14)=min(sd->status.luk, UCHAR_MAX); + WBUFB(buf,14)=min(sd->status.luk, UINT8_MAX); WBUFB(buf,15)=pc_need_status_point(sd,SP_LUK,1); WBUFW(buf,16) = sd->battle_status.batk + sd->battle_status.rhw.atk + sd->battle_status.lhw.atk; @@ -2967,7 +2967,7 @@ int clif_statusupack(struct map_session_data *sd,int type,int ok,int val) WFIFOW(fd,0)=0xbc; WFIFOW(fd,2)=type; WFIFOB(fd,4)=ok; - WFIFOB(fd,5)=cap_value(val,0,UCHAR_MAX); + WFIFOB(fd,5)=cap_value(val,0,UINT8_MAX); WFIFOSET(fd,packet_len(0xbc)); return 0; @@ -3832,7 +3832,7 @@ int clif_damage(struct block_list* src, struct block_list* dst, unsigned int tic WBUFW(buf,22)=damage?div:0; WBUFW(buf,27)=damage2?div:0; } else { - WBUFW(buf,22)=min(damage, SHRT_MAX); + WBUFW(buf,22)=min(damage, INT16_MAX); WBUFW(buf,27)=damage2; } WBUFW(buf,24)=div; @@ -4591,7 +4591,7 @@ int clif_skill_nodamage(struct block_list *src,struct block_list *dst,int skill_ WBUFW(buf,0)=0x11a; WBUFW(buf,2)=skill_id; - WBUFW(buf,4)=min(heal, SHRT_MAX); + WBUFW(buf,4)=min(heal, INT16_MAX); WBUFL(buf,6)=dst->id; WBUFL(buf,10)=src?src->id:0; WBUFB(buf,14)=fail; @@ -5048,7 +5048,7 @@ int clif_heal(int fd,int type,int val) WFIFOHEAD(fd,packet_len(0x13d)); WFIFOW(fd,0)=0x13d; WFIFOW(fd,2)=type; - WFIFOW(fd,4)=cap_value(val,0,SHRT_MAX); + WFIFOW(fd,4)=cap_value(val,0,INT16_MAX); WFIFOSET(fd,packet_len(0x13d)); return 0; @@ -5120,7 +5120,7 @@ int clif_pvpset(struct map_session_data *sd,int pvprank,int pvpnum,int type) WBUFW(buf,0) = 0x19a; WBUFL(buf,2) = sd->bl.id; if(sd->sc.option&(OPTION_HIDE|OPTION_CLOAK)) - WBUFL(buf,6) = ULONG_MAX; //On client displays as -- + WBUFL(buf,6) = UINT32_MAX; //On client displays as -- else WBUFL(buf,6) = pvprank; WBUFL(buf,10) = pvpnum; @@ -6038,7 +6038,7 @@ int clif_party_hp(struct map_session_data *sd) WBUFW(buf,0)=cmd; WBUFL(buf,2)=sd->status.account_id; #if PACKETVER < 20100126 - if (sd->battle_status.max_hp > SHRT_MAX) { //To correctly display the %hp bar. [Skotlex] + if (sd->battle_status.max_hp > INT16_MAX) { //To correctly display the %hp bar. [Skotlex] WBUFW(buf,6) = sd->battle_status.hp/(sd->battle_status.max_hp/100); WBUFW(buf,8) = 100; } else { @@ -6067,7 +6067,7 @@ void clif_hpmeter_single(int fd, int id, unsigned int hp, unsigned int maxhp) WFIFOW(fd,0) = cmd; WFIFOL(fd,2) = id; #if PACKETVER < 20100126 - if( maxhp > SHRT_MAX ) + if( maxhp > INT16_MAX ) {// To correctly display the %hp bar. [Skotlex] WFIFOW(fd,6) = hp/(maxhp/100); WFIFOW(fd,8) = 100; @@ -6110,7 +6110,7 @@ int clif_hpmeter_sub(struct block_list *bl, va_list ap) WFIFOW(tsd->fd,0) = cmd; WFIFOL(tsd->fd,2) = sd->status.account_id; #if PACKETVER < 20100126 - if( sd->battle_status.max_hp > SHRT_MAX ) + if( sd->battle_status.max_hp > INT16_MAX ) { //To correctly display the %hp bar. [Skotlex] WFIFOW(tsd->fd,6) = sd->battle_status.hp/(sd->battle_status.max_hp/100); WFIFOW(tsd->fd,8) = 100; @@ -6545,7 +6545,7 @@ int clif_mvp_exp(struct map_session_data *sd, unsigned int exp) fd=sd->fd; WFIFOHEAD(fd,packet_len(0x10b)); WFIFOW(fd,0)=0x10b; - WFIFOL(fd,2)=cap_value(exp,0,INT_MAX); + WFIFOL(fd,2)=cap_value(exp,0,INT32_MAX); WFIFOSET(fd,packet_len(0x10b)); return 0; } @@ -6692,7 +6692,7 @@ int clif_guild_basicinfo(struct map_session_data *sd) WFIFOL(fd,10)=g->connect_member; WFIFOL(fd,14)=g->max_member; WFIFOL(fd,18)=g->average_lv; - WFIFOL(fd,22)=(uint32)cap_value(g->exp,0,INT_MAX); + WFIFOL(fd,22)=(uint32)cap_value(g->exp,0,INT32_MAX); WFIFOL(fd,26)=g->next_exp; WFIFOL(fd,30)=0; // Tax Points WFIFOL(fd,34)=0; // Tendency: (left) Vulgar [-100,100] Famed (right) @@ -6770,7 +6770,7 @@ int clif_guild_memberlist(struct map_session_data *sd) WFIFOW(fd,c*104+16)=m->gender; WFIFOW(fd,c*104+18)=m->class_; WFIFOW(fd,c*104+20)=m->lv; - WFIFOL(fd,c*104+22)=(int)cap_value(m->exp,0,INT_MAX); + WFIFOL(fd,c*104+22)=(int)cap_value(m->exp,0,INT32_MAX); WFIFOL(fd,c*104+26)=m->online; WFIFOL(fd,c*104+30)=m->position; memset(WFIFOP(fd,c*104+34),0,50); // ƒƒ‚H @@ -12459,17 +12459,17 @@ void clif_check(int fd, struct map_session_data* pl_sd) { WFIFOHEAD(fd,packet_len(0x214)); WFIFOW(fd, 0) = 0x214; - WFIFOB(fd, 2) = min(pl_sd->status.str, UCHAR_MAX); + WFIFOB(fd, 2) = min(pl_sd->status.str, UINT8_MAX); WFIFOB(fd, 3) = pc_need_status_point(pl_sd, SP_STR, 1); - WFIFOB(fd, 4) = min(pl_sd->status.agi, UCHAR_MAX); + WFIFOB(fd, 4) = min(pl_sd->status.agi, UINT8_MAX); WFIFOB(fd, 5) = pc_need_status_point(pl_sd, SP_AGI, 1); - WFIFOB(fd, 6) = min(pl_sd->status.vit, UCHAR_MAX); + WFIFOB(fd, 6) = min(pl_sd->status.vit, UINT8_MAX); WFIFOB(fd, 7) = pc_need_status_point(pl_sd, SP_VIT, 1); - WFIFOB(fd, 8) = min(pl_sd->status.int_, UCHAR_MAX); + WFIFOB(fd, 8) = min(pl_sd->status.int_, UINT8_MAX); WFIFOB(fd, 9) = pc_need_status_point(pl_sd, SP_INT, 1); - WFIFOB(fd,10) = min(pl_sd->status.dex, UCHAR_MAX); + WFIFOB(fd,10) = min(pl_sd->status.dex, UINT8_MAX); WFIFOB(fd,11) = pc_need_status_point(pl_sd, SP_DEX, 1); - WFIFOB(fd,12) = min(pl_sd->status.luk, UCHAR_MAX); + WFIFOB(fd,12) = min(pl_sd->status.luk, UINT8_MAX); WFIFOB(fd,13) = pc_need_status_point(pl_sd, SP_LUK, 1); WFIFOW(fd,14) = pl_sd->battle_status.batk+pl_sd->battle_status.rhw.atk+pl_sd->battle_status.lhw.atk; WFIFOW(fd,16) = pl_sd->battle_status.rhw.atk2+pl_sd->battle_status.lhw.atk2; @@ -13625,11 +13625,11 @@ void clif_mercenary_updatestatus(struct map_session_data *sd, int type) case SP_ATK1: { int atk = rand()%(status->rhw.atk2 - status->rhw.atk + 1) + status->rhw.atk; - WFIFOL(fd,4) = cap_value(atk, 0, SHRT_MAX); + WFIFOL(fd,4) = cap_value(atk, 0, INT16_MAX); } break; case SP_MATK1: - WFIFOL(fd,4) = cap_value(status->matk_max, 0, SHRT_MAX); + WFIFOL(fd,4) = cap_value(status->matk_max, 0, INT16_MAX); break; case SP_HIT: WFIFOL(fd,4) = status->hit; @@ -13690,8 +13690,8 @@ void clif_mercenary_info(struct map_session_data *sd) // Mercenary shows ATK as a random value between ATK ~ ATK2 atk = rand()%(status->rhw.atk2 - status->rhw.atk + 1) + status->rhw.atk; - WFIFOW(fd,6) = cap_value(atk, 0, SHRT_MAX); - WFIFOW(fd,8) = cap_value(status->matk_max, 0, SHRT_MAX); + WFIFOW(fd,6) = cap_value(atk, 0, INT16_MAX); + WFIFOW(fd,8) = cap_value(status->matk_max, 0, INT16_MAX); WFIFOW(fd,10) = status->hit; WFIFOW(fd,12) = status->cri/10; WFIFOW(fd,14) = status->def; @@ -13813,7 +13813,7 @@ int clif_bg_hp(struct map_session_data *sd) WBUFW(buf,0)=cmd; WBUFL(buf,2) = sd->status.account_id; #if PACKETVER < 20100126 - if( sd->battle_status.max_hp > SHRT_MAX ) + if( sd->battle_status.max_hp > INT16_MAX ) { // To correctly display the %hp bar. [Skotlex] WBUFW(buf,6) = sd->battle_status.hp/(sd->battle_status.max_hp/100); WBUFW(buf,8) = 100; @@ -14544,7 +14544,7 @@ void clif_search_store_info_ack(struct map_session_data* sd) WFIFOW(fd,2) = 7+(end-start)*blocksize; WFIFOB(fd,4) = !sd->searchstore.pages; WFIFOB(fd,5) = searchstore_querynext(sd); - WFIFOB(fd,6) = (unsigned char)min(sd->searchstore.uses, UCHAR_MAX); + WFIFOB(fd,6) = (unsigned char)min(sd->searchstore.uses, UINT8_MAX); for( i = start; i < end; i++ ) { @@ -14613,7 +14613,7 @@ void clif_open_search_store_info(struct map_session_data* sd) WFIFOW(fd,0) = 0x83a; WFIFOW(fd,2) = sd->searchstore.effect; #if PACKETVER > 20100701 - WFIFOB(fd,4) = (unsigned char)min(sd->searchstore.uses, UCHAR_MAX); + WFIFOB(fd,4) = (unsigned char)min(sd->searchstore.uses, UINT8_MAX); #endif WFIFOSET(fd,packet_len(0x83a)); } |