ghorsington 5 years ago
parent
commit
bd699f3215
169 changed files with 2199 additions and 864 deletions
  1. 5 5
      Assembly-CSharp.sln
  2. 23 7
      Assembly-CSharp/ADVKagManager.cs
  3. 1 1
      Assembly-CSharp/AcquiredAttributeUnit.cs
  4. 1 1
      Assembly-CSharp/AcquiredSkillUnit.cs
  5. 3 3
      Assembly-CSharp/AdditionalScenario.cs
  6. 21 16
      Assembly-CSharp/Assembly-CSharp.csproj
  7. 8 8
      Assembly-CSharp/AttachPointSubWindow.cs
  8. 1 1
      Assembly-CSharp/AttributeViewer.cs
  9. 2 2
      Assembly-CSharp/BGWindow.cs
  10. 2 2
      Assembly-CSharp/BacklogCtrl.cs
  11. 129 40
      Assembly-CSharp/BaseKagManager.cs
  12. 1 1
      Assembly-CSharp/BasePhotoCustomObject.cs
  13. 1 1
      Assembly-CSharp/BasePhotoWindowManager.cs
  14. 26 13
      Assembly-CSharp/BgMgr.cs
  15. 13 13
      Assembly-CSharp/CMSystem.cs
  16. 6 3
      Assembly-CSharp/CasinoItemUI.cs
  17. 183 0
      Assembly-CSharp/CastPreviewHelper.cs
  18. 1 1
      Assembly-CSharp/CharaSelectStatusMgr.cs
  19. 5 5
      Assembly-CSharp/CharacterMgr.cs
  20. 5 1
      Assembly-CSharp/CharacterSelectMain.cs
  21. 94 0
      Assembly-CSharp/ChinkoCtrl.cs
  22. 2 2
      Assembly-CSharp/ClassChangePanel.cs
  23. 1 1
      Assembly-CSharp/ClassUnit.cs
  24. 13 13
      Assembly-CSharp/ConfigManager.cs
  25. 3 7
      Assembly-CSharp/ConfigMgr.cs
  26. 2 2
      Assembly-CSharp/ControllerShortcutSettingData.cs
  27. 8 8
      Assembly-CSharp/ControllerShortcutWindow.cs
  28. 1 1
      Assembly-CSharp/CreateBGObjectSubWindow.cs
  29. 1 1
      Assembly-CSharp/DailyCtrl.cs
  30. 8 0
      Assembly-CSharp/DanceData.cs
  31. 6 4
      Assembly-CSharp/DanceSelect.cs
  32. 2 0
      Assembly-CSharp/DanceSelectMusicInfo.cs
  33. 1 1
      Assembly-CSharp/DanceSetting.cs
  34. 12 11
      Assembly-CSharp/DanceSubtitleMgr.cs
  35. 39 0
      Assembly-CSharp/DebugScenarioDraw.cs
  36. 2 2
      Assembly-CSharp/DeskManager.cs
  37. 3 3
      Assembly-CSharp/DynamicBone.cs
  38. 1 1
      Assembly-CSharp/DynamicSkirtBone.cs
  39. 58 30
      Assembly-CSharp/Edit/MaidProfile.cs
  40. 1 1
      Assembly-CSharp/EditMod.cs
  41. 1 1
      Assembly-CSharp/EmpireLifeModeManager.cs
  42. 2 2
      Assembly-CSharp/ExChangeUI.cs
  43. 88 10
      Assembly-CSharp/FFNameDialog.cs
  44. 2 2
      Assembly-CSharp/FaceWindow.cs
  45. 1 1
      Assembly-CSharp/Facility.cs
  46. 30 1
      Assembly-CSharp/FacilityInfoUI.cs
  47. 1 1
      Assembly-CSharp/FacilityManager.cs
  48. 1 1
      Assembly-CSharp/FacilityUIPowerUpMaterialList.cs
  49. 1 1
      Assembly-CSharp/FluctuationOfParameterUnit.cs
  50. 26 22
      Assembly-CSharp/FullBodyIKCtrl.cs
  51. 1 1
      Assembly-CSharp/GameInShopMain.cs
  52. 40 29
      Assembly-CSharp/GameMain.cs
  53. 1 1
      Assembly-CSharp/GameModeManager.cs
  54. 139 111
      Assembly-CSharp/GameUty.cs
  55. 5 5
      Assembly-CSharp/HandSignShortcut.cs
  56. 15 0
      Assembly-CSharp/IKCtrlData.cs
  57. 12 0
      Assembly-CSharp/KaraokeDataManager.cs
  58. 2 2
      Assembly-CSharp/Kasizuki/ClubRoomSelectCtrl.cs
  59. 3 2
      Assembly-CSharp/Kasizuki/KasizukiCharacterSelectCtrl.cs
  60. 2 2
      Assembly-CSharp/Kasizuki/KasizukiMainMenu.cs
  61. 3 3
      Assembly-CSharp/Kasizuki/KasizukiManSelectCtrl.cs
  62. 1 1
      Assembly-CSharp/Kasizuki/KasizukiManager.cs
  63. 3 3
      Assembly-CSharp/Kasizuki/KasizukiPlayInfoCtrl.cs
  64. 15 4
      Assembly-CSharp/Kasizuki/KasizukiSaveAndLoadCtrl.cs
  65. 5 5
      Assembly-CSharp/Kasizuki/MaidAppealComment.cs
  66. 1 1
      Assembly-CSharp/Kasizuki/MaidLikabilityCtrl.cs
  67. 14 5
      Assembly-CSharp/Kasizuki/MaidMiniStatusCtrl.cs
  68. 1 1
      Assembly-CSharp/Kasizuki/MaidPropensitysCtrl.cs
  69. 108 28
      Assembly-CSharp/KupaCtrl.cs
  70. 28 3
      Assembly-CSharp/LoadReplaceMaid.cs
  71. 7 7
      Assembly-CSharp/Maid.cs
  72. 4 4
      Assembly-CSharp/MaidManagementMain.cs
  73. 1 1
      Assembly-CSharp/MaidParts.cs
  74. 43 16
      Assembly-CSharp/MaidPlate.cs
  75. 1 1
      Assembly-CSharp/MaidProp.cs
  76. 3 3
      Assembly-CSharp/MaidRandomName.cs
  77. 22 0
      Assembly-CSharp/MaidStatus/NamePair.cs
  78. 58 5
      Assembly-CSharp/MaidStatus/Status.cs
  79. 49 3
      Assembly-CSharp/MaidStatus/SubMaid.cs
  80. 6 0
      Assembly-CSharp/MaidStatusListCtrl.cs
  81. 22 0
      Assembly-CSharp/MathCM.cs
  82. 1 1
      Assembly-CSharp/Menu.cs
  83. 3 3
      Assembly-CSharp/MessageClass.cs
  84. 2 2
      Assembly-CSharp/MessageWindowCtrl.cs
  85. 1 1
      Assembly-CSharp/Misc.cs
  86. 1 1
      Assembly-CSharp/ModCompile.cs
  87. 2 2
      Assembly-CSharp/MotionWindow.cs
  88. 4 4
      Assembly-CSharp/MyRoomCustom/CreativeRoom.cs
  89. 2 2
      Assembly-CSharp/MyRoomCustom/CreativeRoomUIObjectSettings.cs
  90. 7 3
      Assembly-CSharp/NGUIText.cs
  91. 2 2
      Assembly-CSharp/ObjectManagerWindow.cs
  92. 2 2
      Assembly-CSharp/OnHoverTaskIcon.cs
  93. 3 3
      Assembly-CSharp/OtherCommandShortcut.cs
  94. 1 1
      Assembly-CSharp/OvrHandItemMgr.cs
  95. 2 2
      Assembly-CSharp/OvrIK.cs
  96. 1 1
      Assembly-CSharp/PhotoModeSaveAndLoad.cs
  97. 1 1
      Assembly-CSharp/PhotoTransTargetObject.cs
  98. 3 1
      Assembly-CSharp/PhotoWindowManager.cs
  99. 5 1
      Assembly-CSharp/PlayerStatus/Status.cs
  100. 1 1
      Assembly-CSharp/PopupAndButtonList.cs
  101. 1 1
      Assembly-CSharp/PopupAndTabList.cs
  102. 33 0
      Assembly-CSharp/PositionStoreForLocalize.cs
  103. 1 1
      Assembly-CSharp/PresetCtrl.cs
  104. 68 39
      Assembly-CSharp/Product.cs
  105. 122 39
      Assembly-CSharp/ProfileCtrl.cs
  106. 17 0
      Assembly-CSharp/ProfileMgr.cs
  107. 3 3
      Assembly-CSharp/RandomPresetCtrl.cs
  108. 4 1
      Assembly-CSharp/ResultWorkMgr.cs
  109. 9 4
      Assembly-CSharp/RhythmAction_Mgr.cs
  110. 15 0
      Assembly-CSharp/SaveAndLoadCtrl.cs
  111. 1 0
      Assembly-CSharp/SaveAndLoadMgr.cs
  112. 2 3
      Assembly-CSharp/SceneCasino.cs
  113. 4 4
      Assembly-CSharp/SceneCasinoShop.cs
  114. 62 10
      Assembly-CSharp/SceneEdit.cs
  115. 1 1
      Assembly-CSharp/SceneEditInfo.cs
  116. 1 1
      Assembly-CSharp/SceneEditNameSettingPanel.cs
  117. 9 4
      Assembly-CSharp/SceneEditWindow/UndressWindow.cs
  118. 2 2
      Assembly-CSharp/SceneEmpireLifeMode.cs
  119. 1 1
      Assembly-CSharp/SceneFreeModeSelectManager.cs
  120. 1 1
      Assembly-CSharp/SceneLogo.cs
  121. 1 1
      Assembly-CSharp/SceneNPCEdit/SaveData.cs
  122. 5 0
      Assembly-CSharp/SceneNetorareCheck.cs
  123. 3 3
      Assembly-CSharp/SceneScenarioSelect.cs
  124. 2 2
      Assembly-CSharp/SceneWarning.cs
  125. 1 1
      Assembly-CSharp/Schedule/ResultYotogiTask.cs
  126. 12 12
      Assembly-CSharp/Schedule/ScheduleCSVData.cs
  127. 43 2
      Assembly-CSharp/Schedule/SlotBase.cs
  128. 14 35
      Assembly-CSharp/ScheduleCtrl.cs
  129. 2 2
      Assembly-CSharp/ScheduleMaidStatusUnit.cs
  130. 4 1
      Assembly-CSharp/ScheduleMgr.cs
  131. 1 1
      Assembly-CSharp/Score_Mgr.cs
  132. 1 1
      Assembly-CSharp/ScreenTrophyMain.cs
  133. 14 7
      Assembly-CSharp/ScriptManager.cs
  134. 8 7
      Assembly-CSharp/ShopItem.cs
  135. 12 2
      Assembly-CSharp/SimpleMaidPlate.cs
  136. 9 3
      Assembly-CSharp/StaffRollScroll.cs
  137. 8 8
      Assembly-CSharp/StatusCtrl.cs
  138. 7 2
      Assembly-CSharp/StatusMgr.cs
  139. 45 19
      Assembly-CSharp/SystemShortcut.cs
  140. 37 18
      Assembly-CSharp/TBody.cs
  141. 1 1
      Assembly-CSharp/TBodySkin.cs
  142. 10 3
      Assembly-CSharp/TaskUnit.cs
  143. 1 1
      Assembly-CSharp/TatooAlphaWindow.cs
  144. 2 2
      Assembly-CSharp/TitleCtrl.cs
  145. 7 7
      Assembly-CSharp/TouchAction_Mgr.cs
  146. 1 1
      Assembly-CSharp/TrophyAchieveEffect.cs
  147. 3 3
      Assembly-CSharp/TrophyInfo.cs
  148. 2 1
      Assembly-CSharp/UILabel.cs
  149. 10 10
      Assembly-CSharp/UIStates.cs
  150. 2 2
      Assembly-CSharp/UIWFConditionList.cs
  151. 2 2
      Assembly-CSharp/UIWFPositionStore.cs
  152. 1 1
      Assembly-CSharp/UndressDance_Mgr.cs
  153. 19 19
      Assembly-CSharp/VRFaceShortcutConfig.cs
  154. 1 1
      Assembly-CSharp/WindowPartsFingerPreset.cs
  155. 3 3
      Assembly-CSharp/YotogiClassListManager.cs
  156. 4 4
      Assembly-CSharp/YotogiCommandFactory.cs
  157. 1 1
      Assembly-CSharp/YotogiCommandMenuOVR.cs
  158. 1 1
      Assembly-CSharp/YotogiParamScroll.cs
  159. 2 2
      Assembly-CSharp/YotogiParameterViewer.cs
  160. 11 7
      Assembly-CSharp/YotogiPlayManager.cs
  161. 1 1
      Assembly-CSharp/YotogiResultManager.cs
  162. 1 1
      Assembly-CSharp/YotogiSkillContainerViewer.cs
  163. 2 2
      Assembly-CSharp/YotogiSkillListManager.cs
  164. 1 1
      Assembly-CSharp/YotogiSkillSelectManager.cs
  165. 1 1
      Assembly-CSharp/YotogiSkillUnit.cs
  166. 2 2
      Assembly-CSharp/YotogiStageUnit.cs
  167. 1 1
      Assembly-CSharp/Yotogis/SkillAcquisitionCondition.cs
  168. 9 2
      Assembly-CSharp/uGUITutorialPanel.cs
  169. 4 4
      Assembly-CSharp/wf/Utility.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", "{C62C26B0-CD6E-4302-84D3-345AC7017F5A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp\Assembly-CSharp.csproj", "{62B6F04D-209C-4C6D-BF5B-F902DD05810A}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{C62C26B0-CD6E-4302-84D3-345AC7017F5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{C62C26B0-CD6E-4302-84D3-345AC7017F5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C62C26B0-CD6E-4302-84D3-345AC7017F5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{C62C26B0-CD6E-4302-84D3-345AC7017F5A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{62B6F04D-209C-4C6D-BF5B-F902DD05810A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{62B6F04D-209C-4C6D-BF5B-F902DD05810A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{62B6F04D-209C-4C6D-BF5B-F902DD05810A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{62B6F04D-209C-4C6D-BF5B-F902DD05810A}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 23 - 7
Assembly-CSharp/ADVKagManager.cs

@@ -185,7 +185,10 @@ public class ADVKagManager : BaseKagManager
 		if (this.text_data_.voice_maid != null)
 		{
 			voice_pitch = this.text_data_.voice_maid.VoicePitch;
-			type = this.text_data_.voice_maid.AudioMan.SoundType;
+			if (this.text_data_.voice_maid.AudioMan != null)
+			{
+				type = this.text_data_.voice_maid.AudioMan.SoundType;
+			}
 		}
 		this.message_mgr_.SetText(this.text_data_.talk_name, this.text_data_.text, this.text_data_.voice_file, voice_pitch, type);
 		if (!string.IsNullOrEmpty(this.text_data_.voice_file))
@@ -330,12 +333,25 @@ public class ADVKagManager : BaseKagManager
 			"label"
 		});
 		string label = tag_data.GetTagProperty("label").AsString();
-		GameMain.Instance.SysDlg.Show(tag_data.GetTagProperty("text").AsString(), SystemDialog.TYPE.OK, delegate
+		string text = tag_data.GetTagProperty("term").AsString();
+		if (string.IsNullOrEmpty(text) || !Product.AEWDA)
 		{
-			GameMain.Instance.SysDlg.Close();
-			this.kag_.GoToLabel(label);
-			this.kag_.Exec();
-		}, null);
+			GameMain.Instance.SysDlg.Show(tag_data.GetTagProperty("text").AsString(), SystemDialog.TYPE.OK, delegate
+			{
+				GameMain.Instance.SysDlg.Close();
+				this.kag_.GoToLabel(label);
+				this.kag_.Exec();
+			}, null);
+		}
+		else
+		{
+			GameMain.Instance.SysDlg.ShowFromLanguageTerm(text, null, SystemDialog.TYPE.OK, delegate
+			{
+				GameMain.Instance.SysDlg.Close();
+				this.kag_.GoToLabel(label);
+				this.kag_.Exec();
+			}, null);
+		}
 		return false;
 	}
 
@@ -343,7 +359,7 @@ public class ADVKagManager : BaseKagManager
 	{
 		Action<string, string> onClickCallBack = delegate(string choices_title, string label_name)
 		{
-			if (!Product.SPP)
+			if (!Product.AEWDA)
 			{
 				string text = "=> " + choices_title;
 				this.message_mgr_.AddBackLog(string.Empty, text, string.Empty, 0, AudioSourceMgr.Type.VoiceHeroine);

+ 1 - 1
Assembly-CSharp/AcquiredAttributeUnit.cs

@@ -28,7 +28,7 @@ public class AcquiredAttributeUnit : MonoBehaviour
 
 	public void SetTerm(string termText)
 	{
-		Utility.SetLocalizeTerm(this.label_loc_, termText);
+		Utility.SetLocalizeTerm(this.label_loc_, termText, false);
 	}
 
 	private UILabel label_;

+ 1 - 1
Assembly-CSharp/AcquiredSkillUnit.cs

@@ -39,7 +39,7 @@ public class AcquiredSkillUnit : MonoBehaviour
 
 	public void SetTerm(string termText)
 	{
-		Utility.SetLocalizeTerm(this.label_loc_, termText);
+		Utility.SetLocalizeTerm(this.label_loc_, termText, false);
 	}
 
 	private UISprite bg_sprite_;

+ 3 - 3
Assembly-CSharp/AdditionalScenario.cs

@@ -68,8 +68,8 @@ public class AdditionalScenario : MonoBehaviour
 			UILabel component2 = gameObject2.transform.Find("Chara").GetComponent<UILabel>();
 			component.text = title;
 			component2.text = chara;
-			Utility.SetLocalizeTerm(component, titleTerm);
-			Utility.SetLocalizeTerm(component2, charaTerm);
+			Utility.SetLocalizeTerm(component, titleTerm, false);
+			Utility.SetLocalizeTerm(component2, charaTerm, false);
 		};
 		foreach (ScenarioData scenarioData2 in addedScenario)
 		{
@@ -85,7 +85,7 @@ public class AdditionalScenario : MonoBehaviour
 					{
 						if (string.IsNullOrEmpty(notification))
 						{
-							action(notLineTitle, (!maid2.status.isFirstNameCall) ? maid2.status.lastName : maid2.status.firstName, titleTerm2, string.Empty);
+							action(notLineTitle, maid2.status.callName, titleTerm2, string.Empty);
 						}
 						else
 						{

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

@@ -4,7 +4,7 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{C62C26B0-CD6E-4302-84D3-345AC7017F5A}</ProjectGuid>
+    <ProjectGuid>{62B6F04D-209C-4C6D-BF5B-F902DD05810A}</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>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
     </Reference>
     <Reference Include="Assembly-UnityScript-firstpass">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Assembly-UnityScript-firstpass.dll</HintPath>
     </Reference>
     <Reference Include="FoveUnityPlugin">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\FoveUnityPlugin.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\FoveUnityPlugin.dll</HintPath>
     </Reference>
     <Reference Include="Ionic.Zlib">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Ionic.Zlib.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\Ionic.Zlib.dll</HintPath>
     </Reference>
     <Reference Include="JsonFx.Json">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\JsonFx.Json.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\JsonFx.Json.dll</HintPath>
     </Reference>
     <Reference Include="LeapCSharp.NET3.5">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\LeapCSharp.NET3.5.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\LeapCSharp.NET3.5.dll</HintPath>
     </Reference>
     <Reference Include="System">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.dll</HintPath>
     </Reference>
     <Reference Include="System.Core">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Core.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Core.dll</HintPath>
     </Reference>
     <Reference Include="System.Drawing">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Drawing.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Drawing.dll</HintPath>
     </Reference>
     <Reference Include="System.Windows.Forms">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Windows.Forms.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Windows.Forms.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.dll</HintPath>
     </Reference>
     <Reference Include="System.Xml.Linq">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.Linq.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\System.Xml.Linq.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine.UI">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.UI.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\UnityEngine.UI.dll</HintPath>
     </Reference>
     <Reference Include="zxing.unity">
-      <HintPath>..\..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\zxing.unity.dll</HintPath>
+      <HintPath>..\..\..\..\..\Programs\COM3D2\COM3D2\COM3D2x64_Data\Managed\zxing.unity.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -227,6 +227,7 @@
     <Compile Include="CasinoDataMgr.cs" />
     <Compile Include="CasinoItemUI.cs" />
     <Compile Include="CasinoShopItem.cs" />
+    <Compile Include="CastPreviewHelper.cs" />
     <Compile Include="CCDIKCtrlData.cs" />
     <Compile Include="ChallengeResult.cs" />
     <Compile Include="CharaAppealData.cs" />
@@ -238,6 +239,7 @@
     <Compile Include="CharaSelectStatusMgr.cs" />
     <Compile Include="CharaSelectStatusMgrForChuBLip.cs" />
     <Compile Include="ChatInput.cs" />
+    <Compile Include="ChinkoCtrl.cs" />
     <Compile Include="ChipManager.cs" />
     <Compile Include="ChipStack.cs" />
     <Compile Include="ChuBlipManager.cs" />
@@ -305,6 +307,7 @@
     <Compile Include="Dealer.cs" />
     <Compile Include="DealerMaid.cs" />
     <Compile Include="DealQueue.cs" />
+    <Compile Include="DebugScenarioDraw.cs" />
     <Compile Include="DebugVRStartup.cs" />
     <Compile Include="Debug_mgr.cs" />
     <Compile Include="DefValues.cs" />
@@ -709,6 +712,7 @@
     <Compile Include="MaidStatus\IClassSystem.cs" />
     <Compile Include="MaidStatus\JobClass.cs" />
     <Compile Include="MaidStatus\JobClassSystem.cs" />
+    <Compile Include="MaidStatus\NamePair.cs" />
     <Compile Include="MaidStatus\OldDataConverter.cs" />
     <Compile Include="MaidStatus\Old\Condition.cs" />
     <Compile Include="MaidStatus\Old\Personal.cs" />
@@ -924,6 +928,7 @@
     <Compile Include="PopupAndButtonList.cs" />
     <Compile Include="PopupAndTabList.cs" />
     <Compile Include="PoseEditWindow.cs" />
+    <Compile Include="PositionStoreForLocalize.cs" />
     <Compile Include="PosRotScale.cs" />
     <Compile Include="PresetButtonCtrl.cs" />
     <Compile Include="PresetButtonMgr.cs" />

+ 8 - 8
Assembly-CSharp/AttachPointSubWindow.cs

@@ -236,26 +236,26 @@ public class AttachPointSubWindow : BasePhotoSubWindow
 		{
 			if (this.activeMaidList.Contains(this.maidList[i]))
 			{
-				string text = this.maidList[i].status.lastName + " " + this.maidList[i].status.firstName;
-				string text2 = text;
-				if (hashSet.Contains(text2))
+				string fullName = this.maidList[i].status.charaName.GetFullName(" ");
+				string text = fullName;
+				if (hashSet.Contains(text))
 				{
 					int num = 2;
 					do
 					{
-						text2 = string.Concat(new object[]
+						text = string.Concat(new object[]
 						{
-							text,
+							fullName,
 							"(",
 							num,
 							")"
 						});
 						num++;
 					}
-					while (hashSet.Contains(text2));
+					while (hashSet.Contains(text));
 				}
-				hashSet.Add(text2);
-				list.Add(new KeyValuePair<string, UnityEngine.Object>(text2, this.maidList[i]));
+				hashSet.Add(text);
+				list.Add(new KeyValuePair<string, UnityEngine.Object>(text, this.maidList[i]));
 			}
 		}
 		return list;

+ 1 - 1
Assembly-CSharp/AttributeViewer.cs

@@ -53,7 +53,7 @@ public class AttributeViewer : MonoBehaviour
 			if (!(componentInChildren == null))
 			{
 				componentInChildren.text = data.drawName;
-				Utility.SetLocalizeTerm(componentInChildren, data.termName);
+				Utility.SetLocalizeTerm(componentInChildren, data.termName, false);
 				num++;
 			}
 		}

+ 2 - 2
Assembly-CSharp/BGWindow.cs

@@ -24,14 +24,14 @@ public class BGWindow : BaseMaidPhotoWindow
 				dictionary[keyValuePair.Key].Add(keyValuePair.Value[i].nameTerm);
 			}
 		}
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			dictionary = null;
 		}
 		this.PopupAndTabList.SetData(dictionary2, dictionary, false);
 		this.PopupAndTabList.onChangePopUpListValue.Add(new Action<KeyValuePair<string, UnityEngine.Object>>(this.OnChangePopUpList));
 		this.PopupAndTabList.onSelect.Add(new Action<object>(this.OnSelectItem));
-		this.PopupAndTabList.popup_term_list = ((!Product.SPP) ? null : PhotoBGData.popup_category_term_list);
+		this.PopupAndTabList.popup_term_list = ((!Product.AEWDA) ? null : PhotoBGData.popup_category_term_list);
 		this.PopupAndTabList.popup_value_list = PhotoBGData.popup_category_list;
 		this.CheckSolidColor.onClick.Add(new Action<WFCheckBox>(this.OnClickCheckSolidColorCheckBox));
 		this.ColorInput.onChangeValue.Add(new Action<WindowPartsInputColorrPalette, Color>(this.OnChangeValueColorInput));

+ 2 - 2
Assembly-CSharp/BacklogCtrl.cs

@@ -42,7 +42,7 @@ public class BacklogCtrl : MonoBehaviour
 				gameObject.transform.localScale = Vector3.one;
 				gameObject.transform.localPosition = Vector3.zero;
 				gameObject.transform.rotation = Quaternion.identity;
-				if (!Product.SPP)
+				if (!Product.AEWDA)
 				{
 					UILabel component2 = UTY.GetChildObject(gameObject, "SpeakerName", false).GetComponent<UILabel>();
 					component2.text = backlogUnit.m_speakerName;
@@ -58,7 +58,7 @@ public class BacklogCtrl : MonoBehaviour
 				}
 			}
 		}
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			if (SubtitleDisplayManager.configDisplayType == SubtitleDisplayManager.DisplayType.OriginalAndSubtitle)
 			{

+ 129 - 40
Assembly-CSharp/BaseKagManager.cs

@@ -3228,21 +3228,80 @@ public class BaseKagManager : IDisposable
 
 	public bool TagChinko(KagTagSupport tag_data)
 	{
-		if (!tag_data.IsValid("slide"))
+		bool chinkoVisible = tag_data.IsValid("on");
+		Maid maidAndMan = this.GetMaidAndMan(tag_data, true);
+		if (maidAndMan == null || !maidAndMan.boMAN)
 		{
-			bool chinkoVisible = tag_data.IsValid("on");
-			Maid maidAndMan = this.GetMaidAndMan(tag_data, true);
-			if (maidAndMan == null || !maidAndMan.boMAN)
-			{
-				return false;
-			}
-			maidAndMan.body0.SetChinkoVisible(chinkoVisible);
+			return false;
 		}
+		maidAndMan.body0.SetChinkoVisible(chinkoVisible);
 		return false;
 	}
 
 	public bool TagChinSlide(KagTagSupport tag_data)
 	{
+		if (!Product.DOPLGBNE || Product.FDAWBW)
+		{
+			return false;
+		}
+		if (tag_data.IsValid("stop"))
+		{
+			List<ChinkoCtrl> list2 = new List<ChinkoCtrl>();
+			Action<Maid, List<ChinkoCtrl>> action = delegate(Maid maid, List<ChinkoCtrl> list)
+			{
+				if (maid != null && maid.body0 != null && maid.body0.isLoadedBody && maid.body0.chinkoCtrl != null)
+				{
+					list.Add(maid.body0.chinkoCtrl);
+				}
+			};
+			if (tag_data.IsValid("man"))
+			{
+				action(this.GetMaidAndMan(tag_data, true), list2);
+			}
+			else
+			{
+				for (int i = 0; i < GameMain.Instance.CharacterMgr.GetManCount(); i++)
+				{
+					action(GameMain.Instance.CharacterMgr.GetMan(i), list2);
+				}
+			}
+			foreach (ChinkoCtrl chinkoCtrl in list2)
+			{
+				chinkoCtrl.StopChinkoSlide();
+			}
+		}
+		else
+		{
+			this.CheckAbsolutelyNecessaryTag(tag_data, "maid", new string[]
+			{
+				"man",
+				"reg"
+			});
+			Maid maidAndMan = this.GetMaidAndMan(tag_data, false);
+			Maid maidAndMan2 = this.GetMaidAndMan(tag_data, true);
+			Vector3 zero = Vector3.zero;
+			if (tag_data.IsValid("offset"))
+			{
+				string text = tag_data.GetTagProperty("offset").AsString();
+				string[] array = text.Split(new char[]
+				{
+					','
+				});
+				zero.x = float.Parse(array[0]);
+				zero.y = float.Parse(array[1]);
+				zero.z = float.Parse(array[2]);
+			}
+			if (maidAndMan != null && maidAndMan.body0 != null && maidAndMan.body0.isLoadedBody)
+			{
+				string value = tag_data.GetTagProperty("reg").AsString();
+				ChinkoCtrl.TARGET targetId = (ChinkoCtrl.TARGET)Enum.Parse(typeof(ChinkoCtrl.TARGET), value, true);
+				if (tag_data.IsValid("apprdist"))
+				{
+					float num = (float)tag_data.GetTagProperty("apprdist").AsInteger() * 0.01f;
+				}
+				maidAndMan.body0.chinkoCtrl.StartChinkoSlide(maidAndMan2, targetId, zero, 0.05f);
+			}
+		}
 		return false;
 	}
 
@@ -4825,7 +4884,7 @@ public class BaseKagManager : IDisposable
 
 	public bool TagLoadSubtitleFile(KagTagSupport tag_data)
 	{
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			return false;
 		}
@@ -4849,7 +4908,7 @@ public class BaseKagManager : IDisposable
 
 	public bool TagSubtitleDisplayForPlayVoice(KagTagSupport tag_data)
 	{
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			return false;
 		}
@@ -4873,7 +4932,7 @@ public class BaseKagManager : IDisposable
 
 	public bool TagSubtitleDisplay(KagTagSupport tag_data)
 	{
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			return false;
 		}
@@ -4892,7 +4951,7 @@ public class BaseKagManager : IDisposable
 
 	public bool TagKupa(KagTagSupport tag_data)
 	{
-		if (!Product.SIBD || Product.VBA)
+		if (!Product.DOPLGBNE || Product.FDAWBW)
 		{
 			return false;
 		}
@@ -4906,6 +4965,11 @@ public class BaseKagManager : IDisposable
 				{
 					list.Add(tbodySkin.kupaCtrl);
 				}
+				tbodySkin = maid.body0.goSlot[57];
+				if (tbodySkin != null && tbodySkin.kupaCtrl != null)
+				{
+					list.Add(tbodySkin.kupaCtrl);
+				}
 			}
 		};
 		if (tag_data.IsValid("maid") || tag_data.IsValid("man"))
@@ -4923,17 +4987,17 @@ public class BaseKagManager : IDisposable
 				action(GameMain.Instance.CharacterMgr.GetMan(j), list2);
 			}
 		}
+		if (list2.Count == 0)
+		{
+			Debug.LogError("TagKupa で maid か man が居ません。");
+			return false;
+		}
 		if (tag_data.IsValid("auto"))
 		{
-			this.CheckAbsolutelyNecessaryTag(tag_data, "reg", new string[]
-			{
-				"targetman"
-			});
+			this.CheckAbsolutelyNecessaryTag(tag_data, "reg", new string[0]);
 			string value = tag_data.GetTagProperty("reg").AsString();
-			KupaCtrl.OPEN reg = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value, true);
-			int man_no = tag_data.GetTagProperty("targetman").AsInteger();
-			Maid man = this.GetMan(man_no);
-			float val = (float)tag_data.GetTagProperty("val").AsInteger() * 0.01f;
+			KupaCtrl.OPEN open = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value, true);
+			float num = (float)tag_data.GetTagProperty("val").AsInteger() * 0.01f;
 			float speedIn = 5f;
 			if (tag_data.IsValid("speedin"))
 			{
@@ -4949,37 +5013,58 @@ public class BaseKagManager : IDisposable
 			{
 				outVal = (float)tag_data.GetTagProperty("outval").AsInteger() * 0.01f;
 			}
-			list2[0].AutoKupaStart(reg, man, val, speedIn, sppedOut, outVal);
+			float lengthRatio = 1f;
+			if (tag_data.IsValid("lengthlimit"))
+			{
+				lengthRatio = (float)tag_data.GetTagProperty("lengthlimit").AsInteger() * 0.01f;
+			}
+			if (open == KupaCtrl.OPEN.CHINKOF || open == KupaCtrl.OPEN.CHINKOS)
+			{
+				int maid_no = tag_data.GetTagProperty("targetmaid").AsInteger();
+				Maid maid2 = this.GetMaid(maid_no);
+				string value2 = tag_data.GetTagProperty("targetreg").AsString();
+				KupaCtrl.TARGET target = (KupaCtrl.TARGET)Enum.Parse(typeof(KupaCtrl.TARGET), value2, true);
+				foreach (KupaCtrl kupaCtrl in list2)
+				{
+					kupaCtrl.AutoKariStart(open, target, maid2, num, speedIn, sppedOut, outVal, lengthRatio);
+				}
+			}
+			else
+			{
+				int man_no = tag_data.GetTagProperty("targetman").AsInteger();
+				Maid man = this.GetMan(man_no);
+				list2[0].AutoKupaStart(open, man, num, speedIn, sppedOut, outVal, lengthRatio);
+			}
 		}
 		else if (tag_data.IsValid("finish"))
 		{
-			foreach (KupaCtrl kupaCtrl in list2)
+			foreach (KupaCtrl kupaCtrl2 in list2)
 			{
 				if (tag_data.IsValid("reg"))
 				{
-					string value2 = tag_data.GetTagProperty("reg").AsString();
-					KupaCtrl.OPEN reg2 = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value2, true);
-					kupaCtrl.Finish(reg2);
+					string value3 = tag_data.GetTagProperty("reg").AsString();
+					KupaCtrl.OPEN reg = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value3, true);
+					kupaCtrl2.Finish(reg);
 				}
 				else
 				{
-					kupaCtrl.FinishAll();
+					kupaCtrl2.FinishAll();
 				}
 			}
 		}
 		else if (tag_data.IsValid("reset"))
 		{
-			foreach (KupaCtrl kupaCtrl2 in list2)
+			foreach (KupaCtrl kupaCtrl3 in list2)
 			{
 				if (tag_data.IsValid("reg"))
 				{
-					string value3 = tag_data.GetTagProperty("reg").AsString();
-					KupaCtrl.OPEN reg3 = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value3, true);
-					kupaCtrl2.Reset(reg3);
+					string value4 = tag_data.GetTagProperty("reg").AsString();
+					KupaCtrl.OPEN reg2 = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value4, true);
+					kupaCtrl3.Reset(reg2);
 				}
 				else
 				{
-					kupaCtrl2.ResetAll();
+					kupaCtrl3.ResetAll();
 				}
 			}
 		}
@@ -4990,20 +5075,23 @@ public class BaseKagManager : IDisposable
 				"val"
 			});
 			bool add = tag_data.IsValid("add");
-			string value4 = tag_data.GetTagProperty("reg").AsString();
-			KupaCtrl.OPEN reg4 = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value4, true);
-			int num = 0;
+			string value5 = tag_data.GetTagProperty("reg").AsString();
+			KupaCtrl.OPEN reg3 = (KupaCtrl.OPEN)Enum.Parse(typeof(KupaCtrl.OPEN), value5, true);
+			int num2 = 0;
 			if (tag_data.IsValid("time"))
 			{
-				num = tag_data.GetTagProperty("time").AsInteger();
+				num2 = tag_data.GetTagProperty("time").AsInteger();
 			}
-			int num2 = 0;
+			int num3 = 0;
 			if (tag_data.IsValid("wait"))
 			{
-				num2 = tag_data.GetTagProperty("wait").AsInteger();
+				num3 = tag_data.GetTagProperty("wait").AsInteger();
+			}
+			int num4 = tag_data.GetTagProperty("val").AsInteger();
+			foreach (KupaCtrl kupaCtrl4 in list2)
+			{
+				kupaCtrl4.KupaStart(reg3, (float)num2 * 0.001f, (float)num3 * 0.001f, (float)num4 * 0.01f, add);
 			}
-			int num3 = tag_data.GetTagProperty("val").AsInteger();
-			list2[0].KupaStart(reg4, (float)num * 0.001f, (float)num2 * 0.001f, (float)num3 * 0.01f, add);
 		}
 		return false;
 	}
@@ -5047,6 +5135,7 @@ public class BaseKagManager : IDisposable
 			{
 				text = tag_data.GetTagProperty("name").AsString().Trim();
 			}
+			text = MessageClass.GetTranslationText(text).Key;
 			if (tag_data.IsValid("real") && text == "フリー" && GameMain.Instance.ScriptMgr.compatibilityMode)
 			{
 				text = "[HF16]";
@@ -5285,7 +5374,7 @@ public class BaseKagManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_KAG");
-		binary.Write(1270);
+		binary.Write(1280);
 		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(1270);
+				binaryWriter.Write(1280);
 				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(1270);
+				binaryWriter.Write(1280);
 				binaryWriter.Write(this.save_data_.Count);
 				foreach (KeyValuePair<string, Dictionary<string, Dictionary<string, string>>> keyValuePair3 in this.save_data_)
 				{

+ 26 - 13
Assembly-CSharp/BgMgr.cs

@@ -302,25 +302,38 @@ public class BgMgr : MonoBehaviour
 	public GameObject AddPrefabToBg(string f_strSrc, string f_strName, string f_strDest, Vector3 f_vPos, Vector3 f_vRot)
 	{
 		GameObject gameObject = null;
-		if (!this.m_dicAttachObj.TryGetValue(f_strName, out gameObject))
+		Func<string, string, GameObject> func = delegate(string src, string name)
 		{
-			UnityEngine.Object @object = Resources.Load("Prefab/" + f_strSrc);
-			if (@object == null)
-			{
-				@object = this.CreateAssetBundle(f_strSrc);
-			}
-			if (@object == null)
+			GameObject gameObject3 = null;
+			if (!this.m_dicAttachObj.TryGetValue(name, out gameObject3))
 			{
-				return null;
+				UnityEngine.Object @object = Resources.Load("Prefab/" + src);
+				if (@object == null)
+				{
+					@object = this.CreateAssetBundle(src);
+				}
+				if (@object == null)
+				{
+					return null;
+				}
+				gameObject3 = (UnityEngine.Object.Instantiate(@object) as GameObject);
+				gameObject3.name = name;
+				this.m_dicAttachObj.Add(name, gameObject3);
 			}
-			gameObject = (UnityEngine.Object.Instantiate(@object) as GameObject);
-			gameObject.name = f_strName;
-			this.m_dicAttachObj.Add(f_strName, gameObject);
+			return gameObject3;
+		};
+		if (Product.DOPLGBNE && !Product.FDAWBW)
+		{
+			gameObject = func(f_strSrc + "_en", f_strName);
 		}
 		if (gameObject == null)
 		{
-			Debug.Log("指定のプレハブが見つかりませんでした。[" + f_strSrc + "]");
-			return null;
+			gameObject = func(f_strSrc, f_strName);
+			if (gameObject == null)
+			{
+				Debug.Log("指定のプレハブが見つかりませんでした。[" + f_strSrc + "]");
+				return null;
+			}
 		}
 		GameObject gameObject2;
 		if (this.m_goBg != null)

+ 13 - 13
Assembly-CSharp/CMSystem.cs

@@ -177,15 +177,15 @@ public class CMSystem
 
 	public bool MsgVoiceNoStop { get; set; }
 
-	public Product.Language SystemLanguage
+	public Product.JQOVNMDS SystemLanguage
 	{
 		get
 		{
-			return Product.WMZI;
+			return Product.OUIWEHVA;
 		}
 		set
 		{
-			Product.WMZI = value;
+			Product.OUIWEHVA = value;
 		}
 	}
 
@@ -197,7 +197,7 @@ public class CMSystem
 		}
 		set
 		{
-			this.m_SubtitleType = ((!Product.SPP) ? SubtitleDisplayManager.DisplayType.None : value);
+			this.m_SubtitleType = ((!Product.AEWDA) ? SubtitleDisplayManager.DisplayType.Subtitle : value);
 		}
 	}
 
@@ -209,7 +209,7 @@ public class CMSystem
 		}
 		set
 		{
-			this.m_YotogiSubtitleVisible = (!Product.SPP || value);
+			this.m_YotogiSubtitleVisible = (!Product.AEWDA || value);
 		}
 	}
 
@@ -833,7 +833,7 @@ public class CMSystem
 	{
 		XElement xelement = new XElement("Config", new object[]
 		{
-			new XAttribute("Version", 1270),
+			new XAttribute("Version", 1280),
 			new XElement("System", new XElement("SysButtonShowAlways", this.SysButtonShowAlways)),
 			new XElement("Screen", new object[]
 			{
@@ -881,7 +881,7 @@ public class CMSystem
 				new XElement("QuitWhenAssert", this.QuitWhenAssert)
 			})
 		});
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			XElement xelement2 = xelement.Element("Message");
 			if (xelement2 != null)
@@ -992,11 +992,11 @@ public class CMSystem
 				this.MsgVoiceNoStop = bool.Parse(this.getElemetn(xelm3, "MsgVoiceNoStop", "true").Value);
 				try
 				{
-					this.SystemLanguage = (Product.Language)Enum.Parse(typeof(Product.Language), this.getElemetn(xelm3, "SystemLanguage", Product.OOWU.ToString()).Value);
+					this.SystemLanguage = (Product.JQOVNMDS)Enum.Parse(typeof(Product.JQOVNMDS), this.getElemetn(xelm3, "SystemLanguage", Product.POEWBBA.ToString()).Value);
 				}
 				catch (Exception)
 				{
-					this.SystemLanguage = Product.OOWU;
+					this.SystemLanguage = Product.POEWBBA;
 				}
 				try
 				{
@@ -1004,7 +1004,7 @@ public class CMSystem
 				}
 				catch (Exception)
 				{
-					this.SubtitleType = SubtitleDisplayManager.DisplayType.None;
+					this.SubtitleType = SubtitleDisplayManager.DisplayType.Subtitle;
 				}
 				this.YotogiSubtitleVisible = bool.Parse(this.getElemetn(xelm3, "YotogiSubtitleVisible", "true").Value);
 				this.EjaculationSeEnabled = bool.Parse(this.getElemetn(xelm3, "EjaculationSeEnabled", "true").Value);
@@ -1181,7 +1181,7 @@ public class CMSystem
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_SYSTEM2");
-		binaryWriter.Write(1270);
+		binaryWriter.Write(1280);
 		binaryWriter.Write(this.m_dicEditColorPresetData.Count);
 		foreach (KeyValuePair<int, Dictionary<string, int>> keyValuePair in this.m_dicEditColorPresetData)
 		{
@@ -1815,7 +1815,7 @@ public class CMSystem
 
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1270;
+			this.m_nVersion = 1280;
 		}
 
 		public void OnAfterDeserialize()
@@ -1823,7 +1823,7 @@ public class CMSystem
 		}
 
 		[SerializeField]
-		private int m_nVersion = 1270;
+		private int m_nVersion = 1280;
 
 		[SerializeField]
 		private string m_strDShowFilter = "Microsoft DTV-DVD Video Decoder";

+ 6 - 3
Assembly-CSharp/CasinoItemUI.cs

@@ -40,7 +40,7 @@ public class CasinoItemUI : MonoBehaviour
 			this.m_ItemData.Name,
 			Utility.ConvertMoneyText(this.m_ItemData.Price)
 		};
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			array[0] = LocalizationManager.GetTranslation(this.m_ItemData.NameTerm, true, 0, true, false, null, null);
 		}
@@ -54,7 +54,7 @@ public class CasinoItemUI : MonoBehaviour
 	{
 		this.m_ItemData = item_data;
 		this.m_NameLabel.text = item_data.Name;
-		Utility.SetLocalizeTerm(this.m_NameLabel, item_data.NameTerm);
+		Utility.SetLocalizeTerm(this.m_NameLabel, item_data.NameTerm, false);
 		this.m_PriceLabel.text = Utility.ConvertMoneyText(item_data.Price);
 		this.m_ItemIcon = this.m_ItemIconObj.GetComponent<UI2DSprite>();
 		this.m_IconButton = this.m_ItemIconObj.GetComponent<UIButton>();
@@ -70,6 +70,7 @@ public class CasinoItemUI : MonoBehaviour
 		}
 		this.m_BuyButton = this.m_BuyButtonObj.GetComponent<UIButton>();
 		this.m_BuyButtonIcon = this.m_BuyButtonObj.GetComponent<UISprite>();
+		this.m_BuyButtonIconLocalize = this.m_BuyButtonObj.GetComponent<Localize>();
 		EventDelegate.Add(this.m_BuyButton.onClick, new EventDelegate.Callback(this.ItemBuy));
 		this.UIUpdate();
 	}
@@ -78,7 +79,7 @@ public class CasinoItemUI : MonoBehaviour
 	{
 		this.m_BuyButton.isEnabled = !this.m_ItemData.IsSoldOut;
 		this.m_PriceLabel.color = ((!this.m_ItemData.IsCanBuy && !this.m_ItemData.IsSoldOut) ? this.m_CannotBuyCol : this.m_CanBuyCol);
-		this.m_BuyButtonIcon.spriteName = ((!this.m_ItemData.IsSoldOut) ? this.m_BuySprite : this.m_SoldSprite);
+		Utility.SetLocalizeTerm(this.m_BuyButtonIconLocalize, (!this.m_ItemData.IsSoldOut) ? this.m_BuySprite : this.m_SoldSprite, false);
 	}
 
 	public void SwitchFrame()
@@ -123,4 +124,6 @@ public class CasinoItemUI : MonoBehaviour
 	private UIButton m_BuyButton;
 
 	private UISprite m_BuyButtonIcon;
+
+	private Localize m_BuyButtonIconLocalize;
 }

+ 183 - 0
Assembly-CSharp/CastPreviewHelper.cs

@@ -0,0 +1,183 @@
+using System;
+
+public class CastPreviewHelper
+{
+	public static CastPreviewHelper.PartsRoughType MPNToPartsRoughType(string mpn)
+	{
+		return CastPreviewHelper.MPNToPartsRoughType((MPN)Enum.Parse(typeof(MPN), mpn));
+	}
+
+	public static CastPreviewHelper.PartsRoughType MPNToPartsRoughType(MPN mpn)
+	{
+		switch (mpn)
+		{
+		case MPN.hairf:
+		case MPN.hairr:
+		case MPN.hairt:
+		case MPN.hairs:
+		case MPN.hairaho:
+			return CastPreviewHelper.PartsRoughType.髪系;
+		default:
+			if (mpn != MPN.set_maidwear && mpn != MPN.set_mywear)
+			{
+				return CastPreviewHelper.PartsRoughType.その他単品系;
+			}
+			return CastPreviewHelper.PartsRoughType.セット系;
+		}
+	}
+
+	public static CastPreviewHelper.PartsDetailType MPNToPartsDetailType(string mpn)
+	{
+		return CastPreviewHelper.MPNToPartsDetailType((MPN)Enum.Parse(typeof(MPN), mpn));
+	}
+
+	public static CastPreviewHelper.PartsDetailType MPNToPartsDetailType(MPN mpn)
+	{
+		switch (mpn)
+		{
+		case MPN.head:
+			return CastPreviewHelper.PartsDetailType.顔;
+		case MPN.hairf:
+			return CastPreviewHelper.PartsDetailType.前髪;
+		case MPN.hairr:
+			return CastPreviewHelper.PartsDetailType.後髪;
+		case MPN.hairt:
+			return CastPreviewHelper.PartsDetailType.エクステ髪;
+		case MPN.hairs:
+			return CastPreviewHelper.PartsDetailType.横髪;
+		case MPN.hairaho:
+			return CastPreviewHelper.PartsDetailType.アホ毛;
+		case MPN.skin:
+			return CastPreviewHelper.PartsDetailType.肌;
+		case MPN.acctatoo:
+			return CastPreviewHelper.PartsDetailType.タトゥ\u30FC;
+		case MPN.accnail:
+			return CastPreviewHelper.PartsDetailType.ネイル;
+		case MPN.hokuro:
+			return CastPreviewHelper.PartsDetailType.ほくろ;
+		case MPN.mayu:
+			return CastPreviewHelper.PartsDetailType.眉;
+		case MPN.lip:
+			return CastPreviewHelper.PartsDetailType.唇;
+		case MPN.eye:
+			return CastPreviewHelper.PartsDetailType.目;
+		case MPN.eye_hi:
+			return CastPreviewHelper.PartsDetailType.目ハイライト;
+		case MPN.wear:
+			return CastPreviewHelper.PartsDetailType.トップス;
+		case MPN.skirt:
+			return CastPreviewHelper.PartsDetailType.ボトムス;
+		case MPN.mizugi:
+			return CastPreviewHelper.PartsDetailType.水着;
+		case MPN.stkg:
+			return CastPreviewHelper.PartsDetailType.靴下;
+		case MPN.shoes:
+			return CastPreviewHelper.PartsDetailType.靴;
+		case MPN.headset:
+			return CastPreviewHelper.PartsDetailType.ヘッドドレス;
+		case MPN.glove:
+			return CastPreviewHelper.PartsDetailType.手袋;
+		case MPN.acchead:
+			return CastPreviewHelper.PartsDetailType.アイマスク;
+		case MPN.accha:
+			return CastPreviewHelper.PartsDetailType.歯;
+		case MPN.acchana:
+			return CastPreviewHelper.PartsDetailType.鼻アクセ;
+		case MPN.acckamisub:
+			return CastPreviewHelper.PartsDetailType.リボン;
+		case MPN.acckami:
+			return CastPreviewHelper.PartsDetailType.前髪アクセ;
+		case MPN.accmimi:
+			return CastPreviewHelper.PartsDetailType.耳アクセ;
+		case MPN.acckubi:
+			return CastPreviewHelper.PartsDetailType.ネックレス;
+		case MPN.acckubiwa:
+			return CastPreviewHelper.PartsDetailType.チョ\u30FCカ\u30FC;
+		case MPN.accheso:
+			return CastPreviewHelper.PartsDetailType.へそアクセ;
+		case MPN.accude:
+			return CastPreviewHelper.PartsDetailType.腕アクセ;
+		case MPN.accashi:
+			return CastPreviewHelper.PartsDetailType.足首アクセ;
+		case MPN.accsenaka:
+			return CastPreviewHelper.PartsDetailType.背中アクセ;
+		case MPN.accshippo:
+			return CastPreviewHelper.PartsDetailType.尻尾;
+		case MPN.megane:
+			return CastPreviewHelper.PartsDetailType.メガネ;
+		case MPN.acchat:
+			return CastPreviewHelper.PartsDetailType.帽子;
+		case MPN.onepiece:
+			return CastPreviewHelper.PartsDetailType.ワンピ\u30FCス;
+		case MPN.set_maidwear:
+			return CastPreviewHelper.PartsDetailType.メイド服セット;
+		case MPN.set_mywear:
+			return CastPreviewHelper.PartsDetailType.私服セット;
+		}
+		return CastPreviewHelper.PartsDetailType.なし;
+	}
+
+	public static void SetPartsType(MPN mpn, ref CastPreviewHelper.PartsRoughType rough_type, ref CastPreviewHelper.PartsDetailType detail_type)
+	{
+		rough_type = CastPreviewHelper.MPNToPartsRoughType(mpn);
+		detail_type = CastPreviewHelper.MPNToPartsDetailType(mpn);
+	}
+
+	public static void SetPartsType(string mpn, ref CastPreviewHelper.PartsRoughType rough_type, ref CastPreviewHelper.PartsDetailType detail_type)
+	{
+		rough_type = CastPreviewHelper.MPNToPartsRoughType(mpn);
+		detail_type = CastPreviewHelper.MPNToPartsDetailType(mpn);
+	}
+
+	public enum PartsRoughType
+	{
+		セット系,
+		髪系,
+		その他単品系
+	}
+
+	public enum PartsDetailType
+	{
+		顔,
+		目,
+		目ハイライト,
+		眉,
+		ほくろ,
+		唇,
+		歯,
+		前髪,
+		後髪,
+		横髪,
+		エクステ髪,
+		アホ毛,
+		肌,
+		タトゥ\u30FC,
+		帽子,
+		ヘッドドレス,
+		トップス,
+		ボトムス,
+		ワンピ\u30FCス,
+		水着,
+		靴下,
+		靴,
+		前髪アクセ,
+		メガネ,
+		アイマスク,
+		鼻アクセ,
+		耳アクセ,
+		手袋,
+		ネックレス,
+		リボン,
+		腕アクセ,
+		へそアクセ,
+		足首アクセ,
+		背中アクセ,
+		尻尾,
+		チョ\u30FCカ\u30FC,
+		ヘアカラ\u30FC,
+		私服セット,
+		メイド服セット,
+		ネイル,
+		なし
+	}
+}

+ 1 - 1
Assembly-CSharp/CharaSelectStatusMgr.cs

@@ -5,7 +5,7 @@ public class CharaSelectStatusMgr : StatusMgr
 {
 	public override void Init()
 	{
-		this.m_ctrl = (Product.SPP ? this.statusLocalizeCtrl : this.statusCtrl);
+		this.m_ctrl = (Product.AEWDA ? this.statusLocalizeCtrl : this.statusCtrl);
 		this.m_goPanel = this.m_ctrl.gameObject;
 		this.m_ctrl.Init(this, this.m_goPanel);
 		this.m_goPanel.SetActive(false);

+ 5 - 5
Assembly-CSharp/CharacterMgr.cs

@@ -990,7 +990,7 @@ public class CharacterMgr : MonoBehaviour
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		string result = string.Empty;
 		binaryWriter.Write("CM3D2_PRESET_S");
-		binaryWriter.Write(1270);
+		binaryWriter.Write(1280);
 		binaryWriter.Write((char)presset_type);
 		maid.SerializePropLowCapacity(binaryWriter);
 		maid.SerializeMultiColor(binaryWriter);
@@ -1007,7 +1007,7 @@ public class CharacterMgr : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_PRESET");
-		binaryWriter.Write(1270);
+		binaryWriter.Write(1280);
 		binaryWriter.Write((int)f_type);
 		if (texture2D != null)
 		{
@@ -1053,7 +1053,7 @@ public class CharacterMgr : MonoBehaviour
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("CM3D2_PRESET");
-		binaryWriter.Write(1270);
+		binaryWriter.Write(1280);
 		binaryWriter.Write((int)f_type);
 		if (texture2D != null)
 		{
@@ -1306,7 +1306,7 @@ public class CharacterMgr : MonoBehaviour
 				f_maid.Parts.SetPartsColor((MaidParts.PARTS_COLOR)k, f_prest.aryPartsColor[k]);
 			}
 		}
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			f_maid.SetProp(MPN.bra, "bra030_i_.menu", 0, false, false);
 			f_maid.SetProp(MPN.panz, "Pants030_i_.menu", 0, false, false);
@@ -1317,7 +1317,7 @@ public class CharacterMgr : MonoBehaviour
 	public bool Serialize(BinaryWriter bwWrite)
 	{
 		bwWrite.Write("CM3D2_CHR_MGR");
-		bwWrite.Write(1270);
+		bwWrite.Write(1280);
 		this.m_PlayerStatus.Serialize(bwWrite);
 		bwWrite.Write(this.m_listStockMan.Count);
 		for (int i = 0; i < this.m_listStockMan.Count; i++)

+ 5 - 1
Assembly-CSharp/CharacterSelectMain.cs

@@ -177,7 +177,7 @@ public class CharacterSelectMain : WfScreenChildren
 			}
 			else
 			{
-				explanatoryLabel = (Product.VBA ? "メイドを選択してください。" : "夜伽を行うメイドを選択してください。");
+				explanatoryLabel = (Product.FDAWBW ? "メイドを選択してください。" : "夜伽を行うメイドを選択してください。");
 			}
 			this.SetExplanatoryLabel(explanatoryLabel);
 			if (!this.auto_select_)
@@ -677,6 +677,10 @@ public class CharacterSelectMain : WfScreenChildren
 			if (this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.Yotogi || this.scene_chara_select_.select_type == SceneCharacterSelect.SelectType.NewYotogi)
 			{
 				string messageTerm = "Dialog/まだ夜伽を実行していないメイドがいます。夜伽を終了しますか?";
+				if (Product.FDAWBW)
+				{
+					messageTerm = "Dialog/まだ会話を実行していないメイドがいます。会話を終了しますか?";
+				}
 				GameMain.Instance.SysDlg.ShowFromLanguageTerm(messageTerm, null, SystemDialog.TYPE.OK_CANCEL, delegate
 				{
 					GameMain.Instance.SysDlg.Close();

+ 94 - 0
Assembly-CSharp/ChinkoCtrl.cs

@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ChinkoCtrl
+{
+	public ChinkoCtrl(Transform chinkoCenterTrs)
+	{
+		List<Transform> list = this.worldPointList;
+		this.m_chinkoCenterTrs = chinkoCenterTrs;
+		list.Add(chinkoCenterTrs);
+		this.worldPointList.Add(chinkoCenterTrs.Find("chinko1"));
+		this.worldPointList.Add(this.worldPointList[this.worldPointList.Count - 1].Find("chinko2"));
+		this.worldPointList.Add(this.worldPointList[this.worldPointList.Count - 1].Find("chinko_nub"));
+	}
+
+	public void StartChinkoSlide(Maid targetMaid, ChinkoCtrl.TARGET targetId, Vector3 offset, float apprDist = 0.05f)
+	{
+		this.m_targetMaidReg = CMT.SearchObjName(targetMaid.body0.m_Bones.transform, this.m_targetBoneName[(int)targetId], true);
+		this.m_offset = offset;
+		this.m_apprDistance = apprDist;
+	}
+
+	public void StopChinkoSlide()
+	{
+		this.m_targetMaidReg = null;
+	}
+
+	public void SelfUpdate()
+	{
+		if (this.m_targetMaidReg == null)
+		{
+			return;
+		}
+		Plane plane = new Plane(-this.m_targetMaidReg.forward, this.m_targetMaidReg.position);
+		Plane plane2 = new Plane(-this.m_chinkoCenterTrs.right, this.m_chinkoCenterTrs.position);
+		if (plane2.GetSide(this.m_targetMaidReg.position))
+		{
+			bool flag = false;
+			for (int i = 1; i < this.worldPointList.Count; i++)
+			{
+				Vector3 vector;
+				if (MathCM.PlaneSegmentIntersect(plane, this.worldPointList[i - 1].position, this.worldPointList[i].position, out vector))
+				{
+					Debug.DrawLine(vector, this.m_chinkoCenterTrs.position, Color.magenta);
+					Vector3 b = this.m_targetMaidReg.position + this.m_offset - vector;
+					this.m_chinkoCenterTrs.position = this.m_chinkoCenterTrs.position + b;
+					flag = true;
+					break;
+				}
+			}
+			if (!flag)
+			{
+				Vector3 position = this.worldPointList[this.worldPointList.Count - 2].position;
+				Vector3 position2 = this.worldPointList[this.worldPointList.Count - 1].position;
+				float num = 0f;
+				Vector3 normalized = (position2 - position).normalized;
+				if (plane.Raycast(new Ray(position, normalized), out num))
+				{
+					float num2 = num - Vector3.Distance(position, position2);
+					float d = 1f - Mathf.Clamp01(num2 / this.m_apprDistance);
+					Vector3 vector = position + normalized * num;
+					Vector3 a = this.m_targetMaidReg.position + this.m_offset - vector;
+					this.m_chinkoCenterTrs.position = this.m_chinkoCenterTrs.position + a * d;
+				}
+			}
+		}
+	}
+
+	private string[] m_targetBoneName = new string[]
+	{
+		"Mouth",
+		"_IK_vagina",
+		"_IK_anal"
+	};
+
+	private List<Transform> worldPointList = new List<Transform>();
+
+	private Transform m_chinkoCenterTrs;
+
+	private Transform m_targetMaidReg;
+
+	private Vector3 m_offset = Vector3.zero;
+
+	private float m_apprDistance = 0.05f;
+
+	public enum TARGET
+	{
+		MOUTH,
+		VAGINA,
+		ANAL,
+		MAX
+	}
+}

+ 2 - 2
Assembly-CSharp/ClassChangePanel.cs

@@ -222,9 +222,9 @@ public class ClassChangePanel : MonoBehaviour
 		JobClass.Data data = JobClass.GetData(maid_class_type);
 		ClassData<JobClass.Data> classData = this.maid_.status.jobClass.Get(maid_class_type);
 		this.info_panel_item_.class_name.text = data.drawName;
-		Utility.SetLocalizeTerm(this.info_panel_item_.class_name, data.termName);
+		Utility.SetLocalizeTerm(this.info_panel_item_.class_name, data.termName, false);
 		this.info_panel_item_.info_text.text = data.explanatoryText;
-		Utility.SetLocalizeTerm(this.info_panel_item_.info_text, data.termExplanatoryText);
+		Utility.SetLocalizeTerm(this.info_panel_item_.info_text, data.termExplanatoryText, false);
 		if (classData != null)
 		{
 			this.info_panel_item_.class_level.text = classData.level.ToString();

+ 1 - 1
Assembly-CSharp/ClassUnit.cs

@@ -61,7 +61,7 @@ public class ClassUnit : MonoBehaviour
 		JobClass.Data data = JobClass.GetData(class_type);
 		this.class_name_.text = data.drawName;
 		this.class_level_.text = "0";
-		Utility.SetLocalizeTerm(this.class_name_, data.termName);
+		Utility.SetLocalizeTerm(this.class_name_, data.termName, false);
 	}
 
 	public void SetYotogiClassType(int class_type)

+ 13 - 13
Assembly-CSharp/ConfigManager.cs

@@ -45,7 +45,7 @@ public class ConfigManager : MonoBehaviour
 		{
 			key.repositionNow = true;
 		}
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			this.systemFrame.height -= 72;
 		}
@@ -115,7 +115,7 @@ public class ConfigManager : MonoBehaviour
 		{
 			GameMain.Instance.CMSystem.EjaculationSeEnabled = setValue;
 		};
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			this.ejaculationSe.gameObject.SetActive(false);
 		}
@@ -123,9 +123,9 @@ public class ConfigManager : MonoBehaviour
 		this.yotogiSubtitleVisible.onGetValue = (() => GameMain.Instance.CMSystem.YotogiSubtitleVisible);
 		this.yotogiSubtitleVisible.onSetValue = delegate(bool setValue)
 		{
-			GameMain.Instance.CMSystem.YotogiSubtitleVisible = this.enabled;
+			GameMain.Instance.CMSystem.YotogiSubtitleVisible = setValue;
 		};
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			this.yotogiSubtitleVisible.gameObject.SetActive(false);
 		}
@@ -162,7 +162,7 @@ public class ConfigManager : MonoBehaviour
 		});
 		if (this.subtitleType != null)
 		{
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				IEnumerator enumerator2 = Enum.GetValues(typeof(SubtitleDisplayManager.DisplayType)).GetEnumerator();
 				try
@@ -226,15 +226,15 @@ public class ConfigManager : MonoBehaviour
 		}
 		if (this.systemLanguage != null)
 		{
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
-				IEnumerator enumerator3 = Enum.GetValues(typeof(Product.Language)).GetEnumerator();
+				IEnumerator enumerator3 = Enum.GetValues(typeof(Product.JQOVNMDS)).GetEnumerator();
 				try
 				{
 					while (enumerator3.MoveNext())
 					{
 						object obj2 = enumerator3.Current;
-						this.systemLanguage.AddItem(Product.EnumConvert.GetTerm((Product.Language)obj2));
+						this.systemLanguage.AddItem(Product.EnumConvert.LAWEFV((Product.JQOVNMDS)obj2));
 					}
 				}
 				finally
@@ -248,16 +248,16 @@ public class ConfigManager : MonoBehaviour
 				EventDelegate.Add(this.systemLanguage.onChange, delegate()
 				{
 					string currentPopupListValue = this.GetCurrentPopupListValue();
-					IEnumerator enumerator4 = Enum.GetValues(typeof(Product.Language)).GetEnumerator();
+					IEnumerator enumerator4 = Enum.GetValues(typeof(Product.JQOVNMDS)).GetEnumerator();
 					try
 					{
 						while (enumerator4.MoveNext())
 						{
 							object obj3 = enumerator4.Current;
-							string term = Product.EnumConvert.GetTerm((Product.Language)obj3);
-							if (currentPopupListValue == term)
+							string b = Product.EnumConvert.LAWEFV((Product.JQOVNMDS)obj3);
+							if (currentPopupListValue == b)
 							{
-								GameMain.Instance.CMSystem.SystemLanguage = (Product.Language)obj3;
+								GameMain.Instance.CMSystem.SystemLanguage = (Product.JQOVNMDS)obj3;
 								break;
 							}
 						}
@@ -375,7 +375,7 @@ public class ConfigManager : MonoBehaviour
 		this.shadowQuality.value = GameMain.Instance.CMSystem.ShadowQuality.ToString();
 		this.textureQuality.value = GameMain.Instance.CMSystem.TextureQuality.ToString();
 		this.subtitleType.value = SubtitleDisplayManager.EnumConvert.GetTerm(GameMain.Instance.CMSystem.SubtitleType);
-		this.systemLanguage.value = Product.EnumConvert.GetTerm(GameMain.Instance.CMSystem.SystemLanguage);
+		this.systemLanguage.value = Product.EnumConvert.LAWEFV(GameMain.Instance.CMSystem.SystemLanguage);
 	}
 
 	public void SetCloseButtonActive(bool active)

+ 3 - 7
Assembly-CSharp/ConfigMgr.cs

@@ -75,22 +75,18 @@ public class ConfigMgr : BaseMgr<ConfigMgr>
 
 	public void Update()
 	{
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			int num = int.MinValue;
 			if (Input.GetKeyDown(KeyCode.F1))
 			{
-				num = 0;
-			}
-			else if (Input.GetKeyDown(KeyCode.F2))
-			{
 				num = 1;
 			}
-			else if (Input.GetKeyDown(KeyCode.F3))
+			else if (Input.GetKeyDown(KeyCode.F2))
 			{
 				num = 2;
 			}
-			else if (Input.GetKeyDown(KeyCode.F4))
+			else if (Input.GetKeyDown(KeyCode.F3))
 			{
 				num = 3;
 			}

+ 2 - 2
Assembly-CSharp/ControllerShortcutSettingData.cs

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

+ 8 - 8
Assembly-CSharp/ControllerShortcutWindow.cs

@@ -84,7 +84,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 		this.m_FadeWindowCalibration.CacheChildObject<NGUIWindow>("Window Start", "FadeWindow Start");
 		this.m_FadeWindowCalibration.CacheChildObject<NGUIWindow>("Window Countdown", "FadeWindow Countdown");
 		this.m_FadeWindowCalibration.CacheChildObject<UILabel>("Window Countdown/label countdown", "countdown");
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			this.m_FadeWindowCalibration.CacheChildObject<Localize>("Window Countdown/label description", "label count desc");
 			this.m_FadeWindowCalibration.CacheChildObject<Localize>("Window Start/label", "label start desc");
@@ -109,7 +109,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 		}));
 		EventDelegate.Add(uibutton.onClick, new EventDelegate.Callback(this.OnClickCalibrationStart));
 		EventDelegate.Add(uibutton2.onClick, new EventDelegate.Callback(this.OnClickCalibrationEnd));
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			this.m_FadeWindowCalibration.GetCache<Localize>("label count desc").SetTerm(ControllerShortcutWindow.STR_LABEL_DESC_COUNT_DOWN_TERMS);
 			this.m_FadeWindowCalibration.GetCache<Localize>("label start desc").GetComponent<UILabel>().supportEncoding = true;
@@ -130,7 +130,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 	{
 		UILabel uilabel = null;
 		Localize localize = null;
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			localize = this.m_FadeWindowCalibration.GetCache<Localize>("label start desc");
 			uilabel = localize.GetComponent<UILabel>();
@@ -151,7 +151,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 			if (maid == null || !maid.Visible || maid.IsBusy || !maid.body0.isLoadedBody)
 			{
 				uilabel.text = ControllerShortcutWindow.STR_LABEL_DESC_MISSING_MAID;
-				Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_MISSING_MAID_TERMS);
+				Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_MISSING_MAID_TERMS, false);
 				cache.gameObject.SetActive(false);
 				cache2.gameObject.SetActive(false);
 				Debug.Log("OvrIK\u3000メイドの準備がまだ行われていません。");
@@ -178,21 +178,21 @@ public class ControllerShortcutWindow : MonoBehaviour
 				if (!GameMain.Instance.CMSystem.SConfig.OvrIkAllSceneEnable && flag)
 				{
 					uilabel.text = ControllerShortcutWindow.STR_LABEL_DESC_NOT_SUPPORT_MOVE_CAMERA;
-					Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_NOT_SUPPORT_MOVE_CAMERA_TERMS);
+					Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_NOT_SUPPORT_MOVE_CAMERA_TERMS, false);
 					cache.gameObject.SetActive(false);
 					cache2.gameObject.SetActive(false);
 				}
 				else
 				{
 					uilabel.text = ControllerShortcutWindow.STR_LABEL_DESC_START;
-					Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_START_TERMS);
+					Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_START_TERMS, false);
 					cache.gameObject.SetActive(true);
 					cache2.gameObject.SetActive(false);
 					if (GameMain.Instance.VRDeviceTypeID == GameMain.VRDeviceType.VIVE && ControllerShortcutSettingData.config.use1TrackerForHead)
 					{
 						UILabel uilabel2 = uilabel;
 						uilabel2.text = uilabel2.text + "\n" + ControllerShortcutWindow.STR_LABEL_DESC_START_NOTES_TRACKER;
-						Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_START_NOTES_TRACKER_TERMS);
+						Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_START_NOTES_TRACKER_TERMS, false);
 					}
 				}
 			}
@@ -204,7 +204,7 @@ public class ControllerShortcutWindow : MonoBehaviour
 		else
 		{
 			uilabel.text = ControllerShortcutWindow.STR_LABEL_DESC_END;
-			Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_END_TERMS);
+			Utility.SetLocalizeTerm(localize, ControllerShortcutWindow.STR_LABEL_DESC_END_TERMS, false);
 			cache.gameObject.SetActive(false);
 			cache2.gameObject.SetActive(true);
 			cache3.isEnabled = true;

+ 1 - 1
Assembly-CSharp/CreateBGObjectSubWindow.cs

@@ -30,7 +30,7 @@ public class CreateBGObjectSubWindow : BasePhotoSubWindow
 		}
 		this.addButtonList.SetData(dictionary2, dictionary, false);
 		this.addButtonList.onClickEventList.Add(new Action<object>(this.OnClickItem));
-		this.addButtonList.PopUpList.PopupList.isLocalized = Product.SPP;
+		this.addButtonList.PopUpList.PopupList.isLocalized = Product.AEWDA;
 		this.addButtonList.PopUpList.PopupList.itemTerms = ((!this.addButtonList.PopUpList.PopupList.isLocalized) ? null : PhotoBGObjectData.popup_category_term_list);
 		this.addButtonList.popup_value_list = PhotoBGObjectData.popup_category_list;
 	}

+ 1 - 1
Assembly-CSharp/DailyCtrl.cs

@@ -94,7 +94,7 @@ public class DailyCtrl : MonoBehaviour
 				DailyCtrl.ButtonType.LegacyMode
 			};
 		}
-		this.GetMenuButton(DailyCtrl.ButtonType.NPCEdit).active = (!Product.VBA && PluginData.IsEnabled("GP001"));
+		this.GetMenuButton(DailyCtrl.ButtonType.NPCEdit).active = (!Product.FDAWBW && PluginData.IsEnabled("GP001"));
 		foreach (DailyCtrl.ButtonType type in array3)
 		{
 			this.GetMenuButton(type).active = false;

+ 8 - 0
Assembly-CSharp/DanceData.cs

@@ -11,6 +11,14 @@ public class DanceData
 		}
 	}
 
+	public string commentaryTextTerm
+	{
+		get
+		{
+			return "SceneDanceSelect/曲説明/" + this.ID.ToString();
+		}
+	}
+
 	public void Recet()
 	{
 		this.IsPlayable = this.InitialPlayable;

+ 6 - 4
Assembly-CSharp/DanceSelect.cs

@@ -237,7 +237,7 @@ public class DanceSelect : WfScreenChildren
 		{
 			NDebug.AssertNull(this.select_panelset_array_[i].ContentsPanel != null && this.select_panelset_array_[i].ParentPanel != null);
 		}
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			this.m_CharaSelectLabel = UTY.GetChildObject(this.CharaSelectPanel.ParentPanel.gameObject, "ExplanatoryText/Value", false).GetComponent<UILabel>();
 			Localize component3 = this.m_CharaSelectLabel.GetComponent<Localize>();
@@ -665,7 +665,7 @@ public class DanceSelect : WfScreenChildren
 			{
 				DanceSelect.m_SelectedDance.Add(this.m_SecondDanceData);
 			}
-			if (!Product.SPP && (RhythmAction_Mgr.NowDance == RhythmAction_Mgr.DanceType.Challenge || RhythmAction_Mgr.IsVSDance))
+			if (!Product.AEWDA && (RhythmAction_Mgr.NowDance == RhythmAction_Mgr.DanceType.Challenge || RhythmAction_Mgr.IsVSDance))
 			{
 				this.m_CharaSelectLabel.text = "ダンスを行うメイドを" + select_chara_num + "人選択してください。";
 			}
@@ -895,7 +895,7 @@ public class DanceSelect : WfScreenChildren
 			}
 			else
 			{
-				this.ovr_dance_cam_dlg_.Show("カメラのタイプを選んで下さい。", "自由カメラ", new FFNameDialog.OnClick(this.OnOvrCamFree), "移動カメラ", new FFNameDialog.OnClick(this.OnOvrCamMove));
+				this.ovr_dance_cam_dlg_.ShowFromLanguageTerm("SceneDanceSelect/カメラのタイプを選んで下さい。", "SceneDanceSelect/自由カメラ", new FFNameDialog.OnClick(this.OnOvrCamFree), "SceneDanceSelect/移動カメラ", new FFNameDialog.OnClick(this.OnOvrCamMove), string.Empty, null);
 			}
 		}
 	}
@@ -968,7 +968,9 @@ public class DanceSelect : WfScreenChildren
 		{
 			RhythmAction_Mgr.SetDanceType(RhythmAction_Mgr.DanceType.Touch);
 		}
-		this.m_SettingObj.SetUIMode(this.m_DanceModeButtonGroup[UIButton.current].text);
+		Localize component = this.m_DanceModeButtonGroup[UIButton.current].GetComponent<Localize>();
+		string translation = LocalizationManager.GetTranslation(component.Term, true, 0, true, false, null, Product.EnumConvert.FEWQAVASV(Product.JQOVNMDS.P0L));
+		this.m_SettingObj.SetUIMode(translation);
 		this.CallMusicSelect();
 	}
 

+ 2 - 0
Assembly-CSharp/DanceSelectMusicInfo.cs

@@ -1,6 +1,7 @@
 using System;
 using I2.Loc;
 using UnityEngine;
+using wf;
 
 public class DanceSelectMusicInfo
 {
@@ -33,6 +34,7 @@ public class DanceSelectMusicInfo
 		if (this.info_label_)
 		{
 			this.info_label_.text = data.commentary_text;
+			Utility.SetLocalizeTerm(this.info_label_, data.commentaryTextTerm, false);
 		}
 		this.dance_num_label_.text = "ダンス人数 : " + data.select_chara_num + "人";
 		component = this.dance_num_label_.GetComponent<Localize>();

+ 1 - 1
Assembly-CSharp/DanceSetting.cs

@@ -629,7 +629,7 @@ public class DanceSetting : MonoBehaviour
 			}
 			else if (uiinspectorSetting.MyType == DanceSetting.SettingType.SubtitleType)
 			{
-				flag &= Product.SPP;
+				flag &= Product.AEWDA;
 			}
 			gameObject.SetActive(flag);
 			if (flag)

+ 12 - 11
Assembly-CSharp/DanceSubtitleMgr.cs

@@ -10,6 +10,7 @@ public class DanceSubtitleMgr : PartsMgrBase
 		base.Start();
 		base.IsActive &= (DanceMain.SelectDanceData != null);
 		base.IsActive &= DanceSetting.Settings.IsSubtitleOn;
+		base.IsActive &= !Product.QOPZX;
 		if (!base.IsActive)
 		{
 			base.gameObject.SetActive(false);
@@ -38,7 +39,7 @@ public class DanceSubtitleMgr : PartsMgrBase
 	{
 		float danceTimer = RhythmAction_Mgr.Instance.DanceTimer;
 		string sheet_name = DanceMain.SelectDanceData.SubtitleSheetName + "/";
-		Product.Language wmzi = Product.WMZI;
+		Product.JQOVNMDS ouiwehva = Product.OUIWEHVA;
 		using (List<DanceSubtitleMgr.SubtitleData>.Enumerator enumerator = this.m_SubtitleDataList.GetEnumerator())
 		{
 			while (enumerator.MoveNext())
@@ -55,10 +56,10 @@ public class DanceSubtitleMgr : PartsMgrBase
 				else if (data.StartTime <= danceTimer && !data.IsExistUIObj)
 				{
 					bool create_success = false;
-					Action<Product.Language> action = delegate(Product.Language langage)
+					Action<Product.JQOVNMDS> action = delegate(Product.JQOVNMDS langage)
 					{
 						string term = sheet_name + data.TranslationKey;
-						string translation = LocalizationManager.GetTranslation(term, true, 0, true, false, null, Product.EnumConvert.ToI2LocalizeLanguageName(langage));
+						string translation = LocalizationManager.GetTranslation(term, true, 0, true, false, null, Product.EnumConvert.FEWQAVASV(langage));
 						if (string.IsNullOrEmpty(translation))
 						{
 							return;
@@ -76,25 +77,25 @@ public class DanceSubtitleMgr : PartsMgrBase
 						}
 						create_success |= true;
 					};
-					if (Product.SPP)
+					if (Product.AEWDA)
 					{
 						switch (DanceSetting.Settings.SubtitleType)
 						{
 						case SubtitleDisplayManager.DisplayType.OriginalAndSubtitle:
-							action(Product.Language.INKD);
-							action(wmzi);
+							action(Product.JQOVNMDS.P0L);
+							action(ouiwehva);
 							break;
 						case SubtitleDisplayManager.DisplayType.Subtitle:
-							action(wmzi);
+							action(ouiwehva);
 							break;
 						case SubtitleDisplayManager.DisplayType.Original:
-							action(Product.Language.INKD);
+							action(Product.JQOVNMDS.P0L);
 							break;
 						}
 					}
 					else
 					{
-						action(Product.Language.INKD);
+						action(Product.JQOVNMDS.P0L);
 					}
 					if (create_success)
 					{
@@ -134,9 +135,9 @@ public class DanceSubtitleMgr : PartsMgrBase
 			}
 		}
 
-		public void SetUIObj(Product.Language langage_code, GameObject ui_obj)
+		public void SetUIObj(Product.JQOVNMDS langage_code, GameObject ui_obj)
 		{
-			if (langage_code == Product.Language.INKD)
+			if (langage_code == Product.JQOVNMDS.P0L)
 			{
 				this.OrijinalUI = ui_obj;
 			}

+ 39 - 0
Assembly-CSharp/DebugScenarioDraw.cs

@@ -0,0 +1,39 @@
+using System;
+using UnityEngine;
+
+public class DebugScenarioDraw : MonoBehaviour
+{
+	[SerializeField]
+	private DebugScenarioDraw.DrawSet advDrawSet;
+
+	[SerializeField]
+	private DebugScenarioDraw.DrawSet yotogiDrawSet;
+
+	private string advText = string.Empty;
+
+	private string yotogiText = string.Empty;
+
+	[Serializable]
+	public struct DrawSet
+	{
+		public string text
+		{
+			get
+			{
+				return (!(this.label != null)) ? string.Empty : this.label.text;
+			}
+			set
+			{
+				if (this.label != null)
+				{
+					this.label.text = value;
+				}
+			}
+		}
+
+		[SerializeField]
+		private UILabel label;
+
+		public UIButton button;
+	}
+}

+ 2 - 2
Assembly-CSharp/DeskManager.cs

@@ -143,7 +143,7 @@ internal class DeskManager
 	public static void SerializeSingleSaveData(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_DeskCustomize");
-		binary.Write(1270);
+		binary.Write(1280);
 		binary.Write(DeskManager.item_inst_data_.Count);
 		for (int i = 0; i < DeskManager.item_inst_data_.Count; i++)
 		{
@@ -317,7 +317,7 @@ internal class DeskManager
 		{
 			get
 			{
-				return !Product.SPP && this.seasonal_;
+				return !Product.AEWDA && this.seasonal_;
 			}
 		}
 

+ 3 - 3
Assembly-CSharp/DynamicBone.cs

@@ -30,7 +30,7 @@ public class DynamicBone : MonoBehaviour
 			return false;
 		};
 		f_bw.Write("CM3D21_PHY");
-		f_bw.Write(1270);
+		f_bw.Write(1280);
 		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(1270);
+		f_bw.Write(1280);
 		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, 1270);
+				this.m_Colliders[i].Serialize(f_bw, 1280);
 			}
 		}
 		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(1270);
+		f_bw.Write(1280);
 		f_bw.Write(this.m_fPanierRadius);
 		this.SerializeWriteAnimationCurve(f_bw, this.m_PanierRadiusDistrib);
 		int num = (this.m_PanierRadiusDistribGroup == null) ? 0 : this.m_PanierRadiusDistribGroup.Length;

+ 58 - 30
Assembly-CSharp/Edit/MaidProfile.cs

@@ -1,6 +1,8 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using MaidStatus;
+using UnityEngine;
 
 namespace Edit
 {
@@ -10,9 +12,31 @@ namespace Edit
 		{
 			Status status_ = maid.status;
 			string profileText = string.Empty;
+			Func<string, string> GetTranslation = delegate(string termSuffix)
+			{
+				if (string.IsNullOrEmpty(termSuffix))
+				{
+					return string.Empty;
+				}
+				string result = termSuffix;
+				if (Product.AEWDA)
+				{
+					string empty = string.Empty;
+					if (LocalizationManager.TryGetTranslation("ProfileComment/" + termSuffix, out empty, true, 0, true, false, null, Product.EnumConvert.FEWQAVASV(Product.POEWBBA)))
+					{
+						result = empty;
+					}
+					else
+					{
+						Debug.LogWarning("not find Term:ProfileComment/" + termSuffix);
+					}
+				}
+				return result;
+			};
 			Func<MaidProfile.CsvDataBlock, int, int, bool> success_call_back = delegate(MaidProfile.CsvDataBlock block, int x, int y)
 			{
-				profileText += block.csv.GetCellAsString(block.GetOriginalX(block.max_x - 1), block.GetOriginalY(y));
+				string cellAsString = block.csv.GetCellAsString(block.GetOriginalX(block.max_x - 1), block.GetOriginalY(y));
+				profileText += GetTranslation(cellAsString);
 				return true;
 			};
 			string text = "profile_comment_1.nei";
@@ -33,9 +57,9 @@ namespace Edit
 						{
 							return true;
 						}
-						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
-						string cellAsString3 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(2), line_y);
-						return !status_.partsDic.ContainsKey(cellAsString2) || status_.partsDic[cellAsString2] == cellAsString3;
+						string cellAsString = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
+						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(2), line_y);
+						return !status_.partsDic.ContainsKey(cellAsString) || status_.partsDic[cellAsString] == cellAsString2;
 					};
 					csvDataBlock.BlockAnalysis(1, line_func, success_call_back);
 					csvDataBlock.NextBlock();
@@ -45,8 +69,8 @@ namespace Edit
 						{
 							return true;
 						}
-						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
-						return status_.features.ContainsKey(Feature.GetData(cellAsString2).id);
+						string cellAsString = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
+						return status_.features.ContainsKey(Feature.GetData(cellAsString).id);
 					};
 					csvDataBlock.BlockAnalysis(1, line_func2, success_call_back);
 					csvDataBlock.NextBlock();
@@ -64,19 +88,22 @@ namespace Edit
 						NDebug.Assert("csv open failed.\n" + text, false);
 					}
 					MaidProfile.CsvDataBlock csvDataBlock2 = new MaidProfile.CsvDataBlock(csv, 0);
-					string cellAsString = csv.GetCellAsString(csvDataBlock2.GetOriginalX(csvDataBlock2.max_x - 1), csvDataBlock2.GetOriginalY(csvDataBlock2.max_y - 1));
-					profileText += cellAsString.Replace("[n]", string.Empty + status_.body.bust);
+					string text2 = csv.GetCellAsString(csvDataBlock2.GetOriginalX(csvDataBlock2.max_x - 1), csvDataBlock2.GetOriginalY(csvDataBlock2.max_y - 1));
+					text2 = GetTranslation(text2);
+					profileText += text2.Replace("[n]", string.Empty + status_.body.bust);
 					csvDataBlock2.NextBlock();
-					cellAsString = csv.GetCellAsString(csvDataBlock2.GetOriginalX(csvDataBlock2.max_x - 1), csvDataBlock2.GetOriginalY(csvDataBlock2.max_y - 1));
-					profileText += cellAsString.Replace("[n]", string.Empty + status_.body.waist);
+					text2 = csv.GetCellAsString(csvDataBlock2.GetOriginalX(csvDataBlock2.max_x - 1), csvDataBlock2.GetOriginalY(csvDataBlock2.max_y - 1));
+					text2 = GetTranslation(text2);
+					profileText += text2.Replace("[n]", string.Empty + status_.body.waist);
 					csvDataBlock2.NextBlock();
-					cellAsString = csv.GetCellAsString(csvDataBlock2.GetOriginalX(csvDataBlock2.max_x - 1), csvDataBlock2.GetOriginalY(csvDataBlock2.max_y - 1));
-					profileText += cellAsString.Replace("[n]", string.Empty + status_.body.hip);
+					text2 = csv.GetCellAsString(csvDataBlock2.GetOriginalX(csvDataBlock2.max_x - 1), csvDataBlock2.GetOriginalY(csvDataBlock2.max_y - 1));
+					text2 = GetTranslation(text2);
+					profileText += text2.Replace("[n]", string.Empty + status_.body.hip);
 					csvDataBlock2.NextBlock();
 					Func<MaidProfile.CsvDataBlock, int, bool> line_func3 = delegate(MaidProfile.CsvDataBlock cur_block, int line_y)
 					{
-						string cellAsString2 = csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
-						if (cellAsString2.IndexOf(status_.body.cup) == -1)
+						string cellAsString = csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
+						if (cellAsString.IndexOf(status_.body.cup) == -1)
 						{
 							return false;
 						}
@@ -117,8 +144,8 @@ namespace Edit
 						{
 							return true;
 						}
-						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(2), line_y);
-						return status_.features.ContainsKey(Feature.GetData(cellAsString2).id);
+						string cellAsString = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(2), line_y);
+						return status_.features.ContainsKey(Feature.GetData(cellAsString).id);
 					};
 					csvDataBlock2.BlockAnalysis(1, line_func5, success_call_back);
 					csvDataBlock2.NextBlock();
@@ -196,7 +223,7 @@ namespace Edit
 				}
 			}
 			text = "profile_comment_4.nei";
-			if (!Product.VBA)
+			if (!Product.FDAWBW)
 			{
 				using (AFileBase afileBase4 = GameUty.FileSystem.FileOpen(text))
 				{
@@ -369,27 +396,28 @@ namespace Edit
 					MaidProfile.CsvDataBlock csvDataBlock5 = new MaidProfile.CsvDataBlock(csv, 0);
 					Func<MaidProfile.CsvDataBlock, int, int, bool> success_call_back2 = delegate(MaidProfile.CsvDataBlock succes_block, int x, int y)
 					{
-						profileText += succes_block.csv.GetCellAsString(succes_block.GetOriginalX(succes_block.max_x - 3 + comment_no), succes_block.GetOriginalY(y));
+						string cellAsString = succes_block.csv.GetCellAsString(succes_block.GetOriginalX(succes_block.max_x - 3 + comment_no), succes_block.GetOriginalY(y));
+						profileText += GetTranslation(cellAsString);
 						return true;
 					};
 					Func<MaidProfile.CsvDataBlock, int, bool> line_func16 = delegate(MaidProfile.CsvDataBlock cur_block, int line_y)
 					{
-						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
-						int id = Propensity.GetData(cellAsString2).id;
+						string cellAsString = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
+						int id = Propensity.GetData(cellAsString).id;
 						if (!status_.propensitys.ContainsKey(id))
 						{
 							return false;
 						}
-						string cellAsString3 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(2), line_y);
-						if (cellAsString3 != null)
+						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(2), line_y);
+						if (cellAsString2 != null)
 						{
-							if (!(cellAsString3 == "処女"))
+							if (!(cellAsString2 == "処女"))
 							{
-								if (!(cellAsString3 == "前穴"))
+								if (!(cellAsString2 == "前穴"))
 								{
-									if (!(cellAsString3 == "後穴"))
+									if (!(cellAsString2 == "後穴"))
 									{
-										if (cellAsString3 == "両穴")
+										if (cellAsString2 == "両穴")
 										{
 											if (status_.seikeiken != Seikeiken.Yes_Yes)
 											{
@@ -498,8 +526,8 @@ namespace Edit
 						{
 							return true;
 						}
-						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
-						Feature.Data data = Feature.GetData(cellAsString2);
+						string cellAsString = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
+						Feature.Data data = Feature.GetData(cellAsString);
 						return status_.features.ContainsKey(data.id);
 					};
 					csvDataBlock6.BlockAnalysis(1, line_func17, success_call_back);
@@ -523,8 +551,8 @@ namespace Edit
 						{
 							return true;
 						}
-						string cellAsString2 = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
-						Feature.Data data = Feature.GetData(cellAsString2);
+						string cellAsString = cur_block.csv.GetCellAsString(cur_block.GetOriginalX(1), line_y);
+						Feature.Data data = Feature.GetData(cellAsString);
 						return status_.features.ContainsKey(data.id);
 					};
 					csvDataBlock7.BlockAnalysis(1, line_func18, success_call_back);

+ 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(1270);
+		binaryWriter.Write(1280);
 		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(1270);
+		brWrite.Write(1280);
 		brWrite.Write("2");
 		DataArray<int, byte> saveDataScenarioExecuteCountArray = this.m_SaveDataScenarioExecuteCountArray;
 		if (EmpireLifeModeManager.<>f__mg$cache1 == null)

+ 2 - 2
Assembly-CSharp/ExChangeUI.cs

@@ -29,14 +29,14 @@ public class ExChangeUI : MonoBehaviour
 		moneySetting.ValueUpdateAction = (MoneySetttingUI.ValueUpdateMethod)Delegate.Combine(moneySetting.ValueUpdateAction, new MoneySetttingUI.ValueUpdateMethod(this.UIStateUpdate));
 		this.m_MyCanvas = base.GetComponent<CanvasGroup>();
 		this.m_RateText.text = string.Format("コイン1枚 = {0}CR", Utility.ConvertMoneyText(this.m_CoinRate));
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			Localize localize = this.m_RateText.gameObject.AddComponent<Localize>();
 			localize.TermArgs = new Localize.ArgsPair[]
 			{
 				Localize.ArgsPair.Create(Utility.ConvertMoneyText(this.m_CoinRate))
 			};
-			Utility.SetLocalizeTerm(localize, "SceneCasino/コイン1枚 = {0}CR");
+			Utility.SetLocalizeTerm(localize, "SceneCasino/コイン1枚 = {0}CR", false);
 		}
 		this.TextUIUpdate();
 		this.m_MoneySetting.SetMoneyUI(this.m_MoneySetting.MinValue, true);

+ 88 - 10
Assembly-CSharp/FFNameDialog.cs

@@ -1,6 +1,7 @@
 using System;
 using I2.Loc;
 using UnityEngine;
+using wf;
 
 public class FFNameDialog : MonoBehaviour
 {
@@ -17,21 +18,37 @@ public class FFNameDialog : MonoBehaviour
 		this.m_uiPanel = base.gameObject.GetComponent<UIPanel>();
 		this.m_goMsg = UTY.GetChildObject(base.gameObject, "Base/Message", false);
 		this.m_uiMsg = this.m_goMsg.GetComponent<UILabel>();
+		this.m_uiMsg.gameObject.AddComponent<Localize>();
 		this.m_goSelectA = UTY.GetChildObject(base.gameObject, "Base/SelectA", false);
 		this.m_uiBtnSelectA = this.m_goSelectA.GetComponent<UIButton>();
 		this.m_uiLabelA = UTY.GetChildObject(this.m_goSelectA, "label", false).GetComponent<UILabel>();
+		this.m_uiLabelA.gameObject.AddComponent<Localize>();
 		this.m_goSelectB = UTY.GetChildObject(base.gameObject, "Base/SelectB", false);
 		this.m_uiBtnSelectB = this.m_goSelectB.GetComponent<UIButton>();
 		this.m_uiLabelB = UTY.GetChildObject(this.m_goSelectB, "label", false).GetComponent<UILabel>();
+		this.m_uiLabelB.gameObject.AddComponent<Localize>();
+		this.m_goSelectC = UTY.GetChildObject(base.gameObject, "Base/SelectC", true);
+		if (this.m_goSelectC != null)
+		{
+			this.m_uiBtnSelectC = this.m_goSelectC.GetComponent<UIButton>();
+			this.m_uiLabelC = UTY.GetChildObject(this.m_goSelectC, "label", false).GetComponent<UILabel>();
+			this.m_uiLabelC.gameObject.AddComponent<Localize>();
+			this.m_goSelectC.SetActive(false);
+		}
 		EventDelegate.Set(this.m_uiBtnSelectA.onClick, new EventDelegate.Callback(this.OnClickA));
 		EventDelegate.Set(this.m_uiBtnSelectB.onClick, new EventDelegate.Callback(this.OnClickB));
+		if (this.m_uiBtnSelectC != null)
+		{
+			EventDelegate.Set(this.m_uiBtnSelectC.onClick, new EventDelegate.Callback(this.OnClickC));
+		}
 		base.gameObject.SetActive(false);
 	}
 
-	public void SetOnClickCallBack(string f_strA, FFNameDialog.OnClick f_dgA, string f_strB, FFNameDialog.OnClick f_dgB = null)
+	public void SetOnClickCallBack(string f_strA, FFNameDialog.OnClick f_dgA, string f_strB, FFNameDialog.OnClick f_dgB, string f_strC, FFNameDialog.OnClick f_dgC)
 	{
 		this.m_dgOnClickA = f_dgA;
 		this.m_dgOnClickB = f_dgB;
+		this.m_dgOnClickC = f_dgC;
 		if (this.m_dgOnClickA == null)
 		{
 			this.m_dgOnClickA = new FFNameDialog.OnClick(this.OnCloseDefaultEvent);
@@ -40,15 +57,37 @@ public class FFNameDialog : MonoBehaviour
 		{
 			this.m_dgOnClickB = new FFNameDialog.OnClick(this.OnCloseDefaultEvent);
 		}
-		this.m_uiLabelA.text = f_strA;
-		this.m_uiLabelB.text = f_strB;
+		if (this.m_dgOnClickC == null)
+		{
+			this.m_dgOnClickC = new FFNameDialog.OnClick(this.OnCloseDefaultEvent);
+		}
+		if (!string.IsNullOrEmpty(f_strA))
+		{
+			this.m_uiLabelA.text = f_strA;
+		}
+		if (!string.IsNullOrEmpty(f_strB))
+		{
+			this.m_uiLabelB.text = f_strB;
+		}
+		if (this.m_uiLabelC != null && !string.IsNullOrEmpty(f_strC))
+		{
+			this.m_uiLabelC.text = f_strC;
+		}
 	}
 
-	public void Show(string f_strMsg, string f_strA, FFNameDialog.OnClick f_dgA, string f_strB, FFNameDialog.OnClick f_dgB = null)
+	public void Show(string f_strMsg, string f_strA, FFNameDialog.OnClick f_dgA, string f_strB, FFNameDialog.OnClick f_dgB, string f_strC, FFNameDialog.OnClick f_dgC)
 	{
+		if (this.selectABPostion != null)
+		{
+			this.selectABPostion.Apply();
+		}
 		NDebug.Assert(this.m_bDecided, "ダイアログの二重呼出しはできません。");
-		this.m_uiMsg.text = f_strMsg;
-		this.SetOnClickCallBack(f_strA, f_dgA, f_strB, f_dgB);
+		if (!string.IsNullOrEmpty(f_strMsg))
+		{
+			this.m_uiMsg.text = f_strMsg;
+			Utility.SetLocalizeTerm(this.m_uiMsg, f_strMsg, false);
+		}
+		this.SetOnClickCallBack(f_strA, f_dgA, f_strB, f_dgB, f_strC, f_dgC);
 		base.gameObject.SetActive(true);
 		iTween.StopByName(base.gameObject, "ffdlg");
 		iTween.ValueTo(base.gameObject, iTween.Hash(new object[]
@@ -69,10 +108,23 @@ public class FFNameDialog : MonoBehaviour
 
 	public void ShowFromLanguageTerm(string messageTerm, string resultATerm, FFNameDialog.OnClick f_dgA, string resultBTerm, FFNameDialog.OnClick f_dgB = null)
 	{
-		messageTerm = LocalizationManager.GetTranslation(messageTerm, true, 0, true, false, null, null);
-		resultATerm = LocalizationManager.GetTranslation(resultATerm, true, 0, true, false, null, null);
-		resultBTerm = LocalizationManager.GetTranslation(resultBTerm, true, 0, true, false, null, null);
-		this.Show(messageTerm, resultATerm, f_dgA, resultBTerm, f_dgB);
+		Utility.SetLocalizeTerm(this.m_uiMsg, messageTerm, true);
+		Utility.SetLocalizeTerm(this.m_uiLabelA, resultATerm, true);
+		Utility.SetLocalizeTerm(this.m_uiLabelB, resultBTerm, true);
+		this.Show(null, null, f_dgA, null, f_dgB, null, null);
+	}
+
+	public void ShowFromLanguageTerm(string messageTerm, string resultATerm, FFNameDialog.OnClick f_dgA, string resultBTerm, FFNameDialog.OnClick f_dgB, string resultCTerm, FFNameDialog.OnClick f_dgC)
+	{
+		Utility.SetLocalizeTerm(this.m_uiMsg, messageTerm, true);
+		Utility.SetLocalizeTerm(this.m_uiLabelA, resultATerm, true);
+		Utility.SetLocalizeTerm(this.m_uiLabelB, resultBTerm, true);
+		Utility.SetLocalizeTerm(this.m_uiLabelC, resultCTerm, true);
+		this.Show(null, null, f_dgA, null, f_dgB, null, f_dgC);
+		if (this.selectCPostion != null)
+		{
+			this.selectCPostion.Apply();
+		}
 	}
 
 	public void UpdateAlpha(float f_fNewValue)
@@ -90,6 +142,7 @@ public class FFNameDialog : MonoBehaviour
 		base.gameObject.SetActive(false);
 		this.m_dgOnClickA = null;
 		this.m_dgOnClickB = null;
+		this.m_dgOnClickC = null;
 	}
 
 	public void Close()
@@ -137,11 +190,28 @@ public class FFNameDialog : MonoBehaviour
 		}
 	}
 
+	private void OnClickC()
+	{
+		this.m_bDecided = true;
+		if (this.m_dgOnClickC != null)
+		{
+			FFNameDialog.OnClick dgOnClickC = this.m_dgOnClickC;
+			this.m_dgOnClickC = null;
+			dgOnClickC();
+		}
+	}
+
 	private void OnCloseDefaultEvent()
 	{
 		GameMain.Instance.SysDlg.Close();
 	}
 
+	[SerializeField]
+	private UIWFPositionStore selectABPostion;
+
+	[SerializeField]
+	private UIWFPositionStore selectCPostion;
+
 	private GameObject m_goSelectA;
 
 	private UIButton m_uiBtnSelectA;
@@ -154,6 +224,12 @@ public class FFNameDialog : MonoBehaviour
 
 	private UILabel m_uiLabelB;
 
+	private GameObject m_goSelectC;
+
+	private UIButton m_uiBtnSelectC;
+
+	private UILabel m_uiLabelC;
+
 	private GameObject m_goMsg;
 
 	private UILabel m_uiMsg;
@@ -164,6 +240,8 @@ public class FFNameDialog : MonoBehaviour
 
 	private FFNameDialog.OnClick m_dgOnClickB;
 
+	private FFNameDialog.OnClick m_dgOnClickC;
+
 	private bool m_bDecided = true;
 
 	public delegate void OnClick();

+ 2 - 2
Assembly-CSharp/FaceWindow.cs

@@ -25,7 +25,7 @@ public class FaceWindow : BaseMaidPhotoWindow
 				dictionary[keyValuePair.Key].Add(keyValuePair.Value[i].termName);
 			}
 		}
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			dictionary = null;
 		}
@@ -448,7 +448,7 @@ public class FaceWindow : BaseMaidPhotoWindow
 			}
 			Dictionary<string, string> maidStoreData = base.GetMaidStoreData(maid);
 			PhotoFaceData photoFaceData = PhotoFaceData.Get(long.Parse(maidStoreData["id"]));
-			this.PopupAndTabList.popup_term_list = ((!Product.SPP) ? null : PhotoFaceData.popup_category_term_list);
+			this.PopupAndTabList.popup_term_list = ((!Product.AEWDA) ? null : PhotoFaceData.popup_category_term_list);
 			this.PopupAndTabList.popup_value_list = PhotoFaceData.popup_category_list;
 			this.PopupAndTabList.SetPopupValue(photoFaceData.category);
 			this.PopupAndTabList.SetSelectButton(photoFaceData, false);

+ 1 - 1
Assembly-CSharp/Facility.cs

@@ -15,7 +15,7 @@ public class Facility : MonoBehaviour
 		Facility.FacilityStatus facilityStatus = FacilityDataTable.GetFacilityStatus(facilityTypeID, true);
 		this.param.typeID = facilityStatus.typeID;
 		this.param.name = facilityStatus.name;
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			string translation = LocalizationManager.GetTranslation(facilityStatus.termName, true, 0, true, false, null, null);
 			if (!string.IsNullOrEmpty(translation))

+ 30 - 1
Assembly-CSharp/FacilityInfoUI.cs

@@ -2,6 +2,7 @@
 using I2.Loc;
 using UnityEngine;
 using UnityEngine.UI;
+using wf;
 
 public class FacilityInfoUI : MonoBehaviour
 {
@@ -338,7 +339,14 @@ public class FacilityInfoUI : MonoBehaviour
 		}
 		if (image != null)
 		{
-			image.sprite = this.GetViewTypePlate(this.m_ViewType);
+			if (!Product.AEWDA)
+			{
+				image.sprite = this.GetViewTypePlate(this.m_ViewType);
+			}
+			else
+			{
+				Utility.SetLocalizeTerm(image, this.GetViewTypePlateTerm(this.m_ViewType), false);
+			}
 		}
 	}
 
@@ -363,6 +371,27 @@ public class FacilityInfoUI : MonoBehaviour
 		return result;
 	}
 
+	private string GetViewTypePlateTerm(FacilityInfoUI.ViewType viewType)
+	{
+		string result = null;
+		switch (viewType)
+		{
+		case FacilityInfoUI.ViewType.DefaultMode:
+			result = "SceneFacilityManagement/スプライト/情報プレート";
+			break;
+		case FacilityInfoUI.ViewType.MaidAllocateMode:
+			result = "SceneFacilityManagement/スプライト/情報プレートs2";
+			break;
+		case FacilityInfoUI.ViewType.ConstructMode:
+			result = "SceneFacilityManagement/スプライト/情報プレート2";
+			break;
+		case FacilityInfoUI.ViewType.MiniDefaultMode:
+			result = "SceneFacilityManagement/スプライト/情報プレートs";
+			break;
+		}
+		return result;
+	}
+
 	private FacilityInfoUI.ViewType m_ViewType = FacilityInfoUI.ViewType.Free;
 
 	[SerializeField]

+ 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(1270);
+		brWrite.Write(1280);
 		brWrite.Write("5");
 		int num = 0;
 		for (int i = 0; i < this.m_FacilityArray.Count; i++)

+ 1 - 1
Assembly-CSharp/FacilityUIPowerUpMaterialList.cs

@@ -50,7 +50,7 @@ public class FacilityUIPowerUpMaterialList : MonoBehaviour
 			componentInChildren.ClearOptions();
 			Facility.PowerUpMaterial[] materialArray = <SetupFacilityPowerUpMaterialListDropDown>c__AnonStorey.$this.FacilityMgr.GetFacilityPowerUpItemEnableArray(num);
 			LocalizeDropdown localizeDropdown = null;
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				localizeDropdown = componentInChildren.GetComponent<LocalizeDropdown>();
 				if (localizeDropdown != null)

+ 1 - 1
Assembly-CSharp/FluctuationOfParameterUnit.cs

@@ -40,7 +40,7 @@ public class FluctuationOfParameterUnit : MonoBehaviour
 
 	public void SetTextNameTerm(string term)
 	{
-		Utility.SetLocalizeTerm(this.name_label_loc_, term);
+		Utility.SetLocalizeTerm(this.name_label_loc_, term, false);
 	}
 
 	public void SetTextValue(int value)

+ 26 - 22
Assembly-CSharp/FullBodyIKCtrl.cs

@@ -82,6 +82,14 @@ public class FullBodyIKCtrl : MonoBehaviour
 		}
 	}
 
+	public bool IsSelfIKAttach
+	{
+		get
+		{
+			return this.m_strIKDataPair.Any((KeyValuePair<string, IKCtrlData> ik) => ik.Value.IsSelfIKAttach) && this.IKActive;
+		}
+	}
+
 	private void Update()
 	{
 		this.IsUpdateEnd = false;
@@ -242,7 +250,6 @@ public class FullBodyIKCtrl : MonoBehaviour
 				this.m_IKBoneDic[IKManager.BoneType.Spine2].Value.transform
 			};
 		}
-		this.m_SpineLength = (this.m_FullbodyIK.references.spine[0].position - this.m_FullbodyIK.references.spine[1].position).magnitude;
 		this.m_FullbodyIK.references.head = this.GetIKBone(IKManager.BoneType.Head);
 		this.m_FullbodyIK.references.leftUpperArm = this.GetIKBone(IKManager.BoneType.UpperArm_L);
 		this.m_FullbodyIK.references.leftForearm = this.GetIKBone(IKManager.BoneType.Forearm_L);
@@ -304,10 +311,6 @@ public class FullBodyIKCtrl : MonoBehaviour
 		this.BodyTarget.position = this.BodyEffector.bone.position;
 		this.DoHeightCover = false;
 		this.IsUpdateLate = false;
-		if (!this.IKActive)
-		{
-			return;
-		}
 		foreach (IKCtrlData ikctrlData in this.m_strIKDataPair.Values)
 		{
 			ikctrlData.ApplyIKSetting();
@@ -323,27 +326,30 @@ public class FullBodyIKCtrl : MonoBehaviour
 		this.IsUpdateEnd = true;
 		Action postSolverUpdate = this.PostSolverUpdate;
 		this.PostSolverUpdate = null;
-		if (this.BodyCtrlData.IsIKExec)
-		{
-			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)
+		if (this.IKActive)
 		{
-			Vector3 normalized = this.m_FullbodyIK.references.spine[0].InverseTransformPoint(this.m_FullbodyIK.references.spine[1].position).normalized;
-			this.m_FullbodyIK.solver.Update();
-			this.m_FullbodyIK.references.spine[1].position = this.m_FullbodyIK.references.spine[0].TransformPoint(normalized * this.m_SpineLength);
+			if (this.BodyCtrlData.IsIKExec)
+			{
+				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)
+			{
+				Vector3 localPosition = this.m_FullbodyIK.references.spine[1].localPosition;
+				this.m_FullbodyIK.solver.Update();
+				this.m_FullbodyIK.references.spine[1].localPosition = localPosition;
+			}
 		}
 		foreach (IKCtrlData ikctrlData in this.m_strIKDataPair.Values)
 		{
 			ikctrlData.LateUpdate();
 		}
-		if (postSolverUpdate != null)
+		if (this.IKActive && postSolverUpdate != null)
 		{
 			postSolverUpdate();
 		}
@@ -694,6 +700,4 @@ public class FullBodyIKCtrl : MonoBehaviour
 	public bool AllForceIK;
 
 	public float BlendTime = 0.5f;
-
-	private float m_SpineLength;
 }

+ 1 - 1
Assembly-CSharp/GameInShopMain.cs

@@ -60,7 +60,7 @@ public class GameInShopMain : WfScreenChildren
 			UILabel component = UTY.GetChildObject(gameObject, "Label", false).GetComponent<UILabel>();
 			component.text = gameObject.name;
 			Localize component2 = component.GetComponent<Localize>();
-			if (Product.SPP && component2 != null)
+			if (Product.AEWDA && component2 != null)
 			{
 				string[] array = new string[]
 				{

+ 40 - 29
Assembly-CSharp/GameMain.cs

@@ -676,8 +676,9 @@ public class GameMain : MonoSingleton<GameMain>
 		serializeHeader.strPlayerName = this.m_CharacterMgr.status.playerName;
 		serializeHeader.nMaidNum = this.m_CharacterMgr.GetStockMaidCount();
 		serializeHeader.strComment = f_strComment;
+		serializeHeader.productTypeID = (int)Product.FEA;
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1270);
+		binaryWriter.Write(1280);
 		this.SerializeWriteHeader(binaryWriter, serializeHeader);
 		binaryWriter.Write("bookmark_kk_01");
 		GameMain.BinaryBookmark binaryBookmark = new GameMain.BinaryBookmark(binaryWriter);
@@ -732,6 +733,7 @@ public class GameMain : MonoSingleton<GameMain>
 		bwWrite.Write(f_head.strPlayerName);
 		bwWrite.Write(f_head.nMaidNum);
 		bwWrite.Write(f_head.strComment);
+		bwWrite.Write(f_head.productTypeID);
 		return true;
 	}
 
@@ -794,7 +796,7 @@ public class GameMain : MonoSingleton<GameMain>
 		MemoryStream memoryStream = new MemoryStream();
 		BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
 		binaryWriter.Write("COM3D2_SAVE");
-		binaryWriter.Write(1270);
+		binaryWriter.Write(1280);
 		this.SerializeWriteHeader(binaryWriter, saveDataHeader);
 		binaryWriter.Write(array, (int)saveDataHeader.lHeaderSize, (int)((long)array.Length - saveDataHeader.lHeaderSize));
 		File.WriteAllBytes(path, memoryStream.ToArray());
@@ -846,8 +848,9 @@ public class GameMain : MonoSingleton<GameMain>
 				fileStream.Close();
 				fileStream.Dispose();
 				binaryWriter.Write(binaryReader.ReadString());
-				binaryWriter.Write(binaryReader.ReadInt32());
-				this.SerializeWriteHeader(binaryWriter, this.DeserializeReadHeader(binaryReader));
+				int num = binaryReader.ReadInt32();
+				binaryWriter.Write(num);
+				this.SerializeWriteHeader(binaryWriter, this.DeserializeReadHeader(binaryReader, num));
 				if (!this.TryBinaryReadString(binaryReader.BaseStream, (string str) => str == "bookmark_kk_01"))
 				{
 					NDebug.MessageBox("傅きセーブ", "元セーブデータのしおり取得に失敗しました。古いセーブデータかもしれません。");
@@ -874,9 +877,9 @@ public class GameMain : MonoSingleton<GameMain>
 				binaryBookmark3.WriteBinaryLength(binaryWriter);
 				this.KasizukiMgr.Serialize(binaryWriter);
 				binaryBookmark4.WriteBinaryLength(binaryWriter);
-				long num = binaryBookmark2.bookmark_value + binaryBookmark2.bookmark_write_position + 8L;
-				binaryReader.BaseStream.Seek(num, SeekOrigin.Begin);
-				binaryWriter.Write(binaryReader.ReadBytes((int)binaryReader.BaseStream.Length - (int)num));
+				long num2 = binaryBookmark2.bookmark_value + binaryBookmark2.bookmark_write_position + 8L;
+				binaryReader.BaseStream.Seek(num2, SeekOrigin.Begin);
+				binaryWriter.Write(binaryReader.ReadBytes((int)binaryReader.BaseStream.Length - (int)num2));
 				binaryReader.Close();
 				File.WriteAllBytes(path, memoryStream.ToArray());
 			}
@@ -930,7 +933,7 @@ public class GameMain : MonoSingleton<GameMain>
 			return false;
 		}
 		int num = binaryReader.ReadInt32();
-		GameMain.SerializeHeader serializeHeader = this.DeserializeReadHeader(binaryReader);
+		GameMain.SerializeHeader serializeHeader = this.DeserializeReadHeader(binaryReader, num);
 		if (this.TryBinaryReadString(binaryReader.BaseStream, (string str) => str == "bookmark_kk_01"))
 		{
 			GameMain.BinaryBookmark binaryBookmark = new GameMain.BinaryBookmark(binaryReader);
@@ -988,12 +991,11 @@ public class GameMain : MonoSingleton<GameMain>
 			}
 			if (list2.Count > 0)
 			{
-				string str4 = "カスタムオーダーメイド3D2";
-				string text3 = str4 + "に以下のプラグインが存在しません。\n不具合が出る可能性があります。\n";
+				string text3 = Product.gameTitle + "に以下のプラグインが存在しません。\n不具合が出る可能性があります。\n";
 				num2 = 1;
-				foreach (string str2 in list2)
+				foreach (string str3 in list2)
 				{
-					text3 += str2;
+					text3 += str3;
 					if (num2 % 5 == 0)
 					{
 						text3 += "\n";
@@ -1027,9 +1029,9 @@ public class GameMain : MonoSingleton<GameMain>
 				{
 					string text4 = "カスタムメイド3D2に以下のプラグインが存在しません。\n不具合が出る可能性があります。\n";
 					num2 = 1;
-					foreach (string str3 in list2)
+					foreach (string str2 in list2)
 					{
-						text4 += str3;
+						text4 += str2;
 						if (num2 % 5 == 0)
 						{
 							text4 += "\n";
@@ -1078,16 +1080,23 @@ public class GameMain : MonoSingleton<GameMain>
 		return true;
 	}
 
-	private GameMain.SerializeHeader DeserializeReadHeader(BinaryReader brRead)
+	private GameMain.SerializeHeader DeserializeReadHeader(BinaryReader brRead, int gameVersion)
 	{
-		return new GameMain.SerializeHeader
+		GameMain.SerializeHeader serializeHeader = new GameMain.SerializeHeader();
+		serializeHeader.strSaveTime = brRead.ReadString();
+		serializeHeader.nGameDay = brRead.ReadInt32();
+		serializeHeader.strPlayerName = brRead.ReadString();
+		serializeHeader.nMaidNum = brRead.ReadInt32();
+		serializeHeader.strComment = brRead.ReadString();
+		if (1280 <= gameVersion)
+		{
+			serializeHeader.productTypeID = brRead.ReadInt32();
+		}
+		else
 		{
-			strSaveTime = brRead.ReadString(),
-			nGameDay = brRead.ReadInt32(),
-			strPlayerName = brRead.ReadString(),
-			nMaidNum = brRead.ReadInt32(),
-			strComment = brRead.ReadString()
-		};
+			serializeHeader.productTypeID = 0;
+		}
+		return serializeHeader;
 	}
 
 	public GameMain.SerializeHeader GetSaveDataHeader(int f_nSaveNo)
@@ -1109,9 +1118,9 @@ public class GameMain : MonoSingleton<GameMain>
 					return null;
 				}
 				NDebug.Assert(a == "COM3D2_SAVE", "セーブデータファイルのヘッダーが不正です。_SAVE 2");
-				int nVer = binaryReader.ReadInt32();
-				serializeHeader = this.DeserializeReadHeader(binaryReader);
-				serializeHeader.nVer = nVer;
+				int num = binaryReader.ReadInt32();
+				serializeHeader = this.DeserializeReadHeader(binaryReader, num);
+				serializeHeader.nVer = num;
 				serializeHeader.lHeaderSize = binaryReader.BaseStream.Position;
 			}
 			return serializeHeader;
@@ -1274,19 +1283,19 @@ public class GameMain : MonoSingleton<GameMain>
 
 	private void Update()
 	{
-		if (Product.SPP && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.F6))
+		if (Product.AEWDA && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.F6))
 		{
-			string[] names = Enum.GetNames(typeof(Product.Language));
+			string[] names = Enum.GetNames(typeof(Product.JQOVNMDS));
 			for (int i = 0; i < names.Length; i++)
 			{
-				if (names[i] == Product.WMZI.ToString())
+				if (names[i] == Product.OUIWEHVA.ToString())
 				{
 					string value = names[0];
 					if (i + 1 < names.Length)
 					{
 						value = names[i + 1];
 					}
-					Product.WMZI = (Product.Language)Enum.Parse(typeof(Product.Language), value);
+					Product.OUIWEHVA = (Product.JQOVNMDS)Enum.Parse(typeof(Product.JQOVNMDS), value);
 					break;
 				}
 			}
@@ -1460,6 +1469,8 @@ public class GameMain : MonoSingleton<GameMain>
 
 		public string strComment;
 
+		public int productTypeID;
+
 		public int nVer;
 
 		public long lHeaderSize;

+ 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(1270);
+		brWrite.Write(1280);
 		brWrite.Write(1);
 		brWrite.Write((int)GameModeManager.m_NowGameModeType);
 		return true;

+ 139 - 111
Assembly-CSharp/GameUty.cs

@@ -38,7 +38,7 @@ public class GameUty
 	{
 		get
 		{
-			return 0 < GameUty.PathListOld.Count && Product.type == Product.Type.AAA;
+			return 0 < GameUty.PathListOld.Count && Product.FEA == Product.PAWCAQ.IKD;
 		}
 	}
 
@@ -154,6 +154,11 @@ public class GameUty
 			}));
 		}
 		Debug.Log("■■■■■■■■■■■■■■■■■■■■");
+		string windowTitel = Product.windowTitel;
+		if (!string.IsNullOrEmpty(windowTitel))
+		{
+			DllBase.Win32.SetWindowText(DllBase.Win32.GetActiveWindow(), windowTitel);
+		}
 	}
 
 	public static void Finish()
@@ -289,34 +294,34 @@ public class GameUty
 		HashSet<string> addedLegacyArchives = new HashSet<string>();
 		Action<string> action = delegate(string name)
 		{
-			foreach (string text28 in GameUty.PathList)
+			foreach (string text29 in GameUty.PathList)
 			{
-				string text29 = name + "_" + text28;
-				bool flag3 = AddFolderOrArchive(text29);
-				if (flag3 && !addedLegacyArchives.Contains(text29))
+				string text30 = name + "_" + text29;
+				bool flag3 = AddFolderOrArchive(text30);
+				if (flag3 && !addedLegacyArchives.Contains(text30))
 				{
-					addedLegacyArchives.Add(text29);
+					addedLegacyArchives.Add(text30);
 				}
 				if (flag3)
 				{
 					if (name == "csv")
 					{
-						GameUty.ExistCsvPathList.Add(text28);
+						GameUty.ExistCsvPathList.Add(text29);
 					}
-					for (int num14 = 2; num14 <= check_ver_no; num14++)
+					for (int num15 = 2; num15 <= check_ver_no; num15++)
 					{
-						AddFolderOrArchive(text29 + "_" + num14);
+						AddFolderOrArchive(text30 + "_" + num15);
 					}
 				}
 			}
 		};
 		Action<string> action2 = delegate(string name)
 		{
-			foreach (string text28 in GameUty.PathList)
+			foreach (string text29 in GameUty.PathList)
 			{
-				string text29 = name + "_" + text28;
-				bool flag3 = AddFolderOrArchive(text29);
-				if (!flag3 && addedLegacyArchives.Contains(text29))
+				string text30 = name + "_" + text29;
+				bool flag3 = AddFolderOrArchive(text30);
+				if (!flag3 && addedLegacyArchives.Contains(text30))
 				{
 					flag3 = true;
 				}
@@ -324,17 +329,17 @@ public class GameUty
 				{
 					if (name == "csv")
 					{
-						GameUty.ExistCsvPathList.Add(text28);
+						GameUty.ExistCsvPathList.Add(text29);
 					}
-					for (int num14 = 2; num14 <= check_ver_no; num14++)
+					for (int num15 = 2; num15 <= check_ver_no; num15++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
 							name,
 							"_",
-							text28,
+							text29,
 							"_",
-							num14
+							num15
 						}));
 					}
 				}
@@ -342,23 +347,23 @@ public class GameUty
 		};
 		Action<string> action3 = delegate(string name)
 		{
-			foreach (string text28 in GameUty.PathList)
+			foreach (string text29 in GameUty.PathList)
 			{
-				if (AddFolderOrArchive(name + "_" + text28))
+				if (AddFolderOrArchive(name + "_" + text29))
 				{
 					if (name == "csv")
 					{
-						GameUty.ExistCsvPathList.Add(text28);
+						GameUty.ExistCsvPathList.Add(text29);
 					}
-					for (int num14 = 2; num14 <= check_ver_no; num14++)
+					for (int num15 = 2; num15 <= check_ver_no; num15++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
 							name,
 							"_",
-							text28,
+							text29,
 							"_",
-							num14
+							num15
 						}));
 					}
 				}
@@ -370,11 +375,11 @@ public class GameUty
 		AddFolderOrArchive("product");
 		Product.Initialize(GameUty.m_FileSystem);
 		Debug.Log("IsEnabledCompatibilityMode:" + GameUty.IsEnabledCompatibilityMode.ToString());
-		string text = "カスタムオーダーメイド3D 2";
+		string gameTitle = Product.gameTitle;
 		string str2 = "カスタムメイド3D 2";
 		Debug.Log(string.Concat(new string[]
 		{
-			text,
+			gameTitle,
 			" GameVersion ",
 			GameUty.GetGameVersionText(),
 			"(BuildVersion : ",
@@ -385,9 +390,9 @@ public class GameUty
 		{
 			Debug.Log(str2 + " GameVersion " + GameUty.GetLegacyGameVersionText());
 		}
-		if (Product.type != Product.Type.AAA)
+		if (Product.FEA != Product.PAWCAQ.IKD)
 		{
-			GameUty.E();
+			GameUty.iwjkq();
 		}
 		else
 		{
@@ -398,24 +403,24 @@ public class GameUty
 				GameUty.m_FileSystem.SetBaseDirectory(GameMain.Instance.CMSystem.CM3D2Path);
 				GameUty.PathList = GameUty.PathListOld;
 				AddFolderOrArchive("material");
-				foreach (string text2 in GameUty.PathListOld)
+				foreach (string text in GameUty.PathListOld)
 				{
 					string str3 = "material";
-					if (text2 == "denkigai2015wTowelR")
+					if (text == "denkigai2015wTowelR")
 					{
 						AddFolderOrArchive(str3 + "_denkigai2015wTowel");
 					}
-					string text3 = str3 + "_" + text2;
-					bool flag = AddFolderOrArchive(text3);
-					if (flag && !addedLegacyArchives.Contains(text3))
+					string text2 = str3 + "_" + text;
+					bool flag = AddFolderOrArchive(text2);
+					if (flag && !addedLegacyArchives.Contains(text2))
 					{
-						addedLegacyArchives.Add(text3);
+						addedLegacyArchives.Add(text2);
 					}
 					if (flag)
 					{
 						for (int i2 = 2; i2 <= check_ver_no; i2++)
 						{
-							AddFolderOrArchive(text3 + "_" + i2);
+							AddFolderOrArchive(text2 + "_" + i2);
 						}
 					}
 				}
@@ -443,16 +448,16 @@ public class GameUty
 			GameUty.PathList = GameUty.ReadAutoPathFile("[2.1Compatibility]", fullPath + gameDataPath + "\\paths.dat");
 			if (GameUty.PathList != null && 0 < GameUty.PathList.Count)
 			{
-				foreach (string text4 in GameUty.PathList)
+				foreach (string text3 in GameUty.PathList)
 				{
-					string text5 = "material";
-					if (text4 == "denkigai2015wTowelR")
+					string text4 = "material";
+					if (text3 == "denkigai2015wTowelR")
 					{
-						AddFolderOrArchive(text5 + "_denkigai2015wTowel");
+						AddFolderOrArchive(text4 + "_denkigai2015wTowel");
 					}
-					string text6 = text5 + "_" + text4;
-					bool flag2 = AddFolderOrArchive(text6);
-					if (!flag2 && addedLegacyArchives.Contains(text6))
+					string text5 = text4 + "_" + text3;
+					bool flag2 = AddFolderOrArchive(text5);
+					if (!flag2 && addedLegacyArchives.Contains(text5))
 					{
 						flag2 = true;
 					}
@@ -462,10 +467,10 @@ public class GameUty
 						{
 							AddFolderOrArchive(string.Concat(new object[]
 							{
-								text5,
-								"_",
 								text4,
 								"_",
+								text3,
+								"_",
 								j
 							}));
 						}
@@ -493,19 +498,19 @@ public class GameUty
 				NDebug.Assert("paths.datを読み込めませんでした", false);
 			}
 			AddFolderOrArchive("csv");
-			foreach (string text7 in GameUty.PathList)
+			foreach (string text6 in GameUty.PathList)
 			{
-				string text8 = "csv";
-				if (AddFolderOrArchive(text8 + "_" + text7))
+				string text7 = "csv";
+				if (AddFolderOrArchive(text7 + "_" + text6))
 				{
 					for (int k = 2; k <= check_ver_no; k++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text8,
-							"_",
 							text7,
 							"_",
+							text6,
+							"_",
 							k
 						}));
 					}
@@ -513,19 +518,19 @@ public class GameUty
 			}
 			AddFolderOrArchive("prioritymaterial");
 			NDebug.Assert(AddFolderOrArchive("motion"), str + "motion");
-			foreach (string text9 in GameUty.PathList)
+			foreach (string text8 in GameUty.PathList)
 			{
-				string text10 = "motion";
-				if (AddFolderOrArchive(text10 + "_" + text9))
+				string text9 = "motion";
+				if (AddFolderOrArchive(text9 + "_" + text8))
 				{
 					for (int l = 2; l <= check_ver_no; l++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text10,
-							"_",
 							text9,
 							"_",
+							text8,
+							"_",
 							l
 						}));
 					}
@@ -533,38 +538,38 @@ public class GameUty
 			}
 			AddFolderOrArchive("motion2");
 			NDebug.Assert(AddFolderOrArchive("script"), str + "script");
-			foreach (string text11 in GameUty.PathList)
+			foreach (string text10 in GameUty.PathList)
 			{
-				string text12 = "script";
-				if (AddFolderOrArchive(text12 + "_" + text11))
+				string text11 = "script";
+				if (AddFolderOrArchive(text11 + "_" + text10))
 				{
 					for (int m = 2; m <= check_ver_no; m++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text12,
-							"_",
 							text11,
 							"_",
+							text10,
+							"_",
 							m
 						}));
 					}
 				}
 			}
 			AddFolderOrArchive("script_share");
-			foreach (string text13 in GameUty.PathList)
+			foreach (string text12 in GameUty.PathList)
 			{
-				string text14 = "script_share";
-				if (AddFolderOrArchive(text14 + "_" + text13))
+				string text13 = "script_share";
+				if (AddFolderOrArchive(text13 + "_" + text12))
 				{
 					for (int n = 2; n <= check_ver_no; n++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text14,
-							"_",
 							text13,
 							"_",
+							text12,
+							"_",
 							n
 						}));
 					}
@@ -572,19 +577,19 @@ public class GameUty
 			}
 			AddFolderOrArchive("script_share2");
 			NDebug.Assert(AddFolderOrArchive("sound"), str + "sound");
-			foreach (string text15 in GameUty.PathList)
+			foreach (string text14 in GameUty.PathList)
 			{
-				string text16 = "sound";
-				if (AddFolderOrArchive(text16 + "_" + text15))
+				string text15 = "sound";
+				if (AddFolderOrArchive(text15 + "_" + text14))
 				{
 					for (int num = 2; num <= check_ver_no; num++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text16,
-							"_",
 							text15,
 							"_",
+							text14,
+							"_",
 							num
 						}));
 					}
@@ -592,19 +597,19 @@ public class GameUty
 			}
 			AddFolderOrArchive("sound2");
 			NDebug.Assert(AddFolderOrArchive("system"), str + "system");
-			foreach (string text17 in GameUty.PathList)
+			foreach (string text16 in GameUty.PathList)
 			{
-				string text18 = "system";
-				if (AddFolderOrArchive(text18 + "_" + text17))
+				string text17 = "system";
+				if (AddFolderOrArchive(text17 + "_" + text16))
 				{
 					for (int num2 = 2; num2 <= check_ver_no; num2++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text18,
-							"_",
 							text17,
 							"_",
+							text16,
+							"_",
 							num2
 						}));
 					}
@@ -612,87 +617,110 @@ public class GameUty
 			}
 			AddFolderOrArchive("system2");
 			AddFolderOrArchive("language");
-			foreach (string text19 in GameUty.PathList)
+			foreach (string text18 in GameUty.PathList)
 			{
-				string text20 = "language";
-				if (AddFolderOrArchive(text20 + "_" + text19))
+				string text19 = "language";
+				if (AddFolderOrArchive(text19 + "_" + text18))
 				{
 					for (int num3 = 2; num3 <= check_ver_no; num3++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text20,
-							"_",
 							text19,
 							"_",
+							text18,
+							"_",
 							num3
 						}));
 					}
 				}
 			}
-			foreach (string text21 in GameUty.PathList)
+			foreach (string text20 in GameUty.PathList)
 			{
-				string text22 = "bg";
-				if (AddFolderOrArchive(text22 + "_" + text21))
+				string text21 = "bg";
+				if (AddFolderOrArchive(text21 + "_" + text20))
 				{
 					for (int num4 = 2; num4 <= check_ver_no; num4++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text22,
-							"_",
 							text21,
 							"_",
+							text20,
+							"_",
 							num4
 						}));
 					}
 				}
 			}
+			if (Product.DOPLGBNE && !Product.FDAWBW)
+			{
+				string text22 = "bg-en";
+				NDebug.Assert(AddFolderOrArchive(text22), str + text22);
+				foreach (string text23 in GameUty.PathList)
+				{
+					if (AddFolderOrArchive(text22 + "_" + text23))
+					{
+						for (int num5 = 2; num5 <= check_ver_no; num5++)
+						{
+							AddFolderOrArchive(string.Concat(new object[]
+							{
+								text22,
+								"_",
+								text23,
+								"_",
+								num5
+							}));
+						}
+					}
+				}
+				AddFolderOrArchive("bg-en2");
+			}
 			AddFolderOrArchive("voice");
-			for (int num5 = 0; num5 < 25; num5++)
+			for (int num6 = 0; num6 < 25; num6++)
 			{
 				string arg = "voice";
-				string arg2 = arg + "_" + (char)(97 + num5);
+				string arg2 = arg + "_" + (char)(97 + num6);
 				AddFolderOrArchive(arg2);
 			}
-			foreach (string text23 in GameUty.PathList)
+			foreach (string text24 in GameUty.PathList)
 			{
-				string text24 = "voice";
-				if (AddFolderOrArchive(text24 + "_" + text23))
+				string text25 = "voice";
+				if (AddFolderOrArchive(text25 + "_" + text24))
 				{
-					for (int num6 = 2; num6 <= check_ver_no; num6++)
+					for (int num7 = 2; num7 <= check_ver_no; num7++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text24,
+							text25,
 							"_",
-							text23,
+							text24,
 							"_",
-							num6
+							num7
 						}));
 					}
 				}
 			}
-			for (int num7 = 2; num7 <= check_ver_no; num7++)
+			for (int num8 = 2; num8 <= check_ver_no; num8++)
 			{
 				string arg3 = "voice";
-				AddFolderOrArchive(arg3 + num7);
+				AddFolderOrArchive(arg3 + num8);
 			}
-			string text25 = "parts";
-			NDebug.Assert(AddFolderOrArchive(text25), str + text25);
-			foreach (string text26 in GameUty.PathList)
+			string text26 = "parts";
+			NDebug.Assert(AddFolderOrArchive(text26), str + text26);
+			foreach (string text27 in GameUty.PathList)
 			{
-				if (AddFolderOrArchive(text25 + "_" + text26))
+				if (AddFolderOrArchive(text26 + "_" + text27))
 				{
-					for (int num8 = 2; num8 <= check_ver_no; num8++)
+					for (int num9 = 2; num9 <= check_ver_no; num9++)
 					{
 						AddFolderOrArchive(string.Concat(new object[]
 						{
-							text25,
-							"_",
 							text26,
 							"_",
-							num8
+							text27,
+							"_",
+							num9
 						}));
 					}
 				}
@@ -714,7 +742,7 @@ public class GameUty
 				}
 			}
 		}
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			list = GameUty.m_FileSystem.GetList("languagesource", AFileSystemBase.ListType.AllFile);
 			if (list != null && 0 < list.Length)
@@ -749,11 +777,11 @@ public class GameUty
 			GameUty.m_ModFileSystem.SetBaseDirectory(fullPath);
 			GameUty.m_ModFileSystem.AddFolder("Mod");
 			string[] list2 = GameUty.m_ModFileSystem.GetList(string.Empty, AFileSystemBase.ListType.AllFolder);
-			foreach (string text27 in list2)
+			foreach (string text28 in list2)
 			{
-				if (!GameUty.m_ModFileSystem.AddAutoPath(text27))
+				if (!GameUty.m_ModFileSystem.AddAutoPath(text28))
 				{
-					Debug.Log("m_ModFileSystemのAddAutoPathには既に " + text27 + " がありました。");
+					Debug.Log("m_ModFileSystemのAddAutoPathには既に " + text28 + " がありました。");
 				}
 			}
 		}
@@ -779,9 +807,9 @@ public class GameUty
 		{
 			string[] menuFiles = GameUty.MenuFiles;
 			GameUty.rid_menu_dic_ = new Dictionary<int, string>();
-			for (int num13 = 0; num13 < menuFiles.Length; num13++)
+			for (int num14 = 0; num14 < menuFiles.Length; num14++)
 			{
-				string fileName3 = Path.GetFileName(menuFiles[num13]);
+				string fileName3 = Path.GetFileName(menuFiles[num14]);
 				int hashCode = fileName3.ToLower().GetHashCode();
 				if (!GameUty.rid_menu_dic_.ContainsKey(hashCode))
 				{
@@ -802,7 +830,7 @@ public class GameUty
 		}
 	}
 
-	public static void E()
+	public static void iwjkq()
 	{
 	}
 
@@ -988,14 +1016,14 @@ public class GameUty
 
 	public static string GetBuildVersionText()
 	{
-		int num = 1270;
+		int num = 1280;
 		return (num >= 1000) ? ((float)num / 1000f).ToString("F2") : ((float)num / 100f).ToString("F2");
 	}
 
 	public static string GetGameVersionText()
 	{
 		string text = "COM3D2x64.exe";
-		int num = 1270;
+		int num = 1280;
 		string path = Path.GetFullPath(".\\") + "update.lst";
 		string[] array = new string[0];
 		if (File.Exists(path))

+ 5 - 5
Assembly-CSharp/HandSignShortcut.cs

@@ -145,11 +145,11 @@ public class HandSignShortcut : MonoBehaviour
 		Localize localize = childObject.AddComponent<Localize>();
 		if (this.IsLeftHand)
 		{
-			Utility.SetLocalizeTerm(localize, "System/左");
+			Utility.SetLocalizeTerm(localize, "System/左", false);
 		}
 		else
 		{
-			Utility.SetLocalizeTerm(localize, "System/右");
+			Utility.SetLocalizeTerm(localize, "System/右", false);
 		}
 	}
 
@@ -506,7 +506,7 @@ public class HandSignShortcut : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1270;
+			this.m_nVersion = 1280;
 		}
 
 		public void OnAfterDeserialize()
@@ -815,7 +815,7 @@ public class HandSignShortcut : MonoBehaviour
 		private const string CONF_NAME = "MaidFingerDataList.json";
 
 		[SerializeField]
-		private int m_nVersion = 1270;
+		private int m_nVersion = 1280;
 
 		[SerializeField]
 		private List<HandSignShortcut.MaidFingerData> MaidFingerDataList = new List<HandSignShortcut.MaidFingerData>();
@@ -999,7 +999,7 @@ public class HandSignShortcut : MonoBehaviour
 			{
 				localize2 = this.localize;
 			}
-			Utility.SetLocalizeTerm(localize2, key);
+			Utility.SetLocalizeTerm(localize2, key, false);
 		}
 
 		private void UpdateText()

+ 15 - 0
Assembly-CSharp/IKCtrlData.cs

@@ -164,6 +164,8 @@ public abstract class IKCtrlData
 		}
 	}
 
+	public bool IsSelfIKAttach { get; protected set; }
+
 	public abstract Transform[] ChainBones { get; }
 
 	public abstract float PositionWeight { get; set; }
@@ -308,6 +310,10 @@ public abstract class IKCtrlData
 				return;
 			}
 		}
+		if (data.BlendType == IKCtrlData.IKBlendType.IK_To_Detach && !data.NeedBlend)
+		{
+			data.BlendRecet(false);
+		}
 		data.DoSetOffset = false;
 		data.IsIKExec = true;
 		Vector3 vector = this.TargetBone.position;
@@ -447,6 +453,10 @@ public abstract class IKCtrlData
 			if (!data.DoSetPosRot)
 			{
 				data.ElapsedTime += Time.deltaTime;
+				if (data.BlendType == IKCtrlData.IKBlendType.IK_To_Detach && data.ElapsedTime >= this.MyIKCtrl.BlendTime)
+				{
+					data.BlendRecet(false);
+				}
 			}
 			data.DoSetPosRot = true;
 		}
@@ -642,6 +652,10 @@ public abstract class IKCtrlData
 		this.m_PosRotOffset.Recet();
 		this.m_FirstPosRotOffset.Recet();
 		this.m_FirstTgtPosRot.Recet();
+		if (!target && !string.IsNullOrEmpty(attach_name))
+		{
+			this.IsSelfIKAttach |= (tgt_maid == this.MyIKCtrl.TgtMaid);
+		}
 		this.GetIKParam(attachType, true, is_next).SetIKSetting(tgt_maid, slot_no, attach_name, axis_bone, target, f_vecOffset, do_animation);
 		this.GetFlagData(attachType).IsFlagChange();
 	}
@@ -652,6 +666,7 @@ public abstract class IKCtrlData
 		this.OffsetWorld = false;
 		this.ForceIK = false;
 		this.m_BoneTgtPair.PosOffset = Vector3.zero;
+		this.IsSelfIKAttach = false;
 		this.BlendPosRot.Copy(this.m_lastIKPosRot);
 		this.GetFlagData(attachType).Reset();
 		this.GetIKParam(attachType, true, false).Detach();

+ 12 - 0
Assembly-CSharp/KaraokeDataManager.cs

@@ -289,6 +289,14 @@ public class KaraokeDataManager : MonoBehaviour
 		{
 			list.Add("Ladylike");
 		}
+		if (GameMain.Instance.CMSystem.GetTmpGenericFlag("Secretary_KARAOKE") == 1)
+		{
+			list.Add("Secretary");
+		}
+		if (GameMain.Instance.CMSystem.GetTmpGenericFlag("Sister_KARAOKE") == 1)
+		{
+			list.Add("Sister");
+		}
 		List<Maid> list2 = new List<Maid>();
 		List<Maid> list3 = new List<Maid>();
 		CharacterSelectManager.DefaultMaidList(list3);
@@ -725,6 +733,10 @@ public class KaraokeDataManager : MonoBehaviour
 
 	public const string STR_PERSONAL_LADYLIKE_ENABLED_FLAG = "Ladylike_KARAOKE";
 
+	public const string STR_PERSONAL_SECRETARY_ENABLED_FLAG = "Secretary_KARAOKE";
+
+	public const string STR_PERSONAL_SISTER_ENABLED_FLAG = "Sister_KARAOKE";
+
 	private Dictionary<int, KaraokeDataManager.MusicData> m_MusicDataArray = new Dictionary<int, KaraokeDataManager.MusicData>();
 
 	private Dictionary<int, KaraokeDataManager.BackgroundData> m_BackgroundDataArray = new Dictionary<int, KaraokeDataManager.BackgroundData>();

+ 2 - 2
Assembly-CSharp/Kasizuki/ClubRoomSelectCtrl.cs

@@ -75,10 +75,10 @@ namespace Kasizuki
 			}
 			UILabel component = UTY.GetChildObject(trans.gameObject, "Label Name", false).GetComponent<UILabel>();
 			component.text = data.drawName;
-			Utility.SetLocalizeTerm(component, data.drawNameTerm);
+			Utility.SetLocalizeTerm(component, data.drawNameTerm, false);
 			UILabel component2 = UTY.GetChildObject(trans.gameObject, "Comment/Value", false).GetComponent<UILabel>();
 			component2.text = data.explanatoryText;
-			Utility.SetLocalizeTerm(component2, data.explanatoryTextTerm);
+			Utility.SetLocalizeTerm(component2, data.explanatoryTextTerm, false);
 			UIButton uiButton = trans.GetComponent<UIButton>();
 			if (uiButton)
 			{

+ 3 - 2
Assembly-CSharp/Kasizuki/KasizukiCharacterSelectCtrl.cs

@@ -102,8 +102,9 @@ namespace Kasizuki
 			{
 				component.sprite2D = null;
 			}
-			component2.text = maid.status.firstName;
-			component3.text = maid.status.lastName;
+			NamePair charaName = maid.status.charaName;
+			component3.text = charaName.name1;
+			component2.text = charaName.name2;
 		}
 
 		private void UpdateListColor(GameObject target)

+ 2 - 2
Assembly-CSharp/Kasizuki/KasizukiMainMenu.cs

@@ -290,7 +290,7 @@ namespace Kasizuki
 			{
 				UILabel cache = comp.descriptionCache.GetCache<UILabel>("説明文");
 				cache.text = playData.strDescription;
-				Utility.SetLocalizeTerm(cache, playData.strDescriptionTerm);
+				Utility.SetLocalizeTerm(cache, playData.strDescriptionTerm, false);
 				uGUIListViewer cache2 = comp.descriptionCache.GetCache<uGUIListViewer>("条件一覧");
 				string[] strConditionArray = playData.strConditionArray;
 				string[] strConditionArrayTerm = playData.strConditionArrayTerms;
@@ -299,7 +299,7 @@ namespace Kasizuki
 					UILabel component = UTY.GetChildObject(trans.gameObject, "Value", false).GetComponent<UILabel>();
 					UILabel component2 = UTY.GetChildObject(trans.gameObject, "Number", false).GetComponent<UILabel>();
 					component.text = strConditionArray[index];
-					Utility.SetLocalizeTerm(component, strConditionArrayTerm[index]);
+					Utility.SetLocalizeTerm(component, strConditionArrayTerm[index], false);
 					component2.text = (index + 1).ToString();
 				});
 				cache2.GetComponent<UIGrid>().Reposition();

+ 3 - 3
Assembly-CSharp/Kasizuki/KasizukiManSelectCtrl.cs

@@ -33,7 +33,7 @@ namespace Kasizuki
 			{
 				UILabel componentInChildren2 = button.GetComponentInChildren<UILabel>();
 				componentInChildren2.text = <SetUpManList>c__AnonStorey.dataArray[index].drawName;
-				Utility.SetLocalizeTerm(componentInChildren2, <SetUpManList>c__AnonStorey.dataArray[index].drawNameTerm);
+				Utility.SetLocalizeTerm(componentInChildren2, <SetUpManList>c__AnonStorey.dataArray[index].drawNameTerm, false);
 				EventDelegate.Add(button.onClick, delegate()
 				{
 					<SetUpManList>c__AnonStorey.OnClickManListButton(<SetUpManList>c__AnonStorey.dataArray[index].ID);
@@ -104,10 +104,10 @@ namespace Kasizuki
 			ManData.Data data = ManData.GetData(manID);
 			UILabel cache = this.m_ManProfileCache.GetCache<UILabel>("フリーコメント");
 			cache.text = data.profileText;
-			Utility.SetLocalizeTerm(cache, data.profileTextTerm);
+			Utility.SetLocalizeTerm(cache, data.profileTextTerm, false);
 			cache = this.m_ManProfileCache.GetCache<UILabel>("好きなプレイ");
 			cache.text = data.favoritePlayText;
-			Utility.SetLocalizeTerm(cache, data.favoritePlayTextTerm);
+			Utility.SetLocalizeTerm(cache, data.favoritePlayTextTerm, false);
 		}
 
 		private void UpdateManInfo()

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

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

+ 3 - 3
Assembly-CSharp/Kasizuki/KasizukiPlayInfoCtrl.cs

@@ -97,7 +97,7 @@ namespace Kasizuki
 			{
 				UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 				componentInChildren.text = data.drawName;
-				Utility.SetLocalizeTerm(componentInChildren, data.drawNameTerm);
+				Utility.SetLocalizeTerm(componentInChildren, data.drawNameTerm, false);
 				EventDelegate.Add(item.onClick, delegate()
 				{
 					<OpenRoomList>c__AnonStorey.OnClickRoom(data);
@@ -133,7 +133,7 @@ namespace Kasizuki
 			{
 				UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 				componentInChildren.text = data.drawName;
-				Utility.SetLocalizeTerm(componentInChildren, data.drawNameTerm);
+				Utility.SetLocalizeTerm(componentInChildren, data.drawNameTerm, false);
 				EventDelegate.Add(item.onClick, delegate()
 				{
 					<OpenManList>c__AnonStorey.OnClickMan(data);
@@ -172,7 +172,7 @@ namespace Kasizuki
 			{
 				UILabel componentInChildren = item.GetComponentInChildren<UILabel>();
 				componentInChildren.text = data.drawName;
-				Utility.SetLocalizeTerm(componentInChildren, data.drawNameTerm);
+				Utility.SetLocalizeTerm(componentInChildren, data.drawNameTerm, false);
 				EventDelegate.Add(item.onClick, delegate()
 				{
 					<OpenPlayList>c__AnonStorey.OnClickPlay(data);

+ 15 - 4
Assembly-CSharp/Kasizuki/KasizukiSaveAndLoadCtrl.cs

@@ -1,6 +1,8 @@
 using System;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
+using wf;
 
 namespace Kasizuki
 {
@@ -269,6 +271,15 @@ namespace Kasizuki
 				dataUnit.labelDate.text = header.GetDateTime().ToString("yyyy.MM.dd HH:mm");
 				dataUnit.labelMaidCount.text = KasizukiManager.GetEnableMaidList().Count.ToString();
 				dataUnit.labelManName.text = data.drawName;
+				if (Product.AEWDA)
+				{
+					Localize localize = dataUnit.labelManName.GetComponent<Localize>();
+					if (localize == null)
+					{
+						localize = dataUnit.labelManName.gameObject.AddComponent<Localize>();
+					}
+					Utility.SetLocalizeTerm(localize, data.drawNameTerm, false);
+				}
 				dataUnit.labelUsedCount.text = header.playCount.ToString();
 				dataUnit.inputComment.value = header.strComment;
 			}
@@ -335,7 +346,7 @@ namespace Kasizuki
 						if (GameMain.Instance.KasizukiMgr.IsExistSaveData(saveSlot))
 						{
 							msg = string.Format("{0}番に上書きして保存します。\n宜しいですか?", saveSlot);
-							if (Product.SPP)
+							if (Product.AEWDA)
 							{
 								msg = "SceneKasizukiMainMenu/ダイアログ/上書きして保存します。宜しいですか?";
 							}
@@ -343,12 +354,12 @@ namespace Kasizuki
 						else
 						{
 							msg = string.Format("{0}番にデータを保存しますか?", saveSlot);
-							if (Product.SPP)
+							if (Product.AEWDA)
 							{
 								msg = "SceneKasizukiMainMenu/ダイアログ/データを保存しますか?";
 							}
 						}
-						if (Product.SPP)
+						if (Product.AEWDA)
 						{
 							this.OpenDialogTerm(SystemDialog.TYPE.OK_CANCEL, msg, delegate
 							{
@@ -369,7 +380,7 @@ namespace Kasizuki
 				else
 				{
 					string msg = string.Format("{0}番のデータをロードしますか?", saveSlot);
-					if (Product.SPP)
+					if (Product.AEWDA)
 					{
 						this.OpenDialogTerm(SystemDialog.TYPE.OK_CANCEL, "Dialog/セーブロード/データをロードしますか?", delegate
 						{

+ 5 - 5
Assembly-CSharp/Kasizuki/MaidAppealComment.cs

@@ -36,10 +36,10 @@ namespace Kasizuki
 
 		private void Start()
 		{
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
-				this.appealLanguageSprites.Add(Product.Language.INKD.ToString(), this.m_ImageAppealComment);
-				string[] names = Enum.GetNames(typeof(Product.Language));
+				this.appealLanguageSprites.Add(Product.JQOVNMDS.P0L.ToString(), this.m_ImageAppealComment);
+				string[] names = Enum.GetNames(typeof(Product.JQOVNMDS));
 				for (int i = 1; i < names.Length; i++)
 				{
 					GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(this.m_ImageAppealComment.gameObject);
@@ -60,13 +60,13 @@ namespace Kasizuki
 
 		public void OnLocalize()
 		{
-			if (!Product.SPP)
+			if (!Product.AEWDA)
 			{
 				return;
 			}
 			foreach (KeyValuePair<string, UI2DSprite> keyValuePair in this.appealLanguageSprites)
 			{
-				keyValuePair.Value.gameObject.SetActive(keyValuePair.Key == Product.WMZI.ToString());
+				keyValuePair.Value.gameObject.SetActive(keyValuePair.Key == Product.OUIWEHVA.ToString());
 			}
 		}
 

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

@@ -93,7 +93,7 @@ namespace Kasizuki
 				}
 				num = Mathf.Clamp(num, 0, 100);
 				component2.text = data.drawName;
-				Utility.SetLocalizeTerm(component2, data.drawNameTerm);
+				Utility.SetLocalizeTerm(component2, data.drawNameTerm, false);
 				component3.text = num.ToString();
 				component4.fillAmount = (float)num / 100f;
 			});

+ 14 - 5
Assembly-CSharp/Kasizuki/MaidMiniStatusCtrl.cs

@@ -14,6 +14,8 @@ namespace Kasizuki
 			base.Awake();
 			base.CacheChildObject<UILabel>("FirstName/Value", "FirstName");
 			base.CacheChildObject<UILabel>("LastName/Value", "LastName");
+			base.CacheChildObject<Transform>("FirstName/Title", "FirstNameTitle");
+			base.CacheChildObject<Transform>("LastName/Title", "LastNameTitle");
 			base.CacheChildObject<UILabel>("Column1/Character/Value", "Personal");
 			base.CacheChildObject<UILabel>("Column1/SexExperience/Value", "SexualExp");
 			base.CacheChildObject<UILabel>("Column1/BodySize/Parent/Height/Value", "Height");
@@ -36,6 +38,12 @@ namespace Kasizuki
 			}));
 			UIInput uiinput = base.CacheChildObject<UIInput>("FreeCommentWindow/FreeComment", "FreeComment");
 			EventDelegate.Add(uiinput.onChange, new EventDelegate.Callback(this.OnChangeFreeComment));
+			if (Product.DOPLGBNE)
+			{
+				Vector3 position = base.GetCache<Transform>("FirstNameTitle").position;
+				base.GetCache<Transform>("FirstNameTitle").position = base.GetCache<Transform>("LastNameTitle").position;
+				base.GetCache<Transform>("LastNameTitle").position = position;
+			}
 			this.m_IsAwaked = true;
 		}
 
@@ -68,17 +76,18 @@ namespace Kasizuki
 			}
 			Maid targetMaid = this.m_TargetMaid;
 			Status status = targetMaid.status;
-			base.GetCache<UILabel>("FirstName").text = status.firstName;
-			base.GetCache<UILabel>("LastName").text = status.lastName;
+			NamePair charaName = status.charaName;
+			base.GetCache<UILabel>("LastName").text = charaName.name1;
+			base.GetCache<UILabel>("FirstName").text = charaName.name2;
 			UILabel cache = base.GetCache<UILabel>("Personal");
 			cache.fontSize = 25;
 			cache.text = status.personal.drawName;
-			if (!Utility.SetLocalizeTerm(cache, status.personal.termName))
+			if (!Utility.SetLocalizeTerm(cache, status.personal.termName, false))
 			{
 				Utility.ResizeUILabelFontSize(cache, 251);
 			}
 			base.GetCache<UILabel>("SexualExp").text = EnumConvert.GetString(status.seikeiken);
-			Utility.SetLocalizeTerm(base.GetCache<UILabel>("SexualExp"), EnumConvert.GetTerm(status.seikeiken));
+			Utility.SetLocalizeTerm(base.GetCache<UILabel>("SexualExp"), EnumConvert.GetTerm(status.seikeiken), false);
 			base.GetCache<UILabel>("Height").text = status.body.height.ToString();
 			base.GetCache<UILabel>("Weight").text = status.body.weight.ToString();
 			base.GetCache<UILabel>("Bust").text = status.body.bust.ToString();
@@ -115,7 +124,7 @@ namespace Kasizuki
 		private void SetAppealImage(AppealData.Data data)
 		{
 			MaidAppealComment cache = base.GetCache<MaidAppealComment>("Appeal");
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				Dictionary<string, Texture2D> dictionary = new Dictionary<string, Texture2D>();
 				foreach (string text in LocalizationManager.GetAllLanguagesCode(true, true))

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

@@ -49,7 +49,7 @@ namespace Kasizuki
 				Propensity.Data data = propensitys[index];
 				UILabel componentInChildren2 = item.GetComponentInChildren<UILabel>();
 				componentInChildren2.text = data.drawName;
-				Utility.SetLocalizeTerm(componentInChildren2, data.termName);
+				Utility.SetLocalizeTerm(componentInChildren2, data.termName, false);
 			});
 			UIGrid component = this.m_ListViewer.parentItemArea.GetComponent<UIGrid>();
 			component.enabled = true;

+ 108 - 28
Assembly-CSharp/KupaCtrl.cs

@@ -7,6 +7,7 @@ public class KupaCtrl
 	public KupaCtrl(TBody body0, TMorph morph)
 	{
 		this.m_morph = morph;
+		this.m_body0 = body0;
 		for (int i = 0; i < this.m_morphId.Length; i++)
 		{
 			this.m_morphId[i] = -1;
@@ -27,6 +28,10 @@ public class KupaCtrl
 		{
 			this.m_morphId[3] = (int)this.m_morph.hash["chinkos"];
 		}
+		if (this.m_morph.hash.ContainsKey("chinkof"))
+		{
+			this.m_morphId[4] = (int)this.m_morph.hash["chinkof"];
+		}
 		Transform transform = CMT.SearchObjName(body0.m_trBones, "_IK_vagina", true);
 		if (transform != null)
 		{
@@ -79,8 +84,13 @@ public class KupaCtrl
 		}
 	}
 
-	public void AutoKupaStart(KupaCtrl.OPEN reg, Maid targetMan, float val, float speedIn, float sppedOut, float outVal)
+	public void AutoKupaStart(KupaCtrl.OPEN reg, Maid targetMan, float val, float speedIn, float sppedOut, float outVal, float lengthRatio)
 	{
+		if (this.m_body0.boMAN)
+		{
+			Debug.LogError("AutoKupaStartはMaid専用。");
+			return;
+		}
 		this.m_taskList.RemoveAll((KupaCtrl.ATask i) => i.m_reg == reg);
 		Transform trBones = targetMan.body0.m_trBones;
 		NDebug.Assert(trBones != null, "男の体が未だロードされていません。");
@@ -93,7 +103,32 @@ public class KupaCtrl
 			array[2] = array[1].Find("chinko_nub");
 			if (this.m_morphId[(int)reg] != -1)
 			{
-				this.m_taskList.Add(new KupaCtrl.Target(this.m_morph, this.m_morphId[(int)reg], reg, this.m_trans[(int)reg], array, val, speedIn, sppedOut, outVal));
+				this.m_taskList.Add(new KupaCtrl.Target(this.m_morph, this.m_morphId[(int)reg], reg, this.m_trans[(int)reg], array, val, speedIn, sppedOut, outVal, lengthRatio));
+			}
+		}
+	}
+
+	public void AutoKariStart(KupaCtrl.OPEN reg, KupaCtrl.TARGET target, Maid targetMaid, float destVal, float speedIn, float sppedOut, float outVal, float lengthRatio)
+	{
+		if (!this.m_body0.boMAN)
+		{
+			Debug.LogError("AutoKariStartはMan専用。");
+			return;
+		}
+		this.m_taskList.RemoveAll((KupaCtrl.ATask i) => i.m_reg == reg);
+		Transform trBones = this.m_body0.m_trBones;
+		NDebug.Assert(trBones != null, "男の体が未だロードされていません。");
+		Transform transform = CMT.SearchObjName(trBones, "chinkoCenter", true);
+		if (transform != null)
+		{
+			Transform[] array = new Transform[3];
+			array[0] = transform.Find("chinko1");
+			array[1] = array[0].Find("chinko2");
+			array[2] = array[1].Find("chinko_nub");
+			Transform src = CMT.SearchObjName(targetMaid.body0.m_trBones, this.m_targetBoneName[(int)target], true);
+			if (this.m_morphId[(int)reg] != -1)
+			{
+				this.m_taskList.Add(new KupaCtrl.Target(this.m_morph, this.m_morphId[(int)reg], reg, src, array, destVal, speedIn, sppedOut, outVal, lengthRatio));
 			}
 		}
 	}
@@ -136,11 +171,20 @@ public class KupaCtrl
 
 	public TMorph m_morph;
 
-	private int[] m_morphId = new int[4];
+	public TBody m_body0;
+
+	private int[] m_morphId = new int[5];
+
+	private string[] m_targetBoneName = new string[]
+	{
+		"Mouth",
+		"_IK_vagina",
+		"_IK_anal"
+	};
 
 	private List<KupaCtrl.ATask> m_taskList = new List<KupaCtrl.ATask>();
 
-	private Transform[] m_trans = new Transform[4];
+	private Transform[] m_trans = new Transform[5];
 
 	public enum OPEN
 	{
@@ -148,6 +192,15 @@ public class KupaCtrl
 		VAGINA,
 		ANAL,
 		CHINKOS,
+		CHINKOF,
+		MAX
+	}
+
+	public enum TARGET
+	{
+		MOUTH,
+		VAGINA,
+		ANAL,
 		MAX
 	}
 
@@ -268,7 +321,7 @@ public class KupaCtrl
 
 	private class Target : KupaCtrl.ATask
 	{
-		public Target(TMorph morph, int id, KupaCtrl.OPEN reg, Transform src, Transform[] target, float val, float speedIn, float sppedOut, float outVal) : base(morph, id, reg)
+		public Target(TMorph morph, int id, KupaCtrl.OPEN reg, Transform src, Transform[] target, float val = 1f, float speedIn = 5f, float sppedOut = 5f, float outVal = 0f, float lengthRatio = 1f) : base(morph, id, reg)
 		{
 			this.m_src = src;
 			this.m_target = target;
@@ -277,6 +330,8 @@ public class KupaCtrl
 			this.m_sppedNow = speedIn;
 			this.m_sppedOut = sppedOut;
 			this.m_outVal = outVal;
+			this.m_lengthRatio = lengthRatio;
+			this.m_nowRatio = this.m_morph.GetBlendValues(this.m_id);
 			this.m_visible = true;
 		}
 
@@ -303,25 +358,46 @@ public class KupaCtrl
 			int num3 = 0;
 			Vector3 zero = Vector3.zero;
 			float num4 = 0f;
+			float num5 = 0f;
 			for (int i = 1; i < this.m_target.Length; i++)
 			{
-				Vector3 position = this.m_target[i - 1].position;
+				num5 += Vector3.Distance(this.m_target[i - 1].position, this.m_target[i].position);
+			}
+			float num6 = num5 * this.m_lengthRatio;
+			float num7 = 0f;
+			for (int j = 1; j < this.m_target.Length; j++)
+			{
+				Vector3 position = this.m_target[j - 1].position;
 				Vector3 position2 = this.m_src.position;
-				MathCM.Segment segment = new MathCM.Segment(position, this.m_target[i].position);
+				this.m_segTemp.s = position;
+				this.m_segTemp.e = this.m_target[j].position;
+				this.m_segTemp.v = this.m_segTemp.e - this.m_segTemp.s;
+				bool flag = false;
+				float num8;
+				num7 += (num8 = Vector3.Distance(this.m_segTemp.s, this.m_segTemp.e));
+				if (num6 < num7)
+				{
+					this.m_segTemp.e = this.m_segTemp.s + this.m_segTemp.v.normalized * (num8 - (num7 - num6));
+					flag = true;
+				}
 				Vector3 vector;
-				float num6;
-				float num5 = MathCM.calcPointSegmentDist(ref position2, ref segment, out vector, out num6);
-				if (num5 < num2)
+				float num10;
+				float num9 = MathCM.calcPointSegmentDist(ref position2, ref this.m_segTemp, out vector, out num10);
+				if (num9 < num2)
 				{
-					num2 = num5;
-					num3 = i;
-					num4 = num6;
+					num2 = num9;
+					num3 = j;
+					num4 = num10;
+				}
+				if (flag)
+				{
+					break;
 				}
 			}
-			float num7 = this.m_outNowVal;
+			float num11 = this.m_outNowVal;
 			if (num2 <= this.m_hitDistance)
 			{
-				num7 = this.m_distVal;
+				num11 = this.m_distVal;
 				if (0f < num4 && num4 < 1f)
 				{
 					this.m_outNowVal = this.m_outVal;
@@ -329,32 +405,32 @@ public class KupaCtrl
 			}
 			else if (num2 <= this.m_apprDistance)
 			{
-				num7 = this.m_outNowVal + (this.m_distVal - this.m_outNowVal) * (1f - (num2 - this.m_hitDistance) / (this.m_apprDistance - this.m_hitDistance));
+				num11 = this.m_outNowVal + (this.m_distVal - this.m_outNowVal) * (1f - (num2 - this.m_hitDistance) / (this.m_apprDistance - this.m_hitDistance));
 				Vector3 normalized = (this.m_target[num3 - 1].position - this.m_target[num3].position).normalized;
-				float num8 = Vector3.Dot(lhs, normalized);
-				if ((double)num8 <= 0.0)
+				float num12 = Vector3.Dot(lhs, normalized);
+				if ((double)num12 <= 0.0)
 				{
-					num7 = 0f;
+					num11 = 0f;
 				}
-				else if (num8 <= 0.7f)
+				else if (num12 <= 0.7f)
 				{
-					num7 *= num8 / 0.7f;
+					num11 *= num12 / 0.7f;
 				}
 			}
-			if (num7 - this.m_befRatio > 0f)
+			if (num11 - this.m_befRatio > 0f)
 			{
 				this.m_sppedNow = this.m_sppedIn;
 			}
-			else if (num7 - this.m_befRatio < 0f)
+			else if (num11 - this.m_befRatio < 0f)
 			{
 				this.m_sppedNow = this.m_sppedOut;
 			}
-			this.m_nowRatio += (num7 - this.m_nowRatio) * (Time.deltaTime * this.m_sppedNow);
-			this.m_befRatio = num7;
-			float num9 = Mathf.Clamp01(this.m_nowRatio);
-			if (num9 != this.m_morph.GetBlendValues(this.m_id))
+			this.m_nowRatio += (num11 - this.m_nowRatio) * (Time.deltaTime * this.m_sppedNow);
+			this.m_befRatio = num11;
+			float num13 = Mathf.Clamp01(this.m_nowRatio);
+			if (num13 != this.m_morph.GetBlendValues(this.m_id))
 			{
-				this.m_morph.SetBlendValues(this.m_id, num9);
+				this.m_morph.SetBlendValues(this.m_id, num13);
 				return true;
 			}
 			return false;
@@ -383,5 +459,9 @@ public class KupaCtrl
 		private float m_nowRatio;
 
 		private float m_befRatio;
+
+		private float m_lengthRatio = 1f;
+
+		private MathCM.Segment m_segTemp = default(MathCM.Segment);
 	}
 }

+ 28 - 3
Assembly-CSharp/LoadReplaceMaid.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Runtime.CompilerServices;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -85,7 +86,19 @@ public class LoadReplaceMaid : MonoBehaviour
 				}
 				this.ui2dSprite.sprite2D = sprite2D;
 				this.ui2dSprite.SetDimensions(texture2D.width, texture2D.height);
-				this.TextLabel.text = "ポジション" + (num + 1) + "に読み込むメイドを選択してください。";
+				Localize component = this.TextLabel.GetComponent<Localize>();
+				if (component != null)
+				{
+					component.TermArgs = new Localize.ArgsPair[]
+					{
+						Localize.ArgsPair.Create((num + 1).ToString())
+					};
+					Utility.SetLocalizeTerm(component, "ScenePhotoMode/シチュ/ダイアログ/ポジション{0}に読み込むメイドを選択してください。", false);
+				}
+				else
+				{
+					this.TextLabel.text = "ポジション" + (num + 1) + "に読み込むメイドを選択してください。";
+				}
 			}
 		}
 		else
@@ -93,7 +106,19 @@ public class LoadReplaceMaid : MonoBehaviour
 			this.bgWidget.SetDimensions((int)this.bgBackupSize.x, (int)this.bgBackupSize.y);
 			this.OKButton.transform.localPosition = this.positionBackup[this.OKButton.transform];
 			this.ui2dSprite.gameObject.SetActive(false);
-			this.TextLabel.text = string.Format(LoadReplaceMaid.kText, maid_name);
+			Localize component2 = this.TextLabel.GetComponent<Localize>();
+			if (component2 != null)
+			{
+				component2.TermArgs = new Localize.ArgsPair[]
+				{
+					Localize.ArgsPair.Create(maid_name)
+				};
+				Utility.SetLocalizeTerm(component2, LoadReplaceMaid.kText, false);
+			}
+			else
+			{
+				this.TextLabel.text = string.Format(LoadReplaceMaid.kText, maid_name);
+			}
 		}
 	}
 
@@ -213,7 +238,7 @@ public class LoadReplaceMaid : MonoBehaviour
 
 	private Vector2 bgBackupSize;
 
-	private static string kText = "メイド{0}が見つかりませんでした。\n変わりとして読み込むメイドを選択してください。";
+	private static string kText = "ScenePhotoMode/シチュ/ダイアログ/メイド{0}が見つかりませんでした。";
 
 	private CharacterMgr chara_mgr_;
 

+ 7 - 7
Assembly-CSharp/Maid.cs

@@ -193,7 +193,7 @@ public class Maid : MonoBehaviour
 		else
 		{
 			this.SetUpModel("_I_default.menu");
-			if (Product.VBA)
+			if (Product.FDAWBW)
 			{
 				this.SetProp(MPN.bra, "bra030_i_.menu", 0, false, false);
 				this.SetProp(MPN.panz, "Pants030_i_.menu", 0, false, false);
@@ -657,7 +657,7 @@ public class Maid : MonoBehaviour
 			mp.m_dicTBodyAttachPos.Clear();
 			mp.m_dicMaterialProp.Clear();
 			mp.m_dicBoneLength.Clear();
-			if (Product.VBA)
+			if (Product.FDAWBW)
 			{
 				f_nFileNameRID = mp.nFileNameRID;
 				if (filename.Contains("_del"))
@@ -1203,7 +1203,7 @@ public class Maid : MonoBehaviour
 		}
 		else if (mp.type == 3)
 		{
-			if (Product.VBA && (mp.boTempDut || mp.boDut) && (mp.idx == 44 || mp.idx == 55 || mp.idx == 62 || mp.idx == 63 || mp.idx == 44 || mp.idx == 82 || mp.idx == 90 || mp.idx == 91 || mp.idx == 93))
+			if (Product.FDAWBW && (mp.boTempDut || mp.boDut) && (mp.idx == 44 || mp.idx == 55 || mp.idx == 62 || mp.idx == 63 || mp.idx == 44 || mp.idx == 82 || mp.idx == 90 || mp.idx == 91 || mp.idx == 93))
 			{
 				mp.boDut = false;
 				mp.boTempDut = false;
@@ -1343,7 +1343,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeProp(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MPROP_LIST");
-		f_bwWrite.Write(1270);
+		f_bwWrite.Write(1280);
 		f_bwWrite.Write(this.m_dicMaidProp.Count);
 		int num = 0;
 		foreach (KeyValuePair<string, MaidProp> keyValuePair in this.m_dicMaidProp)
@@ -1377,7 +1377,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeMisc(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_MISC");
-		f_bwWrite.Write(1270);
+		f_bwWrite.Write(1280);
 		f_bwWrite.Write(this.m_nActiveSlotNo);
 		if (this.m_texIcon != null)
 		{
@@ -1402,7 +1402,7 @@ public class Maid : MonoBehaviour
 	public bool SerializeBody(BinaryWriter f_bwWrite)
 	{
 		f_bwWrite.Write("CM3D2_MAID_BODY");
-		f_bwWrite.Write(1270);
+		f_bwWrite.Write(1280);
 		return true;
 	}
 
@@ -1434,7 +1434,7 @@ public class Maid : MonoBehaviour
 			MaidProp prop4 = this.GetProp(MPN.EyeSclY);
 			prop4.value = prop2.value;
 		}
-		if (!this.boMAN && Product.VBA)
+		if (!this.boMAN && Product.FDAWBW)
 		{
 			this.SetProp(MPN.bra, "bra030_i_.menu", 0, false, false);
 			this.SetProp(MPN.panz, "Pants030_i_.menu", 0, false, false);

+ 4 - 4
Assembly-CSharp/MaidManagementMain.cs

@@ -27,7 +27,7 @@ public class MaidManagementMain : WfScreenChildren
 		}
 		this.yotogi_skill_list_mgr_ = UTY.GetChildObject(this.yotogi_info_object_, "YotogiSkillList", false).GetComponent<YotogiSkillListManager>();
 		this.yotogi_class_list_mgr_ = UTY.GetChildObject(this.yotogi_info_object_, "YotogiClassList", false).GetComponent<YotogiClassListManager>();
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			this.status_panel_ = UTY.GetChildObject(base.root_obj, "StatusPanel_localize", false);
 		}
@@ -169,7 +169,7 @@ public class MaidManagementMain : WfScreenChildren
 		{
 			this.button_dic_["移籍"].isEnabled = (GameMain.Instance.CharacterMgr.status.isAvailableTransfer && this.GetMaidNumber() < 200);
 		}
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			this.button_dic_["移籍"].gameObject.SetActive(false);
 			this.button_dic_["夜伽スキル"].gameObject.SetActive(false);
@@ -272,7 +272,7 @@ public class MaidManagementMain : WfScreenChildren
 		{
 			int banishmentPrice = this.select_maid_.status.banishmentPrice;
 			string text2 = LocalizationManager.GetTranslation("Dialog/メイド管理/{0}を解雇しますか?資金 +{1}CR", true, 0, true, false, null, null);
-			text2 = string.Format(text2, this.select_maid_.status.fullNameJpStyle, Utility.ConvertMoneyText(banishmentPrice));
+			text2 = string.Format(text2, this.select_maid_.status.charaName.GetFullName(" "), Utility.ConvertMoneyText(banishmentPrice));
 			GameMain.Instance.SysDlg.Show(text2, SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.BanishmentMaid), null);
 		}
 		else
@@ -514,7 +514,7 @@ public class MaidManagementMain : WfScreenChildren
 	public void BanishmentMaid()
 	{
 		string text = LocalizationManager.GetTranslation("Dialog/メイド管理/{0}を解雇しました", true, 0, true, false, null, null);
-		text = string.Format(text, this.select_maid_.status.fullNameJpStyle);
+		text = string.Format(text, this.select_maid_.status.charaName.GetFullName(" "));
 		int banishmentPrice = this.select_maid_.status.banishmentPrice;
 		GameMain.Instance.CharacterMgr.status.money += (long)banishmentPrice;
 		int i;

+ 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(1270);
+		f_bwWrite.Write(1280);
 		f_bwWrite.Write(this.m_aryPartsColor.Length);
 		for (int i = 0; i < this.m_aryPartsColor.Length; i++)
 		{

+ 43 - 16
Assembly-CSharp/MaidPlate.cs

@@ -39,10 +39,10 @@ public class MaidPlate : MonoBehaviour
 		this.left_plate_.last_name_label = UTY.GetChildObject(this.left_plate_.main, "FrameBaseData/TextLastName", false).GetComponent<UILabel>();
 		this.left_plate_.first_name_label = UTY.GetChildObject(this.left_plate_.main, "FrameBaseData/TextFirstName", false).GetComponent<UILabel>();
 		this.left_plate_.contract_type_label = UTY.GetChildObject(this.left_plate_.main, "FrameBaseData/TextTypeName", false).GetComponent<UILabel>();
-		if (this.engModeMoveText && Product.SPP)
+		GameObject childObject2 = UTY.GetChildObject(this.left_plate_.main, "FrameBaseData/public/TextTypeName_public", true);
+		if (childObject2 != null)
 		{
-			Vector3 localPosition = this.left_plate_.contract_type_label.transform.localPosition;
-			this.left_plate_.contract_type_label.transform.localPosition = new Vector3(80f, localPosition.y, localPosition.z);
+			this.left_plate_.heroineTypeLocalize = childObject2.GetComponent<Localize>();
 		}
 		this.right_plate_.main = UTY.GetChildObject(base.gameObject, "RightPlate", false);
 		this.right_plate_.evaluation_label = UTY.GetChildObject(this.right_plate_.main, "RankingBGFrame/TextEvaluation", false).GetComponent<UILabel>();
@@ -53,6 +53,28 @@ public class MaidPlate : MonoBehaviour
 		this.SetRightPlateVisible(false);
 	}
 
+	private void Start()
+	{
+		if (Product.FDAWBW && this.left_plate_.contract_type_label != null)
+		{
+			this.left_plate_.contract_type_label.gameObject.SetActive(false);
+			GameObject childObject = UTY.GetChildObject(this.left_plate_.main, "FrameBaseData/FixText2", true);
+			if (childObject != null)
+			{
+				childObject.SetActive(false);
+			}
+			if (this.left_plate_.heroineTypeLocalize != null)
+			{
+				this.left_plate_.heroineTypeLocalize.transform.parent.gameObject.SetActive(true);
+			}
+		}
+		if (!Product.FDAWBW && !Product.QOPZX)
+		{
+			Vector3 localPosition = this.left_plate_.contract_type_label.transform.localPosition;
+			this.left_plate_.contract_type_label.transform.localPosition = new Vector3(78f, localPosition.y, localPosition.z);
+		}
+	}
+
 	public void SetRightPlateVisible(bool is_visible)
 	{
 		if (this.miniMode)
@@ -142,24 +164,30 @@ public class MaidPlate : MonoBehaviour
 			this.left_plate_.engage_heart.enabled = false;
 		}
 		this.left_plate_.leader_plate_sprite.gameObject.SetActive(status.leader);
-		this.left_plate_.last_name_label.text = status.lastName;
-		this.left_plate_.first_name_label.text = status.firstName;
+		NamePair charaName = status.charaName;
+		this.left_plate_.last_name_label.text = charaName.name1;
+		this.left_plate_.first_name_label.text = charaName.name2;
 		if (status.heroineType != HeroineType.Sub)
 		{
 			this.left_plate_.contract_type_label.text = EnumConvert.GetString(status.contract);
-			Localize component = this.left_plate_.contract_type_label.GetComponent<Localize>();
-			if (component != null)
-			{
-				component.SetTerm(EnumConvert.GetTerm(status.contract));
-			}
+			Utility.SetLocalizeTerm(this.left_plate_.contract_type_label, EnumConvert.GetTerm(status.contract), false);
 		}
 		else
 		{
 			this.left_plate_.contract_type_label.text = status.subCharaStatus.contractText;
-			Localize component2 = this.left_plate_.contract_type_label.GetComponent<Localize>();
-			if (component2 != null)
+			Utility.SetLocalizeTerm(this.left_plate_.contract_type_label, status.subCharaStatus.contractTextTerm, false);
+		}
+		if (Product.FDAWBW && this.left_plate_.heroineTypeLocalize != null)
+		{
+			if (maid.status.heroineType == HeroineType.Sub && maid.status.subCharaStatus != null)
 			{
-				component2.SetTerm("MaidStatus/契約タイプ/" + status.subCharaStatus.contractText);
+				this.left_plate_.heroineTypeLocalize.GetComponent<UILabel>().text = maid.status.subCharaStatus.personalText;
+				this.left_plate_.heroineTypeLocalize.SetTerm(maid.status.subCharaStatus.personalTextTerm);
+			}
+			else
+			{
+				this.left_plate_.heroineTypeLocalize.GetComponent<UILabel>().text = maid.status.personal.drawName;
+				this.left_plate_.heroineTypeLocalize.SetTerm(maid.status.personal.termName);
 			}
 		}
 		this.right_plate_.evaluation_label.text = status.evaluation.ToString();
@@ -208,9 +236,6 @@ public class MaidPlate : MonoBehaviour
 	[SerializeField]
 	private bool miniMode;
 
-	[SerializeField]
-	private bool engModeMoveText;
-
 	private Maid maid_;
 
 	private UISprite back_plate_;
@@ -240,6 +265,8 @@ public class MaidPlate : MonoBehaviour
 		public UILabel first_name_label;
 
 		public UILabel contract_type_label;
+
+		public Localize heroineTypeLocalize;
 	}
 
 	private struct RightPlate

+ 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(1270);
+		f_bwWrite.Write(1280);
 		f_bwWrite.Write(this.idx);
 		f_bwWrite.Write(this.name);
 		f_bwWrite.Write(this.type);

+ 3 - 3
Assembly-CSharp/MaidRandomName.cs

@@ -5,7 +5,7 @@ internal static class MaidRandomName
 {
 	public static string GetLastName()
 	{
-		if (Product.SIBD)
+		if (Product.DOPLGBNE)
 		{
 			return MaidRandomName.last_name_array_en[UnityEngine.Random.Range(0, MaidRandomName.last_name_array_en.Length)];
 		}
@@ -14,7 +14,7 @@ internal static class MaidRandomName
 
 	public static string GetFirstName()
 	{
-		if (Product.SIBD)
+		if (Product.DOPLGBNE)
 		{
 			return MaidRandomName.first_name_array_en[UnityEngine.Random.Range(0, MaidRandomName.first_name_array_en.Length)];
 		}
@@ -23,7 +23,7 @@ internal static class MaidRandomName
 
 	public static string GetPlayerName()
 	{
-		if (Product.SIBD)
+		if (Product.DOPLGBNE)
 		{
 			return MaidRandomName.player_name_array_en[UnityEngine.Random.Range(0, MaidRandomName.player_name_array_en.Length)];
 		}

+ 22 - 0
Assembly-CSharp/MaidStatus/NamePair.cs

@@ -0,0 +1,22 @@
+using System;
+
+namespace MaidStatus
+{
+	public struct NamePair
+	{
+		public NamePair(string name1, string name2)
+		{
+			this.name1 = name1;
+			this.name2 = name2;
+		}
+
+		public string GetFullName(string separationText = " ")
+		{
+			return this.name1 + separationText + this.name2;
+		}
+
+		public readonly string name1;
+
+		public readonly string name2;
+	}
+}

+ 58 - 5
Assembly-CSharp/MaidStatus/Status.cs

@@ -51,6 +51,30 @@ namespace MaidStatus
 			this.profileComment = empty;
 		}
 
+		public static int maxNameLength
+		{
+			get
+			{
+				return (!Product.DOPLGBNE) ? 8 : 11;
+			}
+		}
+
+		public static int minAge
+		{
+			get
+			{
+				return 20;
+			}
+		}
+
+		public static int maxAge
+		{
+			get
+			{
+				return 999;
+			}
+		}
+
 		public string guid { get; private set; }
 
 		public string creationTime { get; private set; }
@@ -97,7 +121,7 @@ namespace MaidStatus
 			}
 			set
 			{
-				this.lastName_ = ((value != null) ? Status.ConvertString(value, 8) : string.Empty);
+				this.lastName_ = ((value != null) ? Status.ConvertString(value, Status.maxNameLength) : string.Empty);
 			}
 		}
 
@@ -109,7 +133,16 @@ namespace MaidStatus
 			}
 			set
 			{
-				this.firstName_ = ((value != null) ? Status.ConvertString(value, 8) : string.Empty);
+				this.firstName_ = ((value != null) ? Status.ConvertString(value, Status.maxNameLength) : string.Empty);
+			}
+		}
+
+		public NamePair charaName
+		{
+			get
+			{
+				NamePair result = new NamePair((!Product.DOPLGBNE) ? this.lastName : this.firstName, (!Product.DOPLGBNE) ? this.firstName : this.lastName);
+				return result;
 			}
 		}
 
@@ -137,7 +170,15 @@ namespace MaidStatus
 			}
 			set
 			{
-				this.nickName_ = ((value != null) ? Status.ConvertString(value, 8) : string.Empty);
+				this.nickName_ = ((value != null) ? Status.ConvertString(value, Status.maxNameLength) : string.Empty);
+			}
+		}
+
+		public string callName
+		{
+			get
+			{
+				return (!this.isNickNameCall) ? ((!this.isFirstNameCall) ? this.lastName : this.firstName) : this.nickName;
 			}
 		}
 
@@ -200,7 +241,7 @@ namespace MaidStatus
 			}
 			set
 			{
-				if (Product.enabeldAdditionalRelation && (this.personal.uniqueName == "Muku" || this.personal.uniqueName == "Majime" || this.personal.uniqueName == "Rindere"))
+				if (Product.FD && (this.personal.uniqueName == "Muku" || this.personal.uniqueName == "Majime" || this.personal.uniqueName == "Rindere"))
 				{
 					this.additionalRelation_ = value;
 				}
@@ -787,6 +828,18 @@ namespace MaidStatus
 			}
 		}
 
+		public bool isNickNameCall
+		{
+			get
+			{
+				return this.flags_.ContainsKey("__isNickNameCall__") && this.flags_["__isNickNameCall__"] != 0;
+			}
+			set
+			{
+				this.flags_["__isNickNameCall__"] = ((!value) ? 0 : 1);
+			}
+		}
+
 		public VoiceGroup voiceGroup
 		{
 			get
@@ -1263,7 +1316,7 @@ namespace MaidStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_MAID_STATUS");
-			binary.Write(1270);
+			binary.Write(1280);
 			binary.Write(this.guid);
 			binary.Write(this.creationTime);
 			binary.Write((short)this.heroineType);

+ 49 - 3
Assembly-CSharp/MaidStatus/SubMaid.cs

@@ -134,7 +134,7 @@ namespace MaidStatus
 						this.uniqueName = basicCsv.GetCellAsString(num++, i);
 						this.replaceText = basicCsv.GetCellAsString(num++, i);
 						this.isEditPossible = (basicCsv.GetCellAsString(num++, i) == "〇");
-						this.status = new SubMaid.Data.CharacterStatus(basicCsv, i);
+						this.status = new SubMaid.Data.CharacterStatus(this.id, false, basicCsv, i);
 						break;
 					}
 				}
@@ -142,7 +142,7 @@ namespace MaidStatus
 				{
 					if (kissSideCsv.IsCellToExistData(0, j) && kissSideCsv.GetCellAsInteger(0, j) == id)
 					{
-						this.secondStatus = new SubMaid.Data.CharacterStatus(kissSideCsv, j);
+						this.secondStatus = new SubMaid.Data.CharacterStatus(this.id, true, kissSideCsv, j);
 						break;
 					}
 				}
@@ -263,8 +263,10 @@ namespace MaidStatus
 
 			public class CharacterStatus
 			{
-				public CharacterStatus(CsvParser basicCsv, int lineY)
+				public CharacterStatus(int id, bool kissSideNPC, CsvParser basicCsv, int lineY)
 				{
+					this.id = id;
+					this.kissSideNPC = kissSideNPC;
 					int num = 4;
 					this.lastName = basicCsv.GetCellAsString(num++, lineY);
 					this.firstName = basicCsv.GetCellAsString(num++, lineY);
@@ -313,6 +315,50 @@ namespace MaidStatus
 					this.playCountYotogi = basicCsv.GetCellAsInteger(num++, lineY);
 				}
 
+				public string lastNameTerm
+				{
+					get
+					{
+						return "SubMaid/" + this.id.ToString() + "/苗字";
+					}
+				}
+
+				public string firstNameTerm
+				{
+					get
+					{
+						return "SubMaid/" + this.id.ToString() + "/名前";
+					}
+				}
+
+				public string contractTextTerm
+				{
+					get
+					{
+						return "MaidStatus/契約タイプ/" + this.contractText;
+					}
+				}
+
+				public string personalTextTerm
+				{
+					get
+					{
+						return "SubMaid/" + this.id.ToString() + "/性格";
+					}
+				}
+
+				public string relationTextTerm
+				{
+					get
+					{
+						return "SubMaid/" + this.id.ToString() + "/状態";
+					}
+				}
+
+				public readonly int id;
+
+				public readonly bool kissSideNPC;
+
 				public readonly string lastName;
 
 				public readonly string firstName;

+ 6 - 0
Assembly-CSharp/MaidStatusListCtrl.cs

@@ -98,6 +98,12 @@ public class MaidStatusListCtrl : MonoBehaviour
 
 		public string contractTypeName;
 
+		public string contractTypeNameTerm;
+
+		public string personalName;
+
+		public string personalNameTerm;
+
 		public GameObject selectCursor;
 	}
 }

+ 22 - 0
Assembly-CSharp/MathCM.cs

@@ -300,6 +300,28 @@ public class MathCM
 		return true;
 	}
 
+	public static Vector3 NearPosOnPlane(Vector3 targetPos, Vector3 pointOnPlane, Vector3 normalPlane)
+	{
+		Vector3 rhs = targetPos - pointOnPlane;
+		float d = Vector3.Dot(normalPlane, rhs);
+		return targetPos - normalPlane * d;
+	}
+
+	public static bool PlaneSegmentIntersect(Plane plane, Vector3 start, Vector3 end, out Vector3 pointOnPlane)
+	{
+		float num = Vector3.Distance(start, end);
+		Vector3 normalized = (end - start).normalized;
+		Ray ray = new Ray(start, normalized);
+		float num2 = 0f;
+		if (plane.Raycast(ray, out num2) && num2 <= num)
+		{
+			pointOnPlane = start + normalized * num2;
+			return true;
+		}
+		pointOnPlane = Vector3.zero;
+		return false;
+	}
+
 	private static float _OX_EPSILON_ = 1E-06f;
 
 	public struct Line

+ 1 - 1
Assembly-CSharp/Menu.cs

@@ -911,7 +911,7 @@ public class Menu : MonoBehaviour
 			Directory.CreateDirectory(text);
 		}
 		StreamWriter streamWriter = new StreamWriter(text + "\\" + text2 + ".txt", false, Encoding.UTF8);
-		streamWriter.WriteLine("出力バージョン\t" + 1270);
+		streamWriter.WriteLine("出力バージョン\t" + 1280);
 		streamWriter.WriteLine("基本アイテム\t" + filename.Replace(" ", ":"));
 		try
 		{

+ 3 - 3
Assembly-CSharp/MessageClass.cs

@@ -18,7 +18,7 @@ public class MessageClass
 		this.hitret_sprite_.alpha = 0f;
 		this.mainTextAnimation = new MessageClass.TextAnimation();
 		this.subTextAnimation = new MessageClass.TextAnimation();
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			this.subtitles_manager_.visible = false;
 			this.subtitles_manager_ = null;
@@ -48,7 +48,7 @@ public class MessageClass
 				return new KeyValuePair<string, string>(baseText, string.Empty);
 			}
 		}
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			return new KeyValuePair<string, string>(baseText.Substring(0, num), string.Empty);
 		}
@@ -289,7 +289,7 @@ public class MessageClass
 		{
 			get
 			{
-				if (!Product.SPP)
+				if (!Product.AEWDA)
 				{
 					return (int)((100f - (float)GameMain.Instance.CMSystem.MsgTextSpeed) * 1.5f);
 				}

+ 2 - 2
Assembly-CSharp/MessageWindowCtrl.cs

@@ -33,7 +33,7 @@ public class MessageWindowCtrl : MonoBehaviour
 	{
 		UTY.GetChildObject(this.m_goSelectorViewer, "Scroll Bar/Down", false).GetComponent<UISprite>().enabled = true;
 		UTY.GetChildObject(this.m_goSelectorViewer, "Scroll Bar/Up", false).GetComponent<UISprite>().enabled = true;
-		string text = (!Product.SPP) ? "SystemUI/MessageWindow/Main/Prefabs/SelectButton" : "SystemUI/MessageWindow/Main/Prefabs/SelectButtonDouble";
+		string text = (!Product.AEWDA) ? "SystemUI/MessageWindow/Main/Prefabs/SelectButton" : "SystemUI/MessageWindow/Main/Prefabs/SelectButtonDouble";
 		UnityEngine.Object @object = Resources.Load(text);
 		if (@object == null)
 		{
@@ -53,7 +53,7 @@ public class MessageWindowCtrl : MonoBehaviour
 	public void CreateBacklog(List<BacklogCtrl.BacklogUnit> dicBacklog)
 	{
 		string path;
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			path = "SystemUI/MessageWindow/Backlog/Prefabs/BacklogUnit";
 		}

+ 1 - 1
Assembly-CSharp/Misc.cs

@@ -2,7 +2,7 @@
 
 public class Misc
 {
-	public const int GAME_VERSION = 1270;
+	public const int GAME_VERSION = 1280;
 
 	public const string GAME_DATA_PATH = "GameData";
 

+ 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(1270);
+		binaryWriter.Write(1280);
 		string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(f_strMqoFile);
 		binaryWriter.Write(fileNameWithoutExtension);
 		binaryWriter.Write(exObjIn2.strName);

+ 2 - 2
Assembly-CSharp/MotionWindow.cs

@@ -25,7 +25,7 @@ public class MotionWindow : BaseMaidPhotoWindow
 				dictionary[keyValuePair.Key].Add(keyValuePair.Value[i].nameTerm);
 			}
 		}
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			dictionary = null;
 		}
@@ -217,7 +217,7 @@ public class MotionWindow : BaseMaidPhotoWindow
 			UTY.GetChildObject(this.content_game_object, "ListParent/DragMat", false).GetComponent<BoxCollider>().enabled = true;
 			Dictionary<string, string> maidStoreData = base.GetMaidStoreData(maid);
 			PhotoMotionData photoMotionData = PhotoMotionData.Get(long.Parse(maidStoreData["id"]));
-			this.PopupAndTabList.popup_term_list = ((!Product.SPP) ? null : (maid.boMAN ? PhotoMotionData.popup_category_term_list_for_man : PhotoMotionData.popup_category_term_list));
+			this.PopupAndTabList.popup_term_list = ((!Product.AEWDA) ? null : (maid.boMAN ? PhotoMotionData.popup_category_term_list_for_man : PhotoMotionData.popup_category_term_list));
 			this.PopupAndTabList.popup_value_list = (maid.boMAN ? PhotoMotionData.popup_category_list_for_man : PhotoMotionData.popup_category_list);
 			this.PopupAndTabList.SetPopupValue(photoMotionData.category);
 			this.PopupAndTabList.SetSelectButton(photoMotionData, false);

+ 4 - 4
Assembly-CSharp/MyRoomCustom/CreativeRoom.cs

@@ -581,7 +581,7 @@ namespace MyRoomCustom
 
 		private void UpdateRoomSizeText()
 		{
-			if (!Product.SPP)
+			if (!Product.AEWDA)
 			{
 				this.m_UITextRoomSizeX.text = "横幅:" + string.Format("{0:#0.##}", (float)this.mapSizeX * this.unitSize) + "m";
 				this.m_UITextRoomSizeZ.text = "奥行:" + string.Format("{0:#0.##}", (float)this.mapSizeZ * this.unitSize) + "m";
@@ -593,19 +593,19 @@ namespace MyRoomCustom
 				if (component != null)
 				{
 					component.TermSuffix = ":" + string.Format("{0:#0.##}", (float)this.mapSizeX * this.unitSize) + "m";
-					Utility.SetLocalizeTerm(component, "SceneCreativeRoom/横幅");
+					Utility.SetLocalizeTerm(component, "SceneCreativeRoom/横幅", false);
 				}
 				component = this.m_UITextRoomSizeZ.GetComponent<Localize>();
 				if (component != null)
 				{
 					component.TermSuffix = ":" + string.Format("{0:#0.##}", (float)this.mapSizeZ * this.unitSize) + "m";
-					Utility.SetLocalizeTerm(component, "SceneCreativeRoom/奥行");
+					Utility.SetLocalizeTerm(component, "SceneCreativeRoom/奥行", false);
 				}
 				component = this.m_UITextRoomSizeY.GetComponent<Localize>();
 				if (component != null)
 				{
 					component.TermSuffix = ":" + string.Format("{0:#0.##}", (float)this.mapSizeY * this.unitSize) + "m";
-					Utility.SetLocalizeTerm(component, "SceneCreativeRoom/高さ");
+					Utility.SetLocalizeTerm(component, "SceneCreativeRoom/高さ", false);
 				}
 			}
 		}

+ 2 - 2
Assembly-CSharp/MyRoomCustom/CreativeRoomUIObjectSettings.cs

@@ -787,7 +787,7 @@ namespace MyRoomCustom
 						transform2.SetParent(transform, false);
 						Button[] componentsInChildren = transform2.GetComponentsInChildren<Button>();
 						componentsInChildren[0].GetComponentInChildren<Text>().text = PlacementData.GetData(deployObjectInstanceData.objectID).drawName;
-						Utility.SetLocalizeTerm(componentsInChildren[0].GetComponentInChildren<Text>(), PlacementData.GetData(deployObjectInstanceData.objectID).drawNameTerm);
+						Utility.SetLocalizeTerm(componentsInChildren[0].GetComponentInChildren<Text>(), PlacementData.GetData(deployObjectInstanceData.objectID).drawNameTerm, false);
 						componentsInChildren[0].onClick.RemoveAllListeners();
 						componentsInChildren[1].onClick.RemoveAllListeners();
 						componentsInChildren[0].onClick.AddListener(delegate()
@@ -943,7 +943,7 @@ namespace MyRoomCustom
 			{
 				Text componentInChildren = button.GetComponentInChildren<Text>();
 				componentInChildren.text = PlacementData.GetCategoryName(<OnEnable>c__AnonStorey.categoryIDList[i]);
-				Utility.SetLocalizeTerm(componentInChildren, "SceneCreativeRoom/カテゴリー/" + <OnEnable>c__AnonStorey.categoryIDList[i].ToString());
+				Utility.SetLocalizeTerm(componentInChildren, "SceneCreativeRoom/カテゴリー/" + <OnEnable>c__AnonStorey.categoryIDList[i].ToString(), false);
 				button.onClick.AddListener(delegate()
 				{
 					Debug.LogFormat("カテゴリ「{0}」", new object[]

+ 7 - 3
Assembly-CSharp/NGUIText.cs

@@ -844,6 +844,10 @@ public static class NGUIText
 		while (i < length)
 		{
 			char c = text[i];
+			if (Product.AEWDA)
+			{
+				flag3 = false;
+			}
 			if (c > '⿿')
 			{
 				flag3 = true;
@@ -881,7 +885,7 @@ public static class NGUIText
 					float glyphWidth = NGUIText.GetGlyphWidth((int)c, prev);
 					if (glyphWidth == 0f)
 					{
-						goto IL_38A;
+						goto IL_397;
 					}
 					num6 = NGUIText.finalSpacingX + glyphWidth;
 				}
@@ -959,7 +963,7 @@ public static class NGUIText
 						{
 							NGUIText.EndLine(ref stringBuilder);
 						}
-						goto IL_38A;
+						goto IL_397;
 					}
 				}
 				else
@@ -972,7 +976,7 @@ public static class NGUIText
 					prev = 0;
 				}
 			}
-			IL_38A:
+			IL_397:
 			i++;
 		}
 		if (num4 < i)

+ 2 - 2
Assembly-CSharp/ObjectManagerWindow.cs

@@ -48,7 +48,7 @@ public class ObjectManagerWindow : BaseMaidPhotoWindow
 		this.AttachPointWindow.onStateTextChangeEvent = delegate(string text)
 		{
 			this.AttachPointStateLabel.text = text;
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				string termPrefix = string.Empty;
 				string term;
@@ -430,7 +430,7 @@ public class ObjectManagerWindow : BaseMaidPhotoWindow
 		GameObject gameObject = Utility.CreatePrefab(parent_obj, "ScenePhotoMode/WindowListItem", true);
 		gameObject.name = target.guid.ToString();
 		gameObject.GetComponentInChildren<UILabel>().text = target.draw_name;
-		Utility.SetLocalizeTerm(gameObject.GetComponentInChildren<Localize>(), target.nameTerm);
+		Utility.SetLocalizeTerm(gameObject.GetComponentInChildren<Localize>(), target.nameTerm, false);
 		UIWFTabButton component = gameObject.GetComponent<UIWFTabButton>();
 		EventDelegate.Add(component.onSelect, delegate()
 		{

+ 2 - 2
Assembly-CSharp/OnHoverTaskIcon.cs

@@ -53,7 +53,7 @@ public class OnHoverTaskIcon : MonoBehaviour
 	public void SetText(string message, int needNum = -1)
 	{
 		UISprite component = this.m_goNamePlate.GetComponent<UISprite>();
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			string text = message;
 			if (message.IndexOf('\n') != -1)
@@ -113,7 +113,7 @@ public class OnHoverTaskIcon : MonoBehaviour
 		{
 			if (this.m_goNamePlate != null)
 			{
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					this.SetText(this.taskName, -1);
 				}

+ 3 - 3
Assembly-CSharp/OtherCommandShortcut.cs

@@ -120,11 +120,11 @@ public class OtherCommandShortcut : MonoBehaviour
 		Localize localize = childObject.AddComponent<Localize>();
 		if (this.IsLeftHand)
 		{
-			Utility.SetLocalizeTerm(localize, "System/左");
+			Utility.SetLocalizeTerm(localize, "System/左", false);
 		}
 		else
 		{
-			Utility.SetLocalizeTerm(localize, "System/右");
+			Utility.SetLocalizeTerm(localize, "System/右", false);
 		}
 	}
 
@@ -244,7 +244,7 @@ public class OtherCommandShortcut : MonoBehaviour
 			{
 				localize2 = this.localize;
 			}
-			Utility.SetLocalizeTerm(localize2, key);
+			Utility.SetLocalizeTerm(localize2, key, false);
 		}
 	}
 }

+ 1 - 1
Assembly-CSharp/OvrHandItemMgr.cs

@@ -50,7 +50,7 @@ public class OvrHandItemMgr : MonoBehaviour
 
 	public void ChangeModel(int f_nType)
 	{
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			f_nType = 0;
 		}

+ 2 - 2
Assembly-CSharp/OvrIK.cs

@@ -1568,7 +1568,7 @@ public class OvrIK : MonoBehaviour
 	{
 		public void OnBeforeSerialize()
 		{
-			this.m_nVersion = 1270;
+			this.m_nVersion = 1280;
 		}
 
 		public void OnAfterDeserialize()
@@ -1628,7 +1628,7 @@ public class OvrIK : MonoBehaviour
 		private const string CONF_NAME = "OvrIK.json";
 
 		[SerializeField]
-		private int m_nVersion = 1270;
+		private int m_nVersion = 1280;
 
 		[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", 1270);
+		XElement xelement = new XElement("GameVersion", 1280);
 		XElement xelement2 = new XElement("SaveTime", value);
 		XElement xelement3 = new XElement("Title", title);
 		XElement xelement4 = new XElement("Comment", comment);

+ 1 - 1
Assembly-CSharp/PhotoTransTargetObject.cs

@@ -83,7 +83,7 @@ public class PhotoTransTargetObject : IComparable<PhotoTransTargetObject>
 		string text = string.Empty;
 		if (targetMaid != null)
 		{
-			text = targetMaid.status.lastName + " " + targetMaid.status.firstName + " : ";
+			text = targetMaid.status.charaName.GetFullName(" ") + " : ";
 		}
 		text += this.AttachPointToString(point);
 		if (attachPointTransform == null || attachPointTransform == this.obj.transform.parent)

+ 3 - 1
Assembly-CSharp/PhotoWindowManager.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Xml.Linq;
+using MaidStatus;
 using UnityEngine;
 using wf;
 
@@ -383,7 +384,8 @@ public class PhotoWindowManager : BasePhotoWindowManager
 				XElement xelement7 = new XElement("Maid");
 				xelement7.SetAttributeValue("guid", key4);
 				List<XElement> list8 = new List<XElement>();
-				list8.Add(new XElement("name", maid.status.lastName + " " + maid.status.firstName));
+				NamePair charaName = maid.status.charaName;
+				list8.Add(new XElement("name", charaName.name1 + " " + charaName.name2));
 				if (maid.boMAN)
 				{
 					list8.Add(new XElement("man_sloat", num.ToString()));

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

@@ -15,6 +15,10 @@ namespace PlayerStatus
 			Trophy.CreateData();
 			this.playerName_ = MaidRandomName.GetPlayerName();
 			this.clubName_ = "エンパイアクラブ";
+			if (Product.DOPLGBNE)
+			{
+				this.clubName_ = "EmpireClub";
+			}
 			this.flags_ = new Dictionary<string, int>();
 			this.flags = new ReadOnlyDictionary<string, int>(this.flags_);
 			this.havePartsItems_ = new Dictionary<string, bool>();
@@ -827,7 +831,7 @@ namespace PlayerStatus
 		public void Serialize(BinaryWriter binary)
 		{
 			binary.Write("CM3D2_PLAYER_STATUS");
-			binary.Write(1270);
+			binary.Write(1280);
 			binary.Write(this.playerName_);
 			binary.Write(this.days_);
 			binary.Write(this.totalPurchasePrice_);

+ 1 - 1
Assembly-CSharp/PopupAndButtonList.cs

@@ -146,7 +146,7 @@ public class PopupAndButtonList : MonoBehaviour
 			gameObject.SetActive(true);
 			gameObject.name = list[k].guid.ToString();
 			gameObject.GetComponentInChildren<UILabel>().text = list[k].draw_title;
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				Localize componentInChildren = gameObject.GetComponentInChildren<Localize>();
 				if (componentInChildren != null)

+ 1 - 1
Assembly-CSharp/PopupAndTabList.cs

@@ -169,7 +169,7 @@ public class PopupAndTabList : MonoBehaviour
 			gameObject.SetActive(true);
 			gameObject.name = list[k].guid.ToString();
 			gameObject.GetComponentInChildren<UILabel>().text = list[k].draw_title;
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				Localize componentInChildren = gameObject.GetComponentInChildren<Localize>();
 				if (componentInChildren != null)

+ 33 - 0
Assembly-CSharp/PositionStoreForLocalize.cs

@@ -0,0 +1,33 @@
+using System;
+using I2.Loc;
+using UnityEngine;
+
+public class PositionStoreForLocalize : UIWFPositionStore
+{
+	public void Awake()
+	{
+		LocalizationManager.OnLocalizeEvent += this.OnLocalize;
+	}
+
+	public void OnEnable()
+	{
+		this.OnLocalize();
+	}
+
+	private void OnDestroy()
+	{
+		LocalizationManager.OnLocalizeEvent -= this.OnLocalize;
+	}
+
+	protected void OnLocalize()
+	{
+		if (!base.gameObject.activeInHierarchy || this.targetLanguage != Product.OUIWEHVA)
+		{
+			return;
+		}
+		base.Apply();
+	}
+
+	[SerializeField]
+	protected Product.JQOVNMDS targetLanguage;
+}

+ 1 - 1
Assembly-CSharp/PresetCtrl.cs

@@ -220,7 +220,7 @@ public class PresetCtrl : MonoBehaviour
 		{
 			CharacterMgr.Preset preset = presetButton.preset;
 			GameMain.Instance.CharacterMgr.PresetSet(this.m_maid, preset);
-			if (Product.VBA)
+			if (Product.FDAWBW)
 			{
 				this.m_maid.AllProcProp();
 			}

+ 68 - 39
Assembly-CSharp/Product.cs

@@ -1,69 +1,74 @@
 using System;
 using I2.Loc;
+using UnityEngine;
 
 public static class Product
 {
-	public static Product.Type type { get; private set; }
+	public static Product.PAWCAQ FEA { get; private set; }
 
-	public static bool SPP
+	public static bool AEWDA
 	{
 		get
 		{
-			return Product.type != Product.Type.AAA && Product.type != Product.Type.BBB;
+			return Product.FEA != Product.PAWCAQ.IKD && Product.FEA != Product.PAWCAQ.OQK;
 		}
 	}
 
-	public static bool VBA
+	public static bool FDAWBW
 	{
 		get
 		{
-			return Product.type == Product.Type.BBB || Product.type == Product.Type.DDD;
+			return Product.FEA == Product.PAWCAQ.OQK || Product.FEA == Product.PAWCAQ.INA;
 		}
 	}
 
-	public static bool PIEQ
+	public static bool QOPZX
 	{
 		get
 		{
-			return Product.type == Product.Type.AAA || Product.type == Product.Type.BBB;
+			return Product.FEA == Product.PAWCAQ.IKD || Product.FEA == Product.PAWCAQ.OQK;
 		}
 	}
 
-	public static bool SIBD
+	public static bool DOPLGBNE
 	{
 		get
 		{
-			return Product.type == Product.Type.CCC || Product.type == Product.Type.DDD;
+			return Product.FEA == Product.PAWCAQ.CMS || Product.FEA == Product.PAWCAQ.INA;
 		}
 	}
 
-	public static Product.Language WMZI
+	public static Product.JQOVNMDS OUIWEHVA
 	{
 		get
 		{
-			if (!Product.SPP)
+			if (!Product.AEWDA)
 			{
-				return Product.Language.INKD;
+				return Product.JQOVNMDS.P0L;
 			}
 			string currentLanguage = LocalizationManager.CurrentLanguage;
-			return (!(currentLanguage == "English")) ? Product.Language.INKD : Product.Language.QBED;
+			return (!(currentLanguage == "English")) ? Product.JQOVNMDS.P0L : Product.JQOVNMDS.AQC;
 		}
 		set
 		{
-			if (!Product.SPP)
+			if (!Product.AEWDA)
 			{
-				LocalizationManager.CurrentLanguage = Product.EnumConvert.ToI2LocalizeLanguageName(Product.Language.INKD);
+				LocalizationManager.CurrentLanguage = Product.EnumConvert.FEWQAVASV(Product.JQOVNMDS.P0L);
 				return;
 			}
-			LocalizationManager.CurrentLanguage = Product.EnumConvert.ToI2LocalizeLanguageName(value);
+			LocalizationManager.CurrentLanguage = Product.EnumConvert.FEWQAVASV(value);
+			foreach (LanguageSource languageSource in LocalizationManager.Sources)
+			{
+				languageSource.LoadAllLanguages(false);
+			}
 		}
 	}
 
-	public static Product.Language OOWU
+	public static Product.JQOVNMDS POEWBBA
 	{
 		get
 		{
-			return (!Product.SPP) ? Product.Language.INKD : Product.Language.QBED;
+			return (!Product.AEWDA) ? Product.JQOVNMDS.P0L : Product.JQOVNMDS.AQC;
 		}
 	}
 
@@ -71,7 +76,17 @@ public static class Product
 	{
 		get
 		{
-			return LocalizationManager.GetTranslation("System/カスタムオーダーメイド3D 2", true, 0, true, false, null, null);
+			string term = "System/カスタムオーダーメイド3D 2";
+			return LocalizationManager.GetTranslation(term, true, 0, true, false, null, Product.EnumConvert.FEWQAVASV(Product.OUIWEHVA));
+		}
+	}
+
+	public static string windowTitel
+	{
+		get
+		{
+			string gameTitle = Product.gameTitle;
+			return "CUSTOM ORDER MAID 3D 2";
 		}
 	}
 
@@ -79,69 +94,83 @@ public static class Product
 	{
 		get
 		{
-			return string.Empty;
+			Product.PAWCAQ fea = Product.FEA;
+			if (fea == Product.PAWCAQ.OQK)
+			{
+				return "_public";
+			}
+			if (fea == Product.PAWCAQ.CMS)
+			{
+				return "_en";
+			}
+			if (fea != Product.PAWCAQ.INA)
+			{
+				return string.Empty;
+			}
+			return "_enpublic";
 		}
 	}
 
-	public static bool enabeldAdditionalRelation
+	public static bool FD
 	{
 		get
 		{
-			return Product.type != Product.Type.AAA;
+			return Product.FEA != Product.PAWCAQ.IKD;
 		}
 	}
 
 	public static void Initialize(AFileSystemBase fileSystem)
 	{
-		Product.type = Product.Type.AAA;
-		Product.WMZI = Product.OOWU;
+		Product.FEA = Product.PAWCAQ.IKD;
+		Debug.Log("ProductType:" + Product.FEA.ToString());
+		Product.OUIWEHVA = Product.POEWBBA;
 	}
 
 	public static void OnApplicationQuit()
 	{
 	}
 
-	public enum Type
+	public enum PAWCAQ
 	{
-		AAA,
-		BBB,
-		CCC,
-		DDD
+		IKD,
+		OQK,
+		CMS,
+		INA
 	}
 
-	public enum Language
+	public enum JQOVNMDS
 	{
-		INKD,
-		QBED
+		P0L,
+		AQC
 	}
 
 	public static class EnumConvert
 	{
-		public static string GetString(Product.Language language)
+		public static string GTREWVS(Product.JQOVNMDS p)
 		{
-			if (language == Product.Language.INKD)
+			if (p == Product.JQOVNMDS.P0L)
 			{
 				return "日本語";
 			}
 			return "英語";
 		}
 
-		public static string ToI2LocalizeLanguageName(Product.Language language)
+		public static string FEWQAVASV(Product.JQOVNMDS p)
 		{
-			if (language == Product.Language.INKD)
+			if (p == Product.JQOVNMDS.P0L)
 			{
 				return "Japanese";
 			}
-			if (language != Product.Language.QBED)
+			if (p != Product.JQOVNMDS.AQC)
 			{
 				return "Japanese";
 			}
 			return "English";
 		}
 
-		public static string GetTerm(Product.Language language)
+		public static string LAWEFV(Product.JQOVNMDS p)
 		{
-			return "System/言語/" + Product.EnumConvert.GetString(language);
+			return "System/言語/" + Product.EnumConvert.GTREWVS(p);
 		}
 	}
 }

+ 122 - 39
Assembly-CSharp/ProfileCtrl.cs

@@ -27,16 +27,33 @@ public class ProfileCtrl : MonoBehaviour
 		}
 	}
 
+	private int MAX_NAME_LENGTH
+	{
+		get
+		{
+			return (!Product.DOPLGBNE) ? 8 : 11;
+		}
+	}
+
 	public void Init(GameObject goProfilePanel, Status status)
 	{
 		this.m_goProfilePanel = goProfilePanel;
 		this.m_maidStatus = status;
+		string f_strObjName = "CharacterInfo/Name/FirstName";
+		string f_strObjName2 = "CharacterInfo/Name/LastName";
+		if (Product.DOPLGBNE)
+		{
+			UTY.GetChildObject(base.gameObject, "CharacterInfo/Name", false).SetActive(false);
+			UTY.GetChildObject(base.gameObject, "CharacterInfo/EnZone", false).SetActive(true);
+			f_strObjName = "CharacterInfo/EnZone/NameZone/Name/FirstName";
+			f_strObjName2 = "CharacterInfo/EnZone/NameZone/Name/LastName";
+		}
 		this.m_lContractType = UTY.GetChildObject(this.m_goProfilePanel, "ContractType/OutputField", false).GetComponent<UILabel>();
-		GameObject childObject = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/Name/FirstName", false);
+		GameObject childObject = UTY.GetChildObject(this.m_goProfilePanel, f_strObjName, false);
 		this.m_inFirstName = childObject.GetComponent<UIInput>();
 		this.m_clFirstName = childObject.GetComponent<BoxCollider>();
 		EventDelegate.Add(this.m_inFirstName.onChange, new EventDelegate.Callback(BaseMgr<ProfileMgr>.Instance.OnChangeFirstName));
-		GameObject childObject2 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/Name/LastName", false);
+		GameObject childObject2 = UTY.GetChildObject(this.m_goProfilePanel, f_strObjName2, false);
 		this.m_inLastName = childObject2.GetComponent<UIInput>();
 		this.m_clLastName = childObject2.GetComponent<BoxCollider>();
 		EventDelegate.Add(this.m_inLastName.onChange, new EventDelegate.Callback(BaseMgr<ProfileMgr>.Instance.OnChangeLastName));
@@ -52,13 +69,12 @@ public class ProfileCtrl : MonoBehaviour
 			this.m_inLastName.RemoveFocus();
 			this.m_inLastName.value = MaidRandomName.GetLastName();
 		});
-		if (Product.SIBD)
-		{
-			Vector3 localPosition = this.m_inLastName.transform.localPosition;
-			Vector3 localPosition2 = this.m_inFirstName.transform.localPosition;
-			this.m_inLastName.transform.localPosition = localPosition2;
-			this.m_inFirstName.transform.localPosition = localPosition;
-		}
+		GameObject childObject3 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/EnZone/NickNameAndAge/Name/NickName", false);
+		this.m_inNickName = childObject3.GetComponent<UIInput>();
+		this.m_clNickName = childObject3.GetComponent<BoxCollider>();
+		GameObject childObject4 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/EnZone/NickNameAndAge/Age/Age", false);
+		this.m_inAgeInput = childObject4.GetComponent<UIInput>();
+		this.m_clAgeInput = childObject4.GetComponent<BoxCollider>();
 		this.m_lMaidClassName = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/MaidClass/Type", false).GetComponent<UILabel>();
 		this.m_lMaidClassLevel = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/MaidClass/Level", false).GetComponent<UILabel>();
 		this.m_lMaidClassExp = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/MaidClass/Exp", false).GetComponent<UILabel>();
@@ -78,9 +94,9 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_lCare = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/Care", false).GetComponent<UILabel>();
 		this.m_lStudyRate = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/StudyRate", false).GetComponent<UILabel>();
 		this.m_lTeachRate = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/TeachRate", false).GetComponent<UILabel>();
-		GameObject childObject3 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/Personal/PopupList", false);
-		this.m_pPersonal = childObject3.GetComponent<UIPopupList>();
-		this.m_lPersonal = UTY.GetChildObject(childObject3, "LabelParent/Label", false).GetComponent<UILabel>();
+		GameObject childObject5 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/Personal/PopupList", false);
+		this.m_pPersonal = childObject5.GetComponent<UIPopupList>();
+		this.m_lPersonal = UTY.GetChildObject(childObject5, "LabelParent/Label", false).GetComponent<UILabel>();
 		bool flag = GameMain.Instance.CharacterMgr.status.GetFlag("オープニング終了") == 1;
 		List<Personal.Data> allDatas = Personal.GetAllDatas(true);
 		List<Personal.Data> list = new List<Personal.Data>();
@@ -114,7 +130,7 @@ public class ProfileCtrl : MonoBehaviour
 			}
 		}
 		this.m_pPersonal.items.Clear();
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			this.m_pPersonal.isLocalized = true;
 			ProfileCtrl.m_dicPersonal = new Dictionary<string, Personal.Data>();
@@ -138,18 +154,18 @@ public class ProfileCtrl : MonoBehaviour
 		EventDelegate.Add(this.m_pPersonal.onChange, delegate()
 		{
 		});
-		this.m_clPersonal = childObject3.GetComponent<BoxCollider>();
-		this.m_goPersonalSelectorIcon = UTY.GetChildObject(childObject3, "Symbol", false);
-		GameObject childObject4 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/SexualExperience/PopupList", false);
-		this.m_pSexualExperience = childObject4.GetComponent<UIPopupList>();
+		this.m_clPersonal = childObject5.GetComponent<BoxCollider>();
+		this.m_goPersonalSelectorIcon = UTY.GetChildObject(childObject5, "Symbol", false);
+		GameObject childObject6 = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/SexualExperience/PopupList", false);
+		this.m_pSexualExperience = childObject6.GetComponent<UIPopupList>();
 		ProfileCtrl.m_dicSexualExperience = new Dictionary<string, Seikeiken>();
 		for (int i = 0; i < Enum.GetValues(typeof(Seikeiken)).Length; i++)
 		{
 			Seikeiken seikeiken = (Seikeiken)i;
 			ProfileCtrl.m_dicSexualExperience.Add(EnumConvert.GetString(seikeiken), seikeiken);
 		}
-		this.m_clSexualExperience = childObject4.GetComponent<BoxCollider>();
-		this.m_goSexualExperienceSelectorIcon = UTY.GetChildObject(childObject4, "Symbol", false);
+		this.m_clSexualExperience = childObject6.GetComponent<BoxCollider>();
+		this.m_goSexualExperienceSelectorIcon = UTY.GetChildObject(childObject6, "Symbol", false);
 		this.m_lHeight = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/Body/Height", false).GetComponent<UILabel>();
 		this.m_lWeight = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/Body/Weight", false).GetComponent<UILabel>();
 		this.m_lBust = UTY.GetChildObject(this.m_goProfilePanel, "CharacterInfo/ProfileBase/Body/Bust/Bust", false).GetComponent<UILabel>();
@@ -172,14 +188,23 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_inFreeComment = UTY.GetChildObject(this.m_goProfilePanel, "Comment/FreeCommentWindow/FreeComment", false).GetComponent<UIInput>();
 		EventDelegate.Add(this.m_inFreeComment.onChange, new EventDelegate.Callback(BaseMgr<ProfileMgr>.Instance.OnChangeFreeComment));
 		this.m_lProfileComment = UTY.GetChildObject(this.m_goProfilePanel, "Comment/ProfileCommentWindow/ProfileComment", false).GetComponent<UILabel>();
+		if (Product.AEWDA)
+		{
+			UILabel componentInChildren = this.m_inFreeComment.GetComponentInChildren<UILabel>();
+			if (componentInChildren != null)
+			{
+				componentInChildren.spacingX = 0;
+			}
+			this.m_lProfileComment.spacingX = 0;
+		}
 		this.m_goProfileComment = UTY.GetChildObject(this.m_goProfilePanel, "Comment/ProfileCommentWindow/ProfileComment", false);
 		this.m_goFreeComment = UTY.GetChildObject(this.m_goProfilePanel, "Comment/FreeCommentWindow/FreeComment", false);
-		GameObject childObject5 = UTY.GetChildObject(this.m_goProfilePanel, "Comment/ProfileCommentWindow/ProfileTab", false);
-		this.m_bProfileTab = childObject5.GetComponent<UIButton>();
-		this.m_goProfileTabSelector = UTY.GetChildObject(childObject5, "SelectCursor", false);
-		GameObject childObject6 = UTY.GetChildObject(this.m_goProfilePanel, "Comment/FreeCommentWindow/FreeTab", false);
-		this.m_bFreeTab = childObject6.GetComponent<UIButton>();
-		this.m_goFreeTabSelector = UTY.GetChildObject(childObject6, "SelectCursor", false);
+		GameObject childObject7 = UTY.GetChildObject(this.m_goProfilePanel, "Comment/ProfileCommentWindow/ProfileTab", false);
+		this.m_bProfileTab = childObject7.GetComponent<UIButton>();
+		this.m_goProfileTabSelector = UTY.GetChildObject(childObject7, "SelectCursor", false);
+		GameObject childObject8 = UTY.GetChildObject(this.m_goProfilePanel, "Comment/FreeCommentWindow/FreeTab", false);
+		this.m_bFreeTab = childObject8.GetComponent<UIButton>();
+		this.m_goFreeTabSelector = UTY.GetChildObject(childObject8, "SelectCursor", false);
 		this.activeColor = new Color(this.m_bProfileTab.defaultColor.r, this.m_bProfileTab.defaultColor.g, this.m_bProfileTab.defaultColor.b, 1f);
 		this.inActiveColor = this.m_bProfileTab.defaultColor;
 		this.m_goMaidSkillParent = UTY.GetChildObject(this.m_goProfilePanel, "SubWindows/MaidSkillViewer/Contents/MaidSkillUnitParent", false);
@@ -223,14 +248,14 @@ public class ProfileCtrl : MonoBehaviour
 				ProfileMgr.UpperButtonType upperButtonType = (ProfileMgr.UpperButtonType)obj;
 				if (upperButtonType != ProfileMgr.UpperButtonType.None)
 				{
-					GameObject childObject7 = UTY.GetChildObject(this.m_goProfilePanel, "UpperButton/" + upperButtonType.ToString(), false);
-					UIButton component = childObject7.GetComponent<UIButton>();
-					GameObject childObject8 = UTY.GetChildObject(childObject7, "SelectCursor", false);
-					childObject8.SetActive(false);
+					GameObject childObject9 = UTY.GetChildObject(this.m_goProfilePanel, "UpperButton/" + upperButtonType.ToString(), false);
+					UIButton component = childObject9.GetComponent<UIButton>();
+					GameObject childObject10 = UTY.GetChildObject(childObject9, "SelectCursor", false);
+					childObject10.SetActive(false);
 					ProfileCtrl.UpperButton upperButton = new ProfileCtrl.UpperButton();
 					upperButton.m_btnButton = component;
 					upperButton.m_name = upperButtonType;
-					upperButton.m_goSelectCursor = childObject8;
+					upperButton.m_goSelectCursor = childObject10;
 					this.m_dicUpperBtn.Add(upperButton.m_name, upperButton);
 				}
 			}
@@ -266,14 +291,33 @@ public class ProfileCtrl : MonoBehaviour
 		this.LoadMaidParamData();
 		this.SetEnableInput(this.m_enabledInput, this.m_enabledPersonalityInput);
 		this.m_bInited = true;
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
-			UIWFPositionStore component2 = UTY.GetChildObject(base.gameObject, "Layout_jp_public", false).GetComponent<UIWFPositionStore>();
+			UIWFPositionStore component2 = UTY.GetChildObject(base.gameObject, "Layout_public", false).GetComponent<UIWFPositionStore>();
 			if (component2 != null)
 			{
 				component2.Apply();
 			}
 			UTY.GetChildObject(base.gameObject, "UpperButton/Character", false).GetComponent<UISprite>().width = 392;
+			BoxCollider component3 = UTY.GetChildObject(base.gameObject, "UpperButton/Character", false).GetComponent<BoxCollider>();
+			component3.size = new Vector3(392f, component3.size.y, 0f);
+		}
+		if (Product.DOPLGBNE)
+		{
+			UIWFPositionStore component4 = UTY.GetChildObject(base.gameObject, "Layout_en", false).GetComponent<UIWFPositionStore>();
+			if (component4 != null)
+			{
+				component4.Apply();
+			}
+			if (Product.FDAWBW)
+			{
+				UTY.GetChildObject(base.gameObject, "UpperButton", false).transform.localPosition = new Vector3(0f, -69f, 0f);
+				UTY.GetChildObject(base.gameObject, "Comment", false).transform.localPosition = new Vector3(UTY.GetChildObject(base.gameObject, "Comment", false).transform.localPosition.x, -42f, 0f);
+			}
+			else
+			{
+				UTY.GetChildObject(base.gameObject, "Comment", false).transform.localPosition = new Vector3(UTY.GetChildObject(base.gameObject, "Comment", false).transform.localPosition.x, -124f, 0f);
+			}
 		}
 	}
 
@@ -285,6 +329,9 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_clLastName.enabled = enabledInput;
 		this.m_buFirstName.gameObject.SetActive(enabledInput);
 		this.m_buLastName.gameObject.SetActive(enabledInput);
+		Behaviour inAgeInput = this.m_inAgeInput;
+		this.m_clAgeInput.enabled = enabledInput;
+		inAgeInput.enabled = enabledInput;
 		this.m_pPersonal.enabled = enabledPersonalityInput;
 		this.m_clPersonal.enabled = enabledPersonalityInput;
 		this.m_goPersonalSelectorIcon.SetActive(enabledPersonalityInput);
@@ -368,11 +415,13 @@ public class ProfileCtrl : MonoBehaviour
 		this.m_lContractType.GetComponent<Localize>().SetTerm(this.GetContractType(this.m_maidStatus.contract));
 		this.m_inLastName.value = this.m_maidStatus.lastName;
 		this.m_inFirstName.value = this.m_maidStatus.firstName;
+		this.m_inNickName.value = this.m_maidStatus.nickName;
+		this.m_inAgeInput.value = this.m_maidStatus.age.ToString();
 		ClassData<JobClass.Data> selectedJobClass = this.m_maidStatus.selectedJobClass;
 		if (selectedJobClass != null)
 		{
 			this.m_lMaidClassName.text = selectedJobClass.data.drawName;
-			Utility.SetLocalizeTerm(this.m_lMaidClassName, selectedJobClass.data.termName);
+			Utility.SetLocalizeTerm(this.m_lMaidClassName, selectedJobClass.data.termName, false);
 			this.m_lMaidClassLevel.text = selectedJobClass.level.ToString();
 			this.m_lMaidClassExp.text = selectedJobClass.cur_exp.ToString();
 			this.m_lMaidClassRequiredExp.text = selectedJobClass.next_exp.ToString();
@@ -429,12 +478,38 @@ public class ProfileCtrl : MonoBehaviour
 
 	public void SetLastName(string inputText)
 	{
-		this.m_maidStatus.lastName = this.AdjustStrLengthIfOver(inputText, 8);
+		this.m_maidStatus.lastName = this.AdjustStrLengthIfOver(inputText, this.MAX_NAME_LENGTH);
 	}
 
 	public void SetFirstName(string inputText)
 	{
-		this.m_maidStatus.firstName = this.AdjustStrLengthIfOver(inputText, 8);
+		this.m_maidStatus.firstName = this.AdjustStrLengthIfOver(inputText, this.MAX_NAME_LENGTH);
+	}
+
+	public void SetNickName(string inputText)
+	{
+		this.m_maidStatus.nickName = this.AdjustStrLengthIfOver(inputText, this.MAX_NAME_LENGTH);
+	}
+
+	public string SetAge(string inputText)
+	{
+		int num = Status.minAge;
+		if (!int.TryParse(inputText, out num))
+		{
+			num = Status.minAge;
+		}
+		num = wf.Math.RoundMinMax(num, Status.minAge, Status.maxAge);
+		this.m_maidStatus.age = num;
+		return this.m_maidStatus.age.ToString();
+	}
+
+	public void SubmitAge()
+	{
+		if (this.m_inAgeInput.isSelected)
+		{
+			this.m_inAgeInput.RemoveFocus();
+		}
+		this.m_inAgeInput.value = this.m_maidStatus.age.ToString();
 	}
 
 	public void SetFreeCommnet(string inputText)
@@ -631,11 +706,11 @@ public class ProfileCtrl : MonoBehaviour
 				Localize localize = component.gameObject.AddComponent<Localize>();
 				if (btnType == ProfileMgr.UpperButtonType.Character)
 				{
-					Utility.SetLocalizeTerm(localize, "MaidStatus/性癖タイプ/" + list[i].m_parameter);
+					Utility.SetLocalizeTerm(localize, "MaidStatus/性癖タイプ/" + list[i].m_parameter, false);
 				}
 				else if (btnType == ProfileMgr.UpperButtonType.Propensity)
 				{
-					Utility.SetLocalizeTerm(localize, "MaidStatus/性癖タイプ/" + list[i].m_parameter);
+					Utility.SetLocalizeTerm(localize, "MaidStatus/性癖タイプ/" + list[i].m_parameter, false);
 				}
 			}
 			this.m_goProfileLabelUnitPrefab = gameObject;
@@ -729,6 +804,8 @@ public class ProfileCtrl : MonoBehaviour
 		}
 		this.SetFirstName(this.m_inFirstName.value);
 		this.SetLastName(this.m_inLastName.value);
+		this.SetNickName(this.m_inNickName.value);
+		this.SetAge(this.m_inAgeInput.value);
 		this.SetFreeCommnet(this.m_inFreeComment.value);
 	}
 
@@ -952,6 +1029,10 @@ public class ProfileCtrl : MonoBehaviour
 
 	private UIInput m_inLastName;
 
+	private UIInput m_inNickName;
+
+	private UIInput m_inAgeInput;
+
 	private UIButton m_buFirstName;
 
 	private UIButton m_buLastName;
@@ -970,6 +1051,10 @@ public class ProfileCtrl : MonoBehaviour
 
 	private BoxCollider m_clLastName;
 
+	private BoxCollider m_clNickName;
+
+	private BoxCollider m_clAgeInput;
+
 	private BoxCollider m_clPersonal;
 
 	private BoxCollider m_clSexualExperience;
@@ -994,8 +1079,6 @@ public class ProfileCtrl : MonoBehaviour
 
 	private Color inActiveColor;
 
-	private const int MAX_NAME_LENGTH = 8;
-
 	private const int MAX_FREE_COMMENT_LENGTH = 304;
 
 	private const int MAX_EROGENOUSZONE_UNIT = 7;

+ 17 - 0
Assembly-CSharp/ProfileMgr.cs

@@ -160,6 +160,23 @@ public class ProfileMgr : BaseMgr<ProfileMgr>
 		this.m_profileCtrl.SetFirstName(value);
 	}
 
+	public void OnChangeNickName()
+	{
+		string value = UIInput.current.value;
+		this.m_profileCtrl.SetNickName(value);
+	}
+
+	public void OnChangeAge()
+	{
+		string value = UIInput.current.value;
+		this.m_profileCtrl.SetAge(value);
+	}
+
+	public void OnSubmitAge()
+	{
+		this.m_profileCtrl.SubmitAge();
+	}
+
 	public void OnChangeFreeComment()
 	{
 		string value = UIInput.current.value;

+ 3 - 3
Assembly-CSharp/RandomPresetCtrl.cs

@@ -43,7 +43,7 @@ public class RandomPresetCtrl : MonoBehaviour
 		HashSet<int> hashSet = new HashSet<int>();
 		foreach (KeyValuePair<MPN, SceneEditInfo.CCateNameType> keyValuePair in this.m_dicPartsTypePair)
 		{
-			if (!Product.VBA || (keyValuePair.Key != MPN.chikubicolor && keyValuePair.Key != MPN.underhair))
+			if (!Product.FDAWBW || (keyValuePair.Key != MPN.chikubicolor && keyValuePair.Key != MPN.underhair))
 			{
 				RandomPresetContent.MPNMapping mpnmapping;
 				if (RandomPresetContent.m_dicMPNMapping.TryGetValue(keyValuePair.Key, out mpnmapping))
@@ -103,7 +103,7 @@ public class RandomPresetCtrl : MonoBehaviour
 				}
 			}
 		}
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			UIButton[] componentsInChildren = UTY.GetChildObject(goRandomPresetPanel, "Contents", false).GetComponentsInChildren<UIButton>();
 			foreach (UIButton uibutton in componentsInChildren)
@@ -177,7 +177,7 @@ public class RandomPresetCtrl : MonoBehaviour
 
 	private void OnEnable()
 	{
-		if (!Product.VBA)
+		if (!Product.FDAWBW)
 		{
 			return;
 		}

+ 4 - 1
Assembly-CSharp/ResultWorkMgr.cs

@@ -183,7 +183,10 @@ public class ResultWorkMgr : BaseCreatePanel
 					lastName = workResultSlot.last_name,
 					Rranking = workResultSlot.popular_rank,
 					crownIcon = workResultSlot.popular_rank_icon,
-					contractTypeName = workResultSlot.contract_type_name
+					contractTypeName = workResultSlot.contract_type_name,
+					contractTypeNameTerm = workResultSlot.contract_type_name_term,
+					personalName = workResultSlot.personal_name,
+					personalNameTerm = workResultSlot.personal_name_term
 				};
 				dictionary.Add(string.Format("slot_{0}", maidStatusAndTaskUnit.slotNo), maidStatusAndTaskUnit);
 			}

+ 9 - 4
Assembly-CSharp/RhythmAction_Mgr.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using I2.Loc;
 using UnityEngine;
 using wf;
 
@@ -191,6 +192,10 @@ public class RhythmAction_Mgr : MonoBehaviour
 		this.m_RhythmActionCam = UnityEngine.Object.Instantiate<GameObject>(gameObject2, base.transform.parent).GetComponent<Camera>();
 		this.m_RhythmActionCam.name = "RhythmActionCam";
 		this.m_NguiCam = gameObject2.GetComponent<Camera>();
+		if (DanceMain.SelectDanceData != null && !this.m_NguiCam.enabled)
+		{
+			this.m_NguiCam.enabled = true;
+		}
 		if (!GameMain.Instance.VRMode || !this.IsNewController)
 		{
 			this.m_NguiCam.cullingMask = this.m_RhythmAction2DLayer;
@@ -248,7 +253,7 @@ public class RhythmAction_Mgr : MonoBehaviour
 		}
 		foreach (RhythmAction_Mgr.ChoiceObjpair choiceObjpair in this.m_ChoiceUIList)
 		{
-			choiceObjpair.UIImage = choiceObjpair.EventUI.GetComponent<UISprite>();
+			choiceObjpair.UILocalize = choiceObjpair.EventUI.GetComponent<Localize>();
 			switch (choiceObjpair.Choice)
 			{
 			case RhythmAction_Mgr.PauseChoices.Continue:
@@ -652,11 +657,11 @@ public class RhythmAction_Mgr : MonoBehaviour
 		{
 			if (choiceObjpair.Choice == select_choice)
 			{
-				choiceObjpair.UIImage.spriteName = choiceObjpair.CursorOnImage;
+				Utility.SetLocalizeTerm(choiceObjpair.UILocalize, choiceObjpair.CursorOnImage, false);
 			}
 			else
 			{
-				choiceObjpair.UIImage.spriteName = choiceObjpair.CursorOffImage;
+				Utility.SetLocalizeTerm(choiceObjpair.UILocalize, choiceObjpair.CursorOffImage, false);
 			}
 		}
 	}
@@ -1277,7 +1282,7 @@ public class RhythmAction_Mgr : MonoBehaviour
 		public string CursorOffImage;
 
 		[HideInInspector]
-		public UISprite UIImage;
+		public Localize UILocalize;
 	}
 
 	private class PauseBackupLookTarget

+ 15 - 0
Assembly-CSharp/SaveAndLoadCtrl.cs

@@ -164,6 +164,14 @@ public class SaveAndLoadCtrl : BaseCreateViewerCtrl
 			}
 			gameObject.name = key;
 			base.SetTransformInfo(gameObject);
+			if (Product.AEWDA)
+			{
+				UIWFPositionStore componentInChildren = gameObject.GetComponentInChildren<UIWFPositionStore>();
+				if (componentInChildren != null)
+				{
+					componentInChildren.Apply();
+				}
+			}
 			GameObject childObject = UTY.GetChildObject(gameObject, "Content/SelectCursor", false);
 			childObject.SetActive(false);
 			value.selectCursor = childObject;
@@ -204,6 +212,11 @@ public class SaveAndLoadCtrl : BaseCreateViewerCtrl
 				ButtonEnable item = new ButtonEnable(component, component7);
 				this.m_listAllButton.Add(item);
 				EventDelegate.Add(component6.onChange, new EventDelegate.Callback(this.m_mgr.OnChangeComment));
+				GameObject childObject4 = UTY.GetChildObject(gameObject, "NotUsePanel", false);
+				if (childObject4 != null)
+				{
+					childObject4.SetActive(value.productTypeID != (int)Product.FEA);
+				}
 			}
 		}
 	}
@@ -548,6 +561,8 @@ public class SaveAndLoadCtrl : BaseCreateViewerCtrl
 
 		public int nVer;
 
+		public int productTypeID;
+
 		public GameObject selectCursor;
 
 		public UIButton btnLoadData;

+ 1 - 0
Assembly-CSharp/SaveAndLoadMgr.cs

@@ -271,6 +271,7 @@ public class SaveAndLoadMgr : BaseCreatePanel
 				loadDataUnit.numberOfEmployees = saveDataHeader.nMaidNum;
 				loadDataUnit.comment = saveDataHeader.strComment;
 				loadDataUnit.isEmpty = false;
+				loadDataUnit.productTypeID = saveDataHeader.productTypeID;
 			}
 			else
 			{

+ 2 - 3
Assembly-CSharp/SceneCasino.cs

@@ -1,7 +1,6 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 using UnityEngine.UI;
@@ -33,13 +32,13 @@ public class SceneCasino : KasaSceneMgr<SceneCasino>
 				select_dialog.Close();
 				GameMain.Instance.MainCamera.FadeOut(0.5f, false, new CameraMain.dgOnCompleteFade(this.Init), false, default(Color));
 			};
-			select_dialog.Show(LocalizationManager.GetTranslation("SceneCasino/ダイアログ/どちらのカジノでプレイしますか?", true, 0, true, false, null, null), CasinoDataMgr.Instance.GetCasinoFacility(true).facilityName, delegate
+			select_dialog.Show("SceneCasino/ダイアログ/どちらのカジノでプレイしますか?", CasinoDataMgr.Instance.GetCasinoFacility(true).facilityName, delegate
 			{
 				select_casino(true);
 			}, CasinoDataMgr.Instance.GetCasinoFacility(false).facilityName, delegate
 			{
 				select_casino(false);
-			});
+			}, string.Empty, null);
 		}
 		else
 		{

+ 4 - 4
Assembly-CSharp/SceneCasinoShop.cs

@@ -128,7 +128,7 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 			GameObject gameObject = Utility.CreatePrefab(this.m_CategoryUI.Grid.gameObject, "SceneCasinoShop/Prefab/CategoryUI", true);
 			UILabel componentInChildren = gameObject.GetComponentInChildren<UILabel>();
 			componentInChildren.text = ((category != CasinoShopItem.Category.Costume) ? "施設強化素材" : "コスチューム");
-			Utility.SetLocalizeTerm(componentInChildren, (category != CasinoShopItem.Category.Costume) ? "SceneShop/メインカテゴリー/施設強化素材" : "SceneEdit/カテゴリー/サブ/コスチューム");
+			Utility.SetLocalizeTerm(componentInChildren, (category != CasinoShopItem.Category.Costume) ? "SceneShop/メインカテゴリー/施設強化素材" : "SceneEdit/カテゴリー/サブ/コスチューム", false);
 			UIWFTabButton componentInChildren2 = gameObject.GetComponentInChildren<UIWFTabButton>();
 			this.m_ButtonCategoryPair.Add(componentInChildren2, category);
 			EventDelegate.Add(componentInChildren2.onSelect, new EventDelegate.Callback(this.SelectCategory));
@@ -327,7 +327,7 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 		{
 			item_data.Name
 		};
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			array[0] = LocalizationManager.GetTranslation(item_data.NameTerm, true, 0, true, false, null, null);
 		}
@@ -359,9 +359,9 @@ public class SceneCasinoShop : KasaSceneMgr<SceneCasinoShop>
 		this.m_InfoData.UIobj.SetActive(true);
 		this.m_InfoData.Icon.sprite2D = item_data.Icon;
 		this.m_InfoData.InfoLabel.text = item_data.Document;
-		Utility.SetLocalizeTerm(this.m_InfoData.InfoLabel, item_data.DocumentTerm);
+		Utility.SetLocalizeTerm(this.m_InfoData.InfoLabel, item_data.DocumentTerm, false);
 		this.m_InfoData.Namelabel.text = item_data.Name;
-		Utility.SetLocalizeTerm(this.m_InfoData.Namelabel, item_data.NameTerm);
+		Utility.SetLocalizeTerm(this.m_InfoData.Namelabel, item_data.NameTerm, false);
 		int num = Mathf.FloorToInt(this.m_ScrollPanel.height / this.m_ShopItemUI.Grid.cellHeight + 0.5f);
 		int num2 = CasinoDataMgr.Instance.GetShopItem(item_data.MyCategory).Count - num;
 		int num3 = num + Mathf.FloorToInt((float)num2 * this.m_ShopItemUI.ScrollView.verticalScrollBar.value) - 1;

+ 62 - 10
Assembly-CSharp/SceneEdit.cs

@@ -31,7 +31,7 @@ public class SceneEdit : MonoBehaviour
 		{
 			return;
 		}
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			maid.AllProcProp();
 			if (SceneEdit.Instance != null)
@@ -444,7 +444,7 @@ public class SceneEdit : MonoBehaviour
 		this.m_dicColor.Clear();
 		base.StartCoroutine(this.InitMenuNative());
 		GameMain.Instance.TutorialPanel.SetImage(TutorialPanel.ImageSet.Edit, false);
-		if (PluginData.IsEnabled("GP001") || Product.type == Product.Type.BBB)
+		if (PluginData.IsEnabled("GP001") || Product.FEA == Product.PAWCAQ.OQK)
 		{
 			uGUITutorialPanel.OpenTutorial("SceneEditGP01", null, false);
 			GameMain.Instance.SysShortcut.strSceneHelpName = "SceneEditGP01";
@@ -1535,7 +1535,7 @@ public class SceneEdit : MonoBehaviour
 		for (int n = 0; n < f_cate.m_listPartsType.Count; n++)
 		{
 			SceneEdit.SPartsType spartsType = f_cate.m_listPartsType[n];
-			if (MPN.EarNone > spartsType.m_mpn || spartsType.m_mpn > MPN.EarScl || PluginData.IsEnabled("GP001") || Product.type == Product.Type.BBB)
+			if (MPN.EarNone > spartsType.m_mpn || spartsType.m_mpn > MPN.EarScl || PluginData.IsEnabled("GP001") || Product.FEA == Product.PAWCAQ.OQK)
 			{
 				UnityEngine.Object @object = Resources.Load("SceneEdit/MainMenu/Prefab/ButtonCate");
 				GameObject gameObject = NGUITools.AddChild(this.m_Panel_PartsType.goGrid, @object as GameObject);
@@ -1707,7 +1707,7 @@ public class SceneEdit : MonoBehaviour
 			{
 				if (!smenuItem2.m_requestNewFace || this.isNewFace)
 				{
-					if (!Product.VBA || smenuItem2.m_mpn != MPN.MuneYawaraka)
+					if (!Product.FDAWBW || smenuItem2.m_mpn != MPN.MuneYawaraka)
 					{
 						SceneEdit.SliderItemSet sliderItemSet2;
 						if (smenuItem2.m_mpn == MPN.EarNone)
@@ -2641,15 +2641,37 @@ public class SceneEdit : MonoBehaviour
 
 	public void CallHowToNameDialog()
 	{
-		this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/名前と苗字のどちらで呼びますか?", "Dialog/result/苗字で呼ぶ", delegate
+		FFNameDialog.OnClick value = delegate()
 		{
 			this.m_FFNameDlg.Close();
+			this.m_maid.status.isNickNameCall = false;
 			this.m_maid.status.isFirstNameCall = false;
-		}, "Dialog/result/名前で呼ぶ", delegate
+			this.Conform();
+		};
+		FFNameDialog.OnClick value2 = delegate()
 		{
 			this.m_FFNameDlg.Close();
+			this.m_maid.status.isNickNameCall = false;
 			this.m_maid.status.isFirstNameCall = true;
-		});
+			this.Conform();
+		};
+		FFNameDialog.OnClick value3 = delegate()
+		{
+			this.m_FFNameDlg.Close();
+			this.m_maid.status.isNickNameCall = true;
+			this.Conform();
+		};
+		KeyValuePair<string, FFNameDialog.OnClick> keyValuePair = new KeyValuePair<string, FFNameDialog.OnClick>("Dialog/result/苗字で呼ぶ", value);
+		KeyValuePair<string, FFNameDialog.OnClick> keyValuePair2 = new KeyValuePair<string, FFNameDialog.OnClick>("Dialog/result/名前で呼ぶ", value2);
+		KeyValuePair<string, FFNameDialog.OnClick> keyValuePair3 = new KeyValuePair<string, FFNameDialog.OnClick>("Dialog/result/ニックネームで呼ぶ", value3);
+		if (Product.DOPLGBNE)
+		{
+			this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/呼び方を選択してください", keyValuePair2.Key, keyValuePair2.Value, keyValuePair.Key, keyValuePair.Value, keyValuePair3.Key, keyValuePair3.Value);
+		}
+		else
+		{
+			this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/名前と苗字のどちらで呼びますか?", keyValuePair.Key, keyValuePair.Value, keyValuePair2.Key, keyValuePair2.Value);
+		}
 	}
 
 	public void CallSettingNamePanel()
@@ -2740,7 +2762,37 @@ public class SceneEdit : MonoBehaviour
 			maid.body0.SetMaskMode(TBody.MaskMode.None);
 			if (this.modeType == SceneEdit.ModeType.OriginalChara || this.modeType == SceneEdit.ModeType.MainChara)
 			{
-				this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/名前と苗字のどちらで呼びますか?", "Dialog/result/苗字で呼ぶ", new FFNameDialog.OnClick(this.OnFFNameFamily), "Dialog/result/名前で呼ぶ", new FFNameDialog.OnClick(this.OnFFNameFirst));
+				FFNameDialog.OnClick value = delegate()
+				{
+					this.m_FFNameDlg.Close();
+					this.m_maid.status.isNickNameCall = false;
+					this.m_maid.status.isFirstNameCall = false;
+					this.Conform();
+				};
+				FFNameDialog.OnClick value2 = delegate()
+				{
+					this.m_FFNameDlg.Close();
+					this.m_maid.status.isNickNameCall = false;
+					this.m_maid.status.isFirstNameCall = true;
+					this.Conform();
+				};
+				FFNameDialog.OnClick value3 = delegate()
+				{
+					this.m_FFNameDlg.Close();
+					this.m_maid.status.isNickNameCall = true;
+					this.Conform();
+				};
+				KeyValuePair<string, FFNameDialog.OnClick> keyValuePair = new KeyValuePair<string, FFNameDialog.OnClick>("Dialog/result/苗字で呼ぶ", value);
+				KeyValuePair<string, FFNameDialog.OnClick> keyValuePair2 = new KeyValuePair<string, FFNameDialog.OnClick>("Dialog/result/名前で呼ぶ", value2);
+				KeyValuePair<string, FFNameDialog.OnClick> keyValuePair3 = new KeyValuePair<string, FFNameDialog.OnClick>("Dialog/result/ニックネームで呼ぶ", value3);
+				if (Product.DOPLGBNE)
+				{
+					this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/呼び方を選択してください", keyValuePair2.Key, keyValuePair2.Value, keyValuePair.Key, keyValuePair.Value, keyValuePair3.Key, keyValuePair3.Value);
+				}
+				else
+				{
+					this.m_FFNameDlg.ShowFromLanguageTerm("Dialog/名前と苗字のどちらで呼びますか?", keyValuePair.Key, keyValuePair.Value, keyValuePair2.Key, keyValuePair2.Value);
+				}
 			}
 			else
 			{
@@ -3363,7 +3415,7 @@ public class SceneEdit : MonoBehaviour
 		{
 			get
 			{
-				if (Product.WMZI == Product.Language.INKD)
+				if (Product.OUIWEHVA == Product.JQOVNMDS.P0L)
 				{
 					return this.m_strMenuName;
 				}
@@ -3377,7 +3429,7 @@ public class SceneEdit : MonoBehaviour
 		{
 			get
 			{
-				if (Product.WMZI == Product.Language.INKD)
+				if (Product.OUIWEHVA == Product.JQOVNMDS.P0L)
 				{
 					return this.m_strInfo;
 				}

+ 1 - 1
Assembly-CSharp/SceneEditInfo.cs

@@ -76,7 +76,7 @@ public static class SceneEditInfo
 									ccateNameType.m_strBtnPartsTypeName = array[1];
 								}
 								bool flag = csvParser.GetCellAsString(num++, i) == "×";
-								if (!flag || !Product.VBA)
+								if (!flag || !Product.FDAWBW)
 								{
 									ccateNameType.m_requestNewFace = (csvParser.GetCellAsString(num++, i) == "〇");
 									NDebug.Assert(!SceneEditInfo.dicPartsTypePair_.ContainsKey(key), "MPN[" + key.ToString() + "]が重複しています");

+ 1 - 1
Assembly-CSharp/SceneEditNameSettingPanel.cs

@@ -14,7 +14,7 @@ public class SceneEditNameSettingPanel : MonoBehaviour
 
 	public void Awake()
 	{
-		if (Product.SIBD)
+		if (Product.DOPLGBNE)
 		{
 			Vector3 localPosition = this.lastNameInput.transform.parent.localPosition;
 			Vector3 localPosition2 = this.firstNameInput.transform.parent.localPosition;

+ 9 - 4
Assembly-CSharp/SceneEditWindow/UndressWindow.cs

@@ -19,8 +19,8 @@ namespace SceneEditWindow
 		public override void Awake()
 		{
 			base.Awake();
-			bool vba = Product.VBA;
-			if (vba)
+			bool fdawbw = Product.FDAWBW;
+			if (fdawbw)
 			{
 				this.WindowSize.x = 203f;
 				base.ResizeWindow();
@@ -28,9 +28,14 @@ namespace SceneEditWindow
 			for (int i = 0; i < UndressWindow.IconTexFileNames.Length; i++)
 			{
 				UndressWindow.UndressType undressType = (UndressWindow.UndressType)i;
-				if (undressType != UndressWindow.UndressType.Nude || !vba)
+				if (undressType != UndressWindow.UndressType.Nude || !fdawbw)
 				{
-					UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, UndressWindow.IconTexFileNames[i]);
+					string textFileName = UndressWindow.IconTexFileNames[i];
+					if (i == 1 && Product.FDAWBW)
+					{
+						textFileName = "cm3d2_edit_clothesicon_spats.tex";
+					}
+					UIWFTabButton uiwftabButton = this.CreateItemObject(this.itemGrit.gameObject, textFileName);
 					uiwftabButton.name = i.ToString();
 					EventDelegate.Add(uiwftabButton.onClick, delegate()
 					{

+ 2 - 2
Assembly-CSharp/SceneEmpireLifeMode.cs

@@ -168,7 +168,7 @@ public class SceneEmpireLifeMode : MonoBehaviour
 						{
 							if (componentInChildren.texture == null)
 							{
-								componentInChildren2.text = string.Format("{0}\n({1})", maid.status.fullNameJpStyle, maid.status.personal.drawName);
+								componentInChildren2.text = string.Format("{0}\n({1})", maid.status.charaName.GetFullName(" "), maid.status.personal.drawName);
 							}
 							else
 							{
@@ -214,7 +214,7 @@ public class SceneEmpireLifeMode : MonoBehaviour
 						{
 							if (componentInChildren.texture == null)
 							{
-								componentInChildren2.text = string.Format("{0}\n({1})", maid.status.fullNameJpStyle, maid.status.personal.drawName);
+								componentInChildren2.text = string.Format("{0}\n({1})", maid.status.charaName.GetFullName(" "), maid.status.personal.drawName);
 							}
 							else
 							{

+ 1 - 1
Assembly-CSharp/SceneFreeModeSelectManager.cs

@@ -123,7 +123,7 @@ public class SceneFreeModeSelectManager : WfScreenManager
 				childObject2.gameObject.SetActive(false);
 			}
 		}
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			childObject3.SetActive(false);
 			childObject4.SetActive(false);

+ 1 - 1
Assembly-CSharp/SceneLogo.cs

@@ -6,7 +6,7 @@ public class SceneLogo : MonoBehaviour
 {
 	private void Start()
 	{
-		if (Product.type == Product.Type.BBB)
+		if (Product.FEA == Product.PAWCAQ.OQK)
 		{
 			this.kissLogo.SetActive(false);
 			this.scortLogo.SetActive(true);

+ 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(1270);
+			binary.Write(1280);
 			binary.Write(SaveData.presetData.Count);
 			foreach (KeyValuePair<int, byte[]> keyValuePair in SaveData.presetData)
 			{

+ 5 - 0
Assembly-CSharp/SceneNetorareCheck.cs

@@ -12,6 +12,11 @@ public class SceneNetorareCheck : BaseMgr<SceneNetorareCheck>
 		this.toggleDic.Add(SceneNetorareCheck.Type.IsComPlayer, UTY.GetChildObject(this.toggleParent, "Toggle_IsComPlayer/Toggle_On", false).GetComponent<UIToggle>());
 		EventDelegate.Add(this.buttonOk.onClick, new EventDelegate.Callback(this.EndNextScene));
 		this.uiTable = this.toggleParent.GetComponent<UITable>();
+		if (!Product.QOPZX)
+		{
+			UTY.GetChildObject(this.toggleParent, "Toggle_IsComPlayer", false).SetActive(false);
+			UTY.GetChildObject(this.toggleParent, "Toggle_LockUserDraftMaid", false).SetActive(false);
+		}
 	}
 
 	public void SceneStart()

+ 3 - 3
Assembly-CSharp/SceneScenarioSelect.cs

@@ -94,7 +94,7 @@ 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);
+		Utility.SetLocalizeTerm(this.m_ContentsLabel, this.m_CurrentScenario.EventContentTerm, false);
 		string[] conditionTextTerms = this.m_CurrentScenario.ConditionTextTerms;
 		for (int i = 0; i < this.m_PlayableTextUIList.Count; i++)
 		{
@@ -107,7 +107,7 @@ public class SceneScenarioSelect : MonoBehaviour
 				{
 					gameObject.SetActive(true);
 					this.m_PlayableTextUIList[i].text = text;
-					Utility.SetLocalizeTerm(this.m_PlayableTextUIList[i], conditionTextTerms[i]);
+					Utility.SetLocalizeTerm(this.m_PlayableTextUIList[i], conditionTextTerms[i], false);
 				}
 			}
 		}
@@ -176,7 +176,7 @@ public class SceneScenarioSelect : MonoBehaviour
 				GameObject gameObject = Utility.CreatePrefab(this.m_ScenarioScroll.Grid.gameObject, "SceneScenarioSelect/Prefab/ScenarioPlate", true);
 				UILabel component = UTY.GetChildObject(gameObject, "Title", false).GetComponent<UILabel>();
 				component.text = scenarioData.Title;
-				Utility.SetLocalizeTerm(component, scenarioData.TitleTerm);
+				Utility.SetLocalizeTerm(component, scenarioData.TitleTerm, false);
 				gameObject.name = scenarioData.NotLineTitle;
 				UTY.GetChildObject(gameObject, "Icon", false).GetComponent<UI2DSprite>().sprite2D = Resources.Load<Sprite>("SceneScenarioSelect/Sprite/" + scenarioData.IconName);
 				UIWFTabButton componentInChildren = gameObject.GetComponentInChildren<UIWFTabButton>();

+ 2 - 2
Assembly-CSharp/SceneWarning.cs

@@ -7,7 +7,7 @@ public class SceneWarning : MonoBehaviour
 	{
 		foreach (SceneWarning.WarningSet warningSet in this.wirningSet)
 		{
-			warningSet.displayObject.SetActive(warningSet.type == Product.type);
+			warningSet.displayObject.SetActive(warningSet.type == Product.FEA);
 		}
 	}
 
@@ -66,7 +66,7 @@ public class SceneWarning : MonoBehaviour
 	[Serializable]
 	private struct WarningSet
 	{
-		public Product.Type type;
+		public Product.PAWCAQ type;
 
 		public GameObject displayObject;
 	}

+ 1 - 1
Assembly-CSharp/Schedule/ResultYotogiTask.cs

@@ -60,7 +60,7 @@ namespace Schedule
 					this.successLv = ScheduleData.WorkSuccessLv.Miss;
 					this.commonSuccessLv = this.successLv;
 				}
-				if (Product.VBA && ScheduleCSVData.YotogiData[base.id].yotogiType == ScheduleCSVData.YotogiType.HaveSex)
+				if (Product.FDAWBW && ScheduleCSVData.YotogiData[base.id].yotogiType == ScheduleCSVData.YotogiType.HaveSex)
 				{
 					this.successLvName = "CM3D2_work_result_mark_seikou";
 					this.commonSuccessLv = (this.successLv = ScheduleData.WorkSuccessLv.Success);

+ 12 - 12
Assembly-CSharp/Schedule/ScheduleCSVData.cs

@@ -1032,22 +1032,22 @@ namespace Schedule
 			int max_cell_y = csv.max_cell_y;
 			for (int i = 1; i < max_cell_y; i++)
 			{
-				int cellAsInteger = csv.GetCellAsInteger(0, i);
-				int num = 2;
-				while (csv.IsCellToExistData(num, 0))
+				int num = csv.GetCellAsInteger(0, i);
+				if (Product.FDAWBW && num == 10000)
+				{
+					num = 10003;
+				}
+				int num2 = 2;
+				while (csv.IsCellToExistData(num2, 0))
 				{
-					string cellAsString = csv.GetCellAsString(num, 0);
+					string cellAsString = csv.GetCellAsString(num2, 0);
 					MaidStatus.Personal.Data data = MaidStatus.Personal.GetData(cellAsString);
-					int cellAsInteger2 = csv.GetCellAsInteger(num, i);
-					if (cellAsInteger2 > 0)
+					int cellAsInteger = csv.GetCellAsInteger(num2, i);
+					if (cellAsInteger > 0)
 					{
-						dataDic[data.id][cellAsInteger] = cellAsInteger2;
-						if (Product.VBA)
-						{
-							dataDic[data.id][cellAsInteger] = 10003;
-						}
+						dataDic[data.id][num] = cellAsInteger;
 					}
-					num++;
+					num2++;
 				}
 			}
 		}

+ 43 - 2
Assembly-CSharp/Schedule/SlotBase.cs

@@ -127,7 +127,7 @@ namespace Schedule
 		{
 			get
 			{
-				return this.maid.status.lastName;
+				return this.maid.status.charaName.name1;
 			}
 		}
 
@@ -135,7 +135,7 @@ namespace Schedule
 		{
 			get
 			{
-				return this.maid.status.firstName;
+				return this.maid.status.charaName.name2;
 			}
 		}
 
@@ -164,6 +164,47 @@ namespace Schedule
 			}
 		}
 
+		public string contract_type_name_term
+		{
+			get
+			{
+				string result = string.Empty;
+				if (this.maid.status.heroineType == HeroineType.Sub)
+				{
+					result = this.maid.status.subCharaStatus.contractTextTerm;
+				}
+				else
+				{
+					result = EnumConvert.GetTerm(this.maid.status.contract);
+				}
+				return result;
+			}
+		}
+
+		public string personal_name
+		{
+			get
+			{
+				if (this.maid.status.heroineType == HeroineType.Sub && this.maid.status.subCharaStatus != null)
+				{
+					return this.maid.status.subCharaStatus.personalText;
+				}
+				return this.maid.status.personal.drawName;
+			}
+		}
+
+		public string personal_name_term
+		{
+			get
+			{
+				if (this.maid.status.heroineType == HeroineType.Sub && this.maid.status.subCharaStatus != null)
+				{
+					return this.maid.status.subCharaStatus.personalTextTerm;
+				}
+				return this.maid.status.personal.termName;
+			}
+		}
+
 		public Texture2D noon_icon
 		{
 			get

+ 14 - 35
Assembly-CSharp/ScheduleCtrl.cs

@@ -1,10 +1,9 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using I2.Loc;
-using MaidStatus;
 using Schedule;
 using UnityEngine;
+using wf;
 
 public class ScheduleCtrl : BaseCreateViewerCtrl
 {
@@ -322,43 +321,23 @@ public class ScheduleCtrl : BaseCreateViewerCtrl
 			component4.text = null;
 		}
 		UILabel component5 = UTY.GetChildObject(childObject, "ContractType/Value", false).GetComponent<UILabel>();
-		if (Product.SPP && unit != null)
-		{
-			Vector3 localPosition = component5.transform.localPosition;
-			component5.transform.localPosition = new Vector3(180f, localPosition.y, localPosition.z);
-		}
 		if (unit != null)
 		{
 			component5.text = unit.maidStatus.contractTypeName;
-			Localize component6 = component5.GetComponent<Localize>();
-			if (component6 != null)
-			{
-				bool flag = false;
-				Contract contract = Contract.Trainee;
-				foreach (string value in Enum.GetNames(typeof(Contract)))
-				{
-					Contract contract2 = (Contract)Enum.Parse(typeof(Contract), value);
-					string @string = EnumConvert.GetString(contract2);
-					if (@string == unit.maidStatus.contractTypeName)
-					{
-						contract = contract2;
-						flag = true;
-						break;
-					}
-				}
-				if (flag)
-				{
-					component6.SetTerm(EnumConvert.GetTerm(contract));
-				}
-				else
-				{
-					component6.SetTerm("MaidStatus/契約タイプ/" + unit.maidStatus.contractTypeName);
-				}
-			}
+			Utility.SetLocalizeTerm(component5, unit.maidStatus.contractTypeNameTerm, false);
 		}
-		else
+		if (!Product.FDAWBW && !Product.QOPZX)
+		{
+			Vector3 localPosition = component5.transform.localPosition;
+			component5.transform.localPosition = new Vector3(182f, localPosition.y, localPosition.z);
+		}
+		if (Product.FDAWBW)
 		{
-			component5.text = null;
+			UTY.GetChildObject(childObject, "ContractType", false).SetActive(false);
+			UTY.GetChildObject(childObject, "public", false).SetActive(true);
+			UILabel component6 = UTY.GetChildObject(childObject, "public/TextTypeName_public", false).GetComponent<UILabel>();
+			component6.text = unit.maidStatus.personalName;
+			Utility.SetLocalizeTerm(component6, unit.maidStatus.personalNameTerm, false);
 		}
 		UITexture component7 = UTY.GetChildObject(maidStatus, "Figure/Icon", false).GetComponent<UITexture>();
 		if (unit != null)
@@ -616,7 +595,7 @@ public class ScheduleCtrl : BaseCreateViewerCtrl
 		this.m_scheduleApi = scheduleApi;
 		string maidName = this.GetMaidName(buttonName);
 		this.m_deleteSlotNo = ScheduleCtrl.GetSlotByButtonName(buttonName).slotNo;
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/スケジュールから削除して宜しいですか。", null, SystemDialog.TYPE.OK_CANCEL, new SystemDialog.OnClick(this.DeleteMaidAndReDraw), null);
 		}

+ 2 - 2
Assembly-CSharp/ScheduleMaidStatusUnit.cs

@@ -114,7 +114,7 @@ public class ScheduleMaidStatusUnit : MonoBehaviour
 			if (maidAssignedFacility != null)
 			{
 				int facilityIndex = GameMain.Instance.FacilityMgr.GetFacilityIndex(maidAssignedFacility);
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					string translation = LocalizationManager.GetTranslation("SceneFacilityManagement/施設名/" + maidAssignedFacility.facilityName, true, 0, true, false, null, null);
 					text = string.Concat(new string[]
@@ -393,7 +393,7 @@ public class ScheduleMaidStatusUnit : MonoBehaviour
 			{
 				text = "MaidStatus/" + text;
 			}
-			Utility.SetLocalizeTerm(component, text);
+			Utility.SetLocalizeTerm(component, text, false);
 			if (money)
 			{
 				component2.text = "+ " + this.ValueToMoney(value);

+ 4 - 1
Assembly-CSharp/ScheduleMgr.cs

@@ -236,7 +236,10 @@ public class ScheduleMgr : BaseCreatePanel
 					lastName = slot2.last_name,
 					Rranking = slot2.popular_rank,
 					crownIcon = slot2.popular_rank_icon,
-					contractTypeName = slot2.contract_type_name
+					contractTypeName = slot2.contract_type_name,
+					contractTypeNameTerm = slot2.contract_type_name_term,
+					personalName = slot2.personal_name,
+					personalNameTerm = slot2.personal_name_term
 				};
 				dictionary.Add(string.Format("slot_{0}", maidStatusAndTaskUnit.slotNo), maidStatusAndTaskUnit);
 			}

+ 1 - 1
Assembly-CSharp/Score_Mgr.cs

@@ -116,7 +116,7 @@ public class Score_Mgr : PartsMgrBase
 	{
 		if (chara_type == DanceBattle_Mgr.CharaType.Player)
 		{
-			this.m_CharaScoreList[chara_type].CharaName = RhythmAction_Mgr.Instance.UserMaid.status.fullNameJpStyle;
+			this.m_CharaScoreList[chara_type].CharaName = RhythmAction_Mgr.Instance.UserMaid.status.charaName.GetFullName(" ");
 		}
 		else
 		{

+ 1 - 1
Assembly-CSharp/ScreenTrophyMain.cs

@@ -25,7 +25,7 @@ public class ScreenTrophyMain : WfScreenChildren
 			gameObject2.name = name;
 			UILabel component = UTY.GetChildObject(gameObject2, "Label", false).GetComponent<UILabel>();
 			component.text = gameObject2.name;
-			Utility.SetLocalizeTerm(component, "SceneTrophy/タイプ/" + name);
+			Utility.SetLocalizeTerm(component, "SceneTrophy/タイプ/" + name, false);
 			return UTY.GetChildObject(gameObject2, "Button", false).GetComponent<UIButton>();
 		};
 		List<Trophy.Data> allDatas = Trophy.GetAllDatas(true);

+ 14 - 7
Assembly-CSharp/ScriptManager.cs

@@ -67,7 +67,7 @@ public class ScriptManager : IDisposable
 						{
 							text = text.Replace(text3, text2);
 						}
-						text = text.Replace(text2, (!maid.status.isFirstNameCall) ? maid.status.lastName : maid.status.firstName);
+						text = text.Replace(text2, maid.status.callName);
 					}
 				}
 				text2 = ((j != 0) ? "[HL]" : "[hl]");
@@ -95,7 +95,7 @@ public class ScriptManager : IDisposable
 						{
 							text = text.Replace(text3, text2);
 						}
-						text = text.Replace(text2, maid3.status.fullNameJpStyle);
+						text = text.Replace(text2, maid3.status.charaName.GetFullName(" "));
 					}
 				}
 			}
@@ -2227,11 +2227,11 @@ public class ScriptManager : IDisposable
 		{
 			maid.status.additionalRelation = AdditionalRelation.Vigilance;
 		}
-		else if (a == "恋人plus")
+		else if (a == "恋人+")
 		{
 			maid.status.additionalRelation = AdditionalRelation.LoverPlus;
 		}
-		else if (a == "追加関係null")
+		else if (a == "Null")
 		{
 			maid.status.additionalRelation = AdditionalRelation.Null;
 		}
@@ -2308,7 +2308,14 @@ public class ScriptManager : IDisposable
 		{
 			result.SetBool(false);
 		}
-		result.SetBool(status.shopLineups.Get(num) == ShopItemStatus.Purchased);
+		if (status.shopLineups.ContainsKey(num))
+		{
+			result.SetBool(status.shopLineups.Get(num) == ShopItemStatus.Purchased);
+		}
+		else
+		{
+			result.SetBool(false);
+		}
 	}
 
 	private void TJSFuncSetContractType(TJSVariantRef[] tjs_param, TJSVariantRef result)
@@ -2976,7 +2983,7 @@ public class ScriptManager : IDisposable
 		{
 			return;
 		}
-		result.SetBool(Product.enabeldAdditionalRelation);
+		result.SetBool(Product.FD);
 	}
 
 	public void TJSFuncGetRemainingDanceTime(TJSVariantRef[] tjs_param, TJSVariantRef result)
@@ -3098,7 +3105,7 @@ public class ScriptManager : IDisposable
 	public void Serialize(BinaryWriter binary)
 	{
 		binary.Write("CM3D2_SCRIPT");
-		binary.Write(1270);
+		binary.Write(1280);
 		this.adv_kag_.Serialize(binary);
 	}
 

+ 8 - 7
Assembly-CSharp/ShopItem.cs

@@ -43,7 +43,7 @@ public class ShopItem : MonoBehaviour
 		EventDelegate.Add(component.onHoverOver, new EventDelegate.Callback(this.OnHoverOver));
 		EventDelegate.Add(component.onHoverOut, new EventDelegate.Callback(this.OnHoverOut));
 		this.name_label_.text = this.item_data_.name;
-		Utility.SetLocalizeTerm(this.name_label_, "SceneShop/" + this.item_data_.id + "/名前");
+		Utility.SetLocalizeTerm(this.name_label_, "SceneShop/" + this.item_data_.id + "/名前", false);
 		this.price_label_.text = Utility.ConvertMoneyText(this.item_data_.price);
 		this.LoadIconImage(this.item_data_.icon_file);
 		this.UpdateItemData();
@@ -145,7 +145,7 @@ public class ShopItem : MonoBehaviour
 			GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/ショップ/資金が不足しています。", null, SystemDialog.TYPE.OK, null, null);
 			return;
 		}
-		string text = Product.SPP ? LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/名前", true, 0, true, false, null, null) : this.item_data_.name;
+		string text = Product.AEWDA ? LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/名前", true, 0, true, false, null, null) : this.item_data_.name;
 		string[] args = new string[]
 		{
 			text,
@@ -160,7 +160,7 @@ public class ShopItem : MonoBehaviour
 		{
 			this.click_event_(this);
 		}
-		string text = Product.SPP ? LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/名前", true, 0, true, false, null, null) : this.item_data_.name;
+		string text = Product.AEWDA ? LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/名前", true, 0, true, false, null, null) : this.item_data_.name;
 		GameMain.Instance.SysDlg.ShowFromLanguageTerm("Dialog/ショップ/{0}を購入しました", new string[]
 		{
 			text
@@ -171,13 +171,14 @@ public class ShopItem : MonoBehaviour
 	{
 		Vector3 position = base.transform.position;
 		string f_strTitle = this.item_data_.name;
-		string f_strInfo = this.item_data_.detail_text;
-		if (Product.SPP)
+		string text = this.item_data_.detail_text;
+		if (Product.AEWDA)
 		{
 			f_strTitle = LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/名前", true, 0, true, false, null, null);
-			f_strInfo = LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/説明", true, 0, true, false, null, null);
+			text = LocalizationManager.GetTranslation("SceneShop/" + this.item_data_.id + "/説明", true, 0, true, false, null, null);
+			text = text.Replace("《改行》", "\n");
 		}
-		this.info_window_.Open(position, this.icon_sprite_.sprite2D.texture, f_strTitle, f_strInfo, 0);
+		this.info_window_.Open(position, this.icon_sprite_.sprite2D.texture, f_strTitle, text, 0);
 		Transform transform = UTY.GetChildObject(this.info_window_.gameObject, "Base", false).transform;
 		transform.position = position;
 		float y = transform.localPosition.y;

+ 12 - 2
Assembly-CSharp/SimpleMaidPlate.cs

@@ -1,4 +1,5 @@
 using System;
+using I2.Loc;
 using MaidStatus;
 using UnityEngine;
 
@@ -23,18 +24,27 @@ public class SimpleMaidPlate : MonoBehaviour
 			return;
 		}
 		Status status = maid.status;
-		this.last_name_label_.text = status.lastName;
-		this.first_name_label_.text = status.firstName;
+		NamePair charaName = status.charaName;
+		this.last_name_label_.text = charaName.name1;
+		this.first_name_label_.text = charaName.name2;
 		if (maid.boMAN)
 		{
 			this.last_name_label_.text = string.Empty;
 			if (maid.ActiveSlotNo == 0)
 			{
 				this.first_name_label_.text = "主人公";
+				if (Product.AEWDA)
+				{
+					this.first_name_label_.text = LocalizationManager.GetTermTranslation("ScenePhotoMode/プレイヤー名/主人公", true, 0, true, false, null, Product.EnumConvert.FEWQAVASV(Product.POEWBBA));
+				}
 			}
 			else
 			{
 				this.first_name_label_.text = "男" + maid.ActiveSlotNo.ToString();
+				if (Product.AEWDA)
+				{
+					this.first_name_label_.text = LocalizationManager.GetTermTranslation("ScenePhotoMode/プレイヤー名/男", true, 0, true, false, null, Product.EnumConvert.FEWQAVASV(Product.POEWBBA)) + maid.ActiveSlotNo.ToString();
+				}
 			}
 		}
 		if (this.engage_heart_ != null)

+ 9 - 3
Assembly-CSharp/StaffRollScroll.cs

@@ -89,13 +89,19 @@ public class StaffRollScroll : MonoBehaviour
 			return;
 		}
 		StaffRollScroll.dataList = new List<StaffRollScroll.Data>();
-		NDebug.Assert(GameUty.FileSystem.IsExistentFile("staffroll_stafflist.nei"), "staffroll_stafflist.nei\nopen failed.");
-		using (AFileBase afileBase = GameUty.FileSystem.FileOpen("staffroll_stafflist.nei"))
+		string text = "staffroll_stafflist";
+		if (!string.IsNullOrEmpty(Product.gameDataPath) && GameUty.FileSystem.IsExistentFile(text + Product.gameDataPath + ".nei"))
+		{
+			text += Product.gameDataPath;
+		}
+		text += ".nei";
+		NDebug.Assert(GameUty.FileSystem.IsExistentFile(text), text + "\nopen failed.");
+		using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text))
 		{
 			using (CsvParser csvParser = new CsvParser())
 			{
 				bool condition = csvParser.Open(afileBase);
-				NDebug.Assert(condition, "staffroll_stafflist.nei\nopen failed.");
+				NDebug.Assert(condition, text + "\nopen failed.");
 				for (int i = 1; i < csvParser.max_cell_y; i++)
 				{
 					StaffRollScroll.Data data = new StaffRollScroll.Data();

+ 8 - 8
Assembly-CSharp/StatusCtrl.cs

@@ -9,7 +9,7 @@ public class StatusCtrl : MonoBehaviour
 	{
 		this.m_mgr = statusMgr;
 		this.m_goPanel = goStatusPanel;
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			UIWFPositionStore component = base.GetComponent<UIWFPositionStore>();
 			if (component != null)
@@ -184,13 +184,13 @@ public class StatusCtrl : MonoBehaviour
 		this.m_lAcquisitionOfClientEvaluation.text = ((status.acquisitionOfClientEvaluation >= 0L) ? status.acquisitionOfClientEvaluation.ToString() : "-");
 		this.m_lAcquisitionOfWorkingFunds.text = ((status.acquisitionOfWorkingFunds >= 0L) ? status.acquisitionOfWorkingFunds.ToString("#,0") : "-");
 		this.m_lDaysOfEmployment.text = status.daysOfEmployment.ToString();
-		Utility.SetLocalizeTerm(this.m_lContractType, status.contractTypeTerm);
-		Utility.SetLocalizeTerm(this.m_lPersonal, status.personalTerm);
-		Utility.SetLocalizeTerm(this.m_lSexualExperience, status.sexualExperienceTerm);
-		Utility.SetLocalizeTerm(this.m_lMaidClass, status.maidClassNameTerm);
-		Utility.SetLocalizeTerm(this.m_lRelation, status.relationTerm);
-		Utility.SetLocalizeTerm(this.m_lConditionText, status.conditionTextTerm);
-		if (!Product.SPP)
+		Utility.SetLocalizeTerm(this.m_lContractType, status.contractTypeTerm, false);
+		Utility.SetLocalizeTerm(this.m_lPersonal, status.personalTerm, false);
+		Utility.SetLocalizeTerm(this.m_lSexualExperience, status.sexualExperienceTerm, false);
+		Utility.SetLocalizeTerm(this.m_lMaidClass, status.maidClassNameTerm, false);
+		Utility.SetLocalizeTerm(this.m_lRelation, status.relationTerm, false);
+		Utility.SetLocalizeTerm(this.m_lConditionText, status.conditionTextTerm, false);
+		if (!Product.AEWDA)
 		{
 			UTY.GetChildObject(this.m_goPanel, "DaysOfEmployment/Title", false).GetComponent<UILabel>().text = "雇用日数";
 		}

+ 7 - 2
Assembly-CSharp/StatusMgr.cs

@@ -54,8 +54,9 @@ public class StatusMgr : BaseCreatePanel
 	{
 		StatusCtrl.Status status = new StatusCtrl.Status();
 		status.maidIcon = this.m_maid.GetThumIcon();
-		status.firstName = this.m_maid.status.firstName;
-		status.lastName = this.m_maid.status.lastName;
+		NamePair charaName = this.m_maid.status.charaName;
+		status.lastName = charaName.name1;
+		status.firstName = charaName.name2;
 		status.contractType = EnumConvert.GetString(this.m_maid.status.contract);
 		status.contractTypeTerm = EnumConvert.GetTerm(this.m_maid.status.contract);
 		status.personal = this.m_maid.status.personal.drawName;
@@ -130,6 +131,10 @@ public class StatusMgr : BaseCreatePanel
 			SubMaid.Data.CharacterStatus subCharaStatus = this.m_maid.status.subCharaStatus;
 			status.contractType = subCharaStatus.contractText;
 			status.personal = subCharaStatus.personalText;
+			status.conditionText = subCharaStatus.relationText;
+			status.contractTypeTerm = subCharaStatus.contractTextTerm;
+			status.personalTerm = subCharaStatus.personalTextTerm;
+			status.conditionTextTerm = subCharaStatus.relationTextTerm;
 		}
 		if (this.m_maid.status.OldStatus != null)
 		{

+ 45 - 19
Assembly-CSharp/SystemShortcut.cs

@@ -30,6 +30,7 @@ public class SystemShortcut : MonoBehaviour
 		this.m_aryDgOnClick[8] = new EventDelegate(new EventDelegate.Callback(this.OnClick_VRHelp));
 		this.m_aryDgOnClick[9] = new EventDelegate(new EventDelegate.Callback(this.OnClick_Help));
 		this.m_aryDgOnClick[10] = new EventDelegate(new EventDelegate.Callback(this.OnClick_VRAvatar));
+		this.m_aryDgOnClick[11] = new EventDelegate(new EventDelegate.Callback(this.OnClickDictionary));
 		Dictionary<int, string> dictionary = new Dictionary<int, string>();
 		dictionary.Add(0, "System/ショートカット/コンフィグ");
 		dictionary.Add(3, "System/ショートカット/UI無し スクリーンショット");
@@ -42,6 +43,7 @@ public class SystemShortcut : MonoBehaviour
 		dictionary.Add(8, "System/ショートカット/VRヘルプ");
 		dictionary.Add(9, "System/ショートカット/シーンのヘルプ");
 		dictionary.Add(10, "System/ショートカット/バーチャル アバター スタジオ");
+		dictionary.Add(11, "System/ショートカット/辞書");
 		for (int i = 0; i < this.m_aryObjPath.Length; i++)
 		{
 			this.m_goBtn[i] = UTY.GetChildObject(base.gameObject, this.m_aryObjPath[i], false);
@@ -75,18 +77,28 @@ public class SystemShortcut : MonoBehaviour
 		this.m_spriteExplanation.gameObject.SetActive(false);
 		this.dicBGSizeType.Add(SystemShortcut.BGSizeType.Long, 380);
 		this.dicBGSizeType.Add(SystemShortcut.BGSizeType.Short, 340);
-		int width;
+		int num = 0;
+		if (Product.QOPZX)
+		{
+			GameObject childObject = UTY.GetChildObject(base.gameObject, this.m_aryObjPath[11], false);
+			if (childObject != null)
+			{
+				childObject.SetActive(false);
+				num++;
+			}
+		}
 		if (GameMain.Instance.CMSystem.NetUse)
 		{
-			width = this.dicBGSizeType[SystemShortcut.BGSizeType.Long];
+			int num2 = this.dicBGSizeType[SystemShortcut.BGSizeType.Long];
 		}
 		else
 		{
-			width = this.dicBGSizeType[SystemShortcut.BGSizeType.Short];
-			GameObject childObject = UTY.GetChildObject(base.gameObject, this.m_aryObjPath[6], false);
-			childObject.SetActive(false);
+			int num2 = this.dicBGSizeType[SystemShortcut.BGSizeType.Short];
+			GameObject childObject2 = UTY.GetChildObject(base.gameObject, this.m_aryObjPath[6], false);
+			childObject2.SetActive(false);
+			num++;
 		}
-		this.m_uiBase.width = width;
+		this.m_uiBase.width = 420 - num * 40;
 		Vector2 vector = new Vector2(700f, 110f);
 		this.m_hitArea.size = new Vector3((float)this.m_uiBase.width + vector.x, (float)this.m_uiBase.height + vector.y, 0f);
 		Vector3 center = this.m_uiBase.GetComponent<BoxCollider>().center;
@@ -231,11 +243,15 @@ public class SystemShortcut : MonoBehaviour
 		{
 			return;
 		}
-		string gameTitle = Product.gameTitle;
-		string text = "カスタムメイド3D 2";
-		string text2 = string.Concat(new string[]
+		string text = Product.gameTitle;
+		if (text.IndexOf("It's") != -1)
+		{
+			text = text.Replace("It's", "\nIt's");
+		}
+		string text2 = "カスタムメイド3D 2";
+		string text3 = string.Concat(new string[]
 		{
-			gameTitle,
+			text,
 			"\nVersion ",
 			GameUty.GetGameVersionText(),
 			" (BuildVersion : ",
@@ -244,17 +260,17 @@ public class SystemShortcut : MonoBehaviour
 		});
 		if (!string.IsNullOrEmpty(GameMain.Instance.CMSystem.CM3D2Path))
 		{
-			string text3 = text2;
-			text2 = string.Concat(new string[]
+			string text4 = text3;
+			text3 = string.Concat(new string[]
 			{
-				text3,
+				text4,
 				"\n",
-				text,
+				text2,
 				"\nVersion ",
 				GameUty.GetLegacyGameVersionText()
 			});
 		}
-		GameMain.Instance.SysDlg.Show(text2, SystemDialog.TYPE.OK, new SystemDialog.OnClick(this.OnCancel), null);
+		GameMain.Instance.SysDlg.Show(text3, SystemDialog.TYPE.OK, new SystemDialog.OnClick(this.OnCancel), null);
 		this.BaseClose();
 	}
 
@@ -360,6 +376,14 @@ public class SystemShortcut : MonoBehaviour
 		this.BaseClose();
 	}
 
+	private void OnClickDictionary()
+	{
+		if (!uGUITutorialPanel.IsOpened())
+		{
+			uGUITutorialPanel.OpenTutorial("WordDictionary", null, true);
+		}
+	}
+
 	private void OnToEnd()
 	{
 		GameMain.Instance.ToApplicationQuit(true);
@@ -577,7 +601,8 @@ public class SystemShortcut : MonoBehaviour
 		"BaseVR/Grid/VRCommHome",
 		"BaseVR/Grid/VRHelp",
 		"Base/Grid/Help",
-		"Base/VR Avatar"
+		"Base/VR Avatar",
+		"Base/Grid/Dic"
 	};
 
 	private UIPanel m_uiPanel;
@@ -596,9 +621,9 @@ public class SystemShortcut : MonoBehaviour
 
 	private UIButton m_uiGear;
 
-	private GameObject[] m_goBtn = new GameObject[11];
+	private GameObject[] m_goBtn = new GameObject[12];
 
-	private UIButton[] m_uiBtn = new UIButton[11];
+	private UIButton[] m_uiBtn = new UIButton[12];
 
 	private Camera m_uiCam;
 
@@ -612,7 +637,7 @@ public class SystemShortcut : MonoBehaviour
 
 	private Dictionary<SystemShortcut.BGSizeType, int> dicBGSizeType = new Dictionary<SystemShortcut.BGSizeType, int>();
 
-	private EventDelegate[] m_aryDgOnClick = new EventDelegate[11];
+	private EventDelegate[] m_aryDgOnClick = new EventDelegate[12];
 
 	private bool m_bAlways = true;
 
@@ -633,6 +658,7 @@ public class SystemShortcut : MonoBehaviour
 		VRHelp,
 		Help,
 		VRAvatar,
+		Dic,
 		Max
 	}
 

+ 37 - 18
Assembly-CSharp/TBody.cs

@@ -108,6 +108,8 @@ public class TBody : MonoBehaviour
 
 	public jiggleBone jbMuneR { get; private set; }
 
+	public ChinkoCtrl chinkoCtrl { get; private set; }
+
 	public float BoneHitHeightY
 	{
 		get
@@ -164,6 +166,7 @@ public class TBody : MonoBehaviour
 			this.bonemorph.Uninit();
 		}
 		this.m_bIsLoadedBody = false;
+		this.chinkoCtrl = null;
 		int num = this.goSlot.Count - 1;
 		while (0 <= num)
 		{
@@ -362,7 +365,7 @@ public class TBody : MonoBehaviour
 			if (this.trManChinko != null)
 			{
 				this.vecChinkoOffset = this.trManChinko.transform.localPosition;
-				this.trManChinko1 = this.trManChinko.Find("chinko1");
+				this.chinkoCtrl = new ChinkoCtrl(this.trManChinko.transform);
 			}
 		}
 		this.Uppertwist_L = CMT.SearchObjName(this.m_trBones, "Uppertwist_L", true);
@@ -1497,12 +1500,12 @@ public class TBody : MonoBehaviour
 
 	public void SetMaskMode(TBody.MaskMode f_eMode)
 	{
-		if (Product.VBA && f_eMode == TBody.MaskMode.Nude)
+		if (Product.FDAWBW && f_eMode == TBody.MaskMode.Nude)
 		{
 			f_eMode = TBody.MaskMode.Underwear;
 		}
 		this.m_eMaskMode = f_eMode;
-		if (Product.VBA && f_eMode == TBody.MaskMode.Nude)
+		if (Product.FDAWBW && f_eMode == TBody.MaskMode.Nude)
 		{
 			this.m_eMaskMode = TBody.MaskMode.None;
 		}
@@ -1628,7 +1631,7 @@ public class TBody : MonoBehaviour
 		this.boVisible_WEAR = (this.goSlot[(int)TBody.hashSlotName["wear"]].RID != 0 & this.goSlot[(int)TBody.hashSlotName["wear"]].boVisible);
 		this.boMizugi_panz = this.goSlot[(int)TBody.hashSlotName["panz"]].boMizugi;
 		this.slotno_accXXX = (int)TBody.hashSlotName["accXXX"];
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			this.goSlot[(int)TBody.hashSlotName["chikubi"]].boVisible = false;
 			this.goSlot[(int)TBody.hashSlotName["underhair"]].boVisible = false;
@@ -1719,7 +1722,7 @@ public class TBody : MonoBehaviour
 
 	public void SetChinkoVisible(bool f_bVisible)
 	{
-		if (Product.VBA)
+		if (Product.FDAWBW)
 		{
 			f_bVisible = false;
 		}
@@ -2661,9 +2664,16 @@ public class TBody : MonoBehaviour
 			this.jbMuneL.LateUpdateSelf();
 			this.jbMuneR.LateUpdateSelf();
 		}
-		if (this.boMAN && this.trManChinko != null)
+		if (this.boMAN)
 		{
-			this.trManChinko.localPosition = this.vecChinkoOffset;
+			if (this.trManChinko != null)
+			{
+				this.trManChinko.localPosition = this.vecChinkoOffset;
+			}
+			if (this.chinkoCtrl != null)
+			{
+				this.chinkoCtrl.SelfUpdate();
+			}
 		}
 		if (this.OnLateUpdate != null)
 		{
@@ -2685,16 +2695,8 @@ public class TBody : MonoBehaviour
 			this.Thigh_L_pos_old = this.Thigh_L.position;
 			this.Thigh_R_pos_old = this.Thigh_R.position;
 		}
-		this.m_IKCtrl.IKUpdate();
-		this.LateUpdateEnd = true;
-		if (this.OnLateUpdateEnd != null)
-		{
-			this.OnLateUpdateEnd();
-		}
-		this.OnLateUpdateEnd = null;
-		if (!this.m_IKCtrl.IsUpdateLate)
+		if (this.m_IKCtrl.IsSelfIKAttach)
 		{
-			this.AutoTwist();
 			for (int i = 0; i < this.goSlot.Count; i++)
 			{
 				if (this.goSlot[i].obj != null)
@@ -2704,6 +2706,25 @@ public class TBody : MonoBehaviour
 				this.goSlot[i].Update();
 			}
 		}
+		this.m_IKCtrl.IKUpdate();
+		if (!this.m_IKCtrl.IsUpdateLate)
+		{
+			this.AutoTwist();
+			for (int j = 0; j < this.goSlot.Count; j++)
+			{
+				if (this.goSlot[j].obj != null)
+				{
+					this.goSlot[j].CopyTrans();
+				}
+				this.goSlot[j].Update();
+			}
+		}
+		this.LateUpdateEnd = true;
+		if (this.OnLateUpdateEnd != null)
+		{
+			this.OnLateUpdateEnd();
+		}
+		this.OnLateUpdateEnd = null;
 	}
 
 	public float DegPer(float r, float per)
@@ -3235,8 +3256,6 @@ public class TBody : MonoBehaviour
 
 	public Vector3 vecChinkoOffset = default(Vector3);
 
-	public Transform trManChinko1;
-
 	public GameObject goMoza;
 
 	public GameObject goMozaANL;

+ 1 - 1
Assembly-CSharp/TBodySkin.cs

@@ -502,7 +502,7 @@ public class TBodySkin
 			}
 		}
 		this.morph.InitGameObject(gameObject);
-		if (Product.SIBD && !Product.VBA && mpn == MPN.body)
+		if (Product.DOPLGBNE && !Product.FDAWBW && (mpn == MPN.body || mpn == MPN.moza))
 		{
 			this.kupaCtrl = new KupaCtrl(this.body, this.morph);
 		}

+ 10 - 3
Assembly-CSharp/TaskUnit.cs

@@ -215,7 +215,7 @@ public class TaskUnit : MonoBehaviour
 		UTY.GetChildObject(obj, "ExpRatio", false).SetActive(active);
 		Transform transform = UTY.GetChildObject(obj, "Title", false).transform;
 		Vector3 localPosition = transform.localPosition;
-		if (!Product.SPP)
+		if (!Product.AEWDA)
 		{
 			localPosition.y = -27f;
 		}
@@ -227,9 +227,16 @@ public class TaskUnit : MonoBehaviour
 				localPosition.y = -55f;
 			}
 		}
-		if (this.taskType == ScheduleTaskCtrl.TaskType.Work && ScheduleCSVData.faclilityPowerUpWorkId == this.schedule.id)
+		if (this.taskType == ScheduleTaskCtrl.TaskType.Work)
 		{
-			localPosition.y = (float)(Product.SPP ? -35 : -51);
+			if (ScheduleCSVData.faclilityPowerUpWorkId == this.schedule.id)
+			{
+				localPosition.y = (float)(Product.AEWDA ? -35 : -51);
+			}
+			else if (Product.AEWDA)
+			{
+				localPosition.y = -15f;
+			}
 		}
 		transform.localPosition = localPosition;
 	}

+ 1 - 1
Assembly-CSharp/TatooAlphaWindow.cs

@@ -103,7 +103,7 @@ public class TatooAlphaWindow : BasePhotoWindow
 								}
 							}
 							string f_name = smenuItem.m_strMenuName;
-							if (Product.WMZI != Product.Language.INKD)
+							if (Product.OUIWEHVA != Product.JQOVNMDS.P0L)
 							{
 								string str = "parts/" + smenuItem.m_strCateName + "/" + Path.GetFileNameWithoutExtension(smenuItem.m_strMenuFileName).ToLower();
 								string translation = LocalizationManager.GetTranslation(str + "|name", true, 0, true, false, null, null);

+ 2 - 2
Assembly-CSharp/TitleCtrl.cs

@@ -33,7 +33,7 @@ public class TitleCtrl : MonoBehaviour
 					}
 					childObject.SetActive(true);
 				}
-				if (Product.VBA && buttonType == TitleMgr.ButtonType.Guest)
+				if (Product.FDAWBW && buttonType == TitleMgr.ButtonType.Guest)
 				{
 					num += -61;
 					childObject.SetActive(false);
@@ -77,7 +77,7 @@ public class TitleCtrl : MonoBehaviour
 				TitleMgr.ButtonType buttonType = (TitleMgr.ButtonType)obj;
 				if (buttonType != TitleMgr.ButtonType.Shop || GameMain.Instance.CMSystem.NetUse)
 				{
-					if (!Product.VBA || buttonType != TitleMgr.ButtonType.Guest)
+					if (!Product.FDAWBW || buttonType != TitleMgr.ButtonType.Guest)
 					{
 						if (activeButton == buttonType)
 						{

+ 7 - 7
Assembly-CSharp/TouchAction_Mgr.cs

@@ -48,7 +48,7 @@ public class TouchAction_Mgr : PartsMgrBase
 		for (;;)
 		{
 			yield return null;
-			if (!Product.VBA && !RhythmAction_Mgr.Instance.IsPause && RhythmAction_Mgr.Instance.DanceMaid.Count > 1)
+			if (!Product.FDAWBW && !RhythmAction_Mgr.Instance.IsPause && RhythmAction_Mgr.Instance.DanceMaid.Count > 1)
 			{
 				Maid vibeTarget = this.m_VibeTarget;
 				if (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.RightArrow))
@@ -121,7 +121,7 @@ public class TouchAction_Mgr : PartsMgrBase
 			{
 				if (!RhythmAction_Mgr.Instance.IsPause)
 				{
-					if (!Product.VBA)
+					if (!Product.FDAWBW)
 					{
 						if (maid == this.m_VibeTarget)
 						{
@@ -148,7 +148,7 @@ public class TouchAction_Mgr : PartsMgrBase
 					foreach (KeyValuePair<TouchActionParam.TouchType, TouchActionParam.ActionParam> keyValuePair2 in this.m_ActionParam[maid].TouchParam)
 					{
 						bool flag4 = false;
-						if (keyValuePair2.Key == TouchActionParam.TouchType.セクハラ && !Product.VBA)
+						if (keyValuePair2.Key == TouchActionParam.TouchType.セクハラ && !Product.FDAWBW)
 						{
 							if (this.m_ActionParam[maid].IsVibeOn)
 							{
@@ -220,7 +220,7 @@ public class TouchAction_Mgr : PartsMgrBase
 						this.m_TouchMgr.FrameEnd();
 					}
 				}
-				else if (!Product.VBA)
+				else if (!Product.FDAWBW)
 				{
 					this.m_ActionParam[maid].VibeAudio.audiosource.Pause();
 				}
@@ -461,7 +461,7 @@ public class TouchAction_Mgr : PartsMgrBase
 				vibeUIInfo.Icon.height = (int)this.m_IconSetSpace;
 			}
 			this.m_ActionParam.Add(maid, new TouchActionParam());
-			if (!Product.VBA)
+			if (!Product.FDAWBW)
 			{
 				GameObject gameObject2 = UnityEngine.Object.Instantiate<GameObject>(GameObject.Find("AudioSe(Clone)"));
 				this.m_ActionParam[maid].VibeAudio = gameObject2.GetComponent<AudioSourceMgr>();
@@ -474,14 +474,14 @@ public class TouchAction_Mgr : PartsMgrBase
 				previousUIInfo = vibeUIInfo;
 			}
 		}
-		this.m_SelectFrame.gameObject.SetActive(!Product.VBA);
+		this.m_SelectFrame.gameObject.SetActive(!Product.FDAWBW);
 		base.StartCoroutine(this.ActionCheck());
 	}
 
 	public override void EndAction()
 	{
 		base.StopAllCoroutines();
-		if (!Product.VBA)
+		if (!Product.FDAWBW)
 		{
 			foreach (Maid maid in RhythmAction_Mgr.Instance.DanceMaid)
 			{

+ 1 - 1
Assembly-CSharp/TrophyAchieveEffect.cs

@@ -147,7 +147,7 @@ public class TrophyAchieveEffect : MonoBehaviour
 	{
 		this.trophy_image_.spriteName = trophy_data.trophySpriteName;
 		this.title_label_.text = "『" + trophy_data.name + "』";
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			Localize component = this.title_label_.GetComponent<Localize>();
 			if (component != null)

+ 3 - 3
Assembly-CSharp/TrophyInfo.cs

@@ -31,7 +31,7 @@ public class TrophyInfo : MonoBehaviour
 		this.trophy_data_ = trophy_data;
 		this.maid_point_label_.text = string.Empty + this.trophy_data_.maidPoint;
 		this.comment_label_.text = this.trophy_data_.infoText;
-		Utility.SetLocalizeTerm(this.comment_label_, this.trophy_data_.infoTextTerm);
+		Utility.SetLocalizeTerm(this.comment_label_, this.trophy_data_.infoTextTerm, false);
 		this.trophy_image_sprite_.spriteName = trophy_data.trophySpriteName;
 		this.SetHaveVisible(GameMain.Instance.CharacterMgr.status.IsHaveTrophy(this.trophy_data_.id));
 		if (this.card_sprite_.sprite2D != null && this.card_sprite_.sprite2D.texture != null)
@@ -69,9 +69,9 @@ public class TrophyInfo : MonoBehaviour
 			this.card_button_.GetComponent<BoxCollider>().enabled = false;
 			this.card_sprite_.gameObject.SetActive(false);
 		}
-		if (!this.trophy_data_.titleMask)
+		if (value || !this.trophy_data_.titleMask)
 		{
-			Utility.SetLocalizeTerm(this.title_label_, this.trophy_data_.nameTerm);
+			Utility.SetLocalizeTerm(this.title_label_, this.trophy_data_.nameTerm, false);
 		}
 	}
 

+ 2 - 1
Assembly-CSharp/UILabel.cs

@@ -1464,9 +1464,10 @@ public class UILabel : UIWidget
 				string term = UIPopupList.current.value.Replace("\r", string.Empty);
 				if (itemTerms != null && itemTerms.Count == items.Count)
 				{
+					string b = UIPopupList.current.value.Replace("\r", string.Empty);
 					for (int i = 0; i < items.Count; i++)
 					{
-						if (items[i] == UIPopupList.current.value)
+						if (items[i].Replace("\r", string.Empty) == b)
 						{
 							if (!string.IsNullOrEmpty(itemTerms[i]))
 							{

+ 10 - 10
Assembly-CSharp/UIStates.cs

@@ -212,28 +212,28 @@ public class UIStates : MonoBehaviour
 			{
 				BjVoiceMgr.Instance.PlayVoice("サレンダー終了", null, 0f);
 				this.m_GetMoneyText.text = "コインを" + BjPlayer.Instance.TotalWinnings.ToString() + "枚支払いました";
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					Localize component = this.m_GetMoneyText.GetComponent<Localize>();
 					component.TermArgs = new Localize.ArgsPair[]
 					{
 						Localize.ArgsPair.Create(BjPlayer.Instance.TotalWinnings.ToString())
 					};
-					Utility.SetLocalizeTerm(component, "SceneCasino/コインを{0}枚支払いました");
+					Utility.SetLocalizeTerm(component, "SceneCasino/コインを{0}枚支払いました", false);
 				}
 				this.SetResultImage(Translations.Instance.SURRENDER);
 			}
 			else if (BjPlayer.Instance.ExistWinHand())
 			{
 				this.m_GetMoneyText.text = "コインを" + BjPlayer.Instance.TotalWinnings.ToString() + "枚手に入れました!!";
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					Localize component2 = this.m_GetMoneyText.GetComponent<Localize>();
 					component2.TermArgs = new Localize.ArgsPair[]
 					{
 						Localize.ArgsPair.Create(BjPlayer.Instance.TotalWinnings.ToString())
 					};
-					Utility.SetLocalizeTerm(component2, "SceneCasino/コインを{0}枚手に入れました!!");
+					Utility.SetLocalizeTerm(component2, "SceneCasino/コインを{0}枚手に入れました!!", false);
 				}
 				if (BjPlayer.Instance.ExistBlackJack())
 				{
@@ -267,14 +267,14 @@ public class UIStates : MonoBehaviour
 				}
 				this.SetResultImage(Translations.Instance.PUSH);
 				this.m_GetMoneyText.text = "コイン" + BjPlayer.Instance.TotalWinnings.ToString() + "枚が手元に戻ってきます";
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					Localize component3 = this.m_GetMoneyText.GetComponent<Localize>();
 					component3.TermArgs = new Localize.ArgsPair[]
 					{
 						Localize.ArgsPair.Create(BjPlayer.Instance.TotalWinnings.ToString())
 					};
-					Utility.SetLocalizeTerm(component3, "SceneCasino/コイン{0}枚が手元に戻ってきます");
+					Utility.SetLocalizeTerm(component3, "SceneCasino/コイン{0}枚が手元に戻ってきます", false);
 				}
 			}
 			else
@@ -282,14 +282,14 @@ public class UIStates : MonoBehaviour
 				BjVoiceMgr.Instance.PlayVoice("負け", null, 0f);
 				this.SetResultImage(Translations.Instance.YOU_LOSE);
 				this.m_GetMoneyText.text = "コインを" + BjPlayer.Instance.MoneyDifference.ToString() + "枚失いました...";
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					Localize component4 = this.m_GetMoneyText.GetComponent<Localize>();
 					component4.TermArgs = new Localize.ArgsPair[]
 					{
 						Localize.ArgsPair.Create(BjPlayer.Instance.MoneyDifference.ToString())
 					};
-					Utility.SetLocalizeTerm(component4, "SceneCasino/コインを{0}枚失いました…");
+					Utility.SetLocalizeTerm(component4, "SceneCasino/コインを{0}枚失いました…", false);
 				}
 			}
 		}
@@ -298,14 +298,14 @@ public class UIStates : MonoBehaviour
 			BjVoiceMgr.Instance.PlayVoice("負け", null, 0f);
 			this.SetResultImage(Translations.Instance.YOU_LOSE);
 			this.m_GetMoneyText.text = "コインを" + (BjPlayer.Instance.CurrentBet + BjPlayer.Instance.SplitBet).ToString() + "枚失いました...";
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				Localize component5 = this.m_GetMoneyText.GetComponent<Localize>();
 				component5.TermArgs = new Localize.ArgsPair[]
 				{
 					Localize.ArgsPair.Create((BjPlayer.Instance.CurrentBet + BjPlayer.Instance.SplitBet).ToString())
 				};
-				Utility.SetLocalizeTerm(component5, "SceneCasino/コインを{0}枚失いました…");
+				Utility.SetLocalizeTerm(component5, "SceneCasino/コインを{0}枚失いました…", false);
 			}
 		}
 		long orijin_coin = BjPlayer.Instance.OrijinCredit;

+ 2 - 2
Assembly-CSharp/UIWFConditionList.cs

@@ -72,7 +72,7 @@ public class UIWFConditionList : MonoBehaviour
 				this.condition_label_list_[i].transform.parent.gameObject.SetActive(true);
 				if (texts[i].Key.Length == 1)
 				{
-					if (!Product.SPP || this.condition_label_localize_list_[i] == null)
+					if (!Product.AEWDA || this.condition_label_localize_list_[i] == null)
 					{
 						this.condition_label_list_[i].text = Utility.GetTermLastWord(texts[i].Key[0]);
 					}
@@ -83,7 +83,7 @@ public class UIWFConditionList : MonoBehaviour
 						this.condition_label_localize_list_[i].SetTerm(texts[i].Key[0]);
 					}
 				}
-				else if (!Product.SPP || this.condition_label_localize_list_[i] == null)
+				else if (!Product.AEWDA || this.condition_label_localize_list_[i] == null)
 				{
 					string[] array = new string[texts[i].Key.Length - 1];
 					for (int j = 1; j < texts[i].Key.Length; j++)

+ 2 - 2
Assembly-CSharp/UIWFPositionStore.cs

@@ -48,7 +48,7 @@ public class UIWFPositionStore : MonoBehaviour
 					{
 						objectPath = Utility.GetHierarchyPath(this.parent, transform),
 						localPosition = transform.localPosition,
-						active = transform.gameObject.active
+						active = transform.gameObject.activeSelf
 					});
 				}
 			}
@@ -84,7 +84,7 @@ public class UIWFPositionStore : MonoBehaviour
 	private UIWFPositionStore.SerializData[] positionData;
 
 	[Header("指定オブジェクト配下のデータをすべて追加")]
-	public Transform addAllDataUnderTheRoot;
+	private Transform addAllDataUnderTheRoot;
 
 	[Serializable]
 	private struct SerializData

+ 1 - 1
Assembly-CSharp/UndressDance_Mgr.cs

@@ -106,7 +106,7 @@ public class UndressDance_Mgr : PartsMgrBase
 		case 4:
 		{
 			bool flag = csv.GetCellAsString(cx, cy) == "○";
-			if (Product.VBA && !flag)
+			if (Product.FDAWBW && !flag)
 			{
 				return;
 			}

+ 19 - 19
Assembly-CSharp/VRFaceShortcutConfig.cs

@@ -58,7 +58,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 	{
 		OVRLipSync.VariableData variable = GameMain.Instance.LipSyncMgr.Variable;
 		VRFaceShortcutConfig.ItemSlider itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("リップシンク:マイク感度");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/リップシンク:マイク感度");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/リップシンク:マイク感度", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 10f;
 		itemSlider.Set(variable.MicSensitivity);
@@ -67,7 +67,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			GameMain.Instance.LipSyncMgr.Variable.MicSensitivity = value;
 		};
 		itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("リップシンク:自分の声の大きさ");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/リップシンク:自分の声の大きさ");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/リップシンク:自分の声の大きさ", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 10f;
 		itemSlider.Set(variable.MicVolume);
@@ -76,7 +76,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			GameMain.Instance.LipSyncMgr.Variable.MicVolume = value;
 		};
 		VRFaceShortcutConfig.ItemSelectButton itemSelectButton = this.CreateItem<VRFaceShortcutConfig.ItemSelectButton>("リップシンク:ミュートにする");
-		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/リップシンク:ミュートにする");
+		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/リップシンク:ミュートにする", false);
 		itemSelectButton.textLeft.text = "ON";
 		itemSelectButton.textRight.text = "OFF";
 		itemSelectButton.Set(variable.Mute);
@@ -85,29 +85,29 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			variable.Mute = isLeft;
 		};
 		itemSelectButton = this.CreateItem<VRFaceShortcutConfig.ItemSelectButton>("手元ショートカット:表情の変化");
-		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/手元ショートカット:表情の変化");
+		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/手元ショートカット:表情の変化", false);
 		itemSelectButton.textLeft.text = "即座に変更する";
-		Utility.SetLocalizeTerm(itemSelectButton.localizeLeft, "VAS/即座に変更する");
+		Utility.SetLocalizeTerm(itemSelectButton.localizeLeft, "VAS/即座に変更する", false);
 		itemSelectButton.textRight.text = "選択して決定する";
-		Utility.SetLocalizeTerm(itemSelectButton.localizeRight, "VAS/選択して決定する");
+		Utility.SetLocalizeTerm(itemSelectButton.localizeRight, "VAS/選択して決定する", false);
 		itemSelectButton.Set(ControllerShortcutSettingData.config.isDirectMode);
 		itemSelectButton.onClickIsLeft = delegate(bool isLeft)
 		{
 			ControllerShortcutSettingData.config.isDirectMode = isLeft;
 		};
 		itemSelectButton = this.CreateItem<VRFaceShortcutConfig.ItemSelectButton>("手元ショートカット:手元のUI");
-		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/手元ショートカット:手元のUI");
+		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/手元ショートカット:手元のUI", false);
 		itemSelectButton.textLeft.text = "常に表示する";
-		Utility.SetLocalizeTerm(itemSelectButton.localizeLeft, "VAS/常に表示する");
+		Utility.SetLocalizeTerm(itemSelectButton.localizeLeft, "VAS/常に表示する", false);
 		itemSelectButton.textRight.text = "決定時に隠す";
-		Utility.SetLocalizeTerm(itemSelectButton.localizeRight, "VAS/決定時に隠す");
+		Utility.SetLocalizeTerm(itemSelectButton.localizeRight, "VAS/決定時に隠す", false);
 		itemSelectButton.Set(ControllerShortcutSettingData.config.isEveryShowMode);
 		itemSelectButton.onClickIsLeft = delegate(bool isLeft)
 		{
 			ControllerShortcutSettingData.config.isEveryShowMode = isLeft;
 		};
 		itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("体向きの頭への追従");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/体向きの頭への追従");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/体向きの頭への追従", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 1f;
 		itemSlider.Set(ControllerShortcutSettingData.config.maintainPelvisPosition);
@@ -116,7 +116,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			ControllerShortcutSettingData.config.maintainPelvisPosition = value;
 		};
 		itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("体位置の頭への追従");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/体位置の頭への追従");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/体位置の頭への追従", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 1f;
 		itemSlider.Set(ControllerShortcutSettingData.config.bodyPosStiffness);
@@ -125,7 +125,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			ControllerShortcutSettingData.config.bodyPosStiffness = value;
 		};
 		itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("体回転の頭への追従");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/体回転の頭への追従");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/体回転の頭への追従", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 1f;
 		itemSlider.Set(ControllerShortcutSettingData.config.bodyRotStiffness);
@@ -134,7 +134,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			ControllerShortcutSettingData.config.bodyRotStiffness = value;
 		};
 		itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("胸部回転の頭への追従");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/胸部回転の頭への追従");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/胸部回転の頭への追従", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 1f;
 		itemSlider.Set(ControllerShortcutSettingData.config.chestRotationWeight);
@@ -143,7 +143,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			ControllerShortcutSettingData.config.chestRotationWeight = value;
 		};
 		itemSlider = this.CreateItem<VRFaceShortcutConfig.ItemSlider>("カメラの画角");
-		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/カメラの画角");
+		Utility.SetLocalizeTerm(itemSlider.localize, "VAS/カメラの画角", false);
 		itemSlider.min = 0f;
 		itemSlider.max = 1f;
 		itemSlider.Set(ControllerShortcutSettingData.config.selfCameraFOV);
@@ -152,12 +152,12 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			ControllerShortcutSettingData.config.selfCameraFOV = value;
 		};
 		VRFaceShortcutConfig.ParentMultiButton parentMultiButton = this.CreateItem<VRFaceShortcutConfig.ParentMultiButton>("手のスカートへの当たり判定\n※VR CONFIGより優先されます。");
-		Utility.SetLocalizeTerm(parentMultiButton.localize, "VAS/手のスカートへの当たり判定");
+		Utility.SetLocalizeTerm(parentMultiButton.localize, "VAS/手のスカートへの当たり判定", false);
 		parentMultiButton.textRight.text = "OFF";
 		parentMultiButton.textLeft.text = "常時ON";
-		Utility.SetLocalizeTerm(parentMultiButton.localizeLeft, "VAS/常時ON");
+		Utility.SetLocalizeTerm(parentMultiButton.localizeLeft, "VAS/常時ON", false);
 		parentMultiButton.textCenter.text = "握時ON";
-		Utility.SetLocalizeTerm(parentMultiButton.localizeCenter, "VAS/握時ON");
+		Utility.SetLocalizeTerm(parentMultiButton.localizeCenter, "VAS/握時ON", false);
 		if (GameMain.Instance.CMSystem.SConfig.OvrHandHitToSkirtVAS == CMSystem.SerializeConfig.OVR_HAND_TO_SKIRT.OFF)
 		{
 			parentMultiButton.Set(0);
@@ -196,7 +196,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 			return;
 		}
 		VRFaceShortcutConfig.ItemSelectButton itemSelectButton = this.CreateItem<VRFaceShortcutConfig.ItemSelectButton>("一番上にあるトラッカーを\n頭トラッキングに利用");
-		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/一番上にあるトラッカーを頭トラッキングに利用");
+		Utility.SetLocalizeTerm(itemSelectButton.localize, "VAS/一番上にあるトラッカーを頭トラッキングに利用", false);
 		itemSelectButton.textLeft.text = "ON";
 		itemSelectButton.textRight.text = "OFF";
 		itemSelectButton.Set(ControllerShortcutSettingData.config.use1TrackerForHead);
@@ -224,7 +224,7 @@ public class VRFaceShortcutConfig : MonoBehaviour
 		if (item.gameObject.activeSelf != isActive)
 		{
 			item.gameObject.SetActive(isActive);
-			Utility.SetLocalizeTerm(item.localize, "VAS/" + itemKey);
+			Utility.SetLocalizeTerm(item.localize, "VAS/" + itemKey, false);
 			this.m_IsUpdateReposition = true;
 		}
 	}

+ 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", 1270);
+		XElement xelement = new XElement("GameVersion", 1280);
 		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[]

+ 3 - 3
Assembly-CSharp/YotogiClassListManager.cs

@@ -149,7 +149,7 @@ public class YotogiClassListManager : MonoBehaviour
 					{
 						if (maid.status.personal.id == num2)
 						{
-							string text = Product.SPP ? maid.status.personal.termName : maid.status.personal.drawName;
+							string text = Product.AEWDA ? maid.status.personal.termName : maid.status.personal.drawName;
 							list5.Add(new KeyValuePair<string[], Color>(new string[]
 							{
 								"MaidStatus/条件文/ヒロインタイプ {0}",
@@ -195,7 +195,7 @@ public class YotogiClassListManager : MonoBehaviour
 		{
 			YotogiClassListManager.Data data = this.instansToDatas[instanceId];
 			this.conditionTitleLabel.text = data.classData.drawName + " 取得条件";
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				Localize component = this.conditionTitleLabel.GetComponent<Localize>();
 				if (component != null)
@@ -253,7 +253,7 @@ public class YotogiClassListManager : MonoBehaviour
 						{
 							UILabel uilabel2 = this.specialSkillLabelList[num++];
 							uilabel2.text = data3.name;
-							Utility.SetLocalizeTerm(uilabel2, data3.termName);
+							Utility.SetLocalizeTerm(uilabel2, data3.termName, false);
 							if (this.specialSkillLabelList.Count == num)
 							{
 								this.specialSkillLabelList[num - 1].text = "etc...";

+ 4 - 4
Assembly-CSharp/YotogiCommandFactory.cs

@@ -300,7 +300,7 @@ public class YotogiCommandFactory : MonoBehaviour
 		GameObject gameObject = Utility.CreatePrefab(this.HiddenTree, "SceneYotogi/Yotogi/Prefab/CommandCategoryTitle", true);
 		UILabel component = gameObject.GetComponent<UILabel>();
 		component.text = string.Empty;
-		if (Utility.SetLocalizeTerm(component, name))
+		if (Utility.SetLocalizeTerm(component, name, false))
 		{
 			if (string.IsNullOrEmpty(component.text))
 			{
@@ -327,7 +327,7 @@ public class YotogiCommandFactory : MonoBehaviour
 		GameObject gameObject = Utility.CreatePrefab(this.HiddenTree, "SceneYotogi/Yotogi/Prefab/Command", true);
 		UILabel component = UTY.GetChildObject(gameObject, "Name", false).GetComponent<UILabel>();
 		component.text = name;
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			component.text = string.Empty;
 			Localize component2 = component.GetComponent<Localize>();
@@ -375,12 +375,12 @@ public class YotogiCommandFactory : MonoBehaviour
 
 	private string GetGroupName(Skill.Data.Command.Data.Basic commandDataBasic)
 	{
-		return (!Product.SPP) ? commandDataBasic.group_name : commandDataBasic.termGroupName;
+		return (!Product.AEWDA) ? commandDataBasic.group_name : commandDataBasic.termGroupName;
 	}
 
 	private string GetCommandName(Skill.Data.Command.Data.Basic commandDataBasic)
 	{
-		return (!Product.SPP) ? commandDataBasic.name : commandDataBasic.termName;
+		return (!Product.AEWDA) ? commandDataBasic.name : commandDataBasic.termName;
 	}
 
 	public GameObject HiddenTree;

+ 1 - 1
Assembly-CSharp/YotogiCommandMenuOVR.cs

@@ -71,7 +71,7 @@ public class YotogiCommandMenuOVR : MonoBehaviour
 			RectTransform rectTransform = UnityEngine.Object.Instantiate<RectTransform>(this.clone_src_);
 			rectTransform.SetParent(this.command_panel_, false);
 			rectTransform.GetComponent<Text>().text = data.basic.name;
-			Utility.SetLocalizeTerm(rectTransform, data.basic.termName);
+			Utility.SetLocalizeTerm(rectTransform, data.basic.termName, false);
 			rectTransform.gameObject.SetActive(false);
 			this.command_dic_.Add(data, rectTransform);
 		}

+ 1 - 1
Assembly-CSharp/YotogiParamScroll.cs

@@ -12,7 +12,7 @@ public class YotogiParamScroll : MonoBehaviour
 		this.panel_ = UTY.GetChildObject(base.gameObject, "Mask", false).GetComponent<UIPanel>();
 		this.parent_obj_ = UTY.GetChildObject(base.gameObject, "Parent", false);
 		UIGrid component = this.parent_obj_.GetComponent<UIGrid>();
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			component.cellWidth = 150f;
 			Utility.ResetNGUI(component);

+ 2 - 2
Assembly-CSharp/YotogiParameterViewer.cs

@@ -61,7 +61,7 @@ public class YotogiParameterViewer : MonoBehaviour
 			}
 		};
 		action(YotogiParameterViewer.LabelType.Contract, EnumConvert.GetString(status.contract), EnumConvert.GetTerm(status.contract));
-		this.label_dictionary_[YotogiParameterViewer.LabelType.Name].text = status.lastName + "\n" + status.firstName;
+		this.label_dictionary_[YotogiParameterViewer.LabelType.Name].text = status.charaName.GetFullName("\n");
 		this.label_dictionary_[YotogiParameterViewer.LabelType.YotogiPlayCount].text = status.playCountYotogi.ToString();
 		action(YotogiParameterViewer.LabelType.Seikeiken, EnumConvert.GetString(status.seikeiken), EnumConvert.GetTerm(status.seikeiken));
 		action(YotogiParameterViewer.LabelType.Relation, EnumConvert.GetString(status.relation, status.additionalRelation), EnumConvert.GetTerm(status.relation, status.additionalRelation));
@@ -107,7 +107,7 @@ public class YotogiParameterViewer : MonoBehaviour
 	{
 		this.attributeViewer = obj;
 		this.attributeViewer.gameObject.SetActive(false);
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			this.attributeViewer.transform.localPosition = new Vector3(184f, 0f, 0f);
 		}

+ 11 - 7
Assembly-CSharp/YotogiPlayManager.cs

@@ -16,7 +16,7 @@ public class YotogiPlayManager : WfScreenChildren
 		this.yotogi_mgr_ = base.GetComponentInParent<YotogiManager>();
 		UTY.GetChildObject(base.root_obj, "ParameterViewer", false).SetActive(true);
 		UTY.GetChildObject(base.root_obj, "SkillSelectViewer", false).SetActive(true);
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			UIPanel component = UTY.GetChildObject(base.root_obj, "ParameterViewer/YotogiParameterViewer", false).GetComponent<UIPanel>();
 			Vector4 baseClipRegion = component.baseClipRegion;
@@ -162,7 +162,7 @@ public class YotogiPlayManager : WfScreenChildren
 			this.param_basic_bar_ = UTY.GetChildObject(childObject, "ParameterViewer/MaskGroup/ParameterParent", false).GetComponent<YotogiParamBasicBar>();
 			string path = "SceneYotogi/Common/Prefab/ParameterViewer";
 			Vector3 zero = Vector3.zero;
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				path = "SceneYotogi/Common/Prefab/ParameterViewerWidth";
 				zero = new Vector3(44f, 0f, 0f);
@@ -401,7 +401,7 @@ public class YotogiPlayManager : WfScreenChildren
 	public override void Update()
 	{
 		base.Update();
-		if (Product.SPP)
+		if (Product.AEWDA && GameMain.Instance.CMSystem.YotogiSubtitleVisible)
 		{
 			if (0f < this.message_display_time_)
 			{
@@ -419,6 +419,10 @@ public class YotogiPlayManager : WfScreenChildren
 				this.subtitlesManager.visible = false;
 			}
 		}
+		else if (this.subtitlesManager != null)
+		{
+			this.subtitlesManager.visible = false;
+		}
 		if (GameMain.Instance.CMSystem.ManAlpha != this.setting_man_alpha_)
 		{
 			this.man_alpha_slider_.value = (float)GameMain.Instance.CMSystem.ManAlpha / 100f;
@@ -824,7 +828,7 @@ public class YotogiPlayManager : WfScreenChildren
 
 	public void SetMessageText(string text)
 	{
-		if (Product.SPP && this.subtitlesManager != null)
+		if (Product.AEWDA && this.subtitlesManager != null)
 		{
 			this.subtitlesManager.SetTextFromScriptStyle(text);
 		}
@@ -832,7 +836,7 @@ public class YotogiPlayManager : WfScreenChildren
 
 	public void SetMessageTextDisplayTime(int time)
 	{
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			if (0 < time)
 			{
@@ -862,7 +866,7 @@ public class YotogiPlayManager : WfScreenChildren
 
 	public void AddRepeatVoiceText(string text)
 	{
-		if (Product.SPP && 0 < this.repeat_voice_data_list_.Count)
+		if (Product.AEWDA && 0 < this.repeat_voice_data_list_.Count)
 		{
 			YotogiPlayManager.RepeatVoiceData repeatVoiceData = this.repeat_voice_data_list_[this.repeat_voice_data_list_.Count - 1];
 			repeatVoiceData.text = text;
@@ -1824,7 +1828,7 @@ public class YotogiPlayManager : WfScreenChildren
 				"MaidStatus/条件文/性癖【{0}】",
 				data.drawName
 			};
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				key = new string[]
 				{

+ 1 - 1
Assembly-CSharp/YotogiResultManager.cs

@@ -14,7 +14,7 @@ public class YotogiResultManager : WfScreenChildren
 		this.common_buttons_ = UTY.GetChildObject(base.root_obj, "CommonPanel", false).GetComponent<YotogiCommonButtons>();
 		this.common_buttons_.viwe_reset_btn.gameObject.SetActive(false);
 		string path = "SceneYotogi/Common/Prefab/ParameterViewer";
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			path = "SceneYotogi/Common/Prefab/ParameterViewerWidth";
 		}

+ 1 - 1
Assembly-CSharp/YotogiSkillContainerViewer.cs

@@ -374,7 +374,7 @@ public class YotogiSkillContainerViewer
 				{
 					this.skill_name_label_.text = this.skill_data_.name;
 				}
-				if (Product.SPP)
+				if (Product.AEWDA)
 				{
 					string translation = LocalizationManager.GetTranslation(this.skill_data_.termName, true, 0, true, false, null, null);
 					if (!string.IsNullOrEmpty(translation))

+ 2 - 2
Assembly-CSharp/YotogiSkillListManager.cs

@@ -180,7 +180,7 @@ public class YotogiSkillListManager : MonoBehaviour
 					{
 						if (maid.status.personal.id == data2.id)
 						{
-							string text = Product.SPP ? maid.status.personal.termName : maid.status.personal.drawName;
+							string text = Product.AEWDA ? maid.status.personal.termName : maid.status.personal.drawName;
 							list4.Add(new KeyValuePair<string[], Color>(new string[]
 							{
 								"MaidStatus/条件文/ヒロインタイプ {0}",
@@ -226,7 +226,7 @@ public class YotogiSkillListManager : MonoBehaviour
 		{
 			KeyValuePair<Skill.Data, Skill.Old.Data> keyValuePair = this.instansToSkillDatas[instanceId];
 			this.conditionTitleLabel.text = ((keyValuePair.Key == null) ? keyValuePair.Value.name : keyValuePair.Key.name) + " 取得条件";
-			if (Product.SPP)
+			if (Product.AEWDA)
 			{
 				Localize component = this.conditionTitleLabel.GetComponent<Localize>();
 				if (component != null)

+ 1 - 1
Assembly-CSharp/YotogiSkillSelectManager.cs

@@ -15,7 +15,7 @@ public class YotogiSkillSelectManager : WfScreenChildren
 		this.yotogi_mgr_ = base.GetComponentInParent<YotogiManager>();
 		this.common_buttons_ = UTY.GetChildObject(base.root_obj, "CommonPanel", false).GetComponent<YotogiCommonButtons>();
 		string path = "SceneYotogi/Common/Prefab/ParameterViewer";
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			path = "SceneYotogi/Common/Prefab/ParameterViewerWidth";
 		}

+ 1 - 1
Assembly-CSharp/YotogiSkillUnit.cs

@@ -211,7 +211,7 @@ public class YotogiSkillUnit : MonoBehaviour
 			return;
 		}
 		this.conditionTitleLabel.text = this.skill_data_.name + " 習得条件";
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			Localize component = this.conditionTitleLabel.GetComponent<Localize>();
 			if (component != null)

+ 2 - 2
Assembly-CSharp/YotogiStageUnit.cs

@@ -15,7 +15,7 @@ public class YotogiStageUnit : MonoBehaviour
 		this.star_parent_ = new GameObject[2];
 		this.star_parent_[0] = UTY.GetChildObject(childObject, "StarGroup", false);
 		this.star_parent_[1] = UTY.GetChildObject(childObject, "StarMarkGroup", false);
-		if (Product.SPP)
+		if (Product.AEWDA)
 		{
 			foreach (GameObject gameObject in this.star_parent_)
 			{
@@ -54,7 +54,7 @@ public class YotogiStageUnit : MonoBehaviour
 		if (enabled)
 		{
 			this.name_label_.text = this.stage_data_.drawName;
-			Utility.SetLocalizeTerm(this.name_label_, stage_data.termName);
+			Utility.SetLocalizeTerm(this.name_label_, stage_data.termName, false);
 		}
 		else
 		{

+ 1 - 1
Assembly-CSharp/Yotogis/SkillAcquisitionCondition.cs

@@ -27,7 +27,7 @@ namespace Yotogis
 				{
 					value = true;
 				}
-				string text = Product.SPP ? this.yotogi_class.termName : this.yotogi_class.drawName;
+				string text = Product.AEWDA ? this.yotogi_class.termName : this.yotogi_class.drawName;
 				list.Add(new KeyValuePair<string[], bool>(new string[]
 				{
 					text

+ 9 - 2
Assembly-CSharp/uGUITutorialPanel.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using PlayerStatus;
 using UnityEngine;
 using UnityEngine.UI;
+using wf;
 
 public class uGUITutorialPanel : MonoBehaviour
 {
@@ -48,12 +49,10 @@ public class uGUITutorialPanel : MonoBehaviour
 		}
 		if (uGUITutorialPanel.IsOpened())
 		{
-			NDebug.Warning("既にチュートリアル用パネルが開いています。");
 			return;
 		}
 		if (!uGUITutorialPanel.IsExistTutorial(sceneName))
 		{
-			NDebug.Warning(string.Format("チュートリアル名「{0}」は存在しません。\n終了処理を実行します。", sceneName));
 			if (closeCallback != null)
 			{
 				closeCallback();
@@ -84,6 +83,10 @@ public class uGUITutorialPanel : MonoBehaviour
 		uGUITutorialPanel.m_Instance = gameObject2.GetComponent<uGUITutorialPanel>();
 		uGUITutorialPanel.m_Instance.Initialize(sceneName, closeCallback);
 		uGUITutorialPanel.SetTutorialFlag(sceneName);
+		if (uGUITutorialPanel.m_Instance.m_TopTitle != null && sceneName.ToLower() == "WordDictionary".ToLower())
+		{
+			uGUITutorialPanel.m_Instance.m_TopTitle.text = "TUTORIAL";
+		}
 	}
 
 	public static void CloseTutorial(bool immediate = false, bool enableCallback = true)
@@ -137,6 +140,7 @@ public class uGUITutorialPanel : MonoBehaviour
 				if (!string.IsNullOrEmpty(keyValuePair.Value))
 				{
 					componentInChildren.text = keyValuePair.Value;
+					Utility.SetLocalizeTerm(componentInChildren, "Tutorial/項目名/" + keyValuePair.Value, false);
 				}
 				else
 				{
@@ -397,6 +401,9 @@ public class uGUITutorialPanel : MonoBehaviour
 	[SerializeField]
 	private uGUIListViewer m_ListViewerButtons;
 
+	[SerializeField]
+	private Text m_TopTitle;
+
 	private KeyValuePair<string, string>[] m_strFileNameArray;
 
 	private bool[] m_IsOpenedPageArray;

+ 4 - 4
Assembly-CSharp/wf/Utility.cs

@@ -112,14 +112,14 @@ namespace wf
 			return sprite;
 		}
 
-		public static bool SetLocalizeTerm(Component obj, string term)
+		public static bool SetLocalizeTerm(Component obj, string term, bool forceApply = false)
 		{
-			return Product.SPP && !(obj == null) && !string.IsNullOrEmpty(term) && Utility.SetLocalizeTerm(obj.GetComponent<Localize>(), term);
+			return (Product.AEWDA || forceApply) && !(obj == null) && !string.IsNullOrEmpty(term) && Utility.SetLocalizeTerm(obj.GetComponent<Localize>(), term, forceApply);
 		}
 
-		public static bool SetLocalizeTerm(Localize localize, string term)
+		public static bool SetLocalizeTerm(Localize localize, string term, bool forceApply = false)
 		{
-			if (!Product.SPP || localize == null || string.IsNullOrEmpty(term))
+			if ((!Product.AEWDA && !forceApply) || localize == null || string.IsNullOrEmpty(term))
 			{
 				return false;
 			}