about summary refs log tree commit diff stats
path: root/AnodyneArchipelago/Menu/MenuState.cs
diff options
context:
space:
mode:
Diffstat (limited to 'AnodyneArchipelago/Menu/MenuState.cs')
-rw-r--r--AnodyneArchipelago/Menu/MenuState.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/AnodyneArchipelago/Menu/MenuState.cs b/AnodyneArchipelago/Menu/MenuState.cs index b9ee0dd..cabb94b 100644 --- a/AnodyneArchipelago/Menu/MenuState.cs +++ b/AnodyneArchipelago/Menu/MenuState.cs
@@ -33,6 +33,9 @@ namespace AnodyneArchipelago.Menu
33 33
34 private int _selectorIndex = 0; 34 private int _selectorIndex = 0;
35 35
36 private bool _fadingOut = false;
37 private bool _isNewGame;
38
36 public override void Create() 39 public override void Create()
37 { 40 {
38 _selector = new(); 41 _selector = new();
@@ -65,6 +68,18 @@ namespace AnodyneArchipelago.Menu
65 68
66 public override void Update() 69 public override void Update()
67 { 70 {
71 if (_fadingOut)
72 {
73 GlobalState.black_overlay.ChangeAlpha(0.72f);
74
75 if (GlobalState.black_overlay.alpha == 1.0)
76 {
77 ChangeStateEvent(_isNewGame ? AnodyneSharp.AnodyneGame.GameState.Intro : AnodyneSharp.AnodyneGame.GameState.Game);
78 }
79
80 return;
81 }
82
68 if (_substate != null) 83 if (_substate != null)
69 { 84 {
70 _substate.Update(); 85 _substate.Update();
@@ -217,6 +232,9 @@ namespace AnodyneArchipelago.Menu
217 case 2: 232 case 2:
218 _substate = new TextEntry("Password:", _apPassword, (string value) => { _apPassword = value; UpdateLabels(); }); 233 _substate = new TextEntry("Password:", _apPassword, (string value) => { _apPassword = value; UpdateLabels(); });
219 break; 234 break;
235 case 4:
236 _substate = new ConnectionState(_apServer, _apSlot, _apPassword, OnConnected);
237 break;
220 case 6: 238 case 6:
221 GlobalState.ClosingGame = true; 239 GlobalState.ClosingGame = true;
222 break; 240 break;
@@ -231,5 +249,25 @@ namespace AnodyneArchipelago.Menu
231 { 249 {
232 250
233 } 251 }
252
253 private void OnConnected(ArchipelagoManager archipelagoManager)
254 {
255 Plugin.ArchipelagoManager = archipelagoManager;
256
257 GlobalState.Save saveFile = GlobalState.Save.GetSave(string.Format("{0}Saves/Save_zzAP{1}_{2}.dat", GameConstants.SavePath, Plugin.ArchipelagoManager.GetSeed(), Plugin.ArchipelagoManager.GetPlayer()));
258
259 GlobalState.ResetValues();
260 if (saveFile != null)
261 {
262 GlobalState.LoadSave(saveFile);
263 _isNewGame = false;
264 }
265 else
266 {
267 _isNewGame = true;
268 }
269
270 _fadingOut = true;
271 }
234 } 272 }
235} 273}