ghorsington 5 年 前
コミット
af11458557
66 ファイル変更509 行追加310 行削除
  1. 5 5
      Assembly-CSharp.sln
  2. 16 16
      Assembly-CSharp/Assembly-CSharp.csproj
  3. 75 36
      Assembly-CSharp/BackupParamAccessor/BackupParamAccessor.cs
  4. 1 1
      Assembly-CSharp/BackupParamAccessor/Params.cs
  5. 16 2
      Assembly-CSharp/BaseKagManager.cs
  6. 1 1
      Assembly-CSharp/BasePhotoCustomObject.cs
  7. 1 1
      Assembly-CSharp/BasePhotoWindowManager.cs
  8. 7 7
      Assembly-CSharp/CMSystem.cs
  9. 3 0
      Assembly-CSharp/CastPreviewHelper.cs
  10. 14 6
      Assembly-CSharp/CharacterMgr.cs
  11. 2 2
      Assembly-CSharp/ControllerShortcutSettingData.cs
  12. 18 45
      Assembly-CSharp/DanceSelect.cs
  13. 1 1
      Assembly-CSharp/DanceSetting.cs
  14. 1 1
      Assembly-CSharp/DeskManager.cs
  15. 3 3
      Assembly-CSharp/DynamicBone.cs
  16. 1 1
      Assembly-CSharp/DynamicSkirtBone.cs
  17. 1 1
      Assembly-CSharp/EditMod.cs
  18. 1 1
      Assembly-CSharp/EmpireLifeModeManager.cs
  19. 15 1
      Assembly-CSharp/FaceWindow.cs
  20. 4 0
      Assembly-CSharp/Facility.cs
  21. 1 1
      Assembly-CSharp/FacilityManager.cs
  22. 0 23
      Assembly-CSharp/FullBodyIKCtrl.cs
  23. 2 19
      Assembly-CSharp/GameMain.cs
  24. 1 1
      Assembly-CSharp/GameModeManager.cs
  25. 9 2
      Assembly-CSharp/GameUty.cs
  26. 2 2
      Assembly-CSharp/HandSignShortcut.cs
  27. 14 8
      Assembly-CSharp/I2/Loc/LanguageSource.cs
  28. 1 1
      Assembly-CSharp/Kasizuki/KasizukiManager.cs
  29. 1 1
      Assembly-CSharp/LoadReplaceMaid.cs
  30. 38 3
      Assembly-CSharp/Maid.cs
  31. 1 1
      Assembly-CSharp/MaidParts.cs
  32. 1 1
      Assembly-CSharp/MaidProp.cs
  33. 2 2
      Assembly-CSharp/MaidStatus/Feature.cs
  34. 2 1
      Assembly-CSharp/MaidStatus/Status.cs
  35. 15 0
      Assembly-CSharp/MaidStatus/SubMaid.cs
  36. 79 66
      Assembly-CSharp/Menu.cs
  37. 4 0
      Assembly-CSharp/MessageClass.cs
  38. 1 1
      Assembly-CSharp/MessageWindowCtrl.cs
  39. 4 4
      Assembly-CSharp/Misc.cs
  40. 1 1
      Assembly-CSharp/ModCompile.cs
  41. 3 0
      Assembly-CSharp/MyRoomCustom/CreativeRoomUISaveLoad.cs
  42. 2 2
      Assembly-CSharp/OvrIK.cs
  43. 1 1
      Assembly-CSharp/PhotoModeSaveAndLoad.cs
  44. 1 1
      Assembly-CSharp/PlayerStatus/Status.cs
  45. 4 0
      Assembly-CSharp/PoseEditWindow.cs
  46. 1 1
      Assembly-CSharp/PresetCtrl.cs
  47. 19 1
      Assembly-CSharp/Product.cs
  48. 2 1
      Assembly-CSharp/ProfileCtrl.cs
  49. 3 3
      Assembly-CSharp/ResultIncomeMgr.cs
  50. 2 2
      Assembly-CSharp/RhythmAction_Mgr.cs
  51. 6 2
      Assembly-CSharp/SaveAndLoadCtrl.cs
  52. 12 0
      Assembly-CSharp/SceneEditWindow/CustomPartsWindow.cs
  53. 1 1
      Assembly-CSharp/SceneNPCEdit/SaveData.cs
  54. 8 2
      Assembly-CSharp/SceneScenarioSelect.cs
  55. 10 10
      Assembly-CSharp/ScheduleMaidStatusUnit.cs
  56. 1 1
      Assembly-CSharp/ScriptManager.cs
  57. 1 1
      Assembly-CSharp/SelectButtonCtrl.cs
  58. 2 2
      Assembly-CSharp/ShootCutInTex.cs
  59. 1 1
      Assembly-CSharp/SystemShortcut.cs
  60. 1 1
      Assembly-CSharp/TBodySkin.cs
  61. 24 2
      Assembly-CSharp/ThumShot.cs
  62. 1 1
      Assembly-CSharp/WindowPartsFingerPreset.cs
  63. 12 2
      Assembly-CSharp/YotogiClassListManager.cs
  64. 10 0
      Assembly-CSharp/YotogiManager.cs
  65. 13 0
      Assembly-CSharp/YotogiSkillUnit.cs
  66. 3 3
      Assembly-CSharp/uGUITutorialPanel.cs

+ 5 - 5
Assembly-CSharp.sln

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 15
 VisualStudioVersion = 15.0.26228.4
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{18AAF8C2-7D67-4E77-8C73-6B5AF6C5C7A0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{F8AB6DF3-BF59-4900-BAE6-3AF59354D9E8}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{18AAF8C2-7D67-4E77-8C73-6B5AF6C5C7A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{18AAF8C2-7D67-4E77-8C73-6B5AF6C5C7A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{18AAF8C2-7D67-4E77-8C73-6B5AF6C5C7A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{18AAF8C2-7D67-4E77-8C73-6B5AF6C5C7A0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F8AB6DF3-BF59-4900-BAE6-3AF59354D9E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F8AB6DF3-BF59-4900-BAE6-3AF59354D9E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F8AB6DF3-BF59-4900-BAE6-3AF59354D9E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F8AB6DF3-BF59-4900-BAE6-3AF59354D9E8}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 16 - 16
Assembly-CSharp/Assembly-CSharp.csproj

@@ -4,7 +4,7 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{18AAF8C2-7D67-4E77-8C73-6B5AF6C5C7A0}</ProjectGuid>
+    <ProjectGuid>{F8AB6DF3-BF59-4900-BAE6-3AF59354D9E8}</ProjectGuid>
     <OutputType>Library</OutputType>
     <RootNamespace>Assembly-CSharp</RootNamespace>
     <AssemblyName>Assembly-CSharp</AssemblyName>
@@ -34,49 +34,49 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Assembly-CSharp-firstpass">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
+      <HintPath>..\..\..\com_131\Assembly-CSharp-firstpass.dll</HintPath>
     </Reference>
     <Reference Include="Assembly-UnityScript-firstpass">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
+      <HintPath>..\..\..\com_131\Assembly-UnityScript-firstpass.dll</HintPath>
     </Reference>
     <Reference Include="FoveUnityPlugin">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\FoveUnityPlugin.dll</HintPath>
+      <HintPath>..\..\..\com_131\FoveUnityPlugin.dll</HintPath>
     </Reference>
     <Reference Include="Ionic.Zlib">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Ionic.Zlib.dll</HintPath>
+      <HintPath>..\..\..\com_131\Ionic.Zlib.dll</HintPath>
     </Reference>
     <Reference Include="JsonFx.Json">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\JsonFx.Json.dll</HintPath>
+      <HintPath>..\..\..\com_131\JsonFx.Json.dll</HintPath>
     </Reference>
     <Reference Include="LeapCSharp.NET3.5">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\LeapCSharp.NET3.5.dll</HintPath>
+      <HintPath>..\..\..\com_131\LeapCSharp.NET3.5.dll</HintPath>
     </Reference>
     <Reference Include="System">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.dll</HintPath>
+      <HintPath>..\..\..\com_131\System.dll</HintPath>
     </Reference>
     <Reference Include="System.Core">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Core.dll</HintPath>
+      <HintPath>..\..\..\com_131\System.Core.dll</HintPath>
     </Reference>
     <Reference Include="System.Drawing">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Drawing.dll</HintPath>
+      <HintPath>..\..\..\com_131\System.Drawing.dll</HintPath>
     </Reference>
     <Reference Include="System.Windows.Forms">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Windows.Forms.dll</HintPath>
+      <HintPath>..\..\..\com_131\System.Windows.Forms.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.dll</HintPath>
+      <HintPath>..\..\..\com_131\System.Xml.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml.Linq">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.Linq.dll</HintPath>
+      <HintPath>..\..\..\com_131\System.Xml.Linq.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.dll</HintPath>
+      <HintPath>..\..\..\com_131\UnityEngine.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine.UI">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.UI.dll</HintPath>
+      <HintPath>..\..\..\com_131\UnityEngine.UI.dll</HintPath>
     </Reference>
     <Reference Include="zxing.unity">
-      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\zxing.unity.dll</HintPath>
+      <HintPath>..\..\..\com_131\zxing.unity.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>

+ 75 - 36
Assembly-CSharp/BackupParamAccessor/BackupParamAccessor.cs

@@ -25,7 +25,7 @@ namespace BackupParamAccessor
 				@params.salon_evaluation = GameMain.Instance.CharacterMgr.status.clubEvaluation;
 				@params.money = GameMain.Instance.CharacterMgr.status.money;
 				@params.clubEvaluation = GameMain.Instance.CharacterMgr.status.clubEvaluation;
-				@params.clubMoney = (int)GameMain.Instance.CharacterMgr.status.money;
+				@params.clubMoney = GameMain.Instance.CharacterMgr.status.money;
 				@params.evaluation = scheduleSlot.status.evaluation;
 				@params.sales = scheduleSlot.status.sales;
 				@params.study_rate = scheduleSlot.status.studyRate;
@@ -58,7 +58,24 @@ namespace BackupParamAccessor
 				@params.likability = scheduleSlot.status.likability;
 			}
 			BackupParamAccessor.slots = GameMain.Instance.CharacterMgr.status.scheduleSlot;
-			BackupParamAccessor.slots[num].backup_status_dic[str + "_clubMoney"] = @params.clubMoney;
+			byte[] bytes = BitConverter.GetBytes(@params.clubMoney);
+			int value = BitConverter.ToInt32(new byte[]
+			{
+				bytes[0],
+				bytes[1],
+				bytes[2],
+				bytes[3]
+			}, 0);
+			int value2 = BitConverter.ToInt32(new byte[]
+			{
+				bytes[4],
+				bytes[5],
+				bytes[6],
+				bytes[7]
+			}, 0);
+			BackupParamAccessor.slots[num].backup_status_dic[str + "_clubMoney_byte1"] = value;
+			BackupParamAccessor.slots[num].backup_status_dic[str + "_clubMoney_byte2"] = value2;
+			BackupParamAccessor.slots[num].backup_status_dic[str + "_clubMoney"] = (int)@params.clubMoney;
 			BackupParamAccessor.slots[num].backup_status_dic[str + "_clubEvaluation"] = @params.clubEvaluation;
 			BackupParamAccessor.slots[num].backup_status_dic[str + "_salon_cleanliness"] = @params.salon_cleanliness;
 			BackupParamAccessor.slots[num].backup_status_dic[str + "_salon_gorgeous"] = @params.salon_gorgeous;
@@ -107,41 +124,63 @@ namespace BackupParamAccessor
 
 		public static Params GetBackupParams(int slotId, SCENE_ID sceneId)
 		{
-			return new Params
+			Params @params = new Params();
+			@params.clubMoney = (long)BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "clubMoney");
+			@params.clubEvaluation = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "clubEvaluation");
+			@params.salon_cleanliness = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "salon_cleanliness");
+			@params.salon_gorgeous = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "salon_gorgeous");
+			@params.salon_evaluation = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "salon_evaluation");
+			@params.money_top0 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "money_top0");
+			@params.money_top10 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "money_top10");
+			@params.evaluation = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "evaluation");
+			@params.sales_top0 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "sales_top0");
+			@params.sales_top10 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "sales_top10");
+			@params.study_rate = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "study_rate");
+			if (BackupParamAccessor.BackupParamsPartsContainsKey(slotId, sceneId, "clubMoney_byte1") && BackupParamAccessor.BackupParamsPartsContainsKey(slotId, sceneId, "clubMoney_byte2"))
 			{
-				clubMoney = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "clubMoney"),
-				clubEvaluation = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "clubEvaluation"),
-				salon_cleanliness = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "salon_cleanliness"),
-				salon_gorgeous = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "salon_gorgeous"),
-				salon_evaluation = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "salon_evaluation"),
-				money_top0 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "money_top0"),
-				money_top10 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "money_top10"),
-				evaluation = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "evaluation"),
-				sales_top0 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "sales_top0"),
-				sales_top10 = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "sales_top10"),
-				study_rate = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "study_rate"),
-				teach_rate = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "teach_rate"),
-				reception = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "reception"),
-				care = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "care"),
-				lovely = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "lovely"),
-				elegance = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "elegance"),
-				charm = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "charm"),
-				cooking = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "cooking"),
-				vocal = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "vocal"),
-				dance = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "dance"),
-				appealPoint = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "appealPoint"),
-				inyoku = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "inyoku"),
-				m_value = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "m_value"),
-				hentai = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "hentai"),
-				housi = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "housi"),
-				maidClassLv = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "maidClassLv"),
-				maidClassExp = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "maidClassExp"),
-				yotogiClassLv = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "yotogiClassLv"),
-				yotogiClassExp = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "yotogiClassExp"),
-				yotogi_play_count = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "yotogi_play_count"),
-				others_play_count = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "others_play_count"),
-				likability = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "likability")
-			};
+				byte[] bytes = BitConverter.GetBytes(BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "clubMoney_byte1"));
+				byte[] bytes2 = BitConverter.GetBytes(BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "clubMoney_byte2"));
+				@params.clubMoney = BitConverter.ToInt64(new byte[]
+				{
+					bytes[0],
+					bytes[1],
+					bytes[2],
+					bytes[3],
+					bytes2[0],
+					bytes2[1],
+					bytes2[2],
+					bytes2[3]
+				}, 0);
+			}
+			@params.teach_rate = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "teach_rate");
+			@params.reception = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "reception");
+			@params.care = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "care");
+			@params.lovely = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "lovely");
+			@params.elegance = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "elegance");
+			@params.charm = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "charm");
+			@params.cooking = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "cooking");
+			@params.vocal = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "vocal");
+			@params.dance = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "dance");
+			@params.appealPoint = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "appealPoint");
+			@params.inyoku = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "inyoku");
+			@params.m_value = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "m_value");
+			@params.hentai = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "hentai");
+			@params.housi = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "housi");
+			@params.maidClassLv = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "maidClassLv");
+			@params.maidClassExp = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "maidClassExp");
+			@params.yotogiClassLv = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "yotogiClassLv");
+			@params.yotogiClassExp = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "yotogiClassExp");
+			@params.yotogi_play_count = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "yotogi_play_count");
+			@params.others_play_count = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "others_play_count");
+			@params.likability = BackupParamAccessor.GetBackupParamsParts(slotId, sceneId, "likability");
+			return @params;
+		}
+
+		public static bool BackupParamsPartsContainsKey(int slotId, SCENE_ID sceneId_f, string name)
+		{
+			BackupParamAccessor.slots = GameMain.Instance.CharacterMgr.status.scheduleSlot;
+			string str = sceneId_f.ToString();
+			return BackupParamAccessor.slots[slotId].backup_status_dic.ContainsKey(str + "_" + name);
 		}
 
 		public static int GetBackupParamsParts(int slotId, SCENE_ID sceneId_f, string name)

+ 1 - 1
Assembly-CSharp/BackupParamAccessor/Params.cs

@@ -75,7 +75,7 @@ namespace BackupParamAccessor
 
 		public int clubEvaluation;
 
-		public int clubMoney;
+		public long clubMoney;
 
 		public int salon_evaluation;
 

+ 16 - 2
Assembly-CSharp/BaseKagManager.cs

@@ -5171,7 +5171,8 @@ public class BaseKagManager : IDisposable
 			{
 				text = tag_data.GetTagProperty("name").AsString().Trim();
 			}
-			text = MessageClass.GetTranslationText(text).Key;
+			KeyValuePair<string, string> translationText = MessageClass.GetTranslationText(text);
+			text = translationText.Key;
 			if (tag_data.IsValid("real") && text == "フリー" && GameMain.Instance.ScriptMgr.compatibilityMode)
 			{
 				text = "[HF16]";
@@ -5197,6 +5198,19 @@ public class BaseKagManager : IDisposable
 						break;
 					}
 				}
+				if (maid == null && Product.supportMultiLanguage)
+				{
+					text = translationText.Value;
+					for (int j = 0; j < characterMgr.GetMaidCount(); j++)
+					{
+						Maid maid3 = characterMgr.GetMaid(j);
+						if (maid3 != null && maid3.boNPC && maid3.status.firstName == text)
+						{
+							maid = maid3;
+							break;
+						}
+					}
+				}
 			}
 			if (maid == null)
 			{
@@ -5410,7 +5424,7 @@ public class BaseKagManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_KAG");
-		binary.Write(1300);
+		binary.Write(1310);
 		byte[] array = this.kag_.Serialize();
 		int value = array.Length;
 		binary.Write(value);

+ 1 - 1
Assembly-CSharp/BasePhotoCustomObject.cs

@@ -173,7 +173,7 @@ public abstract class BasePhotoCustomObject : MonoBehaviour, IComparable<BasePho
 			using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
 			{
 				binaryWriter.Write("COM3D2_PHOTO_CUSTOM_OBJECT");
-				binaryWriter.Write(1300);
+				binaryWriter.Write(1310);
 				binaryWriter.Write(this.type.ToString());
 				binaryWriter.Write(this.scale_);
 				binaryWriter.Write(this.enabledTextureColor_);

+ 1 - 1
Assembly-CSharp/BasePhotoWindowManager.cs

@@ -153,7 +153,7 @@ public abstract class BasePhotoWindowManager : MonoBehaviour
 			using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
 			{
 				binaryWriter.Write(this.save_header_uidata);
-				binaryWriter.Write(1300);
+				binaryWriter.Write(1310);
 				binaryWriter.Write(this.save_data_.Count);
 				foreach (KeyValuePair<string, Dictionary<string, Dictionary<string, string>>> keyValuePair3 in this.save_data_)
 				{

+ 7 - 7
Assembly-CSharp/CMSystem.cs

@@ -651,17 +651,17 @@ public class CMSystem
 				{
 					if (type == Product.Type.EnPublic)
 					{
-						text = string.Empty;
+						text = "https://com3d2-shop-en-inm.s-court.me";
 					}
 				}
 				else
 				{
-					text = string.Empty;
+					text = "https://com3d2-shop-en.s-court.me";
 				}
 			}
 			else
 			{
-				text = string.Empty;
+				text = "https://com3d2-shop-inm.s-court.me";
 			}
 			if (Product.type == Product.Type.JpAdult)
 			{
@@ -855,7 +855,7 @@ public class CMSystem
 	{
 		XElement xelement = new XElement("Config", new object[]
 		{
-			new XAttribute("Version", 1300),
+			new XAttribute("Version", 1310),
 			new XElement("System", new XElement("SysButtonShowAlways", this.SysButtonShowAlways)),
 			new XElement("Screen", new object[]
 			{
@@ -1203,7 +1203,7 @@ public class CMSystem
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_SYSTEM2");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		binaryWriter.Write(this.m_dicEditColorPresetData.Count);
 		foreach (KeyValuePair<int, Dictionary<string, int>> keyValuePair in this.m_dicEditColorPresetData)
 		{
@@ -1837,7 +1837,7 @@ public class CMSystem
 
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1300;
+			this.m_nVersion = 1310;
 		}
 
 		public void OnAfterDeserialize()
@@ -1845,7 +1845,7 @@ public class CMSystem
 		}
 
 		[SerializeField]
-		private int m_nVersion = 1300;
+		private int m_nVersion = 1310;
 
 		[SerializeField]
 		private string m_strDShowFilter = "Microsoft DTV-DVD Video Decoder";

+ 3 - 0
Assembly-CSharp/CastPreviewHelper.cs

@@ -60,8 +60,11 @@ public class CastPreviewHelper
 		case MPN.lip:
 			return CastPreviewHelper.PartsDetailType.唇;
 		case MPN.eye:
+		case MPN.folder_eye:
+		case MPN.folder_eyewhite:
 			return CastPreviewHelper.PartsDetailType.目;
 		case MPN.eye_hi:
+		case MPN.eye_hi_r:
 			return CastPreviewHelper.PartsDetailType.目ハイライト;
 		case MPN.wear:
 			return CastPreviewHelper.PartsDetailType.トップス;

+ 14 - 6
Assembly-CSharp/CharacterMgr.cs

@@ -991,7 +991,7 @@ public class CharacterMgr : MonoBehaviour
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		string result = string.Empty;
 		binaryWriter.Write("CM3D2_PRESET_S");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		binaryWriter.Write((char)presset_type);
 		maid.SerializePropLowCapacity(binaryWriter);
 		maid.SerializeMultiColor(binaryWriter);
@@ -1008,7 +1008,7 @@ public class CharacterMgr : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_PRESET");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		binaryWriter.Write((int)f_type);
 		if (texture2D != null)
 		{
@@ -1054,7 +1054,7 @@ public class CharacterMgr : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_PRESET");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		binaryWriter.Write((int)f_type);
 		if (texture2D != null)
 		{
@@ -1318,7 +1318,7 @@ public class CharacterMgr : MonoBehaviour
 	public bool Serialize(BinaryWriter bwWrite)
 	{
 		bwWrite.Write("CM3D2_CHR_MGR");
-		bwWrite.Write(1300);
+		bwWrite.Write(1310);
 		this.m_PlayerStatus.Serialize(bwWrite);
 		bwWrite.Write(this.m_listStockMan.Count);
 		for (int i = 0; i < this.m_listStockMan.Count; i++)
@@ -1527,8 +1527,16 @@ public class CharacterMgr : MonoBehaviour
 					maid.status.lastName = this.lastName;
 					if (Product.supportMultiLanguage)
 					{
-						maid.status.firstName = LocalizationManager.GetTranslation(this.firstNameTerm, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.defaultLanguage));
-						maid.status.lastName = LocalizationManager.GetTranslation(this.lastNameTerm, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.defaultLanguage));
+						string translation = LocalizationManager.GetTranslation(this.lastNameTerm, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.defaultLanguage));
+						if (!string.IsNullOrEmpty(translation))
+						{
+							maid.status.lastName = translation;
+						}
+						translation = LocalizationManager.GetTranslation(this.firstNameTerm, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.defaultLanguage));
+						if (!string.IsNullOrEmpty(translation))
+						{
+							maid.status.firstName = translation;
+						}
 					}
 				}
 				CharacterMgr.Preset preset = SaveData.GetPreset(this);

+ 2 - 2
Assembly-CSharp/ControllerShortcutSettingData.cs

@@ -33,7 +33,7 @@ public static class ControllerShortcutSettingData
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1300;
+			this.m_nVersion = 1310;
 		}
 
 		public void OnAfterDeserialize()
@@ -261,7 +261,7 @@ public static class ControllerShortcutSettingData
 		private const string CONF_NAME = "OvrControllerShortcutConfig.json";
 
 		[SerializeField]
-		private int m_nVersion = 1300;
+		private int m_nVersion = 1310;
 
 		[SerializeField]
 		private bool IsDirectShortcutMode = true;

+ 18 - 45
Assembly-CSharp/DanceSelect.cs

@@ -167,7 +167,6 @@ public class DanceSelect : WfScreenChildren
 		EventDelegate.Add(this.m_SubCancelButton.onClick, new EventDelegate.Callback(this.OnClickCancelButton));
 		GameObject gameObject2 = this.m_SubOkButton.transform.parent.gameObject;
 		EventDelegate.Add(this.m_BackButton.onClick, new EventDelegate.Callback(this.OnClickCancelButton));
-		EventDelegate.Add(this.m_ReleaseButton.onClick, new EventDelegate.Callback(this.SwitchAllRelease));
 		this.m_DanceShowPanel.SetActive(false);
 		this.m_DanceModePanel.gameObject.SetActive(false);
 		switch (RhythmAction_Mgr.NowDance)
@@ -373,13 +372,6 @@ public class DanceSelect : WfScreenChildren
 		}
 	}
 
-	private void SwitchAllRelease()
-	{
-		this.m_AllRelease = !this.m_AllRelease;
-		this.m_ReleaseButton.defaultColor = (this.m_ReleaseButton.hover = ((!this.m_AllRelease) ? this.m_ReleaseOffCol : this.m_ReleaseOnCol));
-		this.CreateMusicPanel();
-	}
-
 	public void Start()
 	{
 		this.CreateMusicPanel();
@@ -485,27 +477,6 @@ public class DanceSelect : WfScreenChildren
 		}
 	}
 
-	public override void Update()
-	{
-		base.Update();
-		if (GameMain.Instance.MainCamera.IsFadeProc() || GameMain.Instance.MainCamera.IsFadeOut())
-		{
-			return;
-		}
-		if (this.m_ReleaseButton.gameObject.activeSelf)
-		{
-			return;
-		}
-		foreach (KeyCode key in this.m_ReleseShowKey)
-		{
-			if (!Input.GetKey(key))
-			{
-				return;
-			}
-		}
-		this.m_ReleaseButton.gameObject.SetActive(true);
-	}
-
 	private void Init()
 	{
 		this.m_DanceModePanel.alpha = 0f;
@@ -557,26 +528,28 @@ public class DanceSelect : WfScreenChildren
 		UIWFTabButton uiwftabButton = null;
 		foreach (KeyValuePair<DanceData, UIWFTabButton> keyValuePair in this.m_SongPlatelUIPair)
 		{
+			bool flag3 = true;
+			if (!this.m_AllRelease)
+			{
+				flag3 &= (keyValuePair.Key.IsPlayable || (this.m_ExistOnlyRelease && keyValuePair.Key.scenario_progress == this.m_OnlyRelease));
+			}
 			if (RhythmAction_Mgr.IsRhythmGameMode)
 			{
-				keyValuePair.Value.transform.parent.gameObject.SetActive(keyValuePair.Key.RhythmGameCorrespond);
-				if (!keyValuePair.Key.RhythmGameCorrespond)
-				{
-					if (DanceSelect.m_SelectedDance.Count<DanceData>() > 0 && DanceSelect.m_SelectedDance.First<DanceData>() == keyValuePair.Key)
-					{
-						keyValuePair.Value.SetSelect(false);
-						flag = true;
-					}
-				}
-				else if (flag && !flag2)
+				flag3 &= keyValuePair.Key.RhythmGameCorrespond;
+			}
+			keyValuePair.Value.transform.parent.gameObject.SetActive(flag3);
+			if (!flag3)
+			{
+				if (DanceSelect.m_SelectedDance.Count<DanceData>() > 0 && DanceSelect.m_SelectedDance.First<DanceData>() == keyValuePair.Key)
 				{
-					flag2 = true;
-					keyValuePair.Value.SetSelect(true);
+					keyValuePair.Value.SetSelect(false);
+					flag = true;
 				}
 			}
-			else
+			else if (flag && !flag2)
 			{
-				keyValuePair.Value.transform.parent.gameObject.SetActive(true);
+				flag2 = true;
+				keyValuePair.Value.SetSelect(true);
 			}
 			if (keyValuePair.Value.transform.parent.gameObject.activeSelf)
 			{
@@ -1098,11 +1071,11 @@ public class DanceSelect : WfScreenChildren
 	{
 		get
 		{
-			return DanceSetting.Settings.AllRelease;
+			return false;
 		}
 		set
 		{
-			DanceSetting.Settings.AllRelease = value;
+			DanceSetting.Settings.AllRelease = false;
 		}
 	}
 

+ 1 - 1
Assembly-CSharp/DanceSetting.cs

@@ -623,7 +623,7 @@ public class DanceSetting : MonoBehaviour
 			{
 				flag &= uiinspectorSetting.UseVR;
 			}
-			if (uiinspectorSetting.MyType == DanceSetting.SettingType.SubtitleOn)
+			if (Product.isJapan && uiinspectorSetting.MyType == DanceSetting.SettingType.SubtitleOn)
 			{
 				flag = false;
 			}

+ 1 - 1
Assembly-CSharp/DeskManager.cs

@@ -143,7 +143,7 @@ internal class DeskManager
 	public static void SerializeSingleSaveData(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_DeskCustomize");
-		binary.Write(1300);
+		binary.Write(1310);
 		binary.Write(DeskManager.item_inst_data_.Count);
 		for (int i = 0; i < DeskManager.item_inst_data_.Count; i++)
 		{

+ 3 - 3
Assembly-CSharp/DynamicBone.cs

@@ -30,7 +30,7 @@ public class DynamicBone : MonoBehaviour
 			return false;
 		};
 		f_bw.Write("CM3D21_PHY");
-		f_bw.Write(1300);
+		f_bw.Write(1310);
 		if (this.m_Root == null)
 		{
 			NDebug.MessageBox("エラー", "×物理ルートボーンが設定されていません。");
@@ -94,7 +94,7 @@ public class DynamicBone : MonoBehaviour
 	public bool SerializeWriteCollider(BinaryWriter f_bw, string f_strFileName)
 	{
 		f_bw.Write("CM3D21_COL");
-		f_bw.Write(1300);
+		f_bw.Write(1310);
 		if (this.m_Colliders == null || this.m_Colliders.Count == 0)
 		{
 			NDebug.MessageBox("エラー", "×物理Collidersは空です。");
@@ -110,7 +110,7 @@ public class DynamicBone : MonoBehaviour
 			else
 			{
 				f_bw.Write(this.m_Colliders[i].TypeName);
-				this.m_Colliders[i].Serialize(f_bw, 1300);
+				this.m_Colliders[i].Serialize(f_bw, 1310);
 			}
 		}
 		this.m_ColliderFileName = f_strFileName;

+ 1 - 1
Assembly-CSharp/DynamicSkirtBone.cs

@@ -18,7 +18,7 @@ public class DynamicSkirtBone : MonoBehaviour
 	public bool SerializeWrite(BinaryWriter f_bw)
 	{
 		f_bw.Write("CM3D21_PSK");
-		f_bw.Write(1300);
+		f_bw.Write(1310);
 		f_bw.Write(this.m_fPanierRadius);
 		this.SerializeWriteAnimationCurve(f_bw, this.m_PanierRadiusDistrib);
 		int num = (this.m_PanierRadiusDistribGroup == null) ? 0 : this.m_PanierRadiusDistribGroup.Length;

+ 1 - 1
Assembly-CSharp/EditMod.cs

@@ -303,7 +303,7 @@ public class EditMod : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_MOD");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		binaryWriter.Write(value);
 		binaryWriter.Write(text2.ToLower());
 		binaryWriter.Write(value2);

+ 1 - 1
Assembly-CSharp/EmpireLifeModeManager.cs

@@ -477,7 +477,7 @@ public class EmpireLifeModeManager : MonoBehaviour
 	public bool Serialize(BinaryWriter brWrite)
 	{
 		brWrite.Write("CM3D21_LIFE_MODE_MGR");
-		brWrite.Write(1300);
+		brWrite.Write(1310);
 		brWrite.Write("2");
 		DataArray<int, byte> saveDataScenarioExecuteCountArray = this.m_SaveDataScenarioExecuteCountArray;
 		if (EmpireLifeModeManager.<>f__mg$cache1 == null)

+ 15 - 1
Assembly-CSharp/FaceWindow.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -47,6 +48,10 @@ public class FaceWindow : BaseMaidPhotoWindow
 	public override void Start()
 	{
 		base.Start();
+		if (Product.isPublic)
+		{
+			this.PartVisibleCheckBox.gameObject.SetActive(false);
+		}
 		this.placement_window_ = (base.mgr.GetWindow(PhotoWindowManager.WindowType.Placement) as PlacementWindow);
 		this.motion_window_ = (base.mgr.GetWindow(PhotoWindowManager.WindowType.Motion) as MotionWindow);
 		this.man_edit_mgr_ = new PhotoManEditManager();
@@ -105,7 +110,16 @@ public class FaceWindow : BaseMaidPhotoWindow
 			WFCheckBox component2 = transform.GetChild(j).GetComponent<WFCheckBox>();
 			component2.check = false;
 			component2.enabled = false;
-			this.add_option_dic_.Add(component2.GetComponentInChildren<UILabel>().text, component2);
+			if (!Product.supportMultiLanguage)
+			{
+				this.add_option_dic_.Add(component2.GetComponentInChildren<UILabel>().text, component2);
+			}
+			else
+			{
+				string term = component2.GetComponentInChildren<UILabel>().GetComponent<Localize>().Term;
+				string translation = LocalizationManager.GetTranslation(term, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.Language.Japanese));
+				this.add_option_dic_.Add(translation, component2);
+			}
 			component2.onClick.Add(new Action<WFCheckBox>(this.OnClickCheckBoxAddOption));
 		}
 		this.CheckOpenMouse.check = false;

+ 4 - 0
Assembly-CSharp/Facility.cs

@@ -43,6 +43,10 @@ public class Facility : MonoBehaviour
 			for (int j = 0; j < count; j++)
 			{
 				KeyValuePair<bool, string> value = new KeyValuePair<bool, string>(true, list2[j].Value);
+				if (Product.isPublic && (list[j] == MPN.panz || list[j] == MPN.bra))
+				{
+					value = new KeyValuePair<bool, string>(false, list2[j].Value);
+				}
 				this.m_EditCostumeArray.Add(list[j], value);
 			}
 		}

+ 1 - 1
Assembly-CSharp/FacilityManager.cs

@@ -657,7 +657,7 @@ public class FacilityManager : MonoBehaviour
 		Stopwatch stopwatch = new Stopwatch();
 		stopwatch.Start();
 		brWrite.Write("CM3D21_FACILITY_MGR");
-		brWrite.Write(1300);
+		brWrite.Write(1310);
 		brWrite.Write("5");
 		int num = 0;
 		for (int i = 0; i < this.m_FacilityArray.Count; i++)

+ 0 - 23
Assembly-CSharp/FullBodyIKCtrl.cs

@@ -6,14 +6,6 @@ using UnityEngine;
 
 public class FullBodyIKCtrl : MonoBehaviour
 {
-	private HeightIKCtrlData m_MouthIKData
-	{
-		get
-		{
-			return (!this.m_strIKDataPair.ContainsKey("口")) ? null : ((HeightIKCtrlData)this.m_strIKDataPair["口"]);
-		}
-	}
-
 	public Transform BodyTarget { get; private set; }
 
 	public bool IsUpdateEnd { get; private set; }
@@ -281,7 +273,6 @@ public class FullBodyIKCtrl : MonoBehaviour
 		this.SafeAddFullbodyIKData("右足", "右膝", "右腿", this.m_FullbodyIK.solver.rightFootEffector, this.m_FullbodyIK.solver.rightLegChain, this.m_FullbodyIK.solver.rightLegMapping, this.m_FullbodyIK.solver.rightThighEffector, false);
 		this.GetIKData<BipedIKCtrlData>("左足", false).Chain.pull = 0f;
 		this.GetIKData<BipedIKCtrlData>("右足", false).Chain.pull = 0f;
-		this.SafeAddCCDIKData("口", ref this.m_MouthIK, true, true, IKManager.BoneType.Mouth, true);
 		if (!this.BodyTarget)
 		{
 			Transform transform = this.m_IKTgtRoot.Find(this.BodyEffector.bone.name);
@@ -297,16 +288,6 @@ public class FullBodyIKCtrl : MonoBehaviour
 
 	public void IKUpdate()
 	{
-		if (this.TgtMaid.boMAN)
-		{
-			this.m_Mouth.localPosition = new Vector3(-0.013f, 0.1115f, 0f);
-		}
-		else
-		{
-			this.AttachPointTransCpy(this.m_Mouth, "head", "歯", false);
-			this.AttachPointTransCpy(this.m_NippleL, "body", "乳首左", false);
-			this.AttachPointTransCpy(this.m_NippleR, "body", "乳首右", false);
-		}
 		this.BodyEffector.positionWeight = 0f;
 		this.BodyTarget.position = this.BodyEffector.bone.position;
 		this.DoHeightCover = false;
@@ -333,10 +314,6 @@ public class FullBodyIKCtrl : MonoBehaviour
 				this.BodyCtrlData.Update();
 			}
 			bool flag = this.m_FullbodyDataList.Any((BipedIKCtrlData data) => data.IsIKExec && !data.OldIkExec);
-			if (this.m_MouthIKData.IsIKExec)
-			{
-				this.m_MouthIKData.Update();
-			}
 			flag |= (this.BodyEffector.positionWeight == 1f);
 			if (flag)
 			{

+ 2 - 19
Assembly-CSharp/GameMain.cs

@@ -678,7 +678,7 @@ public class GameMain : MonoSingleton<GameMain>
 		serializeHeader.strComment = f_strComment;
 		serializeHeader.productTypeID = (int)Product.type;
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		this.SerializeWriteHeader(binaryWriter, serializeHeader);
 		binaryWriter.Write("bookmark_kk_01");
 		GameMain.BinaryBookmark binaryBookmark = new GameMain.BinaryBookmark(binaryWriter);
@@ -796,7 +796,7 @@ public class GameMain : MonoSingleton<GameMain>
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		this.SerializeWriteHeader(binaryWriter, saveDataHeader);
 		binaryWriter.Write(array, (int)saveDataHeader.lHeaderSize, (int)((long)array.Length - saveDataHeader.lHeaderSize));
 		File.WriteAllBytes(path, memoryStream.ToArray());
@@ -1317,23 +1317,6 @@ public class GameMain : MonoSingleton<GameMain>
 
 	private void Update()
 	{
-		if (Product.supportMultiLanguage && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.F6))
-		{
-			string[] names = Enum.GetNames(typeof(Product.Language));
-			for (int i = 0; i < names.Length; i++)
-			{
-				if (names[i] == Product.systemLanguage.ToString())
-				{
-					string value = names[0];
-					if (i + 1 < names.Length)
-					{
-						value = names[i + 1];
-					}
-					Product.systemLanguage = (Product.Language)Enum.Parse(typeof(Product.Language), value);
-					break;
-				}
-			}
-		}
 		if (GameMain.Instance.VRMode)
 		{
 			NInput.SelfUpdateVR();

+ 1 - 1
Assembly-CSharp/GameModeManager.cs

@@ -31,7 +31,7 @@ public static class GameModeManager
 	public static bool Serialize(BinaryWriter brWrite)
 	{
 		brWrite.Write("CM3D21_GAME_MODE_MGR");
-		brWrite.Write(1300);
+		brWrite.Write(1310);
 		brWrite.Write(1);
 		brWrite.Write((int)GameModeManager.m_NowGameModeType);
 		return true;

+ 9 - 2
Assembly-CSharp/GameUty.cs

@@ -497,6 +497,7 @@ public class GameUty
 				GameUty.PathList = new List<string>();
 				NDebug.Assert("paths.datを読み込めませんでした", false);
 			}
+			GameUty.PathList.Add("jp");
 			AddFolderOrArchive("csv");
 			foreach (string text6 in GameUty.PathList)
 			{
@@ -729,6 +730,12 @@ public class GameUty
 			Debug.Log("■■■■■■■■■■■■■■■■■■■■" + stopWatch.Stop().ToString() + " ms");
 		}
 		GameUty.m_FileSystem.AddAutoPathForAllFolder();
+		if (Product.isPublic && !GameUty.m_FileSystem.IsExistentFile("21C399027026.dat"))
+		{
+			NDebug.MessageBox("Error", Product.type.ToString() + " : 21C399027026.dat");
+			Application.Quit();
+			return;
+		}
 		GameUty.BgFiles = new Dictionary<string, AFileSystemBase>();
 		string[] list = GameUty.m_FileSystem.GetList("bg", AFileSystemBase.ListType.AllFile);
 		if (list != null && 0 < list.Length)
@@ -1397,14 +1404,14 @@ public class GameUty
 
 	public static string GetBuildVersionText()
 	{
-		int num = 1300;
+		int num = 1310;
 		return (num >= 1000) ? ((float)num / 1000f).ToString("F2") : ((float)num / 100f).ToString("F2");
 	}
 
 	public static string GetGameVersionText()
 	{
 		string text = "COM3D2x64.exe";
-		int num = 1300;
+		int num = 1310;
 		string path = Path.GetFullPath(".\\") + "update.lst";
 		string[] array = new string[0];
 		if (File.Exists(path))

+ 2 - 2
Assembly-CSharp/HandSignShortcut.cs

@@ -506,7 +506,7 @@ public class HandSignShortcut : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1300;
+			this.m_nVersion = 1310;
 		}
 
 		public void OnAfterDeserialize()
@@ -815,7 +815,7 @@ public class HandSignShortcut : MonoBehaviour
 		private const string CONF_NAME = "MaidFingerDataList.json";
 
 		[SerializeField]
-		private int m_nVersion = 1300;
+		private int m_nVersion = 1310;
 
 		[SerializeField]
 		private List<HandSignShortcut.MaidFingerData> MaidFingerDataList = new List<HandSignShortcut.MaidFingerData>();

+ 14 - 8
Assembly-CSharp/I2/Loc/LanguageSource.cs

@@ -422,19 +422,19 @@ namespace I2.Loc
 			return stringBuilder.ToString();
 		}
 
-		public string Import_CSV(string Category, string CSVstring, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace, char Separator = ',')
+		public string Import_CSV(string Category, string CSVstring, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace, char Separator = ',', LanguageSource.CsvSetTranslationPrevDelegate callBackSetTranslationPrev = null)
 		{
 			List<string[]> csv = LocalizationReader.ReadCSV(CSVstring, Separator);
-			return this.Import_CSV(Category, csv, UpdateMode);
+			return this.Import_CSV(Category, csv, UpdateMode, callBackSetTranslationPrev);
 		}
 
-		public string Import_I2CSV(string Category, string I2CSVstring, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace)
+		public string Import_I2CSV(string Category, string I2CSVstring, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace, LanguageSource.CsvSetTranslationPrevDelegate callBackSetTranslationPrev = null)
 		{
 			List<string[]> csv = LocalizationReader.ReadI2CSV(I2CSVstring);
-			return this.Import_CSV(Category, csv, UpdateMode);
+			return this.Import_CSV(Category, csv, UpdateMode, callBackSetTranslationPrev);
 		}
 
-		public string Import_CSV(string Category, List<string[]> CSV, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace)
+		public string Import_CSV(string Category, List<string[]> CSV, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace, LanguageSource.CsvSetTranslationPrevDelegate callBackSetTranslationPrev = null)
 		{
 			List<string[]> list = new List<string[]>(CSV);
 			CSV.Clear();
@@ -587,7 +587,7 @@ namespace I2.Loc
 						}
 						else if (UpdateMode == eSpreadsheetUpdateMode.AddNewTerms)
 						{
-							goto IL_4D3;
+							goto IL_4F2;
 						}
 						if (num2 > 0)
 						{
@@ -614,13 +614,17 @@ namespace I2.Loc
 									{
 										text6 = null;
 									}
+									if (callBackSetTranslationPrev != null)
+									{
+										callBackSetTranslationPrev(this.mLanguages[num8], ref text6, ref text5);
+									}
 									termData2.SetTranslation(num8, text6, text5);
 								}
 							}
 							num7++;
 						}
 					}
-					IL_4D3:
+					IL_4F2:
 					k++;
 				}
 				return string.Empty;
@@ -966,7 +970,7 @@ namespace I2.Loc
 								int num5 = JsonString.IndexOf("[/i2csv]", num4, StringComparison.Ordinal);
 								string i2CSVstring = JsonString.Substring(num4, num5 - num4);
 								i = JsonString.IndexOf("[i2category]", num5, StringComparison.Ordinal);
-								this.Import_I2CSV(category, i2CSVstring, UpdateMode);
+								this.Import_I2CSV(category, i2CSVstring, UpdateMode, null);
 								if (UpdateMode == eSpreadsheetUpdateMode.Replace)
 								{
 									UpdateMode = eSpreadsheetUpdateMode.Merge;
@@ -1635,6 +1639,8 @@ namespace I2.Loc
 
 		public string mTerm_AppName;
 
+		public delegate void CsvSetTranslationPrevDelegate(LanguageData setTargetLanguage, ref string setTranslation, ref string setSpecialization);
+
 		public enum eGoogleUpdateFrequency
 		{
 			Always,

+ 1 - 1
Assembly-CSharp/Kasizuki/KasizukiManager.cs

@@ -864,7 +864,7 @@ namespace Kasizuki
 		public void Serialize(BinaryWriter bw)
 		{
 			bw.Write("COM3D2_KASIZUKI");
-			bw.Write(1300);
+			bw.Write(1310);
 			this.SerializeOriginHeader(bw);
 			foreach (KeyValuePair<int, KasizukiManager.SaveData> keyValuePair in this.m_SaveDataArray)
 			{

+ 1 - 1
Assembly-CSharp/LoadReplaceMaid.cs

@@ -93,7 +93,7 @@ public class LoadReplaceMaid : MonoBehaviour
 					{
 						Localize.ArgsPair.Create((num + 1).ToString())
 					};
-					Utility.SetLocalizeTerm(component, "ScenePhotoMode/シチュ/ダイアログ/ポジション{0}に読み込むメイドを選択してください。", false);
+					Utility.SetLocalizeTerm(component, "ScenePhotoMode/シチュ/ダイアログ/ポジション{0}に読み込むメイドを選択してください。", true);
 				}
 				else
 				{

+ 38 - 3
Assembly-CSharp/Maid.cs

@@ -628,6 +628,19 @@ public class Maid : MonoBehaviour
 				{
 					mp.nTempFileNameRID = f_nFileNameRID;
 				}
+				if (Product.isPublic)
+				{
+					if (mp.idx == 71 && filename.ToLower() != "pants030_i_.menu")
+					{
+						this.SetProp(mp, "pants030_i_.menu", 0, f_bTemp, f_bNoScale);
+						return;
+					}
+					if (mp.idx == 70 && filename.ToLower() != "bra030_i_.menu")
+					{
+						this.SetProp(mp, "bra030_i_.menu", 0, f_bTemp, f_bNoScale);
+						return;
+					}
+				}
 			}
 		}
 		else
@@ -710,6 +723,19 @@ public class Maid : MonoBehaviour
 						}
 					}
 				}
+				else
+				{
+					if (mp.idx == 71 && filename.ToLower() != "pants030_i_.menu")
+					{
+						this.SetProp(mp, "pants030_i_.menu", 0, f_bTemp, f_bNoScale);
+						return;
+					}
+					if (mp.idx == 70 && filename.ToLower() != "bra030_i_.menu")
+					{
+						this.SetProp(mp, "bra030_i_.menu", 0, f_bTemp, f_bNoScale);
+						return;
+					}
+				}
 			}
 		}
 		if (mp.boTempDut && mp.boDut)
@@ -1045,6 +1071,15 @@ public class Maid : MonoBehaviour
 
 	public void AllProcProp()
 	{
+		if (Product.isPublic)
+		{
+			this.AllProcPropSeqStart();
+			while (this.boAllProcPropBUSY)
+			{
+				this.AllProcPropSeq();
+			}
+			return;
+		}
 		this.boModelChg = false;
 		float realtimeSinceStartup = Time.realtimeSinceStartup;
 		for (;;)
@@ -1343,7 +1378,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeProp(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MPROP_LIST");
-		f_bwWrite.Write(1300);
+		f_bwWrite.Write(1310);
 		f_bwWrite.Write(this.m_dicMaidProp.Count);
 		int num = 0;
 		foreach (KeyValuePair<string, MaidProp> keyValuePair in this.m_dicMaidProp)
@@ -1377,7 +1412,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeMisc(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_MISC");
-		f_bwWrite.Write(1300);
+		f_bwWrite.Write(1310);
 		f_bwWrite.Write(this.m_nActiveSlotNo);
 		if (this.m_texIcon != null)
 		{
@@ -1402,7 +1437,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeBody(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_BODY");
-		f_bwWrite.Write(1300);
+		f_bwWrite.Write(1310);
 		return true;
 	}
 

+ 1 - 1
Assembly-CSharp/MaidParts.cs

@@ -37,7 +37,7 @@ public class MaidParts : MonoBehaviour
 	public unsafe bool Serialize(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MULTI_COL");
-		f_bwWrite.Write(1300);
+		f_bwWrite.Write(1310);
 		f_bwWrite.Write(this.m_aryPartsColor.Length);
 		for (int i = 0; i < this.m_aryPartsColor.Length; i++)
 		{

+ 1 - 1
Assembly-CSharp/MaidProp.cs

@@ -8,7 +8,7 @@ public class MaidProp
 	public bool Serialize(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MPROP");
-		f_bwWrite.Write(1300);
+		f_bwWrite.Write(1310);
 		f_bwWrite.Write(this.idx);
 		f_bwWrite.Write(this.name);
 		f_bwWrite.Write(this.type);

+ 2 - 2
Assembly-CSharp/MaidStatus/Feature.cs

@@ -115,7 +115,7 @@ namespace MaidStatus
 
 		private const string typeNameForErrorLog = "特徴";
 
-		public const string termRootText = "MaidStatus/性癖タイプ/";
+		public const string termRootText = "MaidStatus/特徴タイプ/";
 
 		private static CsvCommonIdManager commonIdManager;
 
@@ -152,7 +152,7 @@ namespace MaidStatus
 			{
 				get
 				{
-					return "MaidStatus/性癖タイプ/" + this.uniqueName;
+					return "MaidStatus/特徴タイプ/" + this.uniqueName;
 				}
 			}
 

+ 2 - 1
Assembly-CSharp/MaidStatus/Status.cs

@@ -958,6 +958,7 @@ namespace MaidStatus
 				return false;
 			}
 			this.personal_ = data;
+			this.additionalRelation = this.additionalRelation;
 			if (this.personal_.oldPersonal)
 			{
 				this.heroineType = HeroineType.Transfer;
@@ -1316,7 +1317,7 @@ namespace MaidStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_MAID_STATUS");
-			binary.Write(1300);
+			binary.Write(1310);
 			binary.Write(this.guid);
 			binary.Write(this.creationTime);
 			binary.Write((short)this.heroineType);

+ 15 - 0
Assembly-CSharp/MaidStatus/SubMaid.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -159,6 +160,19 @@ namespace MaidStatus
 				status.subCharaData = this;
 				status.lastName = characterStatus.lastName;
 				status.firstName = characterStatus.firstName;
+				if (Product.supportMultiLanguage)
+				{
+					string translation = LocalizationManager.GetTranslation(characterStatus.lastNameTerm, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.defaultLanguage));
+					if (!string.IsNullOrEmpty(translation))
+					{
+						status.lastName = translation;
+					}
+					translation = LocalizationManager.GetTranslation(characterStatus.firstNameTerm, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(Product.defaultLanguage));
+					if (!string.IsNullOrEmpty(translation))
+					{
+						status.firstName = translation;
+					}
+				}
 				status.contract = characterStatus.contract;
 				status.initSeikeiken = (status.seikeiken = characterStatus.initSeikeiken);
 				status.likability = characterStatus.likability;
@@ -266,6 +280,7 @@ namespace MaidStatus
 				public CharacterStatus(int id, string uniqueName, bool kissSideNPC, CsvParser basicCsv, int lineY)
 				{
 					this.id = id;
+					this.uniqueName = uniqueName;
 					this.kissSideNPC = kissSideNPC;
 					int num = 4;
 					this.lastName = basicCsv.GetCellAsString(num++, lineY);

+ 79 - 66
Assembly-CSharp/Menu.cs

@@ -195,18 +195,18 @@ public class Menu : MonoBehaviour
 				}
 				if (stringCom == "name")
 				{
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "ver")
 				{
 					TBodySkin slot2 = body.GetSlot(stringList[1]);
 					version = int.Parse(stringList[2]);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "アイテム")
 				{
 					Menu.SetMaidItemTemp(maid, stringList[1], f_bTemp);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "アイテム条件")
 				{
@@ -305,7 +305,7 @@ public class Menu : MonoBehaviour
 					NDebug.Assert("アイテム条件が不正です。「なら」が必要です。\n" + text7, false);
 					goto IL_414;
 					IL_414:
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "if")
 				{
@@ -345,7 +345,7 @@ public class Menu : MonoBehaviour
 					}
 					goto IL_594;
 					IL_594:
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "アイテムパラメータ")
 				{
@@ -365,7 +365,7 @@ public class Menu : MonoBehaviour
 					Debug.LogError("アイテムパラメータ 命令の引数が不正です。SlotNameを明示的に指定しする必要があります。アイテムパラメータ <スロット名> <変数名> <値> の順です。" + text7);
 					goto IL_609;
 					IL_609:
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "半脱ぎ" || stringCom == "リソース参照")
 				{
@@ -401,22 +401,22 @@ public class Menu : MonoBehaviour
 					Menu.m_dicResourceRef.Add(hashCode, sortedDictionary);
 					goto IL_6E0;
 					IL_6E0:
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "set")
 				{
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "setname")
 				{
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "setslotitem")
 				{
 					string tag = stringList[1];
 					uint val = uint.Parse(stringList[2]);
 					maid.SetProp(tag, (int)val, false);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "additem")
 				{
@@ -457,25 +457,25 @@ public class Menu : MonoBehaviour
 					}
 					body.AddItem((MPN)Enum.Parse(typeof(MPN), text9, true), text14, stringList[1], attachSlot, attachName, f_bTemp, version);
 					body.SetVisibleNodeSlot(text14, true, "_ALL_");
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "nofloory")
 				{
 					TBody.SlotID index = (TBody.SlotID)Enum.Parse(typeof(TBody.SlotID), stringList[1], true);
 					body.goSlot[(int)index].m_bHitFloorY = false;
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "saveitem")
 				{
 					text5 = stringList[1];
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "category")
 				{
 					text9 = stringList[1];
 					flag2 = (text9 == "skin");
 					flag3 = (text9 == "haircolor");
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "maskitem")
 				{
@@ -487,7 +487,7 @@ public class Menu : MonoBehaviour
 					}
 					goto IL_92C;
 					IL_92C:
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "delitem")
 				{
@@ -497,27 +497,27 @@ public class Menu : MonoBehaviour
 						slotname3 = stringList[1];
 					}
 					body.DelItem((MPN)Enum.Parse(typeof(MPN), text9, true), slotname3);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "node消去")
 				{
 					body.SetVisibleNodeSlot(text9, false, stringList[1]);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "node表示")
 				{
 					body.SetVisibleNodeSlot(text9, true, stringList[1]);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "パーツnode消去")
 				{
 					body.SetVisibleNodeSlotParts(text9, stringList[1], false, stringList[2]);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "パーツnode表示")
 				{
 					body.SetVisibleNodeSlotParts(text9, stringList[1], true, stringList[2]);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "color")
 				{
@@ -526,14 +526,14 @@ public class Menu : MonoBehaviour
 					string prop_name = stringList[3];
 					Color col = new Color(float.Parse(stringList[4]) / 255f, float.Parse(stringList[5]) / 255f, float.Parse(stringList[6]) / 255f, float.Parse(stringList[7]) / 255f);
 					body.ChangeCol(name, matno, prop_name, col);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "mancolor")
 				{
 					Color manColor = new Color(float.Parse(stringList[1]) / 255f, float.Parse(stringList[2]) / 255f, float.Parse(stringList[3]) / 255f, 1f);
 					maid.ManColor = manColor;
 					maid.ManColorUpdate();
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "tex" || stringCom == "テクスチャ変更")
 				{
@@ -575,6 +575,19 @@ public class Menu : MonoBehaviour
 							body.ChangeTex(text15, num4, "_OutlineToonRamp", "toonBlackA1.tex", null, MaidParts.PARTS_COLOR.SKIN_OUTLINE);
 						}
 					}
+					if (Product.isEnglish && !Product.isPublic && flag2 && text15 == "body" && num4 == 0 && text16.ToLower() == "_maintex")
+					{
+						if (parts_COLOR == MaidParts.PARTS_COLOR.SKIN)
+						{
+							body.ChangeShader(text15, num4, "CM3D2_Toony_Lighted_Outline_Tex_Texwidth");
+						}
+						else
+						{
+							body.ChangeShader(text15, num4, "CM3D2_Toony_Lighted_Outline_Texwidth");
+						}
+						body.ChangeTex(text15, num4, "_OutlineWidthTex", "skin_en_outline_width.tex", null, MaidParts.PARTS_COLOR.NONE);
+						flag = true;
+					}
 					body.ChangeTex(text15, num4, text16, filename, null, parts_COLOR);
 					if (parts_COLOR != MaidParts.PARTS_COLOR.NONE)
 					{
@@ -583,22 +596,22 @@ public class Menu : MonoBehaviour
 					if ((flag2 || flag3) && !flag)
 					{
 						body.RestoreShader(text15);
-						goto IL_CBC;
+						goto IL_D49;
 					}
-					goto IL_CBC;
-					IL_CBC:
-					goto IL_14B9;
+					goto IL_D49;
+					IL_D49:
+					goto IL_1546;
 				}
 				if (stringCom == "prop")
 				{
 					string tag2 = stringList[1];
 					string s = stringList[2];
 					maid.SetProp(tag2, int.Parse(s), false);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "テクスチャ乗算")
 				{
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "テクスチャ合成")
 				{
@@ -609,12 +622,12 @@ public class Menu : MonoBehaviour
 					if ((text9 == "accTatoo" || text9 == "hokuro") && !text.Contains("_del"))
 					{
 						body.MulTexSet(stringList[1], int.Parse(stringList[2]), stringList[3], int.Parse(stringList[4]), stringList[5], (GameUty.SystemMaterial)Enum.Parse(typeof(GameUty.SystemMaterial), stringList[6]), true, 0, 0, 0f, 0f, true, f_SubProp, 1f, 1024);
-						goto IL_E1F;
+						goto IL_EAC;
 					}
 					body.MulTexSet(stringList[1], int.Parse(stringList[2]), stringList[3], int.Parse(stringList[4]), stringList[5], (GameUty.SystemMaterial)Enum.Parse(typeof(GameUty.SystemMaterial), stringList[6]), false, 0, 0, 0f, 0f, false, null, 1f, 1024);
-					goto IL_E1F;
-					IL_E1F:
-					goto IL_14B9;
+					goto IL_EAC;
+					IL_EAC:
+					goto IL_1546;
 				}
 				if (stringCom == "テクスチャセット合成")
 				{
@@ -623,7 +636,7 @@ public class Menu : MonoBehaviour
 						NDebug.Assert("テクスチャセット合成 の引数が不正です。" + stringList.Length, false);
 					}
 					body.MulTexSet(stringList[1], int.Parse(stringList[2]), stringList[3], int.Parse(stringList[4]), stringList[5], (GameUty.SystemMaterial)Enum.Parse(typeof(GameUty.SystemMaterial), stringList[6]), true, 0, 0, 0f, 0f, true, null, 1f, 1024);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "マテリアル変更")
 				{
@@ -631,7 +644,7 @@ public class Menu : MonoBehaviour
 					int f_nMatNo = int.Parse(stringList[2]);
 					string f_strFileName = stringList[3];
 					body.ChangeMaterial(f_strSlotName, f_nMatNo, f_strFileName);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "shader")
 				{
@@ -640,14 +653,14 @@ public class Menu : MonoBehaviour
 					string f_strShaderFileName = stringList[3];
 					body.ChangeShader(f_strSlotName2, f_nMatNo2, f_strShaderFileName);
 					flag = true;
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "アタッチポイントの設定")
 				{
 					if (stringList.Length < 5)
 					{
 						Debug.LogError("アタッチポイントの設定引数の数が不正です。 " + text7 + " " + text3);
-						goto IL_FE2;
+						goto IL_106F;
 					}
 					Vector3 v = new Vector3(float.Parse(stringList[2]), float.Parse(stringList[3]), float.Parse(stringList[4]));
 					Quaternion q = Quaternion.identity;
@@ -660,9 +673,9 @@ public class Menu : MonoBehaviour
 						Debug.LogError("アタッチポイントの設定引数に角度指定がありません。 " + text7 + "  " + text3);
 					}
 					body.SetAttachPoint(slotname, stringList[1], v, q, f_bTemp);
-					goto IL_FE2;
-					IL_FE2:
-					goto IL_14B9;
+					goto IL_106F;
+					IL_106F:
+					goto IL_1546;
 				}
 				if (stringCom == "blendset")
 				{
@@ -675,12 +688,12 @@ public class Menu : MonoBehaviour
 						float val2 = float.Parse(stringList[3 + j * 2]);
 						body.Face.morph.SetValueBlendSet(blendSetName, tag3, val2);
 					}
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "paramset")
 				{
 					body.Face.NewParamSet(text7);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "commenttype")
 				{
@@ -689,18 +702,18 @@ public class Menu : MonoBehaviour
 						maid.status.partsDic.Add(stringList[1], string.Empty);
 					}
 					maid.status.partsDic[stringList[1]] = stringList[2];
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "useredit")
 				{
 					if (stringList[2].ToLower() == "material")
 					{
 						body.SetMaterialProperty(text9, stringList[3], int.Parse(stringList[4]), stringList[5], stringList[6], stringList[7], false);
-						goto IL_113A;
+						goto IL_11C7;
 					}
-					goto IL_113A;
-					IL_113A:
-					goto IL_14B9;
+					goto IL_11C7;
+					IL_11C7:
+					goto IL_1546;
 				}
 				if (stringCom == "bonemorph")
 				{
@@ -711,7 +724,7 @@ public class Menu : MonoBehaviour
 					if (stringList.Length == 9)
 					{
 						body.bonemorph.ChangeMorphPosValue(stringList[1], stringList[2], new Vector3(float.Parse(stringList[3]), float.Parse(stringList[4]), float.Parse(stringList[5])), new Vector3(float.Parse(stringList[6]), float.Parse(stringList[7]), float.Parse(stringList[8])));
-						goto IL_1300;
+						goto IL_138D;
 					}
 					string text18 = stringList[1].ToLower();
 					string strPropName = stringList[2];
@@ -723,17 +736,17 @@ public class Menu : MonoBehaviour
 						if (text18 == "pos")
 						{
 							body.bonemorph.ChangeMorphPosValue(strPropName, f_strBoneName, f_fAddMin, f_fAddMax);
-							goto IL_1300;
+							goto IL_138D;
 						}
 						if (text18 == "rot")
 						{
 							body.bonemorph.ChangeMorphRotatioValue(strPropName, f_strBoneName, f_fAddMin, f_fAddMax);
-							goto IL_1300;
+							goto IL_138D;
 						}
 						if (text18 == "scl")
 						{
 							body.bonemorph.ChangeMorphSclValue(strPropName, f_strBoneName, f_fAddMin, f_fAddMax);
-							goto IL_1300;
+							goto IL_138D;
 						}
 					}
 					Debug.LogError(string.Concat(new string[]
@@ -745,9 +758,9 @@ public class Menu : MonoBehaviour
 						" ",
 						text3
 					}));
-					goto IL_1300;
-					IL_1300:
-					goto IL_14B9;
+					goto IL_138D;
+					IL_138D:
+					goto IL_1546;
 				}
 				if (stringCom == "length")
 				{
@@ -756,7 +769,7 @@ public class Menu : MonoBehaviour
 						Debug.LogError("lengthの設定引数の数が不正です。 " + text7 + " " + text3);
 					}
 					body.SetHairLengthDataList(stringList[1], stringList[2], stringList[3], stringList[4], new Vector3(float.Parse(stringList[5]), float.Parse(stringList[6]), float.Parse(stringList[7])), new Vector3(float.Parse(stringList[8]), float.Parse(stringList[9]), float.Parse(stringList[10])));
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "anime")
 				{
@@ -772,7 +785,7 @@ public class Menu : MonoBehaviour
 						f_bLoop = (stringList[3] == "loop");
 					}
 					body.ItemAnimationPlay(f_slot, stringList[2], f_bLoop);
-					goto IL_14B9;
+					goto IL_1546;
 				}
 				if (stringCom == "param2")
 				{
@@ -780,23 +793,23 @@ public class Menu : MonoBehaviour
 					{
 						string slotname4 = stringList[1];
 						body.GetSlot(slotname4).SetParam2(stringList[2], stringList[3]);
-						goto IL_1473;
+						goto IL_1500;
 					}
 					Debug.LogError("param2の設定引数の数が不正です。 " + text7 + " " + text3);
-					goto IL_1473;
-					IL_1473:
-					goto IL_14B9;
+					goto IL_1500;
+					IL_1500:
+					goto IL_1546;
 				}
 				if (stringCom == "animematerial")
 				{
 					TBody.SlotID f_slot2 = (TBody.SlotID)Enum.Parse(typeof(TBody.SlotID), stringList[1], true);
 					string s2 = stringList[2];
 					body.MaterialAnimatorAdd(f_slot2, int.Parse(s2));
-					goto IL_14B9;
+					goto IL_1546;
 				}
-				goto IL_14B9;
-				IL_14B9:
-				goto IL_153C;
+				goto IL_1546;
+				IL_1546:
+				goto IL_15C9;
 			}
 			catch (Exception ex)
 			{
@@ -814,9 +827,9 @@ public class Menu : MonoBehaviour
 					ex.StackTrace
 				}));
 				NDebug.Assert("メニューファイル処理中にエラーが発生しました。" + Path.GetFileName(text), true);
-				goto IL_153C;
+				goto IL_15C9;
 			}
-			IL_153C:
+			IL_15C9:
 			goto IL_108;
 		}
 		list.Sort((Menu.LastParam a, Menu.LastParam b) => a.nOrder - a.nOrder);
@@ -911,7 +924,7 @@ public class Menu : MonoBehaviour
 			Directory.CreateDirectory(text);
 		}
 		StreamWriter streamWriter = new StreamWriter(text + "\\" + text2 + ".txt", false, Encoding.UTF8);
-		streamWriter.WriteLine("出力バージョン\t" + 1300);
+		streamWriter.WriteLine("出力バージョン\t" + 1310);
 		streamWriter.WriteLine("基本アイテム\t" + filename.Replace(" ", ":"));
 		try
 		{

+ 4 - 0
Assembly-CSharp/MessageClass.cs

@@ -136,6 +136,10 @@ public class MessageClass
 		this.exit_wait_count_ = -1;
 		this.hitret_sprite_.alpha = 0f;
 		KeyValuePair<string, string> translationText = MessageClass.GetTranslationText(name);
+		if (Product.supportMultiLanguage && !string.IsNullOrEmpty(translationText.Value))
+		{
+			translationText = new KeyValuePair<string, string>(translationText.Value, string.Empty);
+		}
 		this.charaNameText = translationText.Key;
 		this.charaNameTranslationSet = translationText;
 		KeyValuePair<string, string> translationText2 = MessageClass.GetTranslationText(text);

+ 1 - 1
Assembly-CSharp/MessageWindowCtrl.cs

@@ -70,7 +70,7 @@ public class MessageWindowCtrl : MonoBehaviour
 		this.m_backlogCtrl.CreateBacklog(dicBacklog, @object);
 		this.AdjustTargetPosInScrollView(this.m_backlogScrollView);
 		int num = (dicBacklog == null) ? 0 : dicBacklog.Count;
-		if (num > 5)
+		if (num > 5 || Product.supportMultiLanguage)
 		{
 			Debug.Log("スクロールバーのつまみの位置を初期化");
 			this.m_backlogScrollBar.value = 1f;

+ 4 - 4
Assembly-CSharp/Misc.cs

@@ -2,7 +2,7 @@
 
 public class Misc
 {
-	public const int GAME_VERSION = 1300;
+	public const int GAME_VERSION = 1310;
 
 	public const string GAME_DATA_PATH = "GameData";
 
@@ -32,11 +32,11 @@ public class Misc
 
 	public const string SHOP_URL = "https://com3d2-shop.s-court.me/?ctv=1";
 
-	public const string SHOP_URL_PUBLIC = "";
+	public const string SHOP_URL_PUBLIC = "https://com3d2-shop-inm.s-court.me";
 
-	public const string SHOP_URL_EN = "";
+	public const string SHOP_URL_EN = "https://com3d2-shop-en.s-court.me";
 
-	public const string SHOP_URL_EN_PUBLIC = "";
+	public const string SHOP_URL_EN_PUBLIC = "https://com3d2-shop-en-inm.s-court.me";
 
 	public const string LAUNCHER_EXE = "COM3D2.exe";
 

+ 1 - 1
Assembly-CSharp/ModCompile.cs

@@ -604,7 +604,7 @@ public class ModCompile : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_MESH");
-		binaryWriter.Write(1300);
+		binaryWriter.Write(1310);
 		string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(f_strMqoFile);
 		binaryWriter.Write(fileNameWithoutExtension);
 		binaryWriter.Write(exObjIn2.strName);

+ 3 - 0
Assembly-CSharp/MyRoomCustom/CreativeRoomUISaveLoad.cs

@@ -1,6 +1,7 @@
 using System;
 using UnityEngine;
 using UnityEngine.UI;
+using wf;
 
 namespace MyRoomCustom
 {
@@ -21,6 +22,7 @@ namespace MyRoomCustom
 			this.m_IsOpenSave = true;
 			this.m_IsOpenLoad = false;
 			this.m_UITextTitle.text = "セーブ";
+			Utility.SetLocalizeTerm(this.m_UITextTitle, "ScenePhotoMode/メニュー/セーブ", false);
 			NDebug.Assert(this.m_Manager, "部屋作成シーンのマネージャが見つかりませんでした");
 			base.gameObject.SetActive(true);
 			GameObject uiparentButtonArea = this.m_UIParentButtonArea;
@@ -84,6 +86,7 @@ namespace MyRoomCustom
 			this.m_IsOpenSave = false;
 			this.m_IsOpenLoad = true;
 			this.m_UITextTitle.text = "ロード";
+			Utility.SetLocalizeTerm(this.m_UITextTitle, "ScenePhotoMode/メニュー/ロード", false);
 			NDebug.Assert(this.m_Manager, "[CreativeRoom] 部屋作成シーンのマネージャクラスが見つかりませんでした");
 			base.gameObject.SetActive(true);
 			GameObject uiparentButtonArea = this.m_UIParentButtonArea;

+ 2 - 2
Assembly-CSharp/OvrIK.cs

@@ -1568,7 +1568,7 @@ public class OvrIK : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1300;
+			this.m_nVersion = 1310;
 		}
 
 		public void OnAfterDeserialize()
@@ -1628,7 +1628,7 @@ public class OvrIK : MonoBehaviour
 		private const string CONF_NAME = "OvrIK.json";
 
 		[SerializeField]
-		private int m_nVersion = 1300;
+		private int m_nVersion = 1310;
 
 		[SerializeField]
 		private float solver_locomotion_weight = 1f;

+ 1 - 1
Assembly-CSharp/PhotoModeSaveAndLoad.cs

@@ -450,7 +450,7 @@ public class PhotoModeSaveAndLoad : MonoBehaviour
 	private XElement CreateCommonData(string title, string comment)
 	{
 		string value = DateTime.ParseExact(DateTime.Now.ToString("yyyyMMddHHmmss"), "yyyyMMddHHmmss", null).ToString("yyyy.MM.dd HH:mm");
-		XElement xelement = new XElement("GameVersion", 1300);
+		XElement xelement = new XElement("GameVersion", 1310);
 		XElement xelement2 = new XElement("SaveTime", value);
 		XElement xelement3 = new XElement("Title", title);
 		XElement xelement4 = new XElement("Comment", comment);

+ 1 - 1
Assembly-CSharp/PlayerStatus/Status.cs

@@ -831,7 +831,7 @@ namespace PlayerStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_PLAYER_STATUS");
-			binary.Write(1300);
+			binary.Write(1310);
 			binary.Write(this.playerName_);
 			binary.Write(this.days_);
 			binary.Write(this.totalPurchasePrice_);

+ 4 - 0
Assembly-CSharp/PoseEditWindow.cs

@@ -170,6 +170,10 @@ public class PoseEditWindow : BaseMaidPhotoWindow
 		{
 			flag2 = true;
 		}
+		if ((flag || flag2) && this.PanelSave.gameObject.activeInHierarchy)
+		{
+			flag2 = (flag = false);
+		}
 		if (flag || flag2)
 		{
 			bool flag3 = true;

+ 1 - 1
Assembly-CSharp/PresetCtrl.cs

@@ -222,7 +222,7 @@ public class PresetCtrl : MonoBehaviour
 			GameMain.Instance.CharacterMgr.PresetSet(this.m_maid, preset);
 			if (Product.isPublic)
 			{
-				this.m_maid.AllProcProp();
+				SceneEdit.AllProcPropSeqStart(this.m_maid);
 			}
 		}
 		else

+ 19 - 1
Assembly-CSharp/Product.cs

@@ -1,4 +1,6 @@
 using System;
+using System.Collections.Generic;
+using System.Text;
 using I2.Loc;
 using UnityEngine;
 
@@ -127,13 +129,29 @@ public static class Product
 	{
 		get
 		{
-			return Product.type != Product.Type.JpAdult;
+			return true;
 		}
 	}
 
 	public static void Initialize(AFileSystemBase fileSystem)
 	{
+		KeyValuePair<string, Product.Type>[] array = new KeyValuePair<string, Product.Type>[]
+		{
+			new KeyValuePair<string, Product.Type>("RDFBMTE5RTItMEQxOC00NkM3LUFCNzctRERGNjkyNjNCNzcy", Product.Type.JpAdult),
+			new KeyValuePair<string, Product.Type>("Nzc1RjVFNUQtQzc5Ri00NThGLTg4QzYtRTEwQ0JCRTVCRTVB", Product.Type.JpPublic),
+			new KeyValuePair<string, Product.Type>("QTZEQUE0MDItNTI4MS00RTMxLUFGOEMtMTY3RUE5M0QwQ0Q5", Product.Type.EnAdult),
+			new KeyValuePair<string, Product.Type>("QzhFODY4MkMtRTU1QS00MDZBLTkyREItRjQ5RTE1N0Y4M0VC", Product.Type.EnPublic)
+		};
+		Encoding encoding = Encoding.GetEncoding("UTF-8");
 		Product.type = Product.Type.JpAdult;
+		foreach (KeyValuePair<string, Product.Type> keyValuePair in array)
+		{
+			if (fileSystem.IsExistentFile(encoding.GetString(Convert.FromBase64String(keyValuePair.Key))))
+			{
+				Product.type = keyValuePair.Value;
+				break;
+			}
+		}
 		Debug.Log("ProductType:" + Product.type.ToString());
 		Product.systemLanguage = Product.defaultLanguage;
 	}

+ 2 - 1
Assembly-CSharp/ProfileCtrl.cs

@@ -523,6 +523,7 @@ public class ProfileCtrl : MonoBehaviour
 		if (ProfileCtrl.m_dicPersonal.TryGetValue(selectValue, out personal))
 		{
 			this.m_maidStatus.SetPersonal(personal);
+			this.m_maidStatus.additionalRelation = AdditionalRelation.Vigilance;
 			Debug.Log(string.Concat(new object[]
 			{
 				"保存された性格:",
@@ -706,7 +707,7 @@ public class ProfileCtrl : MonoBehaviour
 				Localize localize = component.gameObject.AddComponent<Localize>();
 				if (btnType == ProfileMgr.UpperButtonType.Character)
 				{
-					Utility.SetLocalizeTerm(localize, "MaidStatus/性癖タイプ/" + list[i].m_parameter, false);
+					Utility.SetLocalizeTerm(localize, "MaidStatus/特徴タイプ/" + list[i].m_parameter, false);
 				}
 				else if (btnType == ProfileMgr.UpperButtonType.Propensity)
 				{

+ 3 - 3
Assembly-CSharp/ResultIncomeMgr.cs

@@ -63,9 +63,9 @@ public class ResultIncomeMgr : BaseCreatePanel
 		{
 			resultIncome.bonusIncome = 0L;
 		}
-		this.m_dayIncome = (long)this.m_diff.clubMoney;
-		resultIncome.workingFunds = (long)this.m_diff.clubMoney;
-		resultIncome.clubIncome = status.money - (long)this.m_diff.clubMoney - resultIncome.bonusIncome;
+		this.m_dayIncome = this.m_diff.clubMoney;
+		resultIncome.workingFunds = this.m_diff.clubMoney;
+		resultIncome.clubIncome = status.money - this.m_diff.clubMoney - resultIncome.bonusIncome;
 		resultIncome.totalAmount = status.money;
 		resultIncome.clientEvaluation = this.m_diff.clubEvaluation;
 		resultIncome.acquisitionEvaluation = status.clubEvaluation - this.m_diff.clubEvaluation;

+ 2 - 2
Assembly-CSharp/RhythmAction_Mgr.cs

@@ -657,11 +657,11 @@ public class RhythmAction_Mgr : MonoBehaviour
 		{
 			if (choiceObjpair.Choice == select_choice)
 			{
-				Utility.SetLocalizeTerm(choiceObjpair.UILocalize, choiceObjpair.CursorOnImage, false);
+				Utility.SetLocalizeTerm(choiceObjpair.UILocalize, choiceObjpair.CursorOnImage, true);
 			}
 			else
 			{
-				Utility.SetLocalizeTerm(choiceObjpair.UILocalize, choiceObjpair.CursorOffImage, false);
+				Utility.SetLocalizeTerm(choiceObjpair.UILocalize, choiceObjpair.CursorOffImage, true);
 			}
 		}
 	}

+ 6 - 2
Assembly-CSharp/SaveAndLoadCtrl.cs

@@ -216,6 +216,10 @@ public class SaveAndLoadCtrl : BaseCreateViewerCtrl
 				if (childObject4 != null)
 				{
 					childObject4.SetActive(value.productTypeID != (int)Product.type);
+					if (childObject4.activeSelf)
+					{
+						component7.size = Vector3.zero;
+					}
 				}
 			}
 		}
@@ -442,7 +446,7 @@ public class SaveAndLoadCtrl : BaseCreateViewerCtrl
 		{
 			this.m_deleteSerialNo = loadDataUnit.serialNo;
 		}
-		GameMain.Instance.SysDlg.Show("データを削除しますが宜しいですか。", SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.DeleteData), new SystemDialog.OnClick(this.CloseDialog));
+		GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/セーブロード/データを削除しますが宜しいですか?", null, SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.DeleteData), new SystemDialog.OnClick(this.CloseDialog));
 	}
 
 	private void DeleteData()
@@ -510,7 +514,7 @@ public class SaveAndLoadCtrl : BaseCreateViewerCtrl
 
 	private const string DIALOG_MESSAGE_RESULT_LOAD = "データをロードしました。";
 
-	private const string DIALOG_MESSAGE_TO_DELETE = "データを削除しますが宜しいですか";
+	private const string DIALOG_MESSAGE_TO_DELETE = "データを削除しますが宜しいですか";
 
 	private const string PREFIX_COMMENT = "Comment_";
 

+ 12 - 0
Assembly-CSharp/SceneEditWindow/CustomPartsWindow.cs

@@ -275,6 +275,18 @@ namespace SceneEditWindow
 			List<KeyValuePair<TBody.SlotID, string>> attachPointListFromMPN = this.maid.body0.GetAttachPointListFromMPN(menu.m_mpn);
 			if (attachPointListFromMPN.Count != 0)
 			{
+				if (Product.isPublic)
+				{
+					foreach (TBodySkin tbodySkin in this.maid.body0.goSlot)
+					{
+						if (tbodySkin.m_ParentMPN == menu.m_mpn)
+						{
+							tbodySkin.Update();
+						}
+					}
+					attachPointListFromMPN = this.maid.body0.GetAttachPointListFromMPN(menu.m_mpn);
+					this.selectCustomParts = new CustomParts[attachPointListFromMPN.Count];
+				}
 				this.selectCustomParts = new CustomParts[attachPointListFromMPN.Count];
 			}
 			for (int i = 0; i < attachPointListFromMPN.Count; i++)

+ 1 - 1
Assembly-CSharp/SceneNPCEdit/SaveData.cs

@@ -10,7 +10,7 @@ namespace SceneNPCEdit
 		public static void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_NPCEDIT");
-			binary.Write(1300);
+			binary.Write(1310);
 			binary.Write(SaveData.presetData.Count);
 			foreach (KeyValuePair<int, byte[]> keyValuePair in SaveData.presetData)
 			{

+ 8 - 2
Assembly-CSharp/SceneScenarioSelect.cs

@@ -94,7 +94,10 @@ public class SceneScenarioSelect : MonoBehaviour
 		}
 		this.m_CurrentScenario = this.m_ScenarioButtonpair[(UIWFTabButton)UIWFSelectButton.current];
 		this.m_ContentsLabel.text = this.m_CurrentScenario.EventContents;
-		Utility.SetLocalizeTerm(this.m_ContentsLabel, this.m_CurrentScenario.EventContentTerm, false);
+		if (!Utility.SetLocalizeTerm(this.m_ContentsLabel, this.m_CurrentScenario.EventContentTerm, false))
+		{
+			this.m_ContentsLabel.text = this.m_ContentsLabel.text.Replace(" ", "\u00a0");
+		}
 		string[] conditionTextTerms = this.m_CurrentScenario.ConditionTextTerms;
 		for (int i = 0; i < this.m_PlayableTextUIList.Count; i++)
 		{
@@ -107,7 +110,10 @@ public class SceneScenarioSelect : MonoBehaviour
 				{
 					gameObject.SetActive(true);
 					this.m_PlayableTextUIList[i].text = text;
-					Utility.SetLocalizeTerm(this.m_PlayableTextUIList[i], conditionTextTerms[i], false);
+					if (!Utility.SetLocalizeTerm(this.m_PlayableTextUIList[i], conditionTextTerms[i], false))
+					{
+						this.m_PlayableTextUIList[i].text = this.m_PlayableTextUIList[i].text.Replace(" ", "\u00a0");
+					}
 				}
 			}
 		}

+ 10 - 10
Assembly-CSharp/ScheduleMaidStatusUnit.cs

@@ -114,19 +114,19 @@ public class ScheduleMaidStatusUnit : MonoBehaviour
 			if (maidAssignedFacility != null)
 			{
 				int facilityIndex = GameMain.Instance.FacilityMgr.GetFacilityIndex(maidAssignedFacility);
+				flag = false;
 				if (Product.supportMultiLanguage)
 				{
-					string translation = LocalizationManager.GetTranslation("SceneFacilityManagement/施設名/" + maidAssignedFacility.facilityName, true, 0, true, false, null, null);
-					text = string.Concat(new string[]
+					Localize component = this.wariningLabel.GetComponent<Localize>();
+					component.TermArgs = new Localize.ArgsPair[]
 					{
-						"ROOM ",
-						facilityIndex.ToString().PadLeft(2, '0'),
-						" 「",
-						translation,
-						"」\n"
-					});
-					text = text + LocalizationManager.GetTranslation("SceneDaily/稼動に必要なメイドが足りません", true, 0, true, false, null, null) + "\n";
-					text += string.Format(LocalizationManager.GetTranslation("SceneDaily/あと{0}人必要です", true, 0, true, false, null, null), maidAssignedFacility.minMaidCount - maidAssignedFacility.NowMaidCount(scheduleTime));
+						Localize.ArgsPair.Create(facilityIndex.ToString().PadLeft(2, '0')),
+						Localize.ArgsPair.Create(maidAssignedFacility.facilityName),
+						Localize.ArgsPair.Create((maidAssignedFacility.minMaidCount - maidAssignedFacility.NowMaidCount(scheduleTime)).ToString())
+					};
+					text = string.Empty;
+					component.SetTerm("SceneDaily/稼動に必要なメイドが足りませんフル");
+					this.wariningLabel.gameObject.SetActive(true);
 				}
 				else
 				{

+ 1 - 1
Assembly-CSharp/ScriptManager.cs

@@ -3217,7 +3217,7 @@ public class ScriptManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_SCRIPT");
-		binary.Write(1300);
+		binary.Write(1310);
 		this.adv_kag_.Serialize(binary);
 	}
 

+ 1 - 1
Assembly-CSharp/SelectButtonCtrl.cs

@@ -47,7 +47,7 @@ public class SelectButtonCtrl : MonoBehaviour
 			else
 			{
 				UILabel component3 = UTY.GetChildObject(gameObject, "Single/Option", false).GetComponent<UILabel>();
-				component3.text = keyValuePair.Key;
+				component3.text = MessageClass.GetTranslationText(keyValuePair.Key).Key;
 			}
 			SelectButtonCtrl.SelectButton selectButton = new SelectButtonCtrl.SelectButton();
 			selectButton.m_btnName = gameObject.name;

+ 2 - 2
Assembly-CSharp/ShootCutInTex.cs

@@ -46,8 +46,8 @@ public class ShootCutInTex : MonoBehaviour
 		{
 			Directory.CreateDirectory(text);
 		}
-		string text2 = DanceSelect.SelectedMaid[0].status.fullNameJpStyle;
-		text2 = text2.Replace(" ", string.Empty) + "_アピール.png";
+		string text2 = DanceSelect.SelectedMaid[0].status.charaName.GetFullName(" ");
+		text2 = text2.Replace(" ", string.Empty) + "_" + ((Product.defaultLanguage != Product.Language.Japanese) ? "Appeal" : "アピール") + ".png";
 		bool result = false;
 		try
 		{

+ 1 - 1
Assembly-CSharp/SystemShortcut.cs

@@ -78,7 +78,7 @@ public class SystemShortcut : MonoBehaviour
 		this.dicBGSizeType.Add(SystemShortcut.BGSizeType.Long, 380);
 		this.dicBGSizeType.Add(SystemShortcut.BGSizeType.Short, 340);
 		int num = 0;
-		if (Product.type != Product.Type.EnAdult)
+		if (Product.isJapan)
 		{
 			GameObject childObject = UTY.GetChildObject(base.gameObject, this.m_aryObjPath[11], false);
 			if (childObject != null)

+ 1 - 1
Assembly-CSharp/TBodySkin.cs

@@ -501,7 +501,7 @@ public class TBodySkin
 				}
 			}
 		}
-		if (Product.isEnglish && !Product.isPublic)
+		if (this.m_bMan && Product.isEnglish && !Product.isPublic)
 		{
 			foreach (Transform transform2 in gameObject.GetComponentsInChildren<Transform>(true))
 			{

+ 24 - 2
Assembly-CSharp/ThumShot.cs

@@ -16,7 +16,16 @@ public class ThumShot : MonoBehaviour
 		this.m_rtThumIcon.filterMode = FilterMode.Bilinear;
 		this.m_rtThumIcon.antiAliasing = 8;
 		this.m_rtThumIcon2 = new RenderTexture(this.m_siIconSize.width, this.m_siIconSize.height, 0, RenderTextureFormat.ARGB32);
-		this.m_rtThumCard = new RenderTexture(this.m_siCardSize.width, this.m_siCardSize.height, 24, RenderTextureFormat.ARGB32);
+		RenderTextureFormat format = RenderTextureFormat.ARGB32;
+		if (SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGB111110Float))
+		{
+			format = RenderTextureFormat.RGB111110Float;
+		}
+		else if (SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGB565))
+		{
+			format = RenderTextureFormat.RGB565;
+		}
+		this.m_rtThumCard = new RenderTexture(this.m_siCardSize.width, this.m_siCardSize.height, 24, format);
 		this.m_rtThumCard.filterMode = FilterMode.Bilinear;
 		this.m_rtThumCard.antiAliasing = 8;
 		this.m_rtThumCard2 = new RenderTexture(this.m_siCardSize.width, this.m_siCardSize.height, 0, RenderTextureFormat.ARGB32);
@@ -33,6 +42,19 @@ public class ThumShot : MonoBehaviour
 
 	public Texture2D RenderThum(Camera f_cam, RenderTexture f_rtMain, RenderTexture f_rtSub, Size<int> f_size)
 	{
+		return this.RenderThum(f_cam, f_rtMain, f_rtSub, f_size, false);
+	}
+
+	public Texture2D RenderThum(Camera f_cam, RenderTexture f_rtMain, RenderTexture f_rtSub, Size<int> f_size, bool f_white)
+	{
+		if (f_white)
+		{
+			f_cam.backgroundColor = Color.white;
+		}
+		else
+		{
+			f_cam.backgroundColor = new Color(0f, 0f, 0f, 0f);
+		}
 		f_cam.targetTexture = f_rtMain;
 		f_cam.enabled = true;
 		f_cam.Render();
@@ -119,7 +141,7 @@ public class ThumShot : MonoBehaviour
 
 	public Texture2D ShotThumCardOriginal()
 	{
-		return this.RenderThum(this.m_camMain, this.m_rtThumCard, this.m_rtThumCard2, this.m_siCardSize);
+		return this.RenderThum(this.m_camMain, this.m_rtThumCard, this.m_rtThumCard2, this.m_siCardSize, true);
 	}
 
 	public void ShotSave(Maid f_maid)

+ 1 - 1
Assembly-CSharp/WindowPartsFingerPreset.cs

@@ -182,7 +182,7 @@ public class WindowPartsFingerPreset : MonoBehaviour
 	{
 		WindowPartsFingerBlend.Type blendType = tareget_blend.BlendType;
 		FingerBlend.BaseFinger baseFingerClass = tareget_blend.GetBaseFingerClass(tareget_blend.mgr.select_maid, blendType);
-		XElement xelement = new XElement("GameVersion", 1300);
+		XElement xelement = new XElement("GameVersion", 1310);
 		XElement xelement2 = new XElement("RightData", blendType == WindowPartsFingerBlend.Type.RightArm || blendType == WindowPartsFingerBlend.Type.RightLeg);
 		XElement xelement3 = new XElement("BinaryData", Convert.ToBase64String(baseFingerClass.GetBinary()));
 		XNode[] contents = new XNode[]

+ 12 - 2
Assembly-CSharp/YotogiClassListManager.cs

@@ -215,6 +215,7 @@ public class YotogiClassListManager : MonoBehaviour
 			this.conditionsObject.SetActive(true);
 			foreach (UILabel uilabel in this.specialSkillLabelList)
 			{
+				uilabel.gameObject.SetActive(true);
 				uilabel.text = string.Empty;
 			}
 			int num = 0;
@@ -256,6 +257,11 @@ public class YotogiClassListManager : MonoBehaviour
 							Utility.SetLocalizeTerm(uilabel2, data3.termName, false);
 							if (this.specialSkillLabelList.Count == num)
 							{
+								if (Product.supportMultiLanguage)
+								{
+									Localize component2 = uilabel2.GetComponent<Localize>();
+									component2.SetTerm(" ");
+								}
 								this.specialSkillLabelList[num - 1].text = "etc...";
 							}
 						}
@@ -269,12 +275,16 @@ public class YotogiClassListManager : MonoBehaviour
 						break;
 					}
 				}
+				foreach (UILabel uilabel3 in this.specialSkillLabelList)
+				{
+					uilabel3.gameObject.SetActive(!string.IsNullOrEmpty(uilabel3.text));
+				}
 			}
 			this.specialSkillLabelsParent.SetActive(!string.IsNullOrEmpty(this.specialSkillLabelList[0].text));
 			if (this.specialSkillLabelsParent.activeSelf)
 			{
-				UIWidget component2 = UTY.GetChildObject(this.specialSkillLabelsParent, "BG", false).GetComponent<UIWidget>();
-				component2.height = 100 + 36 * num;
+				UIWidget component3 = UTY.GetChildObject(this.specialSkillLabelsParent, "BG", false).GetComponent<UIWidget>();
+				component3.height = 100 + 36 * num;
 			}
 		}
 		else

+ 10 - 0
Assembly-CSharp/YotogiManager.cs

@@ -454,6 +454,11 @@ public class YotogiManager : WfScreenManager
 				stockMaid.body0.MuneYureR(1f);
 				stockMaid.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, false, false);
 				stockMaid.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, false, false);
+				TBodySkin tbodySkin = stockMaid.body0.goSlot[0];
+				if (tbodySkin != null && tbodySkin.kupaCtrl != null)
+				{
+					tbodySkin.kupaCtrl.ResetAll();
+				}
 			}
 		}
 		for (int j = 0; j < characterMgr.GetStockManCount(); j++)
@@ -463,6 +468,11 @@ public class YotogiManager : WfScreenManager
 			{
 				stockMan.IKTargetToBone("左手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, false, false);
 				stockMan.IKTargetToBone("右手", null, "無し", Vector3.zero, IKCtrlData.IKAttachType.Point, false, false, false);
+				TBodySkin tbodySkin2 = this.maid.body0.goSlot[0];
+				if (tbodySkin2 != null && tbodySkin2.kupaCtrl != null)
+				{
+					tbodySkin2.kupaCtrl.ResetAll();
+				}
 			}
 		}
 		string[] array = new string[]

+ 13 - 0
Assembly-CSharp/YotogiSkillUnit.cs

@@ -85,6 +85,19 @@ public class YotogiSkillUnit : MonoBehaviour
 		this.name_obj_.GetComponent<Localize>().SetTerm(this.skill_data_.termName);
 		this.acquired_experience_obj.GetComponent<UILabel>().text = this.skill_data_.add_yotogi_class_exp.ToString();
 		this.cost_of_hp_obj.GetComponent<UILabel>().text = this.skill_data_.exec_need_hp.ToString();
+		if (Product.supportMultiLanguage)
+		{
+			Localize component = this.cost_of_hp_obj.transform.parent.GetComponent<Localize>();
+			if (component != null)
+			{
+				component.TermArgs = new Localize.ArgsPair[]
+				{
+					Localize.ArgsPair.Create(this.skill_data_.exec_need_hp.ToString())
+				};
+				component.SetTerm("SceneYotogi/消費体力プラス数値");
+				this.cost_of_hp_obj.SetActive(false);
+			}
+		}
 		this.icon_.SetSkillData(this.skill_data_);
 		if (this.param_data_ == null || 0u < this.param_data_.playCount)
 		{

+ 3 - 3
Assembly-CSharp/uGUITutorialPanel.cs

@@ -14,7 +14,7 @@ public class uGUITutorialPanel : MonoBehaviour
 		if (uGUITutorialPanel.m_SceneNameArray == null || uGUITutorialPanel.m_SceneNameArray.Count <= 0)
 		{
 			uGUITutorialPanel.m_SceneNameArray = new List<string>();
-			string text = "tutorial_list.nei";
+			string text = Product.isEnglish ? "tutorial_list_en.nei" : "tutorial_list.nei";
 			if (!GameUty.FileSystem.IsExistentFile(text))
 			{
 				NDebug.Assert("表がありません。" + text, false);
@@ -85,7 +85,7 @@ public class uGUITutorialPanel : MonoBehaviour
 		uGUITutorialPanel.SetTutorialFlag(sceneName);
 		if (uGUITutorialPanel.m_Instance.m_TopTitle != null && sceneName.ToLower() == "WordDictionary".ToLower())
 		{
-			uGUITutorialPanel.m_Instance.m_TopTitle.text = "TUTORIAL";
+			uGUITutorialPanel.m_Instance.m_TopTitle.text = "Grocery";
 		}
 	}
 
@@ -291,7 +291,7 @@ public class uGUITutorialPanel : MonoBehaviour
 
 	private void ReadCSV(string type)
 	{
-		string text = "tutorial_list.nei";
+		string text = Product.isEnglish ? "tutorial_list_en.nei" : "tutorial_list.nei";
 		if (!GameUty.FileSystem.IsExistentFile(text))
 		{
 			NDebug.Assert("表がありません。" + text, false);