static char *post_nominal_letters(struct mtwist_state *mt)
{
	static char *nothing = "";
	if (mtwist_int(mt, 100) < 85)
		return nothing; 
	return random_word(mt, PostNominalLetters, ARRAYSIZE(PostNominalLetters));
}
예제 #2
0
void ship_name(struct mtwist_state *mt, char *buffer, int buflen)
{
	switch (mtwist_int(mt, 6)) {
	case 0:
		snprintf(buffer, buflen, "%s %s",
			random_word(mt, SpaceWorthy, ARRAYSIZE(SpaceWorthy)),
			random_word(mt, Animal, ARRAYSIZE(Animal)));
		break;
	case 1:
		snprintf(buffer, buflen, "%s %s",
			random_word(mt, Animal, ARRAYSIZE(Animal)),
			random_word(mt, SpaceWorthy, ARRAYSIZE(SpaceWorthy)));
		break;
	case 2:
		snprintf(buffer, buflen, "%s %s",
			random_word(mt, ShipThing, ARRAYSIZE(ShipThing)),
			random_word(mt, SpaceWorthy, ARRAYSIZE(SpaceWorthy)));
		break;
	case 3:
		snprintf(buffer, buflen, "%s %s",
			random_name(mt),
			random_word(mt, SpaceWorthy, ARRAYSIZE(SpaceWorthy)));
		break;
	case 4:
		snprintf(buffer, buflen, "%s %s",
			random_word(mt, SpaceWorthy, ARRAYSIZE(SpaceWorthy)),
			random_name(mt));
		break;
	default:
		snprintf(buffer, buflen, "%s %s",
			random_word(mt, SpaceWorthy, ARRAYSIZE(SpaceWorthy)),
			random_word(mt, ShipThing, ARRAYSIZE(ShipThing)));
		break;
	}
}
void initialize_random_orientations_and_spins(int mtwist_seed)
{
	int i;
	struct mtwist_state *mt;

	mt = mtwist_init(mtwist_seed);
	for (i = 0; i < NRANDOM_ORIENTATIONS; i++) {
		float angle = mtwist_float(mt) * 2.0 * M_PI;
		consistent_random_axis_quat(mt, &random_orientation[i], angle);
	}
	for (i = 0; i < NRANDOM_SPINS; i++) {
		float angular_speed = ((float) mtwist_int(mt, 100) / 10.0 - 5.0) * M_PI / 180.0;
		consistent_random_axis_quat(mt, &random_spin[i], angular_speed);
	}
	mtwist_free(mt);
}
void character_name(struct mtwist_state *mt, char *buffer,
			int buflen)
{
	switch (mtwist_int(mt, 8)) {
	case 0:
		snprintf(buffer, buflen, "%s %s %s %s%s", character_title(mt),
				random_name(mt), random_name(mt), random_name(mt),
				post_nominal_letters(mt));
		break;
	case 1:
		snprintf(buffer, buflen, "%s %c. %c. %s%s", character_title(mt),
				random_initial(mt), random_initial(mt), random_name(mt),
				post_nominal_letters(mt));
		break;
	case 2:
	case 3:
		snprintf(buffer, buflen, "%s %c. %s %s%s", character_title(mt),
				random_initial(mt), random_name(mt), random_name(mt),
				post_nominal_letters(mt));
		break;
	case 4:
		snprintf(buffer, buflen, "%s %c. %s%s", character_title(mt),
				random_initial(mt), random_name(mt),
				post_nominal_letters(mt));
		break;
	case 5:
		snprintf(buffer, buflen, "%s %s%s", character_title(mt),
				random_name(mt),
				post_nominal_letters(mt));
		break;
	case 6:
		snprintf(buffer, buflen, "%s %s %s%s", character_title(mt),
				random_name(mt), random_name(mt),
				post_nominal_letters(mt));
		break;
	case 7:
	default:
		snprintf(buffer, buflen, "%s %c. %c. %s%s", character_title(mt),
				random_initial(mt), random_initial(mt), random_name(mt),
				post_nominal_letters(mt));
		break;
	}
}
int random_initial(struct mtwist_state *mt)
{
	return 'A' + mtwist_int(mt, 26);
}