Issue 1:
Set up two configs and binarize them. Then start the game and watch the resulting configs in the config viewer.
Config 1:
class A {
array1[] = {"1"};
};
class B: A {
array2[] = {"1"};
};
Config 2:
class A;
class B: A {
array1[] += {"2"};
array2[] += {"2"};
};
Expected result in the game:
class B: A {
array1[] = {"1", "2"};
array2[] = {"1", "2"};
};
Actual result in the game:
class B: A {
array1[] = {"2"};
array2[] = {"1", "2"};
};
As you can see, instead of adding "2" to array1 it got overwritten, because it wasn't defined in B, but inherited from A.
array2 was defined directly in B, so "2" got added to the array correctly.
____________
Issue 2:
Same steps, but the following setup:
Config 1:
class A {
array1[] = {"1"};
};
class B: A {
array1[] = {"1", "2"};
};
Config 2:
class A {
array1[] += {"3"};
};
class B: A {
array1[] += {"3"};
};
Expected result:
class A {
array1[] = {"1", "3"};
};
class B: A {
array1[] = {"1", "2", "3"};
};
Actual result:
class A {
array1[] = {"1", "3"};
};
class B: A {
array1[] = {"3", "3"};
};