// GUI :
I don't know how you could do the GUI any different, so it would be stupid if I said no.
Thanks for asking though
// skins/faces/models
You're correct, a few minor things aside I haven't hardcoded those at all.
What I do is this :
- scan all the files with the '.int'-extension :
these contain all the info you need
- look for the 'public'-section ('[public]' in the each file)
- in the public section read all the lines which start with 'object='
- each 'object' contains these fields :
- name
- Class
- MetaClass
- Description
- models are 'easy' part, but they are hardcoded
I just see if the 'MetaClass' = 'BotPack.Bot' for the UT-models
and
'INF_Core.INFc_sMale1Bot' for the Inf-models
The standard models for UT are in BotPack.Int
Inf has them in 'INF_Core.Int'
- to identify the skins/faces : Class=Texture & description has a value
Example : in FCommandoSkins.int you will find these lines :
The skin :
Object=(Name=FCommandoSkins.cmdo1,Class=Texture,Description=Commando)
and
The face :
Object=(Name=FCommandoSkins.cmdo4ivana,Class=Texture,Description=Ivana)
If you look at the name, then you see that the face-textures for a skin have almost the same name as the skin.
The faces & skins for Inf are trickier :
Inf_cCamos.int has the skins :
Object=(Name=INF_cCamos.GEN_BL_Arctic,Class=Texture,Description=Arctic)
Inf only has 1 model at the moment, so I assume that any texture that starts with "INF_CCAMOS" is a valid skin.
If any models are added in the future, this is the part I've got to change.
Inf_cFaces.Int has the faces :
Object=(Name=INF_cFaces.BoonieGEN_INFNoStrap_Black1,Class=Texture,Description=Black1)
".Boonie" is a face for the 'boonie' model
".Buzz" is for the 'buzz'-model
".Helmet" for the 'helmet'-model
".Cap" for the model with the cap
and ".rag" is for the last model
Since there are no additional faces & skins at this moment there is no real need to scan all the *.int-files for Infiltration.
If speed is an issue, then this scanning probably is the first part you could drop.