Pioneer
Loading...
Searching...
No Matches
FaceParts.h
Go to the documentation of this file.
1// Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#ifndef FACE_PARTS_H
5#define FACE_PARTS_H
6
7#include <SDL_stdinc.h>
8
9// FaceParts deals with:
10// - Scanning the data/facegen/ directory and loading all the face part images
11// - Generating random faces from a particular seed and constraints
12// - Building a combined face image from a face descriptor
13
14struct SDL_Surface;
15
16namespace FaceParts {
17 extern const int FACE_WIDTH;
18 extern const int FACE_HEIGHT;
19
20 // describes a face
21 // components can be set to -1 to indicate that the attribute should be chosen randomly,
22 // or set to a non-negative integer to specify a particular part
24 // selectors
25 int species = -1;
26 int race = -1;
27 int gender = -1;
28
29 // parts
30 int head = -1;
31 int eyes = -1;
32 int nose = -1;
33 int mouth = -1;
34 int hairstyle = -1;
35 int accessories = -1;
36 int clothes = -1;
37 int armour = -1;
38 };
39
40 void Init();
41 void Uninit();
42
43 int NumSpecies();
44 int NumGenders(const int speciesIdx);
45 int NumRaces(const int speciesIdx);
46
47 int NumHeads(const int speciesIdx, const int raceIdx, const int genderIdx);
48 int NumEyes(const int speciesIdx, const int raceIdx, const int genderIdx);
49 int NumNoses(const int speciesIdx, const int raceIdx, const int genderIdx);
50 int NumMouths(const int speciesIdx, const int raceIdx, const int genderIdx);
51 int NumHairstyles(const int speciesIdx, const int raceIdx, const int genderIdx);
52 int NumClothes(const int speciesIdx, const int raceIdx, const int genderIdx);
53 int NumAccessories(const int speciesIdx, const int raceIdx, const int genderIdx);
54 int NumArmour(const int speciesIdx, const int raceIdx, const int genderIdx);
55
56 void PickFaceParts(FaceDescriptor &inout_face, const Uint32 seed);
57 void BuildFaceImage(SDL_Surface *faceIm, const FaceDescriptor &face);
58} // namespace FaceParts
59
60#endif
Definition FaceParts.h:16
int NumClothes(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:355
int NumHeads(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:330
int NumMouths(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:345
int NumRaces(const int speciesIdx)
Definition FaceParts.cpp:324
int NumAccessories(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:360
int NumSpecies()
Definition FaceParts.cpp:313
void BuildFaceImage(SDL_Surface *faceIm, const FaceDescriptor &face)
Definition FaceParts.cpp:412
int NumHairstyles(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:350
const int FACE_WIDTH
Definition FaceParts.cpp:296
int NumNoses(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:340
int NumArmour(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:365
int NumGenders(const int speciesIdx)
Definition FaceParts.cpp:318
void Uninit()
Definition FaceParts.cpp:307
const int FACE_HEIGHT
Definition FaceParts.cpp:297
void PickFaceParts(FaceDescriptor &inout_face, const Uint32 seed)
Definition FaceParts.cpp:385
void Init()
Definition FaceParts.cpp:299
int NumEyes(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition FaceParts.cpp:335
Definition FaceParts.h:23
int race
Definition FaceParts.h:26
int armour
Definition FaceParts.h:37
int head
Definition FaceParts.h:30
int species
Definition FaceParts.h:25
int nose
Definition FaceParts.h:32
int gender
Definition FaceParts.h:27
int hairstyle
Definition FaceParts.h:34
int mouth
Definition FaceParts.h:33
int clothes
Definition FaceParts.h:36
int accessories
Definition FaceParts.h:35
int eyes
Definition FaceParts.h:31