Small optimization on change sex (#8281)

This commit is contained in:
Daegaladh
2024-05-03 00:46:40 +02:00
committed by GitHub
parent 827517f8cf
commit 29a3c5263b

View File

@@ -91,7 +91,7 @@ void chlogif_pincode_start(int fd, struct char_session_data* sd){
* @param tick : Scheduled tick
* @param id : GID linked to that timered call
* @param data : data transmited for delayed function
* @return
* @return
*/
TIMER_FUNC(chlogif_send_acc_tologin){
if ( chlogif_isconnected() ){
@@ -391,27 +391,70 @@ int chlogif_parse_keepalive(int fd){
*/
void chlogif_parse_change_sex_sub(int sex, int acc, int char_id, int class_, int guild_id)
{
// job modification //@TODO switch would be faster
if (class_ == JOB_BARD || class_ == JOB_DANCER)
class_ = (sex == SEX_MALE ? JOB_BARD : JOB_DANCER);
else if (class_ == JOB_CLOWN || class_ == JOB_GYPSY)
class_ = (sex == SEX_MALE ? JOB_CLOWN : JOB_GYPSY);
else if (class_ == JOB_BABY_BARD || class_ == JOB_BABY_DANCER)
class_ = (sex == SEX_MALE ? JOB_BABY_BARD : JOB_BABY_DANCER);
else if (class_ == JOB_MINSTREL || class_ == JOB_WANDERER)
class_ = (sex == SEX_MALE ? JOB_MINSTREL : JOB_WANDERER);
else if (class_ == JOB_MINSTREL_T || class_ == JOB_WANDERER_T)
class_ = (sex == SEX_MALE ? JOB_MINSTREL_T : JOB_WANDERER_T);
else if (class_ == JOB_BABY_MINSTREL || class_ == JOB_BABY_WANDERER)
class_ = (sex == SEX_MALE ? JOB_BABY_MINSTREL : JOB_BABY_WANDERER);
else if (class_ == JOB_KAGEROU || class_ == JOB_OBORO)
class_ = (sex == SEX_MALE ? JOB_KAGEROU : JOB_OBORO);
else if (class_ == JOB_BABY_KAGEROU || class_ == JOB_BABY_OBORO)
class_ = (sex == SEX_MALE ? JOB_BABY_KAGEROU : JOB_BABY_OBORO);
else if (class_ == JOB_TROUBADOUR || class_ == JOB_TROUVERE)
class_ = (sex == SEX_MALE ? JOB_TROUBADOUR : JOB_TROUVERE);
else if (class_ == JOB_SHINKIRO || class_ == JOB_SHIRANUI)
class_ = (sex == SEX_MALE ? JOB_SHINKIRO : JOB_SHIRANUI);
// job modification
switch (class_)
{
case JOB_BARD:
class_ = JOB_DANCER;
break;
case JOB_DANCER:
class_ = JOB_BARD;
break;
case JOB_CLOWN:
class_ = JOB_GYPSY;
break;
case JOB_GYPSY:
class_ = JOB_CLOWN;
break;
case JOB_BABY_BARD:
class_ = JOB_BABY_DANCER;
break;
case JOB_BABY_DANCER:
class_ = JOB_BABY_BARD;
break;
case JOB_MINSTREL:
class_ = JOB_WANDERER;
break;
case JOB_WANDERER:
class_ = JOB_MINSTREL;
break;
case JOB_MINSTREL_T:
class_ = JOB_WANDERER_T;
break;
case JOB_WANDERER_T:
class_ = JOB_MINSTREL_T;
break;
case JOB_BABY_MINSTREL:
class_ = JOB_BABY_WANDERER;
break;
case JOB_BABY_WANDERER:
class_ = JOB_BABY_MINSTREL;
break;
case JOB_KAGEROU:
class_ = JOB_OBORO;
break;
case JOB_OBORO:
class_ = JOB_KAGEROU;
break;
case JOB_BABY_KAGEROU:
class_ = JOB_BABY_OBORO;
break;
case JOB_BABY_OBORO:
class_ = JOB_BABY_KAGEROU;
break;
case JOB_TROUBADOUR:
class_ = JOB_TROUVERE;
break;
case JOB_TROUVERE:
class_ = JOB_TROUBADOUR;
break;
case JOB_SHINKIRO:
class_ = JOB_SHIRANUI;
break;
case JOB_SHIRANUI:
class_ = JOB_SHINKIRO;
break;
}
if (SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `equip` = '0' WHERE `char_id` = '%d'", schema_config.inventory_db, char_id))
Sql_ShowDebug(sql_handle);