From bd2d82157aa082e65e20fdbff35413f9a3fdd388 Mon Sep 17 00:00:00 2001 From: Aleos Date: Fri, 24 Jan 2020 10:56:39 -0500 Subject: [PATCH] Fixed Expanded Baby parameter cap (#4551) * Fixes #4350. * Resolved Expanded Baby classes parameter cap defaulting to the upper class. * Fixes baby parameters for Summoners as well. * Removed redundant baby checks due to correct order now. Thanks to @bgamez23! Co-authored-by: Lemongrass3110 --- src/map/pc.cpp | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/map/pc.cpp b/src/map/pc.cpp index bd169d0ce3..a1341e4222 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -12737,11 +12737,37 @@ short pc_maxparameter(struct map_session_data *sd, enum e_params param) { return max_param; } - return (class_&MAPID_BASEMASK) == MAPID_SUMMONER ? battle_config.max_summoner_parameter : - ((class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO || (class_&MAPID_UPPERMASK) == MAPID_REBELLION) ? battle_config.max_extended_parameter : - ((class_&JOBL_THIRD) ? ((class_&JOBL_UPPER) ? battle_config.max_third_trans_parameter : ((class_&JOBL_BABY) ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter)) : - ((class_&JOBL_BABY) ? battle_config.max_baby_parameter : - ((class_&JOBL_UPPER) ? battle_config.max_trans_parameter : battle_config.max_parameter))); + // Always check babies first + if( class_ & JOBL_BABY ){ + return battle_config.max_baby_parameter; + } + + // Summoner + if( ( class_ & MAPID_BASEMASK ) == MAPID_SUMMONER ){ + return battle_config.max_summoner_parameter; + } + + // Extended classes + if( ( class_ & MAPID_UPPERMASK ) == MAPID_KAGEROUOBORO || ( class_ & MAPID_UPPERMASK ) == MAPID_REBELLION ){ + return battle_config.max_extended_parameter; + } + + // 3rd class + if( class_ & JOBL_THIRD ){ + // Transcendent + if( class_ & JOBL_UPPER ){ + return battle_config.max_third_trans_parameter; + }else{ + return battle_config.max_third_parameter; + } + } + + // Transcendent + if( class_ & JOBL_UPPER ){ + return battle_config.max_trans_parameter; + } + + return battle_config.max_parameter; } /**