Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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));
            }
Exemplo n.º 3
0
            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));
            }