352 lines
5.2 KiB
C++
352 lines
5.2 KiB
C++
#include "Contents/JobNames.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;
|
|
default:
|
|
return job;
|
|
}
|
|
}
|
|
|
|
// OFFSET: 0x00DDE5C0
|
|
// FUNCTION: fn_23396
|
|
const char* JobNames::Lookup(unsigned job, int sex) {
|
|
if (this->names.size() <= job) {
|
|
return "";
|
|
}
|
|
|
|
if (job - 4001u > 0x7CEu && job > 30u) {
|
|
return this->names[job];
|
|
}
|
|
|
|
const unsigned base = BaseJob(job);
|
|
|
|
if (sex == -1) {
|
|
if (this->cachedSex != this->currentSex) {
|
|
this->cachedSex = this->currentSex;
|
|
}
|
|
|
|
sex = this->currentSex;
|
|
}
|
|
|
|
if (sex == 0) {
|
|
const auto found = this->female.find(base);
|
|
|
|
if (found != this->female.end()) {
|
|
return found->second;
|
|
}
|
|
} else if (sex == 1) {
|
|
const auto found = this->male.find(base);
|
|
|
|
if (found != this->male.end()) {
|
|
return found->second;
|
|
}
|
|
}
|
|
|
|
return this->names[base];
|
|
}
|