fix: cosmetics
it's selectable now, but saving a set of accessories still doesn't work correctly
This commit is contained in:
parent
d69656e0ab
commit
6948bdb866
@ -547,7 +547,7 @@ static final function SetAttachmentMesh(KFCharacterInfo_Human C, int CurrentAtta
|
||||
* Removes any attachments that exist in the same socket or have overriding cases
|
||||
* Network: Local Player
|
||||
*/
|
||||
static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int NewAttachmentMeshIndex, KFPawn KFP, optional KFPlayerReplicationInfo KFPRI)
|
||||
static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int NewAttachmentMeshIndex, KFPawn KFP, optional KFPlayerReplicationInfo KFPRI, optional out array<int> out_RemovedAttachments)
|
||||
{
|
||||
local name NewAttachmentSocketName;
|
||||
local int i, CurrentAttachmentIdx;
|
||||
@ -574,6 +574,7 @@ static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int
|
||||
KFP.ThirdPersonAttachmentSocketNames[i] == NewAttachmentSocketName)
|
||||
{
|
||||
C.RemoveAttachmentMeshAndSkin(i, KFP, KFPRI);
|
||||
out_RemovedAttachments.AddItem(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -581,6 +582,7 @@ static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int
|
||||
if (C.GetOverrideCase(CurrentAttachmentIdx, NewAttachmentMeshIndex))
|
||||
{
|
||||
C.RemoveAttachmentMeshAndSkin(i, KFP, KFPRI);
|
||||
out_RemovedAttachments.AddItem(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -588,6 +590,7 @@ static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int
|
||||
if (C.GetOverrideCase(NewAttachmentMeshIndex, CurrentAttachmentIdx))
|
||||
{
|
||||
C.RemoveAttachmentMeshAndSkin(i, KFP, KFPRI);
|
||||
out_RemovedAttachments.AddItem(i);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -663,7 +666,7 @@ static function int GetAttachmentSlotIndex(
|
||||
for (AttachmentIdx = 0; AttachmentIdx < `MAX_COSMETIC_ATTACHMENTS; AttachmentIdx++)
|
||||
{
|
||||
CosmeticMeshIdx = bCustom ? EPRI.CustomCharacter.AttachmentMeshIndices[AttachmentIdx] : KFPRI.RepCustomizationInfo.AttachmentMeshIndices[AttachmentIdx];
|
||||
if (CosmeticMeshIdx == INDEX_NONE || CosmeticMeshIdx == CurrentAttachmentMeshIndex)
|
||||
if (CosmeticMeshIdx == CurrentAttachmentMeshIndex)
|
||||
{
|
||||
return AttachmentIdx;
|
||||
}
|
||||
|
@ -108,6 +108,9 @@ function LocalizeText()
|
||||
LocalizedObject.SetString("bodiesString", class'KFGFxMenu_Gear'.Default.BodyString);
|
||||
LocalizedObject.SetString("skinsString", class'KFGFxMenu_Gear'.Default.SkinsString);
|
||||
LocalizedObject.SetString("attachmentsString", class'KFGFxMenu_Gear'.Default.AttachmentsString);
|
||||
LocalizedObject.SetString("attachment0String", class'KFGFxMenu_Gear'.Default.Attachment0String);
|
||||
LocalizedObject.SetString("attachment1String", class'KFGFxMenu_Gear'.Default.Attachment1String);
|
||||
LocalizedObject.SetString("attachment2String", class'KFGFxMenu_Gear'.Default.Attachment2String);
|
||||
|
||||
SetObject("localizeText", LocalizedObject);
|
||||
}
|
||||
@ -643,6 +646,40 @@ function Callback_Body(int MeshIndex, int SkinIndex)
|
||||
SetGearButtons(MeshIndex, SkinIndex, class'KFGFxMenu_Gear'.Default.BodyMeshKey, class'KFGFxMenu_Gear'.Default.BodySkinKey, class'KFGFxMenu_Gear'.Default.BodyFunctionKey);
|
||||
}
|
||||
|
||||
function Callback_Attachment1(int MeshIndex, int SkinIndex)
|
||||
{
|
||||
Callback_AttachmentNumbered(MeshIndex, SkinIndex, 0);
|
||||
}
|
||||
|
||||
function Callback_Attachment2(int MeshIndex, int SkinIndex)
|
||||
{
|
||||
Callback_AttachmentNumbered(MeshIndex, SkinIndex, 1);
|
||||
}
|
||||
|
||||
function Callback_Attachment3(int MeshIndex, int SkinIndex)
|
||||
{
|
||||
Callback_AttachmentNumbered(MeshIndex, SkinIndex, 2);
|
||||
}
|
||||
|
||||
function Callback_AttachmentNumbered(int MeshIndex, int SkinIndex, int SlotIndex)
|
||||
{
|
||||
local Pawn P;
|
||||
local KFPawn KFP;
|
||||
P = GetPC().Pawn;
|
||||
if(P != none)
|
||||
{
|
||||
KFP = KFPawn(P);
|
||||
|
||||
if (KFP != none && ExtPRI != None)
|
||||
{
|
||||
if (MeshIndex >= 0)
|
||||
class'ExtCharacterInfo'.Static.DetachConflictingAttachments(CurrentCharInfo, MeshIndex, KFP, ExtPRI);
|
||||
ExtPRI.UpdateCustomization(CO_Attachment, MeshIndex, SkinIndex, SlotIndex);
|
||||
}
|
||||
}
|
||||
SetAttachmentButtons(class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentFunctionKey);
|
||||
}
|
||||
|
||||
function Callback_Attachment(int MeshIndex, int SkinIndex)
|
||||
{
|
||||
local int SlotIndex;
|
||||
@ -667,7 +704,6 @@ function Callback_Attachment(int MeshIndex, int SkinIndex)
|
||||
|
||||
ExtPRI.UpdateCustomization(CO_Attachment, MeshIndex, SkinIndex, SlotIndex);
|
||||
}
|
||||
|
||||
SetAttachmentButtons(class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentFunctionKey);
|
||||
}
|
||||
}
|
||||
|
@ -505,7 +505,7 @@ simulated function ChangeCharacter(byte CharIndex, optional bool bFirstSet)
|
||||
}
|
||||
}
|
||||
|
||||
simulated function UpdateCustomization(byte Type, byte MeshIndex, byte SkinIndex, optional byte SlotIndex)
|
||||
simulated function UpdateCustomization(int Type, int MeshIndex, int SkinIndex, optional int SlotIndex)
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user