0.6.0.19 - Allow users to change their name via. Heya menu
- Allow users to change their name via. Heya menu
This commit is contained in:
parent
3528b65ecc
commit
49427d4082
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "Charakter",
|
||||
"HEYA_DAN": "Dan-Titel",
|
||||
"HEYA_NAMEPLATE": "Namensschild-Titel",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "Name: {0}",
|
||||
|
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "Character",
|
||||
"HEYA_DAN": "Dan Title",
|
||||
"HEYA_NAMEPLATE": "Nameplate Title",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "Name: {0}",
|
||||
|
@ -445,6 +445,8 @@
|
||||
"HEYA_CHARA": "Personaje",
|
||||
"HEYA_DAN": "Título de Dan",
|
||||
"HEYA_NAMEPLATE": "Título de la placa",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "Name: {0}",
|
||||
|
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "Personnage",
|
||||
"HEYA_DAN": "Titre Dan",
|
||||
"HEYA_NAMEPLATE": "Titre",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "Name: {0}",
|
||||
|
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "キャラクター",
|
||||
"HEYA_DAN": "段位称号",
|
||||
"HEYA_NAMEPLATE": "名札称号",
|
||||
"HEYA_NAME": "名前",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "名前:{0}",
|
||||
|
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "캐릭터",
|
||||
"HEYA_DAN": "단위 제목",
|
||||
"HEYA_NAMEPLATE": "칭호 타이틀",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "이름: {0}",
|
||||
|
@ -440,6 +440,8 @@
|
||||
"HEYA_CHARA": "Character",
|
||||
"HEYA_DAN": "Dan Title",
|
||||
"HEYA_NAMEPLATE": "Nameplate Title",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "Name: {0}",
|
||||
|
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "Персонаж",
|
||||
"HEYA_DAN": "Ранг дан",
|
||||
"HEYA_NAMEPLATE": "Ранг таблички",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "Имя: {0}",
|
||||
|
@ -444,6 +444,8 @@
|
||||
"HEYA_CHARA": "角色",
|
||||
"HEYA_DAN": "段位称号",
|
||||
"HEYA_NAMEPLATE": "名牌称号",
|
||||
"HEYA_NAME": "Name",
|
||||
"HEYA_NAME_INFO": "Type your name (Confirm to save, Cancel to discard changes):",
|
||||
|
||||
// {0}: Asset name
|
||||
"HEYA_DESCRIPTION_NAME": "姓名:{0}",
|
||||
|
@ -6882,21 +6882,21 @@ internal class CSkin : IDisposable {
|
||||
#region Heya
|
||||
case "Heya_Main_Menu_X": {
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int i = 0; i < Math.Min(6, strSplit.Length); i++) {
|
||||
Heya_Main_Menu_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "Heya_Main_Menu_Y": {
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int i = 0; i < Math.Min(6, strSplit.Length); i++) {
|
||||
Heya_Main_Menu_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "Heya_Main_Menu_Font_Offset": {
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Heya_Main_Menu_Font_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
break;
|
||||
@ -9164,8 +9164,8 @@ internal class CSkin : IDisposable {
|
||||
|
||||
#region Heya
|
||||
|
||||
public int[] Heya_Main_Menu_X = new int[] { 164, 164, 164, 164, 164 };
|
||||
public int[] Heya_Main_Menu_Y = new int[] { 26, 106, 186, 266, 346 };
|
||||
public int[] Heya_Main_Menu_X = new int[] { 164, 164, 164, 164, 164, 164 };
|
||||
public int[] Heya_Main_Menu_Y = new int[] { 26, 106, 186, 266, 346, 426 };
|
||||
public int[] Heya_Main_Menu_Font_Offset = new int[] { 0, 14 };
|
||||
public int Heya_Center_Menu_Box_Count = 11;
|
||||
public int[] Heya_Center_Menu_Box_X = new int[] { -890, -588, -286, 16, 318, 620, 922, 1224, 1526, 1828, 2130 };
|
||||
|
@ -100,7 +100,7 @@ public static class ImGuiDebugWindow {
|
||||
ImGui.Text("Unknown: " + OpenTaiko.InputManager.InputDevices.Count(device => device.CurrentType == InputDeviceType.Unknown));
|
||||
|
||||
foreach (IInputDevice device in OpenTaiko.InputManager.InputDevices) {
|
||||
if (ImGui.TreeNodeEx(device.CurrentType.ToString() + " (ID " + device.ID + " / Name: " + device.Name + ")")) {
|
||||
if (ImGui.TreeNodeEx(device.CurrentType.ToString() + " (ID " + device.ID + " / Name: " + device.Name + " / GUID: " + device.GUID + ")")) {
|
||||
switch (device.CurrentType) {
|
||||
case InputDeviceType.Keyboard:
|
||||
var keyboard = (CInputKeyboard)device;
|
||||
|
21
OpenTaiko/src/Helpers/HBlackBackdrop.cs
Normal file
21
OpenTaiko/src/Helpers/HBlackBackdrop.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenTaiko {
|
||||
public static class HBlackBackdrop {
|
||||
public static void Draw(int opacity = 255) {
|
||||
if (OpenTaiko.Tx.Tile_Black != null) {
|
||||
OpenTaiko.Tx.Tile_Black.Opacity = opacity;
|
||||
for (int i = 0; i <= SampleFramework.GameWindowSize.Width; i += OpenTaiko.Tx.Tile_Black.szTextureSize.Width) {
|
||||
for (int j = 0; j <= SampleFramework.GameWindowSize.Height; j += OpenTaiko.Tx.Tile_Black.szTextureSize.Height) {
|
||||
OpenTaiko.Tx.Tile_Black.t2D描画(i, j);
|
||||
}
|
||||
}
|
||||
OpenTaiko.Tx.Tile_Black.Opacity = 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -181,14 +181,7 @@ internal class CStage起動 : CStage {
|
||||
#endregion
|
||||
} else if (OpenTaiko.ConfigIsNew && !bLanguageSelected) // Prompt language selection if Config.ini is newly generated
|
||||
{
|
||||
if (OpenTaiko.Tx.Tile_Black != null) {
|
||||
OpenTaiko.Tx.Tile_Black.Opacity = 255;
|
||||
for (int i = 0; i <= SampleFramework.GameWindowSize.Width; i += OpenTaiko.Tx.Tile_Black.szTextureSize.Width) {
|
||||
for (int j = 0; j <= SampleFramework.GameWindowSize.Height; j += OpenTaiko.Tx.Tile_Black.szTextureSize.Height) {
|
||||
OpenTaiko.Tx.Tile_Black.t2D描画(i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
HBlackBackdrop.Draw();
|
||||
|
||||
int x = langSelectOffset[0];
|
||||
int y = langSelectOffset[1];
|
||||
|
@ -377,15 +377,8 @@ internal class CStageコンフィグ : CStage {
|
||||
actCalibrationMode.Update();
|
||||
actCalibrationMode.Draw();
|
||||
} else if (actList.ScoreIniImportThreadIsActive) {
|
||||
if (OpenTaiko.Tx.Tile_Black != null) {
|
||||
OpenTaiko.Tx.Tile_Black.Opacity = 191;
|
||||
for (int i = 0; i <= SampleFramework.GameWindowSize.Width; i += OpenTaiko.Tx.Tile_Black.szTextureSize.Width) {
|
||||
for (int j = 0; j <= SampleFramework.GameWindowSize.Height; j += OpenTaiko.Tx.Tile_Black.szTextureSize.Height) {
|
||||
OpenTaiko.Tx.Tile_Black.t2D描画(i, j);
|
||||
}
|
||||
}
|
||||
OpenTaiko.Tx.Tile_Black.Opacity = 255;
|
||||
}
|
||||
HBlackBackdrop.Draw(191);
|
||||
|
||||
using (var prvFont = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.Config_Font_Scale)) {
|
||||
using (var status_text = new CTexture(prvFont.DrawText(
|
||||
CScoreIni_Importer.Status,
|
||||
|
@ -14,6 +14,14 @@ class CStageHeya : CStage {
|
||||
base.ChildActivities.Add(this.PuchiChara = new PuchiChara());
|
||||
}
|
||||
|
||||
private enum CurrentMenu : int {
|
||||
ReturnToMenu = -1,
|
||||
Puchi,
|
||||
Chara,
|
||||
Dan,
|
||||
Title,
|
||||
Name
|
||||
}
|
||||
|
||||
public override void Activate() {
|
||||
if (base.IsActivated)
|
||||
@ -38,17 +46,16 @@ class CStageHeya : CStage {
|
||||
|
||||
#region [Main menu]
|
||||
|
||||
this.ttkMainMenuOpt = new TitleTextureKey[5];
|
||||
this.ttkMainMenuOpt = new TitleTextureKey[6];
|
||||
|
||||
this.ttkMainMenuOpt[0] = new TitleTextureKey(CLangManager.LangInstance.GetString("MENU_RETURN"), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
this.ttkMainMenuOpt[1] = new TitleTextureKey(CLangManager.LangInstance.GetString("HEYA_PUCHI"), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
this.ttkMainMenuOpt[2] = new TitleTextureKey(CLangManager.LangInstance.GetString("HEYA_CHARA"), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
this.ttkMainMenuOpt[3] = new TitleTextureKey(CLangManager.LangInstance.GetString("HEYA_DAN"), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
this.ttkMainMenuOpt[4] = new TitleTextureKey(CLangManager.LangInstance.GetString("HEYA_NAMEPLATE"), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
//for (int i = 1; i < ttkMainMenuOpt.Length; i++)
|
||||
//{
|
||||
// this.ttkMainMenuOpt[i] = new TitleTextureKey(CLangManager.LangInstance.GetString(1030 + i), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
//}
|
||||
this.ttkMainMenuOpt[5] = new TitleTextureKey(CLangManager.LangInstance.GetString("HEYA_NAME"), this.pfHeyaFont, Color.White, Color.DarkGreen, 1000);
|
||||
|
||||
this.textInputInfo = new TitleTextureKey(CLangManager.LangInstance.GetString("HEYA_NAME_INFO"), this.pfHeyaFont, Color.White, Color.Black, 1000);
|
||||
|
||||
#endregion
|
||||
|
||||
@ -108,7 +115,7 @@ class CStageHeya : CStage {
|
||||
#endregion
|
||||
|
||||
// -1 : Main Menu, >= 0 : See Main menu opt
|
||||
iCurrentMenu = -1;
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
iMainMenuCurrent = 0;
|
||||
|
||||
#region [PuchiChara stuff]
|
||||
@ -141,6 +148,12 @@ class CStageHeya : CStage {
|
||||
|
||||
#endregion
|
||||
|
||||
#region [Name stuff]
|
||||
textInput = new CTextInput("", 64);
|
||||
textInput.Text = OpenTaiko.SaveFileInstances[iPlayer].data.Name;
|
||||
textInputTitle = new TitleTextureKey("", pfHeyaFont, Color.White, Color.Black, 1000);
|
||||
#endregion
|
||||
|
||||
this.tResetOpts();
|
||||
|
||||
this.PuchiChara.IdleAnimation();
|
||||
@ -183,7 +196,7 @@ class CStageHeya : CStage {
|
||||
for (int i = 0; i < this.ttkMainMenuOpt.Length; i++) {
|
||||
CTexture tmpTex = TitleTextureKey.ResolveTitleTexture(this.ttkMainMenuOpt[i]);
|
||||
|
||||
if (iCurrentMenu != -1 || iMainMenuCurrent != i) {
|
||||
if (iCurrentMenu != CurrentMenu.ReturnToMenu || iMainMenuCurrent != i) {
|
||||
tmpTex.color4 = CConversion.ColorToColor4(Color.DarkGray);
|
||||
OpenTaiko.Tx.Heya_Side_Menu?.tUpdateColor4(CConversion.ColorToColor4(Color.DarkGray));
|
||||
} else {
|
||||
@ -219,9 +232,9 @@ class CStageHeya : CStage {
|
||||
OpenTaiko.Tx.Characters_Heya_Render[iCharacterCurrent].vcScaleRatio.X = renderRatioX;
|
||||
OpenTaiko.Tx.Characters_Heya_Render[iCharacterCurrent].vcScaleRatio.Y = renderRatioY;
|
||||
}
|
||||
if (iCurrentMenu == 0 || iCurrentMenu == 1) OpenTaiko.Tx.Heya_Render_Field?.t2D描画(0, 0);
|
||||
if (iCurrentMenu == 0) OpenTaiko.Tx.Puchichara[iPuchiCharaCurrent].render?.t2D描画(0, 0);
|
||||
if (iCurrentMenu == 1) OpenTaiko.Tx.Characters_Heya_Render[iCharacterCurrent]?.t2D描画(OpenTaiko.Skin.Characters_Heya_Render_Offset[iCharacterCurrent][0] * renderRatioX, OpenTaiko.Skin.Characters_Heya_Render_Offset[iCharacterCurrent][1] * renderRatioY);
|
||||
if (iCurrentMenu == CurrentMenu.Puchi || iCurrentMenu == CurrentMenu.Chara) OpenTaiko.Tx.Heya_Render_Field?.t2D描画(0, 0);
|
||||
if (iCurrentMenu == CurrentMenu.Puchi) OpenTaiko.Tx.Puchichara[iPuchiCharaCurrent].render?.t2D描画(0, 0);
|
||||
if (iCurrentMenu == CurrentMenu.Chara) OpenTaiko.Tx.Characters_Heya_Render[iCharacterCurrent]?.t2D描画(OpenTaiko.Skin.Characters_Heya_Render_Offset[iCharacterCurrent][0] * renderRatioX, OpenTaiko.Skin.Characters_Heya_Render_Offset[iCharacterCurrent][1] * renderRatioY);
|
||||
|
||||
#endregion
|
||||
|
||||
@ -229,7 +242,7 @@ class CStageHeya : CStage {
|
||||
|
||||
#region [Petit chara]
|
||||
|
||||
if (iCurrentMenu == 0) {
|
||||
if (iCurrentMenu == CurrentMenu.Puchi) {
|
||||
for (int i = -(OpenTaiko.Skin.Heya_Center_Menu_Box_Count / 2); i < (OpenTaiko.Skin.Heya_Center_Menu_Box_Count / 2) + 1; i++) {
|
||||
int pos = (iPuchiCharaCount * 5 + iPuchiCharaCurrent + i) % iPuchiCharaCount;
|
||||
|
||||
@ -294,7 +307,7 @@ class CStageHeya : CStage {
|
||||
|
||||
#region [Character]
|
||||
|
||||
if (iCurrentMenu == 1) {
|
||||
if (iCurrentMenu == CurrentMenu.Chara) {
|
||||
for (int i = -(OpenTaiko.Skin.Heya_Center_Menu_Box_Count / 2); i < (OpenTaiko.Skin.Heya_Center_Menu_Box_Count / 2) + 1; i++) {
|
||||
int pos = (iCharacterCount * 5 + iCharacterCurrent + i) % iCharacterCount;
|
||||
|
||||
@ -356,7 +369,7 @@ class CStageHeya : CStage {
|
||||
|
||||
#region [Dan title]
|
||||
|
||||
if (iCurrentMenu == 2) {
|
||||
if (iCurrentMenu == CurrentMenu.Dan) {
|
||||
for (int i = -(OpenTaiko.Skin.Heya_Side_Menu_Count / 2); i < (OpenTaiko.Skin.Heya_Side_Menu_Count / 2) + 1; i++) {
|
||||
int pos = (this.ttkDanTitles.Length * 5 + iDanTitleCurrent + i) % this.ttkDanTitles.Length;
|
||||
|
||||
@ -364,11 +377,11 @@ class CStageHeya : CStage {
|
||||
|
||||
if (i != 0) {
|
||||
tmpTex.color4 = CConversion.ColorToColor4(Color.DarkGray);
|
||||
OpenTaiko.Tx.Heya_Side_Menu.color4 = CConversion.ColorToColor4(Color.DarkGray);
|
||||
OpenTaiko.Tx.Heya_Side_Menu?.tUpdateColor4(CConversion.ColorToColor4(Color.DarkGray));
|
||||
//TJAPlayer3.Tx.NamePlateBase.color4 = CConversion.ColorToColor4(Color.DarkGray);
|
||||
} else {
|
||||
tmpTex.color4 = CConversion.ColorToColor4(Color.White);
|
||||
OpenTaiko.Tx.Heya_Side_Menu.color4 = CConversion.ColorToColor4(Color.White);
|
||||
OpenTaiko.Tx.Heya_Side_Menu?.tUpdateColor4(CConversion.ColorToColor4(Color.White));
|
||||
//TJAPlayer3.Tx.NamePlateBase.color4 = CConversion.ColorToColor4(Color.White);
|
||||
}
|
||||
|
||||
@ -397,7 +410,7 @@ class CStageHeya : CStage {
|
||||
|
||||
#region [Title plate]
|
||||
|
||||
if (iCurrentMenu == 3) {
|
||||
if (iCurrentMenu == CurrentMenu.Title) {
|
||||
for (int i = -(OpenTaiko.Skin.Heya_Side_Menu_Count / 2); i < (OpenTaiko.Skin.Heya_Side_Menu_Count / 2) + 1; i++) {
|
||||
int pos = (this.ttkTitles.Length * 5 + iTitleCurrent + i) % this.ttkTitles.Length;
|
||||
|
||||
@ -443,6 +456,19 @@ class CStageHeya : CStage {
|
||||
}
|
||||
}
|
||||
|
||||
if (iCurrentMenu == CurrentMenu.Name) {
|
||||
textInput.Update();
|
||||
|
||||
HBlackBackdrop.Draw(191);
|
||||
|
||||
if (textInput.Text != textInputTitle.str) { textInputTitle = new TitleTextureKey(textInput.Text, pfHeyaFont, Color.White, Color.Black, 1000); }
|
||||
CTexture text_tex = TitleTextureKey.ResolveTitleTexture(textInputTitle);
|
||||
CTexture text_info = TitleTextureKey.ResolveTitleTexture(textInputInfo);
|
||||
|
||||
text_info.t2D_DisplayImage_AnchorCenter(960, 540);
|
||||
text_tex.t2D_DisplayImage_AnchorCenter(960, 540 + text_info.szTextureSize.Height);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
@ -464,8 +490,8 @@ class CStageHeya : CStage {
|
||||
#region [Asset description]
|
||||
|
||||
if (this.ttkInfoSection == null || this.ttkInfoSection.str == "") {
|
||||
if (iCurrentMenu == 0) CHeyaDisplayAssetInformations.DisplayPuchicharaInfo(this.pfHeyaFont, OpenTaiko.Tx.Puchichara[iPuchiCharaCurrent]);
|
||||
if (iCurrentMenu == 1) CHeyaDisplayAssetInformations.DisplayCharacterInfo(this.pfHeyaFont, OpenTaiko.Tx.Characters[iCharacterCurrent]);
|
||||
if (iCurrentMenu == CurrentMenu.Puchi) CHeyaDisplayAssetInformations.DisplayPuchicharaInfo(this.pfHeyaFont, OpenTaiko.Tx.Puchichara[iPuchiCharaCurrent]);
|
||||
if (iCurrentMenu == CurrentMenu.Chara) CHeyaDisplayAssetInformations.DisplayCharacterInfo(this.pfHeyaFont, OpenTaiko.Tx.Characters[iCharacterCurrent]);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -539,19 +565,22 @@ class CStageHeya : CStage {
|
||||
ESelectStatus ess = ESelectStatus.SELECTED;
|
||||
|
||||
// Return to main menu
|
||||
if (iCurrentMenu == -1 && iMainMenuCurrent == 0) {
|
||||
if (iCurrentMenu == CurrentMenu.ReturnToMenu && iMainMenuCurrent == 0) {
|
||||
OpenTaiko.Skin.soundHeyaBGM.tStop();
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.ePhaseID = CStage.EPhase.Common_FADEOUT;
|
||||
} else if (iCurrentMenu == -1) {
|
||||
iCurrentMenu = iMainMenuCurrent - 1;
|
||||
} else if (iCurrentMenu == CurrentMenu.ReturnToMenu) {
|
||||
iCurrentMenu = (CurrentMenu)iMainMenuCurrent - 1;
|
||||
|
||||
if (iCurrentMenu == 0) {
|
||||
if (iCurrentMenu == CurrentMenu.Puchi) {
|
||||
this.tUpdateUnlockableTextChara();
|
||||
this.tUpdateUnlockableTextPuchi();
|
||||
}
|
||||
} else if (iCurrentMenu == 0) {
|
||||
else if (iCurrentMenu == CurrentMenu.Name) {
|
||||
textInput.Text = OpenTaiko.SaveFileInstances[iPlayer].data.Name;
|
||||
}
|
||||
} else if (iCurrentMenu == CurrentMenu.Puchi) {
|
||||
ess = this.tSelectPuchi();
|
||||
|
||||
if (ess == ESelectStatus.SELECTED) {
|
||||
@ -562,7 +591,7 @@ class CStageHeya : CStage {
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
||||
OpenTaiko.Tx.Puchichara[iPuchiCharaCurrent].welcome.tPlay();
|
||||
|
||||
iCurrentMenu = -1;
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
this.tResetOpts();
|
||||
} else if (ess == ESelectStatus.SUCCESS) {
|
||||
//TJAPlayer3.NamePlateConfig.data.UnlockedPuchicharas[iPlayer].Add(TJAPlayer3.Skin.Puchicharas_Name[iPuchiCharaCurrent]);
|
||||
@ -573,7 +602,7 @@ class CStageHeya : CStage {
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tSpendCoins(OpenTaiko.Tx.Puchichara[iPuchiCharaCurrent].unlock.Values[0]);
|
||||
|
||||
}
|
||||
} else if (iCurrentMenu == 1) {
|
||||
} else if (iCurrentMenu == CurrentMenu.Chara) {
|
||||
ess = this.tSelectChara();
|
||||
|
||||
if (ess == ESelectStatus.SELECTED) {
|
||||
@ -593,7 +622,7 @@ class CStageHeya : CStage {
|
||||
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
||||
|
||||
iCurrentMenu = -1;
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
this.tResetOpts();
|
||||
} else if (ess == ESelectStatus.SUCCESS) {
|
||||
OpenTaiko.SaveFileInstances[iPlayer].data.UnlockedCharacters.Add(OpenTaiko.Skin.Characters_DirName[iCharacterCurrent]);
|
||||
@ -602,7 +631,7 @@ class CStageHeya : CStage {
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tSpendCoins(OpenTaiko.Tx.Characters[iCharacterCurrent].unlock.Values[0]);
|
||||
// Play modal animation here ?
|
||||
}
|
||||
} else if (iCurrentMenu == 2) {
|
||||
} else if (iCurrentMenu == CurrentMenu.Dan) {
|
||||
bool iG = false;
|
||||
int cs = 0;
|
||||
|
||||
@ -619,9 +648,9 @@ class CStageHeya : CStage {
|
||||
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
||||
|
||||
iCurrentMenu = -1;
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
this.tResetOpts();
|
||||
} else if (iCurrentMenu == 3) {
|
||||
} else if (iCurrentMenu == CurrentMenu.Title) {
|
||||
OpenTaiko.SaveFileInstances[iPlayer].data.Title = this.ttkTitles[iTitleCurrent].str;
|
||||
|
||||
if (OpenTaiko.SaveFileInstances[iPlayer].data.UnlockedNameplateIds != null
|
||||
@ -645,7 +674,15 @@ class CStageHeya : CStage {
|
||||
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
||||
|
||||
iCurrentMenu = -1;
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
this.tResetOpts();
|
||||
}
|
||||
else if (iCurrentMenu == CurrentMenu.Name) {
|
||||
OpenTaiko.SaveFileInstances[iPlayer].data.Name = textInput.Text;
|
||||
OpenTaiko.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
||||
OpenTaiko.NamePlate.tNamePlateRefreshTitles(iPlayer);
|
||||
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
this.tResetOpts();
|
||||
}
|
||||
|
||||
@ -657,18 +694,19 @@ class CStageHeya : CStage {
|
||||
OpenTaiko.Skin.SoundBanapas.tPlay(); // To change with a more appropriate sfx sooner or later
|
||||
|
||||
#endregion
|
||||
} else if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape) ||
|
||||
}
|
||||
else if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape) ||
|
||||
OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.Cancel)) {
|
||||
|
||||
OpenTaiko.Skin.soundCancelSFX.tPlay();
|
||||
|
||||
if (iCurrentMenu == -1) {
|
||||
if (iCurrentMenu == CurrentMenu.ReturnToMenu) {
|
||||
OpenTaiko.Skin.soundHeyaBGM.tStop();
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.ePhaseID = CStage.EPhase.Common_FADEOUT;
|
||||
} else {
|
||||
iCurrentMenu = -1;
|
||||
iCurrentMenu = CurrentMenu.ReturnToMenu;
|
||||
this.ttkInfoSection = null;
|
||||
this.tResetOpts();
|
||||
}
|
||||
@ -719,7 +757,7 @@ class CStageHeya : CStage {
|
||||
private int iDanTitleCurrent;
|
||||
private int iTitleCurrent;
|
||||
|
||||
private int iCurrentMenu;
|
||||
private CurrentMenu iCurrentMenu;
|
||||
|
||||
private void tResetOpts() {
|
||||
// Retrieve titles if they exist
|
||||
@ -764,20 +802,28 @@ class CStageHeya : CStage {
|
||||
ScrollMode = off;
|
||||
ScrollCounter.CurrentValue = 0;
|
||||
|
||||
if (iCurrentMenu == -1)
|
||||
iMainMenuCurrent = (this.ttkMainMenuOpt.Length + iMainMenuCurrent + off) % this.ttkMainMenuOpt.Length;
|
||||
else if (iCurrentMenu == 0) {
|
||||
iPuchiCharaCurrent = (iPuchiCharaCount + iPuchiCharaCurrent + off) % iPuchiCharaCount;
|
||||
tUpdateUnlockableTextPuchi();
|
||||
} else if (iCurrentMenu == 1) {
|
||||
iCharacterCurrent = (iCharacterCount + iCharacterCurrent + off) % iCharacterCount;
|
||||
tUpdateUnlockableTextChara();
|
||||
} else if (iCurrentMenu == 2)
|
||||
iDanTitleCurrent = (this.ttkDanTitles.Length + iDanTitleCurrent + off) % this.ttkDanTitles.Length;
|
||||
else if (iCurrentMenu == 3)
|
||||
iTitleCurrent = (this.ttkTitles.Length + iTitleCurrent + off) % this.ttkTitles.Length;
|
||||
else
|
||||
return false;
|
||||
switch (iCurrentMenu) {
|
||||
case CurrentMenu.ReturnToMenu:
|
||||
iMainMenuCurrent = (this.ttkMainMenuOpt.Length + iMainMenuCurrent + off) % this.ttkMainMenuOpt.Length;
|
||||
break;
|
||||
case CurrentMenu.Puchi:
|
||||
iPuchiCharaCurrent = (iPuchiCharaCount + iPuchiCharaCurrent + off) % iPuchiCharaCount;
|
||||
tUpdateUnlockableTextPuchi();
|
||||
break;
|
||||
case CurrentMenu.Chara:
|
||||
iCharacterCurrent = (iCharacterCount + iCharacterCurrent + off) % iCharacterCount;
|
||||
tUpdateUnlockableTextChara();
|
||||
break;
|
||||
case CurrentMenu.Dan:
|
||||
iDanTitleCurrent = (this.ttkDanTitles.Length + iDanTitleCurrent + off) % this.ttkDanTitles.Length;
|
||||
break;
|
||||
case CurrentMenu.Title:
|
||||
iTitleCurrent = (this.ttkTitles.Length + iTitleCurrent + off) % this.ttkTitles.Length;
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -922,6 +968,11 @@ class CStageHeya : CStage {
|
||||
private int iPuchiCharaCount;
|
||||
private int iCharacterCount;
|
||||
|
||||
private TitleTextureKey textInputInfo;
|
||||
private TitleTextureKey textInputTitle;
|
||||
private CTextInput textInput;
|
||||
private bool isInputtingText;
|
||||
|
||||
private CCounter ScrollCounter;
|
||||
private const int SideInterval_X = 10;
|
||||
private const int SideInterval_Y = 70;
|
||||
|
44
OpenTaiko/src/Stages/11.Heya/CTextInput.cs
Normal file
44
OpenTaiko/src/Stages/11.Heya/CTextInput.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FDK;
|
||||
using ImGuiNET;
|
||||
|
||||
namespace OpenTaiko {
|
||||
public class CTextInput {
|
||||
public CTextInput() { }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="text">Text to start with. Changes as user inputs text.</param>
|
||||
/// <param name="max_length">Max length in bytes that the string can be.</param>
|
||||
public CTextInput(string text, uint max_length) : base() {
|
||||
Text = text;
|
||||
MaxLength = max_length;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns <c>true</c> if the user presses Enter to confirm their text.
|
||||
/// </summary>
|
||||
public bool Update() {
|
||||
ImGui.SetNextWindowSize(new(300,150));
|
||||
|
||||
ImGui.Begin("Text Input", ImGuiWindowFlags.NoResize);
|
||||
ImGui.SetKeyboardFocusHere();
|
||||
if (ImGui.InputText("text :)", ref Text, MaxLength, ImGuiInputTextFlags.EnterReturnsTrue)) return true;
|
||||
ImGui.Text("This window is only visible in Debug mode.\nThis will never show on a Release build.\nDon't run multiple CInputText at once!");
|
||||
|
||||
ImGui.End();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public string Text = "";
|
||||
/// <summary>
|
||||
/// Length in bytes, not char count.
|
||||
/// </summary>
|
||||
public uint MaxLength = 64;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user