Skip to content

Commit 453e427

Browse files
committed
Add CMP loading + bit of refactoring
1 parent 2af62e9 commit 453e427

File tree

11 files changed

+605
-201
lines changed

11 files changed

+605
-201
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using Cirilla.Core.Models;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
4+
namespace Cirilla.Core.Test.Tests
5+
{
6+
[TestClass]
7+
public class CMPTests
8+
{
9+
[TestMethod]
10+
public void Load__preset_female_1()
11+
{
12+
CMP cmp = new CMP(Utility.GetFullPath(@"chunk0/stage/st407/common/preset/preset_female_1.cmp"));
13+
}
14+
15+
[TestMethod]
16+
public void Load__preset_male_1()
17+
{
18+
CMP cmp = new CMP(Utility.GetFullPath(@"chunk0/stage/st407/common/preset/preset_male_1.cmp"));
19+
}
20+
}
21+
}

Cirilla.Core.Test/Tests/SaveDataTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using Cirilla.Core.Models;
22
using Cirilla.Core.Structs.Native;
3+
using Cirilla.Core.Extensions;
34
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
using System.IO;
46
using System.Runtime.InteropServices;
57

68
namespace Cirilla.Core.Test.Tests
@@ -23,7 +25,7 @@ public void SizeOf__SaveData_SaveSlot()
2325
[TestMethod]
2426
public void SizeOf__SaveData_Appearance()
2527
{
26-
Assert.AreEqual(120, Marshal.SizeOf<SaveData_Appearance>());
28+
Assert.AreEqual(120, Marshal.SizeOf<CharacterAppearance>());
2729
}
2830

2931
[TestMethod]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System;
2+
3+
namespace Cirilla.Core.Attributes
4+
{
5+
public class RangeAttribute : Attribute
6+
{
7+
public float Min { get; }
8+
public float Max { get; }
9+
public string Description { get; }
10+
11+
public RangeAttribute(float min, float max, string description = null)
12+
{
13+
Min = min;
14+
Max = max;
15+
Description = description;
16+
}
17+
}
18+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace Cirilla.Core.Enums
6+
{
7+
public enum Gender : int
8+
{
9+
Male = 0,
10+
Female = 1
11+
}
12+
13+
public enum EyelashLength : byte
14+
{
15+
Short = 0,
16+
Average = 1,
17+
Long = 2
18+
}
19+
}

Cirilla.Core/Enums/MHFileType.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class MHFileType : Enumeration
1717
public static MHFileType NBSC = new MHFileType(typeof(NBSC), "NPC something", fileExtensions: new[] { ".nbsc" });
1818
public static MHFileType SaveData = new MHFileType(typeof(SaveData), "SaveData", magic: new byte[] { 0x72, 0xC8, 0x62, 0x47 });
1919
public static MHFileType EquipmentCrafting = new MHFileType(typeof(EquipmentCrafting), "Equipment crafting", fileExtensions: new[] { ".eq_crt" });
20+
public static MHFileType CMP = new MHFileType(typeof(CMP), "Character Preset", fileExtensions: new[] { ".cmp" });
2021

2122
public MHFileType() { }
2223

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using Cirilla.Core.Enums;
2+
using System.Drawing;
3+
4+
namespace Cirilla.Core.Interfaces
5+
{
6+
public interface IAppearanceProperties
7+
{
8+
Color Makeup2Color { get; set; }
9+
float Makeup2PosX { get; set; }
10+
float Makeup2PosY { get; set; }
11+
float Makeup2SizeX { get; set; }
12+
float Makeup2SizeY { get; set; }
13+
float Makeup2Glossy { get; set; }
14+
float Makeup2Metallic { get; set; }
15+
int Makeup2Type { get; set; }
16+
17+
Color Makeup1Color { get; set; }
18+
float Makeup1PosX { get; set; }
19+
float Makeup1PosY { get; set; }
20+
float Makeup1SizeX { get; set; }
21+
float Makeup1SizeY { get; set; }
22+
float Makeup1Glossy { get; set; }
23+
float Makeup1Metallic { get; set; }
24+
int Makeup1Type { get; set; }
25+
26+
Color LeftEyeColor { get; set; }
27+
Color RightEyeColor { get; set; }
28+
Color EyebrowColor { get; set; }
29+
Color FacialHairColor { get; set; }
30+
31+
byte EyeWidth { get; set; }
32+
byte EyeHeight { get; set; }
33+
byte SkinColorX { get; set; }
34+
byte SkinColorY { get; set; }
35+
byte Age { get; set; }
36+
byte Wrinkles { get; set; }
37+
byte NoseHeight { get; set; }
38+
byte MouthHeight { get; set; }
39+
40+
Gender Gender { get; set; }
41+
42+
byte BrowType { get; set; }
43+
byte FaceType { get; set; }
44+
byte EyeType { get; set; }
45+
byte NoseType { get; set; }
46+
byte MouthType { get; set; }
47+
byte EyebrowType { get; set; }
48+
EyelashLength EyelashLength { get; set; }
49+
byte FacialHairType { get; set; }
50+
51+
Color HairColor { get; set; }
52+
Color ClothingColor { get; set; }
53+
54+
short HairType { get; set; }
55+
byte ClothingType { get; set; }
56+
byte Voice { get; set; }
57+
int Expression { get; set; }
58+
}
59+
}

0 commit comments

Comments
 (0)