本文整理汇总了C#中Scenario.PostParse方法的典型用法代码示例。如果您正苦于以下问题:C# Scenario.PostParse方法的具体用法?C# Scenario.PostParse怎么用?C# Scenario.PostParse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scenario
的用法示例。
在下文中一共展示了Scenario.PostParse方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
public override bool Parse(XmlDbRow row, SimPersonality personality, ref string error)
{
ProductVersion productVersion;
if (!ParserFunctions.TryParseEnum<ProductVersion>(row.GetString("ProductVersion"), out productVersion, ProductVersion.BaseGame))
{
error = "ProductVersion missing";
return false;
}
if (!GameUtils.IsInstalled(productVersion))
{
return true;
}
string module = row.GetString("Module");
if ((!string.IsNullOrEmpty(module)) && (!Common.AssemblyCheck.IsInstalled(module)))
{
return true;
}
// Must be after the product version checks, but before everything else
if (!base.Parse(row, personality, ref error)) return false;
if (!row.Exists("Scenario"))
{
error = "Scenario missing";
return false;
}
else if (!row.Exists("Weight"))
{
error = "Weight missing";
return false;
}
else if (!row.Exists("Name"))
{
error = "Name missing";
return false;
}
mName = new NameOption(row);
Type classType = row.GetClassType("Scenario");
if (classType == null)
{
error = "Scenario class not found";
return false;
}
int weight = row.GetInt("Weight");
if (weight > 0)
{
mVisible = true;
}
else
{
weight = 1;
if (!row.Exists("ShouldPush"))
{
error = "ShouldPush missing";
return false;
}
}
SetValue (weight);
try
{
mScenario = classType.GetConstructor(new Type[0]).Invoke(new object[0]) as Scenario;
}
catch
{}
if (mScenario == null)
{
error = "Scenario constructor fail";
return false;
}
mScenario.Manager = personality;
if (!mScenario.Parse(row, ref error))
{
return false;
}
if (!mScenario.PostParse(ref error))
{
return false;
}
IViolentScenario violentScenario = mScenario as IViolentScenario;
if ((violentScenario != null) && (violentScenario.IsViolent))
{
PushDeathChanceOption.Installed = true;
}
return true;
}