Skip to content
Snippets Groups Projects
Commit 95b066c6 authored by FCGudder's avatar FCGudder
Browse files

Factoring out name and surname generation

parent 64513dd8
No related branches found
No related tags found
No related merge requests found
...@@ -26213,28 +26213,33 @@ window.nationalityToRace = function nationalityToRace(slave) { ...@@ -26213,28 +26213,33 @@ window.nationalityToRace = function nationalityToRace(slave) {
slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]); slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]);
}; };
   
window.generateName = function generateName(nationality, race, male) {
const lookup = (male ? setup.malenamePoolSelector : setup.namePoolSelector);
const result = jsEither(
lookup[nationality + "." + race] || lookup[nationality] ||
(male ? setup.whiteAmericanMaleNames : setup.whiteAmericanSlaveNames));
/* fallback for males without specific male name sets: return female name */
if(male && !result) {
return generateName(nationality, race, false);
}
return result;
};
window.generateSurname = function generateSurname(nationality, race, male) {
const result = jsEither(
setup.surnamePoolSelector[nationality + "." + race] ||
setup.surnamePoolSelector[nationality] ||
setup.whiteAmericanSlaveSurnames);
/* TODO: Look up male alternatives if male == true */
return result || 0;
};
window.nationalityToName = function nationalityToName(slave) { window.nationalityToName = function nationalityToName(slave) {
const V = State.variables; const V = State.variables;
const male = (slave.genes === "XY"); const male = (slave.genes === "XY");
   
if(male) { slave.birthName = generateName(slave.nationality, slave.race, male);
/* try male pools first */ slave.birthSurname = generateSurname(slave.nationality, slave.race, male);
slave.birthName =
jsEither(setup.malenamePoolSelector[slave.nationality + "." + slave.race] ||
setup.malenamePoolSelector[slave.nationality] ||
setup.whiteAmericanMaleNames);
}
if(!male || !slave.birthName) {
/* not male, or male names not defined yet */
slave.birthName =
jsEither(setup.namePoolSelector[slave.nationality + "." + slave.race] ||
setup.namePoolSelector[slave.nationality] ||
setup.whiteAmericanSlaveNames);
}
slave.birthSurname =
jsEither(setup.surnamePoolSelector[slave.nationality + "." + slave.race] ||
setup.surnamePoolSelector[slave.nationality] ||
setup.whiteAmericanSlaveSurnames);
slave.slaveName = slave.birthName; slave.slaveName = slave.birthName;
slave.slaveSurname = slave.birthSurname; slave.slaveSurname = slave.birthSurname;
if (V.useFSNames === 1) { if (V.useFSNames === 1) {
...@@ -48,28 +48,33 @@ window.nationalityToRace = function nationalityToRace(slave) { ...@@ -48,28 +48,33 @@ window.nationalityToRace = function nationalityToRace(slave) {
slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]); slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]);
}; };
window.generateName = function generateName(nationality, race, male) {
const lookup = (male ? setup.malenamePoolSelector : setup.namePoolSelector);
const result = jsEither(
lookup[nationality + "." + race] || lookup[nationality] ||
(male ? setup.whiteAmericanMaleNames : setup.whiteAmericanSlaveNames));
/* fallback for males without specific male name sets: return female name */
if(male && !result) {
return generateName(nationality, race, false);
}
return result;
};
window.generateSurname = function generateSurname(nationality, race, male) {
const result = jsEither(
setup.surnamePoolSelector[nationality + "." + race] ||
setup.surnamePoolSelector[nationality] ||
setup.whiteAmericanSlaveSurnames);
/* TODO: Look up male alternatives if male == true */
return result || 0;
};
window.nationalityToName = function nationalityToName(slave) { window.nationalityToName = function nationalityToName(slave) {
const V = State.variables; const V = State.variables;
const male = (slave.genes === "XY"); const male = (slave.genes === "XY");
if(male) { slave.birthName = generateName(slave.nationality, slave.race, male);
/* try male pools first */ slave.birthSurname = generateSurname(slave.nationality, slave.race, male);
slave.birthName =
jsEither(setup.malenamePoolSelector[slave.nationality + "." + slave.race] ||
setup.malenamePoolSelector[slave.nationality] ||
setup.whiteAmericanMaleNames);
}
if(!male || !slave.birthName) {
/* not male, or male names not defined yet */
slave.birthName =
jsEither(setup.namePoolSelector[slave.nationality + "." + slave.race] ||
setup.namePoolSelector[slave.nationality] ||
setup.whiteAmericanSlaveNames);
}
slave.birthSurname =
jsEither(setup.surnamePoolSelector[slave.nationality + "." + slave.race] ||
setup.surnamePoolSelector[slave.nationality] ||
setup.whiteAmericanSlaveSurnames);
slave.slaveName = slave.birthName; slave.slaveName = slave.birthName;
slave.slaveSurname = slave.birthSurname; slave.slaveSurname = slave.birthSurname;
if (V.useFSNames === 1) { if (V.useFSNames === 1) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment