// // Game Module Configuration: EvalKit // ModuleFullName = "Eval Kit" ModuleDescription = "The Evaluation Kit's game module." ModuleAuthor = "Artificial Studios" ModuleWebsite = "www.artificialstudios.com" ModuleCopyrightDate = "2005" ModuleMediaDirectories = "EvalKit" ModuleAssemblyReferences = "" //------------------------------------------------------- [InputControls] // NOTE: Never add config settings in this block, only input mappings //------------------------------------------------------- TestHandle1 = l TestHandle2 = o
// a couple of game input handle objects public static GameInputHandle testHandle1; public static GameInputHandle testHandle2; ... // get our Module's INI and load the input handles! MInput.LoadInputConfig(MConfigFile.ModuleConfig); testHandle1 = new GameInputHandle("TestHandle1"); testHandle2 = new GameInputHandle("TestHandle2");
// handy structure to contain information about the Game Modules we find struct ModuleInfo { public String ModuleFullName; public String ModuleDirectoryName; public String ModuleDescription; public String ModuleAuthor; }; ... // Enumerate all installed game modules ArrayList ModuleDirList = MHelpers.EnumerateDirectories(MConfigFile.MainConfig.GetString("SearchPath"), 2); foreach (String dir in ModuleDirList) { // Modules are never in the main Scripts directory String lowerDir = dir.ToLower(); if (lowerDir.Contains("\\scripts\\")) continue; // Modules should always have Scripts subdirectories String scriptsDir = lowerDir + "scripts"; if (!System.IO.Directory.Exists(scriptsDir)) continue; ArrayList iniFiles = MHelpers.EnumerateFiles(lowerDir, ".ini", 1); // let's only add modules that have properly named INI files foreach (String iniFile in iniFiles) { // load the Module's INI file and store some information about it MConfigFile config = new MConfigFile(); config.Load(lowerDir + iniFile); ModuleInfo modInfo; modInfo.ModuleDirectoryName = iniFile.Substring(0, iniFile.IndexOf(".ini")); modInfo.ModuleFullName = config.GetString("ModuleFullName"); modInfo.ModuleDescription = config.GetString("ModuleDescription"); modInfo.ModuleAuthor = config.GetString("ModuleAuthor"); ModuleInfos.Add(modInfo); } }