/// <summary>
        /// Performs the initial setup for the game mode being created.
        /// </summary>
        /// <param name="p_dlgShowView">The delegate to use to display a view.</param>
        /// <param name="p_dlgShowMessage">The delegate to use to display a message.</param>
        /// <returns><c>true</c> if the setup completed successfully;
        /// <c>false</c> otherwise.</returns>
        public bool PerformInitialSetup(ShowViewDelegate p_dlgShowView, ShowMessageDelegate p_dlgShowMessage)
        {
            if (EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId] == null)
                EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId] = new PerGameModeSettings<object>();

            StateOfDecaySetupVM vmlSetup = new StateOfDecaySetupVM(EnvironmentInfo, GameModeDescriptor);
            SetupForm frmSetup = new SetupForm(vmlSetup);
            if (((DialogResult)p_dlgShowView(frmSetup, true)) == DialogResult.Cancel)
                return false;
            return vmlSetup.Save();
        }