Takistan unit's Identity is going wrong
Open, LowPublic

Description

This problem happens with Takistani Army, Takistani Militia, Takistani Locals, Civilians(Takistan).
They have faces randomly, but when you edit them and press OK, they change to Default Face.
Looking at the Identity part, they are blank for Face list.

Details

Commits
Restricted Diffusion Commit
Restricted Diffusion Commit
obiko created this task.Dec 30 2018, 6:12 AM

Hmm that might be due to my custom identity. I'm not sure if there is a simple solution for that.

obiko added a comment.Dec 30 2018, 4:20 PM

In addition, when Version 1.10.1 (02 | May | 2018), it did not happen.

Sparfell_19 triaged this task as Low priority.Mar 29 2019, 6:52 PM
Sparfell_19 claimed this task.

That's more an issue in 3DEN. The thing is : the faces used for takistanis are hidden for technical reasons but 3DEN should list the current face even if it's hidden.

Maybe I can find a solution.

Sparfell_19 closed this task as Resolved by committing Restricted Diffusion Commit.Mar 29 2019, 7:10 PM
Sparfell_19 added a commit: Restricted Diffusion Commit.
Sparfell_19 reopened this task as Open by committing Restricted Diffusion Commit.Mar 29 2019, 7:23 PM
Sparfell_19 added a commit: Restricted Diffusion Commit.
Sparfell_19 added a comment.EditedMar 29 2019, 7:24 PM

Seems += is not really working for identityTypes. It produces weird results.

Sparfell_19 added a comment.EditedMar 31 2019, 9:45 PM

So the issue I'm having with this is the following :

If I try to modify the A3 CfgFaces classes by appending a new entry to the "identityTypes" array it works if identityTypes is already defined in A3 for the Cfgface class in the A3 configs. But it doesn't work if the Cfgface class simply inherit identityTypes array from another class. In this case, the array gets overwritten by the one defined in the CUP config and if nothing is defined for a children class it will also inherit.

Example :

		class Default;
		class PersianHead_A3_01: Default
		{
		  identityTypes[] += {"CUP_Head_TK"}; // Result is identityTypes[] = {"Head_TK","CUP_Head_TK"};
		};
		class PersianHead_A3_02: PersianHead_A3_01
		{
		  identityTypes[] += {"CUP_Head_TK"}; // Result is identityTypes[] = {"CUP_Head_TK"};
		};
// result for PersianHead_A3_03 will be identityTypes[] = {"Head_TK","CUP_Head_TK"}; because it is a children of PersianHead_A3_01 without identityTypes defined in A3 configs.

So far I see only three solutions :

  • 1/ Reverting this modification and using of "Head_TK" identity for the CUP takistani units (which is only three different faces).
  • 2/ Keep it as it is knowing there is this issue reported above by obiko
  • 3/ Make the CUP faces scope public in order for them to appear in 3DEN but they will also appear in arsenal as duplicates of BI faces (only the classname and identityTypes really differ).

Help and opinions appreciated.

As the issue is quite critical, for the coming update I reverted to "Head_TK" for takistani units until a better solution is found (I'm affraid there is none).

obiko added a comment.Apr 1 2019, 9:41 AM

I think a duplicate face may be displayed in Arsenal.
If it has an icon that identifies it as a CUP face, the editor will think that there is no problem with editing.
Some other add-ons replicate BI faces for face patterns, so I don't mind adding duplicates to the list for better pattern TK faces.