Decompile 2 functions in Source/Contents/Jobs/JobNames.cpp

Batch #929 by ragnarok-clanker: 0 byte-identical, 2 confirmed by peer review.

- fn_24165 JobNames::BaseJob: logic confirmed by peer review
- fn_23396 JobNames::Lookup: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
This commit is contained in:
ragnarok-clanker 2026-10-26 21:45:07 +00:00
commit 6f8a35191a

View file

@ -1,313 +1,314 @@
#include "Contents/Jobs/JobNames.h"
#include "Contents/Jobs/JobId.h"
// OFFSET: 0x00E2FE80
// FUNCTION: fn_24165
unsigned JobNames::BaseJob(unsigned job) {
switch (job) {
case 13:
case 4199:
return 7;
case 21:
case 4203:
return 14;
case 4014:
case 4200:
return 4008;
case 4022:
case 4204:
return 4015;
case 4036:
case 4207:
return 4030;
case 4044:
case 4210:
return 4037;
case 4080:
case 4088:
case 4090:
case 4092:
case 4094:
case 4202:
return 4054;
case 4081:
case 4089:
case 4091:
case 4093:
case 4095:
return 4060;
case 4082:
case 4201:
return 4066;
case 4083:
return 4073;
case 4084:
case 4198:
return 4056;
case 4085:
return 4062;
case 4086:
case 4197:
return 4058;
case 4087:
return 4064;
case 4109:
case 4209:
return 4096;
case 4110:
case 4208:
return 4102;
case 4111:
case 4206:
return 4098;
case 4112:
case 4205:
return 4100;
case 4114:
return 25;
case 4115:
return 24;
case 4116:
return 1;
case 4117:
return 4049;
case 4118:
return 4011;
case 4119:
return 5;
case 4120:
return 4071;
case 4121:
return 4019;
case 4122:
return 3;
case 4123:
return 4047;
case 4124:
return 0;
case 4125:
return 15;
case 4126:
return 4;
case 4127:
return 4070;
case 4128:
return 23;
case 4129:
return 4057;
case 4130:
return 2;
case 4131:
return 16;
case 4132:
return 4067;
case 4133:
return 4055;
case 4134:
return 9;
case 4135:
return 4017;
case 4136:
return 4010;
case 4137:
return 18;
case 4138:
return 10;
case 4139:
return 4016;
case 4140:
return 4059;
case 4141:
return 6;
case 4142:
return 17;
case 4143:
return 4072;
case 4144:
return 4018;
case 4145:
return 12;
case 4146:
return 4013;
case 4147:
return 20;
case 4148:
return 4068;
case 4149:
return 19;
case 4150:
return 4012;
case 4151:
return 4069;
case 4152:
return 4021;
case 4153:
return 4020;
case 4154:
return 11;
case 4155:
return 4046;
case 4156:
return 8;
case 4157:
return 4009;
case 4158:
return 4023;
case 4159:
return 4024;
case 4160:
return 4025;
case 4161:
return 4026;
case 4162:
return 4027;
case 4163:
return 4028;
case 4164:
return 4034;
case 4165:
return 4035;
case 4166:
return 4038;
case 4167:
return 4039;
case 4168:
return 4040;
case 4169:
return 4041;
case 4170:
return 4042;
case 4171:
return 4043;
case 4172:
return 4045;
case 4173:
return 4097;
case 4174:
return 4099;
case 4175:
return 4101;
case 4176:
return 4103;
case 4177:
return 4104;
case 4178:
return 4105;
case 4179:
return 4106;
case 4180:
return 4107;
case 4181:
return 4029;
case 4182:
return 4108;
case 4183:
return 4001;
case 4184:
return 4002;
case 4185:
return 4003;
case 4186:
return 4004;
case 4187:
return 4005;
case 4188:
return 4006;
case 4189:
return 4007;
case 4192:
return 4190;
case 4193:
return 4191;
case 4194:
return 4031;
case 4195:
return 4032;
case 4196:
return 4033;
case 4213:
return 4211;
case 4214:
return 4212;
case 4216:
return 4215;
case 4219:
return 4218;
case 4221:
return 4220;
case 4230:
return 4222;
case 4231:
return 4223;
case 4232:
return 4224;
case 4233:
return 4225;
case 4234:
return 4226;
case 4235:
return 4227;
case 4236:
return 4228;
case 4237:
return 4229;
case 4245:
return 4239;
case 4246:
return 4240;
case 4247:
return 4241;
case 4248:
return 4242;
case 4265:
case 4280:
return 4252;
case 4266:
case 4279:
return 4253;
case 4267:
return 4254;
case 4268:
return 4255;
case 4269:
return 4256;
case 4270:
case 4278:
return 4257;
case 4271:
case 4281:
return 4258;
case 4272:
return 4259;
case 4273:
return 4260;
case 4274:
return 4261;
case 4275:
return 4262;
case 4276:
return 4263;
case 4277:
return 4264;
case 4309:
return 4302;
case 4310:
return 4303;
case 4311:
return 4304;
case 4312:
return 4305;
case 4313:
return 4306;
case 4314:
return 4307;
case 4315:
return 4308;
case 4358:
return 4351;
case 4359:
return 4353;
case 4360:
return 4355;
case JT_CHICKEN:
case JT_LION_KNIGHT:
return JT_KNIGHT;
case JT_CHICKEN2:
case JT_LION_CRUSADER:
return JT_CRUSADER;
case JT_CHICKEN_H:
case JT_LION_KNIGHT_H:
return JT_KNIGHT_H;
case JT_CHICKEN2_H:
case JT_LION_CRUSADER_H:
return JT_CRUSADER_H;
case JT_CHICKEN_B:
case JT_LION_KNIGHT_B:
return JT_KNIGHT_B;
case JT_CHICKEN2_B:
case JT_LION_CRUSADER_B:
return JT_CRUSADER_B;
case JT_RUNE_CHICKEN:
case JT_RUNE_CHICKEN2:
case JT_RUNE_CHICKEN3:
case JT_RUNE_CHICKEN4:
case JT_RUNE_CHICKEN5:
case JT_LION_RUNE_KNIGHT:
return JT_RUNE_KNIGHT;
case JT_RUNE_CHICKEN_H:
case JT_RUNE_CHICKEN2_H:
case JT_RUNE_CHICKEN3_H:
case JT_RUNE_CHICKEN4_H:
case JT_RUNE_CHICKEN5_H:
return JT_RUNE_KNIGHT_H;
case JT_ROYAL_CHICKEN:
case JT_LION_ROYAL_GUARD:
return JT_ROYAL_GUARD;
case JT_ROYAL_CHICKEN_H:
return JT_ROYAL_GUARD_H;
case JT_WOLF_RANGER:
case JT_OSTRICH_RANGER:
return JT_RANGER;
case JT_WOLF_RANGER_H:
return JT_RANGER_H;
case JT_MADOGEAR:
case JT_PIG_MECHANIC:
return JT_MECHANIC;
case JT_MADOGEAR_H:
return JT_MECHANIC_H;
case JT_RUNE_CHICKEN_B:
case JT_LION_RUNE_KNIGHT_B:
return JT_RUNE_KNIGHT_B;
case JT_ROYAL_CHICKEN_B:
case JT_LION_ROYAL_GUARD_B:
return JT_ROYAL_GUARD_B;
case JT_WOLF_RANGER_B:
case JT_OSTRICH_RANGER_B:
return JT_RANGER_B;
case JT_MADOGEAR_B:
case JT_PIG_MECHANIC_B:
return JT_MECHANIC_B;
case JT_FROG_NINJA:
return JT_NINJA;
case JT_PECO_GUNNER:
return JT_GUNSLINGER;
case JT_PECO_SWORD:
return JT_SWORDMAN;
case JT_FROG_LINKER:
return JT_LINKER;
case JT_PIG_WHITESMITH:
return JT_BLACKSMITH_H;
case JT_PIG_MERCHANT:
return JT_MERCHANT;
case JT_PIG_GENETIC:
return JT_GENETIC;
case JT_PIG_CREATOR:
return JT_ALCHEMIST_H;
case JT_OSTRICH_ARCHER:
return JT_ARCHER;
case JT_PORING_STAR:
return JT_STAR;
case JT_PORING_NOVICE:
return JT_NOVICE;
case JT_SHEEP_MONK:
return JT_MONK;
case JT_SHEEP_ACO:
return JT_ACOLYTE;
case JT_SHEEP_SURA:
return JT_SURA;
case JT_PORING_SNOVICE:
return JT_SUPERNOVICE;
case JT_SHEEP_ARCB:
return JT_ARCHBISHOP;
case JT_FOX_MAGICIAN:
return JT_MAGICIAN;
case JT_FOX_SAGE:
return JT_SAGE;
case JT_FOX_SORCERER:
return JT_SORCERER;
case JT_FOX_WARLOCK:
return JT_WARLOCK;
case JT_FOX_WIZ:
return JT_WIZARD;
case JT_FOX_PROF:
return JT_SAGE_H;
case JT_FOX_HWIZ:
return JT_WIZARD_H;
case JT_PIG_ALCHE:
return JT_ALCHEMIST;
case JT_PIG_BLACKSMITH:
return JT_BLACKSMITH;
case JT_SHEEP_CHAMP:
return JT_MONK_H;
case JT_DOG_G_CROSS:
return JT_GUILLOTINE_CROSS;
case JT_DOG_THIEF:
return JT_THIEF;
case JT_DOG_ROGUE:
return JT_ROGUE;
case JT_DOG_CHASER:
return JT_SHADOW_CHASER;
case JT_DOG_STALKER:
return JT_ROGUE_H;
case JT_DOG_ASSASSIN:
return JT_ASSASSIN;
case JT_DOG_ASSA_X:
return JT_ASSASSIN_H;
case JT_OSTRICH_DANCER:
return JT_DANCER;
case JT_OSTRICH_MINSTREL:
return JT_MINSTREL;
case JT_OSTRICH_BARD:
return JT_BARD;
case JT_OSTRICH_SNIPER:
return JT_HUNTER_H;
case JT_OSTRICH_WANDER:
return JT_WANDERER;
case JT_OSTRICH_ZIPSI:
return JT_DANCER_H;
case JT_OSTRICH_CROWN:
return JT_BARD_H;
case JT_OSTRICH_HUNTER:
return JT_HUNTER;
case JT_PORING_TAEKWON:
return JT_TAEKWON;
case JT_SHEEP_PRIEST:
return JT_PRIEST;
case JT_SHEEP_HPRIEST:
return JT_PRIEST_H;
case JT_PORING_NOVICE_B:
return JT_NOVICE_B;
case JT_PECO_SWORD_B:
return JT_SWORDMAN_B;
case JT_FOX_MAGICIAN_B:
return JT_MAGICIAN_B;
case JT_OSTRICH_ARCHER_B:
return JT_ARCHER_B;
case JT_SHEEP_ACO_B:
return JT_ACOLYTE_B;
case JT_PIG_MERCHANT_B:
return JT_MERCHANT_B;
case JT_OSTRICH_HUNTER_B:
return JT_HUNTER_B;
case JT_DOG_ASSASSIN_B:
return JT_ASSASSIN_B;
case JT_SHEEP_MONK_B:
return JT_MONK_B;
case JT_FOX_SAGE_B:
return JT_SAGE_B;
case JT_DOG_ROGUE_B:
return JT_ROGUE_B;
case JT_PIG_ALCHE_B:
return JT_ALCHEMIST_B;
case JT_OSTRICH_BARD_B:
return JT_BARD_B;
case JT_OSTRICH_DANCER_B:
return JT_DANCER_B;
case JT_PORING_SNOVICE_B:
return JT_SUPERNOVICE_B;
case JT_FOX_WARLOCK_B:
return JT_WARLOCK_B;
case JT_SHEEP_ARCB_B:
return JT_ARCHBISHOP_B;
case JT_DOG_G_CROSS_B:
return JT_GUILLOTINE_CROSS_B;
case JT_FOX_SORCERER_B:
return JT_SORCERER_B;
case JT_OSTRICH_MINSTREL_B:
return JT_MINSTREL_B;
case JT_OSTRICH_WANDER_B:
return JT_WANDERER_B;
case JT_SHEEP_SURA_B:
return JT_SURA_B;
case JT_PIG_GENETIC_B:
return JT_GENETIC_B;
case JT_DOG_THIEF_B:
return JT_THIEF_B;
case JT_DOG_CHASER_B:
return JT_SHADOW_CHASER_B;
case JT_PORING_NOVICE_H:
return JT_NOVICE_H;
case JT_PECO_SWORD_H:
return JT_SWORDMAN_H;
case JT_FOX_MAGICIAN_H:
return JT_MAGICIAN_H;
case JT_OSTRICH_ARCHER_H:
return JT_ARCHER_H;
case JT_SHEEP_ACO_H:
return JT_ACOLYTE_H;
case JT_PIG_MERCHANT_H:
return JT_MERCHANT_H;
case JT_DOG_THIEF_H:
return JT_THIEF_H;
case JT_PORING_SNOVICE2:
return JT_SUPERNOVICE2;
case JT_PORING_SNOVICE2_B:
return JT_SUPERNOVICE2_B;
case JT_SHEEP_PRIEST_B:
return JT_PRIEST_B;
case JT_FOX_WIZ_B:
return JT_WIZARD_B;
case JT_PIG_BLACKSMITH_B:
return JT_BLACKSMITH_B;
case JT_FROG_KAGEROU:
return JT_KAGEROU;
case JT_FROG_OBORO:
return JT_OBORO;
case JT_PECO_REBELLION:
return JT_REBELLION;
case JT_DO_CART_SUMMONER:
return JT_DO_SUMMONER;
case JT_DO_CART_SUMMONER_B:
return JT_DO_SUMMONER_B;
case JT_FROG_NINJA_B:
return JT_NINJA_B;
case JT_FROG_KAGEROU_B:
return JT_KAGEROU_B;
case JT_FROG_OBORO_B:
return JT_OBORO_B;
case JT_PORING_TAEKWON_B:
return JT_TAEKWON_B;
case JT_PORING_STAR_B:
return JT_STAR_B;
case JT_FROG_LINKER_B:
return JT_LINKER_B;
case JT_PECO_GUNNER_B:
return JT_GUNSLINGER_B;
case JT_PECO_REBELLION_B:
return JT_REBELLION_B;
case JT_HAETAE_STAR_EMPEROR:
return JT_STAR_EMPEROR;
case JT_HAETAE_SOUL_REAPER:
return JT_SOUL_REAPER;
case JT_HAETAE_STAR_EMPEROR_B:
return JT_STAR_EMPEROR_B;
case JT_HAETAE_SOUL_REAPER_B:
return JT_SOUL_REAPER_B;
case JT_DRAGON_KNIGHT_RIDING:
case JT_DRAGON_KNIGHT_CHICKEN:
return JT_DRAGON_KNIGHT;
case JT_MEISTER_RIDING:
case JT_MEISTER_MADOGEAR:
return JT_MEISTER;
case JT_SHADOW_CROSS_RIDING:
return JT_SHADOW_CROSS;
case JT_ARCH_MAGE_RIDING:
return JT_ARCH_MAGE;
case JT_CARDINAL_RIDING:
return JT_CARDINAL;
case JT_WINDHAWK_RIDING:
case JT_WOLF_WINDHAWK:
return JT_WINDHAWK;
case JT_IMPERIAL_GUARD_RIDING:
case JT_IMPERIAL_GUARD_CHICKEN:
return JT_IMPERIAL_GUARD;
case JT_BIOLO_RIDING:
return JT_BIOLO;
case JT_ABYSS_CHASER_RIDING:
return JT_ABYSS_CHASER;
case JT_ELEMENTAL_MASTER_RIDING:
return JT_ELEMENTAL_MASTER;
case JT_INQUISITOR_RIDING:
return JT_INQUISITOR;
case JT_TROUBADOUR_RIDING:
return JT_TROUBADOUR;
case JT_TROUVERE_RIDING:
return JT_TROUVERE;
case JT_SKY_EMPEROR_RIDING:
return JT_SKY_EMPEROR;
case JT_SOUL_ASCETIC_RIDING:
return JT_SOUL_ASCETIC;
case JT_SHINKIRO_RIDING:
return JT_SHINKIRO;
case JT_SHIRANUI_RIDING:
return JT_SHIRANUI;
case JT_NIGHT_WATCH_RIDING:
return JT_NIGHT_WATCH;
case JT_HYPER_NOVICE_RIDING:
return JT_HYPER_NOVICE;
case JT_SPIRIT_HANDLER_RIDING:
return JT_SPIRIT_HANDLER;
case JT_DRUID_RIDING:
return JT_DRUID;
case JT_KARNOS_RIDING:
return JT_KARNOS;
case JT_ALITEA_RIDING:
return JT_ALITEA;
default:
return job;
}
@ -320,7 +321,7 @@ const char* JobNames::Lookup(unsigned job, int sex) {
return "";
}
if (job - 4001u > 0x7CEu && job > 30u) {
if (job - JT_NOVICE_H > unsigned(JT_MER_BEGIN - 1 - JT_NOVICE_H) && job > unsigned(JT_SUMMER2)) {
return this->names[job];
}