Pioneer
Loading...
Searching...
No Matches
FaceParts.h
Go to the documentation of this file.
1// Copyright © 2008-2024 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:354
int NumHeads(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:329
int NumMouths(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:344
int NumRaces(const int speciesIdx)
Definition: FaceParts.cpp:323
int NumAccessories(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:359
int NumSpecies()
Definition: FaceParts.cpp:312
void BuildFaceImage(SDL_Surface *faceIm, const FaceDescriptor &face)
Definition: FaceParts.cpp:411
int NumHairstyles(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:349
const int FACE_WIDTH
Definition: FaceParts.cpp:295
int NumNoses(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:339
int NumArmour(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:364
int NumGenders(const int speciesIdx)
Definition: FaceParts.cpp:317
void Uninit()
Definition: FaceParts.cpp:306
const int FACE_HEIGHT
Definition: FaceParts.cpp:296
void PickFaceParts(FaceDescriptor &inout_face, const Uint32 seed)
Definition: FaceParts.cpp:384
void Init()
Definition: FaceParts.cpp:298
int NumEyes(const int speciesIdx, const int raceIdx, const int genderIdx)
Definition: FaceParts.cpp:334
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