Skip to content

Commit d1667ec

Browse files
committed
- Fixed assert warning about loading prefabs without extension
- Fixed hitzones in hierachy not saving at all and not unique identifiying slots anymorre
1 parent bf3803c commit d1667ec

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/Scripts/Game/Components/EPF_HitZoneContainerComponentSaveData.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ class EPF_HitZoneContainerComponentSaveDataClass : EPF_ComponentSaveDataClass
33
{
44
[Attribute(desc: "If set, only the explictly selected hitzones are persisted.")]
55
ref array<string> m_aHitzoneFilter;
6-
};
6+
}
77

88
[EDF_DbName.Automatic()]
99
class EPF_HitZoneContainerComponentSaveData : EPF_ComponentSaveData
@@ -19,12 +19,12 @@ class EPF_HitZoneContainerComponentSaveData : EPF_ComponentSaveData
1919
m_aHitzones = {};
2020

2121
array<HitZone> outHitZones();
22-
hitZoneContainer.GetAllHitZones(outHitZones);
22+
hitZoneContainer.GetAllHitZonesInHierarchy(outHitZones);
2323

24-
foreach (HitZone hitZone : outHitZones)
24+
foreach (int idx, HitZone hitZone : outHitZones)
2525
{
2626
EPF_PersistentHitZone persistentHitZone();
27-
persistentHitZone.m_sName = hitZone.GetName();
27+
persistentHitZone.m_sName = string.Format("z%1_%2", idx, hitZone.GetName());
2828
persistentHitZone.m_fHealth = hitZone.GetHealthScaled();
2929

3030
if (settings.m_bTrimDefaults && float.AlmostEqual(persistentHitZone.m_fHealth, 1.0)) continue;
@@ -44,7 +44,7 @@ class EPF_HitZoneContainerComponentSaveData : EPF_ComponentSaveData
4444

4545
array<HitZone> outHitZones();
4646
HitZoneContainerComponent hitZoneContainer = HitZoneContainerComponent.Cast(component);
47-
hitZoneContainer.GetAllHitZones(outHitZones);
47+
hitZoneContainer.GetAllHitZonesInHierarchy(outHitZones);
4848

4949
bool tryIdxAcces = outHitZones.Count() >= m_aHitzones.Count();
5050

@@ -56,16 +56,16 @@ class EPF_HitZoneContainerComponentSaveData : EPF_ComponentSaveData
5656
if (tryIdxAcces)
5757
{
5858
HitZone idxHitZone = outHitZones.Get(idx);
59-
60-
if (idxHitZone.GetName() == persistentHitZone.m_sName) hitZone = idxHitZone;
59+
if (string.Format("z%1_%2", idx, idxHitZone.GetName()) == persistentHitZone.m_sName)
60+
hitZone = idxHitZone;
6161
}
6262

6363
// Iterate all hitzones to hopefully find the right one
6464
if (!hitZone)
6565
{
66-
foreach (HitZone findHitZone : outHitZones)
66+
foreach (int hitIdx, HitZone findHitZone : outHitZones)
6767
{
68-
if (findHitZone.GetName() == persistentHitZone.m_sName)
68+
if (string.Format("z%1_%2", hitIdx, findHitZone.GetName()) == persistentHitZone.m_sName)
6969
{
7070
hitZone = findHitZone;
7171
break;
@@ -75,7 +75,7 @@ class EPF_HitZoneContainerComponentSaveData : EPF_ComponentSaveData
7575

7676
if (!hitZone)
7777
{
78-
Debug.Error(string.Format("'%1' unable to find hitZone with name '%2'. Ignored.", component, persistentHitZone.m_sName));
78+
Debug.Error(string.Format("'%1' unable to find hitZone '%2'. Ignored.", component, persistentHitZone.m_sName));
7979
continue;
8080
}
8181

@@ -118,7 +118,7 @@ class EPF_HitZoneContainerComponentSaveData : EPF_ComponentSaveData
118118

119119
return true;
120120
}
121-
};
121+
}
122122

123123
class EPF_PersistentHitZone
124124
{
@@ -130,4 +130,4 @@ class EPF_PersistentHitZone
130130
{
131131
return m_sName == other.m_sName && float.AlmostEqual(m_fHealth, other.m_fHealth);
132132
}
133-
};
133+
}

src/Scripts/Game/EPF_EntitySaveData.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ class EPF_EntitySaveData : EPF_MetaDataDbEntity
364364
string prefabString;
365365
loadContext.ReadValue("m_rPrefab", prefabString);
366366
if (prefabString && prefabString.Get(0) != "{")
367-
prefabString = string.Format("{%1}", prefabString);
367+
prefabString = string.Format("{%1}.et", prefabString);
368368

369369
m_rPrefab = prefabString;
370370

0 commit comments

Comments
 (0)