public void StreamPlayerVarIndex(IO.BitStream s, ref int playerVarIndex, int refTypeIndex, Model.MegaloScriptModel model) { Contract.Assert(refTypeIndex >= 0 && refTypeIndex < ObjectReferenceType.Members.Count); var varIndexType = GetPlayerVarIndexValueType(refTypeIndex); s.StreamIndex(ref playerVarIndex, varIndexType.BitLength); }
bool ValidatePlayerVarIndex(int playerVarIndex, int refTypeIndex, Model.MegaloScriptModel model) { if (playerVarIndex.IsNone()) { return(true); } var varIndexType = GetPlayerVarIndexValueType(refTypeIndex); return(model.VarIndexIsValid(varIndexType.VarType, varIndexType.VarSet, playerVarIndex)); }
public void StreamPlayerVarIndex <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s, ref int playerVarIndex, int refTypeIndex, Model.MegaloScriptModel model) where TDoc : class where TCursor : class { const string kAttributeNamePlayerVarIndex = "playerVarIndex"; if ((model.TagElementStreamSerializeFlags & Model.MegaloScriptModelTagElementStreamFlags.UseIndexNames) != 0) { var varIndexType = GetPlayerVarIndexValueType(refTypeIndex); var resolving_ctxt = new Model.MegaloScriptModelVariableSet.IndexNameResolvingContext(model, varIndexType.VarSet, varIndexType.VarType, supportNone: true); s.StreamAttributeIdAsString(kAttributeNamePlayerVarIndex, ref playerVarIndex, resolving_ctxt, Model.MegaloScriptModelVariableSet.IndexNameResolvingContext.IdResolver, Model.MegaloScriptModelVariableSet.IndexNameResolvingContext.NameResolver); } else { s.StreamAttribute(kAttributeNamePlayerVarIndex, ref playerVarIndex); } Contract.Assert(ValidatePlayerVarIndex(playerVarIndex, refTypeIndex, model)); }