summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/atcommand.c40
-rw-r--r--src/map/charcommand.c40
2 files changed, 10 insertions, 70 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index e37c712af..cb438701c 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1504,46 +1504,16 @@ int atcommand_heal(const int fd, struct map_session_data* sd, const char* comman
sscanf(message, "%d %d", &hp, &sp);
- if ( ( hp == 0 && sp == 0 )
- || ( hp > INT_MAX && sp > INT_MAX ) ) { // Prevent overflow. [Paradox924X]
- if (!status_percent_heal(&sd->bl, 100, 100))
- clif_displaymessage(fd, msg_txt(157)); // HP and SP have already been recovered.
- else
- clif_displaymessage(fd, msg_txt(17)); // HP, SP recovered.
- return 0;
- }
-
- // Prevent overflow. [Paradox924X]
- if ( hp < -INT_MAX && sp < -INT_MAX ) {
- status_damage(NULL, &sd->bl, INT_MAX, INT_MAX, 0, 0);
- clif_damage(&sd->bl,&sd->bl, gettick(), 0, 0, INT_MAX, 0, 4, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- }
+ // some overflow checks
+ if( hp == INT_MIN ) hp++;
+ if( sp == INT_MIN ) sp++;
- // Prevent overflow. [Paradox924X]
- if ( hp > INT_MAX ) {
- if (!status_percent_heal(&sd->bl, 100, 0))
+ if ( hp == 0 && sp == 0 ) {
+ if (!status_percent_heal(&sd->bl, 100, 100))
clif_displaymessage(fd, msg_txt(157)); // HP and SP have already been recovered.
else
clif_displaymessage(fd, msg_txt(17)); // HP, SP recovered.
return 0;
- } else if ( hp < -INT_MAX ) {
- status_damage(NULL, &sd->bl, INT_MAX, 0, 0, 0);
- clif_damage(&sd->bl,&sd->bl, gettick(), 0, 0, INT_MAX, 0, 4, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- }
-
- // Prevent overflow. [Paradox924X]
- if ( sp > INT_MAX ) {
- status_heal(&sd->bl, 0, INT_MAX, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- } else if ( sp < -INT_MAX ) {
- status_damage(NULL, &sd->bl, 0, INT_MAX, 0, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
}
if ( hp > 0 && sp >= 0 ) {
diff --git a/src/map/charcommand.c b/src/map/charcommand.c
index 39d4f817e..cc25a6d28 100644
--- a/src/map/charcommand.c
+++ b/src/map/charcommand.c
@@ -1794,8 +1794,11 @@ int charcommand_heal(const int fd, struct map_session_data* sd, const char* comm
return -1;
}
- if ( ( hp == 0 && sp == 0 )
- || ( hp > INT_MAX && sp > INT_MAX ) ) { // Prevent overflow. [Paradox924X]
+ // some overflow checks
+ if( hp == INT_MIN ) hp++;
+ if( sp == INT_MIN ) sp++;
+
+ if ( hp == 0 && sp == 0 ) {
if (!status_percent_heal(&pl_sd->bl, 100, 100))
clif_displaymessage(fd, msg_txt(157)); // HP and SP are already with the good value.
else
@@ -1807,39 +1810,6 @@ int charcommand_heal(const int fd, struct map_session_data* sd, const char* comm
return 0;
}
- // Prevent overflow. [Paradox924X]
- if ( hp < -INT_MAX && sp < -INT_MAX ) {
- status_damage(NULL, &pl_sd->bl, INT_MAX, INT_MAX, 0, 0);
- clif_damage(&pl_sd->bl,&pl_sd->bl, gettick(), 0, 0, INT_MAX, 0 , 4, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- }
-
- // Prevent overflow. [Paradox924X]
- if ( hp > INT_MAX ) {
- if (!status_percent_heal(&pl_sd->bl, 100, 0))
- clif_displaymessage(fd, msg_txt(157)); // HP and SP have already been recovered.
- else
- clif_displaymessage(fd, msg_txt(17)); // HP, SP recovered.
- return 0;
- } else if ( hp < -INT_MAX ) {
- status_damage(NULL, &pl_sd->bl, INT_MAX, 0, 0, 0);
- clif_damage(&pl_sd->bl,&pl_sd->bl, gettick(), 0, 0, INT_MAX, 0, 4, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- }
-
- // Prevent overflow. [Paradox924X]
- if ( sp > INT_MAX ) {
- status_heal(&pl_sd->bl, 0, INT_MAX, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- } else if ( sp < -INT_MAX ) {
- status_damage(NULL, &pl_sd->bl, 0, INT_MAX, 0, 0);
- clif_displaymessage(fd, msg_txt(156)); // HP or/and SP modified.
- return 0;
- }
-
if(hp > 0 && sp >= 0) {
if( !status_heal(&pl_sd->bl, hp, sp, 2) )
clif_displaymessage(fd, msg_txt(157)); // HP and SP are already with the good value.