Skip to content

Commit

Permalink
V14 Char File update
Browse files Browse the repository at this point in the history
  • Loading branch information
Shadowth117 committed Oct 11, 2023
1 parent 655beb4 commit d45a9dd
Show file tree
Hide file tree
Showing 18 changed files with 7,376 additions and 3,277 deletions.
112 changes: 111 additions & 1 deletion CharFileLibrary/Character_Making_File_Tool/CharacterHandlerReboot.cs
Expand Up @@ -83,6 +83,8 @@ public class xxpGeneralReboot

public CastColorIdSet castColorIds;

public int celShadingIsEnabled;

public xxpGeneralReboot()
{
}
Expand Down Expand Up @@ -542,6 +544,66 @@ public xxpGeneralReboot(XXPV13 tempXXP)
castColorIds = tempXXP.castColorIds;
}

public xxpGeneralReboot(XXPV14 tempXXP)
{
xxpVersion = 13;

baseDOC = tempXXP.baseDOC;
skinVariant = tempXXP.skinVariant;
eyebrowDensity = tempXXP.eyebrowDensity;
cmlVariant = tempXXP.cmlVariant;

baseFIGR = tempXXP.baseFIGR;
neckVerts = tempXXP.neckVerts;
waistVerts = tempXXP.waistVerts;

hands = tempXXP.hands;
hornVerts = tempXXP.horns;
eyeSize = tempXXP.eyeSize;
eyeHorizontalPosition = tempXXP.eyeHorizontalPosition;
neckAngle = tempXXP.neckAngle;

classicFace = tempXXP.classicFace;

ngsCOL2 = tempXXP.ngsCOL2;

baseSLCT = tempXXP.baseSLCT;
baseSLCT2 = tempXXP.baseSLCT2;
leftEyePart = tempXXP.leftEyePart;

baseSLCTNGS = tempXXP.baseSLCTNGS;

accessorySlidersReboot = tempXXP.accessorySlidersReboot;

faceNatural = tempXXP.faceNatural;
faceSmile = tempXXP.faceSmile;
faceAngry = tempXXP.faceAngry;
faceSad = tempXXP.faceSad;

faceSus = tempXXP.faceSus;
faceEyesClosed = tempXXP.faceEyesClosed;
faceSmile2 = tempXXP.faceSmile2;
faceWink = tempXXP.faceWink;

faceUnused1 = tempXXP.faceUnused1;
faceUnused2 = tempXXP.faceUnused2;

paintPriority = tempXXP.paintPriority;

ngsSLID = tempXXP.ngsSLID;
ngsMTON = tempXXP.ngsMTON;

int_350 = tempXXP.int_350;
int_354 = tempXXP.int_354;
ngsVISI = tempXXP.ngsVISI;

accessoryMiscData = tempXXP.accessoryMiscData;

castColorIds = tempXXP.castColorIds;

celShadingIsEnabled = tempXXP.celShadingIsEnabled;
}

public XXPV2 GetXXPV2()
{
FaceFIGR classicFace = GetClassicFaceData();
Expand Down Expand Up @@ -866,6 +928,52 @@ public XXPV13 GetXXPV13()
return tempXXP;
}

public XXPV14 GetXXPV14()
{
XXPV14 tempXXP = new();

tempXXP.baseDOC = baseDOC;
tempXXP.skinVariant = skinVariant;
tempXXP.eyebrowDensity = eyebrowDensity;
tempXXP.cmlVariant = cmlVariant;
tempXXP.baseFIGR = baseFIGR;
tempXXP.neckVerts = neckVerts;
tempXXP.waistVerts = waistVerts;
tempXXP.hands = hands;
tempXXP.horns = hornVerts;
tempXXP.eyeSize = eyeSize;
tempXXP.eyeHorizontalPosition = eyeHorizontalPosition;
tempXXP.neckAngle = neckAngle;
tempXXP.classicFace = classicFace;
tempXXP.ngsCOL2 = ngsCOL2;
tempXXP.baseSLCT = baseSLCT;
tempXXP.baseSLCT2 = baseSLCT2;
tempXXP.leftEyePart = leftEyePart;
tempXXP.baseSLCTNGS = baseSLCTNGS;
tempXXP.accessorySlidersReboot = accessorySlidersReboot;
tempXXP.faceNatural = faceNatural;
tempXXP.faceSmile = faceSmile;
tempXXP.faceAngry = faceAngry;
tempXXP.faceSad = faceSad;
tempXXP.faceSus = faceSus;
tempXXP.faceEyesClosed = faceEyesClosed;
tempXXP.faceSmile2 = faceSmile2;
tempXXP.faceWink = faceWink;
tempXXP.faceUnused1 = faceUnused1;
tempXXP.faceUnused2 = faceUnused2;
tempXXP.paintPriority = paintPriority;
tempXXP.ngsSLID = ngsSLID;
tempXXP.ngsMTON = ngsMTON;
tempXXP.int_350 = int_350;
tempXXP.int_354 = int_354;
tempXXP.ngsVISI = ngsVISI;
tempXXP.accessoryMiscData = accessoryMiscData;
tempXXP.castColorIds = castColorIds;
tempXXP.celShadingIsEnabled = celShadingIsEnabled;

return tempXXP;
}

private void SetDefaultExpressions()
{
if (baseDOC.gender == 0)
Expand Down Expand Up @@ -996,8 +1104,10 @@ public byte[] GetBytes()
return Reloaded.Memory.Struct.GetBytes(GetXXPV12());
case 13:
return Reloaded.Memory.Struct.GetBytes(GetXXPV13());
case 14:
return Reloaded.Memory.Struct.GetBytes(GetXXPV14());
default:
return Reloaded.Memory.Struct.GetBytes(GetXXPV12());
return Reloaded.Memory.Struct.GetBytes(GetXXPV14());
}
throw new NotImplementedException();
}
Expand Down
Expand Up @@ -48,6 +48,7 @@ public class CharacterConstants
{ 0xB, 0x3C0},
{ 0xC, 0x438},
{ 0xD, 0x448},
{ 0xE, 0x44C},
};

//Stores palette colors [column, row]
Expand Down
Expand Up @@ -500,5 +500,106 @@ public struct XXPV13
//0x448 - Cast Color id assignments
public CastColorIdSet castColorIds;
}

//Adds cel shading flag
public struct XXPV14
{
//DOC 0x10
public BaseDOC baseDOC;
public byte skinVariant; //0 or above 3 for default, 1 for human, 2 for dewman, 3 for cast. This decides the color map used for the skin.
public sbyte eyebrowDensity; //-100 to 100
public short cmlVariant;

//0x20
public BaseFIGR baseFIGR;
public Vec3Int neckVerts;
public Vec3Int waistVerts;

//0xBC
public Vec3Int hands;
public Vec3Int horns;
public int eyeSize;
public int eyeHorizontalPosition;
public int neckAngle;

//0xE0 AltFaceFIGR
public FaceFIGR classicFace;

//0x158 COL2 - These are just standard RGBA in NGS as opposed to the original COLR slider positions
public COL2 ngsCOL2;

//0x1A0 SLCT
public BaseSLCT baseSLCT;
public BaseSLCT2 baseSLCT2;
public uint leftEyePart;

//0x1F8 SLCT continued
public BaseSLCTNGS baseSLCTNGS;

//0x224 Padding?
public uint padding0;

public uint padding1;
public uint padding2;
public uint padding3;
public uint padding4;

//0x238
public AccessorySlidersReboot accessorySlidersReboot;

//0x2A4
public FaceExpressionV11 faceNatural;
public FaceExpressionV11 faceSmile;
public FaceExpressionV11 faceAngry;
public FaceExpressionV11 faceSad;

public FaceExpressionV11 faceSus;
public FaceExpressionV11 faceEyesClosed;
public FaceExpressionV11 faceSmile2;
public FaceExpressionV11 faceWink;

public FaceExpressionV11 faceUnused1;
public FaceExpressionV11 faceUnused2;

//0x36C
public PaintPriority paintPriority;
public ushort padding14;
public uint padding15;
public uint padding16;

//0x37C NGS extra slider data
public NGSSLID ngsSLID;

//0x3BC - Motion change
public NGSMTON ngsMTON;

//0x3DC - Costume ornament hiding leftover?
public int int_350;
public int int_354;

//0x3E4 Ornament Display - VISI, stored as 0 or 1 in xxp. In CML, these are stored as bits in a single byte.
public VISI ngsVISI;

//0x404
public uint padding18;
public uint padding19;

public uint padding20;
public uint padding21;
public uint padding22;
public uint padding23;

public uint padding24;
public uint padding25;

//0x424 - Accessory attach points followed by color choices
public AccessoryMisc accessoryMiscData;

//0x448 - Cast Color id assignments
public CastColorIdSet castColorIds;

//0x458 - Cel Shading
public int celShadingIsEnabled;
}
}
}

0 comments on commit d45a9dd

Please sign in to comment.