Prompt user to select language when Config.ini is missing (#629)
* Prompt user to select language when Config.ini is missing * tiny whitespace fix
This commit is contained in:
parent
c44c040e65
commit
7cc431ffbb
@ -13,4 +13,5 @@ SongSelect_GenreName=
|
||||
|
||||
Game_DanC_Dan_Plate=1120,535
|
||||
|
||||
Exit_Duration=3000
|
||||
Exit_Duration=3000
|
||||
StartUp_LangSelect_FontSize=32
|
@ -1233,6 +1233,14 @@ namespace TJAPlayer3
|
||||
|
||||
#region 新・SkinConfig
|
||||
|
||||
#region Startup
|
||||
case nameof(StartUp_LangSelect_FontSize):
|
||||
{
|
||||
StartUp_LangSelect_FontSize = int.Parse(strParam);
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Title
|
||||
case nameof(Title_LoadingPinInstances):
|
||||
{
|
||||
@ -9653,6 +9661,10 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region [Startup]
|
||||
public int StartUp_LangSelect_FontSize = 16;
|
||||
#endregion
|
||||
|
||||
#region [Title Screen]
|
||||
|
||||
public int Title_LoadingPinInstances = 5;
|
||||
|
@ -564,6 +564,12 @@ namespace TJAPlayer3
|
||||
|
||||
public static CCounter BeatScaling;
|
||||
|
||||
/// <summary>
|
||||
/// Returns true for this session if the game fails to locate Config.ini.<br/>
|
||||
/// This could be treated as the player's first time launching the game.
|
||||
/// </summary>
|
||||
public static bool ConfigIsNew;
|
||||
|
||||
|
||||
|
||||
// メソッド
|
||||
@ -636,6 +642,10 @@ namespace TJAPlayer3
|
||||
Trace.TraceError( "例外が発生しましたが処理を継続します。 (b8d93255-bbe4-4ca3-8264-7ee5175b19f3)" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ConfigIsNew = true;
|
||||
}
|
||||
|
||||
switch(ConfigIni.nGraphicsDeviceType)
|
||||
{
|
||||
|
@ -7,6 +7,7 @@ using System.IO;
|
||||
using FDK;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using System.Windows.Input;
|
||||
using SkiaSharp;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
@ -33,7 +34,22 @@ namespace TJAPlayer3
|
||||
Background = new ScriptBG(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.STARTUP}Script.lua"));
|
||||
Background.Init();
|
||||
|
||||
this.list進行文字列 = new List<string>();
|
||||
if (TJAPlayer3.ConfigIsNew)
|
||||
{
|
||||
langSelectFont = HPrivateFastFont.tInstantiateMainFont(TJAPlayer3.Skin.StartUp_LangSelect_FontSize);
|
||||
langSelectTitle = TJAPlayer3.tテクスチャの生成(langSelectFont.DrawText("Select Language:", System.Drawing.Color.White));
|
||||
langList = new CTexture[CLangManager.Languages.Length];
|
||||
langListHighlighted = new CTexture[CLangManager.Languages.Length];
|
||||
|
||||
for (int i = 0; i < langList.Length; i++)
|
||||
{
|
||||
langList[i] = TJAPlayer3.tテクスチャの生成(langSelectFont.DrawText(CLangManager.Languages[i], System.Drawing.Color.White));
|
||||
langListHighlighted[i] = TJAPlayer3.tテクスチャの生成(langSelectFont.DrawText(CLangManager.Languages[i], System.Drawing.Color.Red));
|
||||
}
|
||||
langSelectOffset = new int[2] { SampleFramework.GameWindowSize.Width / 2, (SampleFramework.GameWindowSize.Height - langList.Select(tex => tex.szTextureSize.Height).Sum() - langSelectTitle.szTextureSize.Height) / 2 };
|
||||
}
|
||||
|
||||
this.list進行文字列 = new List<string>();
|
||||
base.ePhaseID = CStage.EPhase.Common_NORMAL;
|
||||
base.Activate();
|
||||
Trace.TraceInformation( "起動ステージの活性化を完了しました。" );
|
||||
@ -51,6 +67,17 @@ namespace TJAPlayer3
|
||||
{
|
||||
TJAPlayer3.tDisposeSafely(ref Background);
|
||||
|
||||
TJAPlayer3.tDisposeSafely(ref langSelectFont);
|
||||
TJAPlayer3.tDisposeSafely(ref langSelectTitle);
|
||||
if (langList != null)
|
||||
{
|
||||
for (int i = 0; i < langList.Length; i++)
|
||||
{
|
||||
TJAPlayer3.tDisposeSafely(ref langList[i]);
|
||||
TJAPlayer3.tDisposeSafely(ref langListHighlighted[i]);
|
||||
}
|
||||
}
|
||||
|
||||
this.list進行文字列 = null;
|
||||
if ( es != null )
|
||||
{
|
||||
@ -195,6 +222,52 @@ namespace TJAPlayer3
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
else if (TJAPlayer3.ConfigIsNew && !bLanguageSelected) // Prompt language selection if Config.ini is newly generated
|
||||
{
|
||||
if (TJAPlayer3.Tx.Tile_Black != null)
|
||||
{
|
||||
TJAPlayer3.Tx.Tile_Black.Opacity = 255;
|
||||
for (int i = 0; i <= SampleFramework.GameWindowSize.Width; i += TJAPlayer3.Tx.Tile_Black.szTextureSize.Width)
|
||||
{
|
||||
for (int j = 0; j <= SampleFramework.GameWindowSize.Height; j += TJAPlayer3.Tx.Tile_Black.szTextureSize.Height)
|
||||
{
|
||||
TJAPlayer3.Tx.Tile_Black.t2D描画(i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int x = langSelectOffset[0];
|
||||
int y = langSelectOffset[1];
|
||||
|
||||
langSelectTitle.t2D中心基準描画(x, y);
|
||||
y += langSelectTitle.szTextureSize.Height;
|
||||
|
||||
for (int i = 0; i < langList.Length; i++)
|
||||
{
|
||||
if (i == langSelectIndex)
|
||||
langListHighlighted[i].t2D中心基準描画(x, y);
|
||||
else
|
||||
langList[i].t2D中心基準描画(x, y);
|
||||
|
||||
y += langList[i].szTextureSize.Height;
|
||||
}
|
||||
|
||||
if (TJAPlayer3.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.DownArrow) || TJAPlayer3.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.RightArrow))
|
||||
{
|
||||
langSelectIndex = Math.Min(langSelectIndex + 1, CLangManager.Languages.Length - 1);
|
||||
}
|
||||
else if (TJAPlayer3.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.UpArrow) || TJAPlayer3.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.LeftArrow))
|
||||
{
|
||||
langSelectIndex = Math.Max(langSelectIndex - 1, 0);
|
||||
}
|
||||
else if (TJAPlayer3.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return))
|
||||
{
|
||||
TJAPlayer3.Skin.soundDecideSFX.tPlay();
|
||||
TJAPlayer3.ConfigIni.sLang = CLangManager.intToLang(langSelectIndex);
|
||||
CLangManager.langAttach(TJAPlayer3.ConfigIni.sLang);
|
||||
bLanguageSelected = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( es != null && es.IsSongListEnumCompletelyDone ) // 曲リスト作成が終わったら
|
||||
@ -225,6 +298,15 @@ namespace TJAPlayer3
|
||||
private CEnumSongs es;
|
||||
private bool bIsLoadingTextures;
|
||||
|
||||
private bool bLanguageSelected;
|
||||
private int langSelectIndex = 0;
|
||||
|
||||
private CFontRenderer langSelectFont;
|
||||
private CTexture langSelectTitle;
|
||||
private CTexture[] langList;
|
||||
private CTexture[] langListHighlighted;
|
||||
private int[] langSelectOffset;
|
||||
|
||||
#if false
|
||||
private void t曲リストの構築()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user