GlobalStatic.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Collections.Generic;
  2. using NTERA.Core;
  3. using NTERA.EmuEra.Game.EraEmu.GameData;
  4. using NTERA.EmuEra.Game.EraEmu.GameData.Expression;
  5. using NTERA.EmuEra.Game.EraEmu.GameData.Variable;
  6. using NTERA.EmuEra.Game.EraEmu.GameProc;
  7. namespace NTERA.EmuEra.Game
  8. {
  9. /* 1756 作成
  10. * できるだけデータはprivateにして必要なものだけが参照するようにしようという設計だったのは今は昔。
  11. * 改変のたびにProcess.Instance.XXXなんかがどんどん増えていく。
  12. * まあ、増えるのは仕方ないと諦める事にして、行儀の悪い参照の仕方をするものたちをせめて一箇所に集めて管理しようという計画である。
  13. * これからはInstanceを public static に解放することはやめ、ここから参照する。
  14. * しかし、できるならここからの参照は減らしたい。
  15. */
  16. internal static class GlobalStatic
  17. {
  18. //これは生成される順序で並んでいる。
  19. //下から上を参照した場合、nullを返されることがある。
  20. //Config Replace
  21. public static IConsole Console;
  22. public static IMainWindow MainWindow;
  23. public static Process Process;
  24. //Config.RenameDic
  25. public static GameBase GameBaseData;
  26. public static ConstantData ConstantData;
  27. public static VariableData VariableData;
  28. //StrForm
  29. public static VariableEvaluator VEvaluator;
  30. public static IdentifierDictionary IdentifierDictionary;
  31. public static ExpressionMediator EMediator;
  32. //
  33. public static LabelDictionary LabelDictionary;
  34. //ERBloaderに引数解析の結果を渡すための橋渡し変数
  35. //1756 Processから移動。Program.AnalysisMode用
  36. public static readonly Dictionary<string, long> tempDic = new Dictionary<string, long>();
  37. #if DEBUG
  38. public static List<FunctionLabelLine> StackList = new List<FunctionLabelLine>();
  39. #endif
  40. public static void Reset()
  41. {
  42. Process = null;
  43. ConstantData = null;
  44. GameBaseData = null;
  45. EMediator = null;
  46. VEvaluator = null;
  47. VariableData = null;
  48. LabelDictionary = null;
  49. IdentifierDictionary = null;
  50. tempDic.Clear();
  51. }
  52. }
  53. }