Skip to content

Commit d4f5890

Browse files
committed
Retain beauty marks and tattoos
1 parent 1c2d41c commit d4f5890

1 file changed

Lines changed: 24 additions & 9 deletions

File tree

DressCode.cs

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,15 +145,19 @@ private static void BackupCostume(Maid maid) {
145145

146146
var costume = new List<MaidProp>();
147147
foreach (var maidProp in maid.m_aryMaidProp) {
148-
costume.Add(new() {
148+
var originalMaidProp = new MaidProp {
149149
idx = maidProp.idx,
150150
strFileName = maidProp.strFileName,
151151
nFileNameRID = maidProp.nFileNameRID,
152152
m_dicTBodySkinPos = new(maidProp.m_dicTBodySkinPos),
153153
m_dicTBodyAttachPos = new(maidProp.m_dicTBodyAttachPos),
154154
m_dicMaterialProp = new(maidProp.m_dicMaterialProp),
155155
m_dicBoneLength = new(maidProp.m_dicBoneLength),
156-
});
156+
};
157+
if (maidProp.listSubProp != null) {
158+
originalMaidProp.listSubProp = new(maidProp.listSubProp);
159+
}
160+
costume.Add(originalMaidProp);
157161
}
158162
_originalCostume.Add(maid.status.guid, costume);
159163
}
@@ -162,13 +166,24 @@ private static void RestoreCostume(Maid maid) {
162166
LogDebug($"Restoring costume for {maid.name}");
163167

164168
var costume = _originalCostume[maid.status.guid];
165-
foreach (var maidProp in costume) {
166-
maid.SetProp((MPN)maidProp.idx, maidProp.strFileName, maidProp.nFileNameRID);
167-
var newProp = maid.GetProp((MPN)maidProp.idx);
168-
newProp.m_dicTBodySkinPos = maidProp.m_dicTBodySkinPos;
169-
newProp.m_dicTBodyAttachPos = maidProp.m_dicTBodyAttachPos;
170-
newProp.m_dicMaterialProp = maidProp.m_dicMaterialProp;
171-
newProp.m_dicBoneLength = maidProp.m_dicBoneLength;
169+
foreach (var originalMaidProp in costume) {
170+
maid.SetProp((MPN)originalMaidProp.idx, originalMaidProp.strFileName, originalMaidProp.nFileNameRID);
171+
var maidProp = maid.GetProp((MPN)originalMaidProp.idx);
172+
maidProp.m_dicTBodySkinPos = originalMaidProp.m_dicTBodySkinPos;
173+
maidProp.m_dicTBodyAttachPos = originalMaidProp.m_dicTBodyAttachPos;
174+
maidProp.m_dicMaterialProp = originalMaidProp.m_dicMaterialProp;
175+
maidProp.m_dicBoneLength = originalMaidProp.m_dicBoneLength;
176+
if (originalMaidProp.listSubProp != null && originalMaidProp.listSubProp.Count > 0) {
177+
maid.DelProp((MPN)originalMaidProp.idx);
178+
for (int i = 0; i < originalMaidProp.listSubProp.Count; i++) {
179+
var originalSubProp = originalMaidProp.listSubProp[i];
180+
if (originalSubProp != null) {
181+
maid.SetSubProp((MPN)originalMaidProp.idx, i, originalSubProp.strFileName, originalSubProp.nFileNameRID);
182+
var subProp = maid.GetSubProp((MPN)originalMaidProp.idx, i);
183+
subProp.fTexMulAlpha = originalSubProp.fTexMulAlpha;
184+
}
185+
}
186+
}
172187
}
173188
_originalCostume.Remove(maid.status.guid);
174189
}

0 commit comments

Comments
 (0)