Attach OpenEncyclopedia Menu base functionalities, a text allocation bug to fix
This commit is contained in:
parent
64eb2848f9
commit
5ea819e59d
@ -771,8 +771,15 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
#region[Ver.K追加]
|
||||
public enum Eレーンタイプ
|
||||
public enum EReturnValue : int
|
||||
{
|
||||
Continuation,
|
||||
ReturnToTitle,
|
||||
SongChoosen
|
||||
}
|
||||
|
||||
#region[Ver.K追加]
|
||||
public enum Eレーンタイプ
|
||||
{
|
||||
TypeA,
|
||||
TypeB,
|
||||
|
@ -327,6 +327,12 @@ namespace TJAPlayer3
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
public static COpenEncyclopedia stageOpenEncyclopedia
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
public static CStage曲読み込み stage曲読み込み
|
||||
{
|
||||
get;
|
||||
@ -934,24 +940,22 @@ namespace TJAPlayer3
|
||||
r現在のステージ = stageOnlineLounge;
|
||||
//-----------------------------
|
||||
#endregion
|
||||
break;
|
||||
break;
|
||||
|
||||
#region [ OPTION: 廃止済 ]
|
||||
// case 2: // #24525 OPTIONとCONFIGの統合に伴い、OPTIONは廃止
|
||||
// #region [ *** ]
|
||||
// //-----------------------------
|
||||
// r現在のステージ.On非活性化();
|
||||
// Trace.TraceInformation( "----------------------" );
|
||||
// Trace.TraceInformation( "■ オプション" );
|
||||
// stageオプション.On活性化();
|
||||
// r直前のステージ = r現在のステージ;
|
||||
// r現在のステージ = stageオプション;
|
||||
// //-----------------------------
|
||||
// #endregion
|
||||
// break;
|
||||
#endregion
|
||||
case (int)CStageタイトル.E戻り値.ENCYCLOPEDIA:
|
||||
#region [Online Lounge]
|
||||
//-----------------------------
|
||||
r現在のステージ.On非活性化();
|
||||
Trace.TraceInformation("----------------------");
|
||||
Trace.TraceInformation("■ Open Encyclopedia");
|
||||
stageOpenEncyclopedia.On活性化();
|
||||
r直前のステージ = r現在のステージ;
|
||||
r現在のステージ = stageOpenEncyclopedia;
|
||||
//-----------------------------
|
||||
#endregion
|
||||
break;
|
||||
|
||||
case (int)CStageタイトル.E戻り値.CONFIG:
|
||||
case (int)CStageタイトル.E戻り値.CONFIG:
|
||||
#region [ *** ]
|
||||
//-----------------------------
|
||||
r現在のステージ.On非活性化();
|
||||
@ -2149,6 +2153,7 @@ for (int i = 0; i < 3; i++) {
|
||||
|
||||
//---------------------
|
||||
#endregion
|
||||
|
||||
#region [ ログ出力開始 ]
|
||||
//---------------------
|
||||
Trace.AutoFlush = true;
|
||||
@ -2180,6 +2185,7 @@ for (int i = 0; i < 3; i++) {
|
||||
Trace.TraceInformation( "CLR Version: " + Environment.Version.ToString() );
|
||||
//---------------------
|
||||
#endregion
|
||||
|
||||
#region [ DTXVmodeクラス の初期化 ]
|
||||
//---------------------
|
||||
//Trace.TraceInformation( "DTXVモードの初期化を行います。" );
|
||||
@ -2532,7 +2538,7 @@ for (int i = 0; i < 3; i++) {
|
||||
Random = new Random( (int) Timer.nシステム時刻 );
|
||||
//---------------------
|
||||
#endregion
|
||||
#region [ ステージの初期化 ]
|
||||
#region [ Stages initialisation ]
|
||||
//---------------------
|
||||
r現在のステージ = null;
|
||||
r直前のステージ = null;
|
||||
@ -2544,6 +2550,7 @@ for (int i = 0; i < 3; i++) {
|
||||
stage段位選択 = new CStage段位選択();
|
||||
stageHeya = new CStageHeya();
|
||||
stageOnlineLounge = new CStageOnlineLounge();
|
||||
stageOpenEncyclopedia = new COpenEncyclopedia();
|
||||
stage曲読み込み = new CStage曲読み込み();
|
||||
stage演奏ドラム画面 = new CStage演奏ドラム画面();
|
||||
stage結果 = new CStage結果();
|
||||
@ -2562,6 +2569,7 @@ for (int i = 0; i < 3; i++) {
|
||||
this.listトップレベルActivities.Add( stage段位選択 );
|
||||
this.listトップレベルActivities.Add( stageHeya );
|
||||
this.listトップレベルActivities.Add( stageOnlineLounge );
|
||||
this.listトップレベルActivities.Add( stageOpenEncyclopedia );
|
||||
this.listトップレベルActivities.Add( stage曲読み込み );
|
||||
this.listトップレベルActivities.Add( stage演奏ドラム画面 );
|
||||
this.listトップレベルActivities.Add( stage結果 );
|
||||
|
@ -33,6 +33,7 @@ namespace TJAPlayer3
|
||||
const string MODALS = @"11_Modals\";
|
||||
const string ONLINELOUNGE = @"12_OnlineLounge\";
|
||||
const string TOWERSELECT = @"13_TowerSelect\";
|
||||
const string OPENENCYCLOPEDIA = @"15_OpenEncyclopedia\";
|
||||
|
||||
// InGame
|
||||
public const string DANCER = @"2_Dancer\";
|
||||
@ -1093,6 +1094,14 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region [15_OpenEncyclopedia]
|
||||
|
||||
OpenEncyclopedia_Background = TxC(OPENENCYCLOPEDIA + @"Background.png");
|
||||
OpenEncyclopedia_Context = TxC(OPENENCYCLOPEDIA + @"Context.png");
|
||||
OpenEncyclopedia_Side_Menu = TxC(OPENENCYCLOPEDIA + @"Side_Menu.png");
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2108,6 +2117,14 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region [15_OpenEncyclopedia]
|
||||
|
||||
public CTexture OpenEncyclopedia_Background,
|
||||
OpenEncyclopedia_Context,
|
||||
OpenEncyclopedia_Side_Menu;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region [ 解放用 ]
|
||||
public List<CTexture> listTexture = new List<CTexture>();
|
||||
|
@ -128,7 +128,7 @@ namespace TJAPlayer3
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
|
@ -34,7 +34,9 @@ namespace TJAPlayer3
|
||||
return;
|
||||
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.継続;
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.Continuation;
|
||||
|
||||
TJAPlayer3.Skin.soundOnlineLoungeBGM?.t再生する();
|
||||
|
||||
this.currentMenu = ECurrentMenu.MAIN;
|
||||
this.menuPointer = ECurrentMenu.CDN_SELECT;
|
||||
@ -338,8 +340,8 @@ namespace TJAPlayer3
|
||||
if (currentMenu == ECurrentMenu.MAIN)
|
||||
{
|
||||
// Return to title screen
|
||||
TJAPlayer3.Skin.soundOnlineLoungeBGM.t停止する();
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る;
|
||||
TJAPlayer3.Skin.soundOnlineLoungeBGM?.t停止する();
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.ReturnToTitle;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
|
||||
}
|
||||
@ -378,8 +380,8 @@ namespace TJAPlayer3
|
||||
{
|
||||
// Quit
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
TJAPlayer3.Skin.soundOnlineLoungeBGM.t停止する();
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る;
|
||||
TJAPlayer3.Skin.soundOnlineLoungeBGM?.t停止する();
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.ReturnToTitle;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
|
||||
}
|
||||
@ -682,13 +684,6 @@ namespace TJAPlayer3
|
||||
|
||||
#region [Enums]
|
||||
|
||||
public enum E戻り値 : int
|
||||
{
|
||||
継続,
|
||||
タイトルに戻る,
|
||||
選曲した
|
||||
}
|
||||
|
||||
public enum ECurrentMenu : int
|
||||
{
|
||||
RETURN, // Return button
|
||||
@ -709,7 +704,7 @@ namespace TJAPlayer3
|
||||
private ECurrentMenu currentMenu;
|
||||
private ECurrentMenu menuPointer;
|
||||
private CMenuInfo[] menus;
|
||||
public E戻り値 eフェードアウト完了時の戻り値;
|
||||
public EReturnValue eフェードアウト完了時の戻り値;
|
||||
public CActFIFOBlack actFOtoTitle;
|
||||
|
||||
|
||||
|
@ -128,6 +128,12 @@ namespace TJAPlayer3
|
||||
{
|
||||
tFreeRessources(true);
|
||||
|
||||
if (_current.Pages == null)
|
||||
{
|
||||
Pages = new (int, CTexture, CTexture)[0];
|
||||
return; // Menus and Pages are null
|
||||
}
|
||||
|
||||
int _count = _current.Pages.Length;
|
||||
Pages = new (int, CTexture, CTexture)[_count];
|
||||
|
||||
@ -151,9 +157,13 @@ namespace TJAPlayer3
|
||||
if (_callStack.Count() <= 0)
|
||||
return true;
|
||||
|
||||
if (tArePagesOpened())
|
||||
PageIndex = 0;
|
||||
else
|
||||
tResetIndexes();
|
||||
|
||||
_current = _callStack.Pop();
|
||||
|
||||
tResetIndexes();
|
||||
tReallocateCurrentAccordingly();
|
||||
|
||||
return false;
|
||||
@ -168,7 +178,11 @@ namespace TJAPlayer3
|
||||
_callStack.Push(_current);
|
||||
_current = _current.Menus[MenuIndex - 1].Value;
|
||||
|
||||
tResetIndexes();
|
||||
if (tArePagesOpened())
|
||||
PageIndex = 0;
|
||||
else
|
||||
tResetIndexes();
|
||||
|
||||
tReallocateCurrentAccordingly();
|
||||
|
||||
return (true, false);
|
||||
@ -196,11 +210,13 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (pages)
|
||||
{
|
||||
PageIndex = (PageIndex + count + Pages.Length) % Pages.Length;
|
||||
if (Pages.Length > 0)
|
||||
PageIndex = (PageIndex + count + Pages.Length) % Pages.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuIndex = (MenuIndex + count + Submenus.Length) % Submenus.Length;
|
||||
if (Submenus.Length > 0)
|
||||
MenuIndex = (MenuIndex + count + Submenus.Length) % Submenus.Length;
|
||||
}
|
||||
}
|
||||
|
||||
|
192
TJAPlayer3/Stages/15.OpenEncyclopedia/COpenEncyclopedia.cs
Normal file
192
TJAPlayer3/Stages/15.OpenEncyclopedia/COpenEncyclopedia.cs
Normal file
@ -0,0 +1,192 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FDK;
|
||||
using System.Drawing;
|
||||
|
||||
// Minimalist menu class to use for custom menus
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class COpenEncyclopedia : CStage
|
||||
{
|
||||
public COpenEncyclopedia()
|
||||
{
|
||||
base.eステージID = Eステージ.Template;
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
|
||||
|
||||
// Load CActivity objects here
|
||||
// base.list子Activities.Add(this.act = new CAct());
|
||||
|
||||
base.list子Activities.Add(this.actFOtoTitle = new CActFIFOBlack());
|
||||
|
||||
}
|
||||
|
||||
public override void On活性化()
|
||||
{
|
||||
// On activation
|
||||
|
||||
if (base.b活性化してる)
|
||||
return;
|
||||
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.Continuation;
|
||||
|
||||
TJAPlayer3.Skin.soundEncyclopediaBGM?.t再生する();
|
||||
|
||||
_controler = new CEncyclopediaControler();
|
||||
|
||||
base.On活性化();
|
||||
}
|
||||
|
||||
public override void On非活性化()
|
||||
{
|
||||
// On de-activation
|
||||
|
||||
base.On非活性化();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの作成()
|
||||
{
|
||||
// Ressource allocation
|
||||
|
||||
base.OnManagedリソースの作成();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの解放()
|
||||
{
|
||||
// Ressource freeing
|
||||
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
|
||||
public override int On進行描画()
|
||||
{
|
||||
#region [Fetch variables]
|
||||
|
||||
_arePagesOpened = _controler.tArePagesOpened();
|
||||
bool _backToMain = false;
|
||||
|
||||
#endregion
|
||||
|
||||
#region [Displayables]
|
||||
|
||||
TJAPlayer3.Tx.OpenEncyclopedia_Background?.t2D描画(TJAPlayer3.app.Device, 0, 0);
|
||||
|
||||
if (_arePagesOpened)
|
||||
{
|
||||
TJAPlayer3.Tx.OpenEncyclopedia_Context?.t2D描画(TJAPlayer3.app.Device, 0, 0);
|
||||
|
||||
if (_controler.Pages.Length > 0)
|
||||
{
|
||||
var _page = _controler.Pages[_controler.PageIndex];
|
||||
|
||||
// To adapt for future 1080p update
|
||||
_page.Item2?.t2D描画(TJAPlayer3.app.Device, 640, 0);
|
||||
_page.Item3?.t2D描画(TJAPlayer3.app.Device, 640, 360);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = -7; i < 7; i++)
|
||||
{
|
||||
var _pos = (_controler.MenuIndex + i + (_controler.Submenus.Length * 7)) % _controler.Submenus.Length;
|
||||
var _menu = _controler.Submenus[_pos];
|
||||
|
||||
if (i != 0)
|
||||
{
|
||||
TJAPlayer3.Tx.OpenEncyclopedia_Side_Menu?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
||||
_menu.Item2?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.Tx.OpenEncyclopedia_Side_Menu?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
||||
_menu.Item2?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.OpenEncyclopedia_Side_Menu?.t2D中心基準描画(TJAPlayer3.app.Device, 320, 360 + i * 90);
|
||||
_menu.Item2?.t2D中心基準描画(TJAPlayer3.app.Device, 320, 360 + i * 90);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region [Inputs]
|
||||
|
||||
if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange))
|
||||
{
|
||||
_controler.tHandleRight();
|
||||
TJAPlayer3.Skin.sound変更音.t再生する();
|
||||
}
|
||||
|
||||
else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange))
|
||||
{
|
||||
_controler.tHandleLeft();
|
||||
TJAPlayer3.Skin.sound変更音.t再生する();
|
||||
}
|
||||
|
||||
else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Cancel))
|
||||
{
|
||||
_backToMain = _controler.tHandleBack();
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
}
|
||||
|
||||
else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide))
|
||||
{
|
||||
var (_b1, _b2) = _controler.tHandleEnter();
|
||||
_backToMain = _b2;
|
||||
|
||||
if (_b1)
|
||||
TJAPlayer3.Skin.sound変更音.t再生する();
|
||||
else
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region [Postprocessing]
|
||||
|
||||
if (_backToMain)
|
||||
{
|
||||
TJAPlayer3.Skin.soundEncyclopediaBGM?.t停止する();
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.ReturnToTitle;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region [FadeOut]
|
||||
|
||||
// Menu exit fade out transition
|
||||
switch (base.eフェーズID)
|
||||
{
|
||||
case CStage.Eフェーズ.共通_フェードアウト:
|
||||
if (this.actFOtoTitle.On進行描画() == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
return (int)this.eフェードアウト完了時の戻り値;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#region [Private]
|
||||
|
||||
private CEncyclopediaControler _controler;
|
||||
private bool _arePagesOpened;
|
||||
|
||||
public EReturnValue eフェードアウト完了時の戻り値;
|
||||
public CActFIFOBlack actFOtoTitle;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -29,7 +29,7 @@ namespace TJAPlayer3
|
||||
return;
|
||||
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.継続;
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.Continuation;
|
||||
|
||||
|
||||
|
||||
@ -79,18 +79,10 @@ namespace TJAPlayer3
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
public enum E戻り値 : int
|
||||
{
|
||||
継続,
|
||||
タイトルに戻る,
|
||||
選曲した
|
||||
}
|
||||
|
||||
#region [Private]
|
||||
|
||||
|
||||
public E戻り値 eフェードアウト完了時の戻り値;
|
||||
public EReturnValue eフェードアウト完了時の戻り値;
|
||||
public CActFIFOBlack actFOtoTitle;
|
||||
|
||||
#endregion
|
||||
|
@ -154,6 +154,7 @@
|
||||
<Compile Include="Stages\07.Game\Taiko\NotesManager.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\ScriptBG.cs" />
|
||||
<Compile Include="Stages\15.OpenEncyclopedia\CEncyclopediaControler.cs" />
|
||||
<Compile Include="Stages\15.OpenEncyclopedia\COpenEncyclopedia.cs" />
|
||||
<Compile Include="Stages\XX.Templates\CStageTemplate.cs" />
|
||||
<EmbeddedResource Include="Properties\Discord.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
|
Loading…
x
Reference in New Issue
Block a user