public void Print(TextWriter writer, int nTabs)
 {
     Logging.PrintTabs(writer, nTabs); writer.Write("( ");
     m_Object.Print(writer, nTabs + 1); writer.Write("\n");
     if (m_ActionSlots.Size != 0)
     {
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(":ActionSlots (\n");
         for (int i = 0; i < m_ActionSlots.Size; i++)
         {
             Logging.PrintTabs(writer, nTabs + 2); writer.Write("(\n");
             MHActionSequence pActions = m_ActionSlots.GetAt(i);
             if (pActions.Size == 0)
             {
                 writer.Write("NULL\n");
             }
             else
             {
                 pActions.Print(writer, nTabs + 2);
             }
             Logging.PrintTabs(writer, nTabs + 2); writer.Write(")\n");
         }
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(")\n");
     }
     Logging.PrintTabs(writer, nTabs); writer.Write(")\n");
 }
Exemple #2
0
        protected int m_nLastId; // Highest numbered ingredient.  Used to make new ids for clones.

        public MHGroup()
        {
            m_Items     = new MHSequence <MHIngredient>();
            m_StartUp   = new MHActionSequence();
            m_CloseDown = new MHActionSequence();
            m_Timers    = new List <MHTimer>();
        }
Exemple #3
0
        public override void Initialise(MHParseNode p, MHEngine engine)
        {
            base.Initialise(p, engine);
            MHParseNode pMovements = p.GetNamedArg(ASN1Codes.C_MOVEMENT_TABLE);

            if (pMovements != null)
            {
                for (int i = 0; i < pMovements.GetArgCount(); i++)
                {
                    MHMovement pMove = new MHMovement();
                    m_MovementTable.Append(pMove);
                    pMove.Initialise(pMovements.GetArgN(i), engine);
                }
            }
            MHParseNode pTokenGrp = p.GetNamedArg(ASN1Codes.C_TOKEN_GROUP_ITEMS);

            if (pTokenGrp != null)
            {
                for (int i = 0; i < pTokenGrp.GetArgCount(); i++)
                {
                    MHTokenGroupItem pToken = new MHTokenGroupItem();
                    m_TokenGrpItems.Append(pToken);
                    pToken.Initialise(pTokenGrp.GetArgN(i), engine);
                }
            }
            MHParseNode pNoToken = p.GetNamedArg(ASN1Codes.C_NO_TOKEN_ACTION_SLOTS);

            if (pNoToken != null)
            {
                for (int i = 0; i < pNoToken.GetArgCount(); i++)
                {
                    MHParseNode      pAct     = pNoToken.GetArgN(i);
                    MHActionSequence pActions = new MHActionSequence();
                    m_NoTokenActionSlots.Append(pActions);
                    // The action slot entry may be NULL.
                    if (pAct.NodeType != MHParseNode.PNNull)
                    {
                        pActions.Initialise(pAct, engine);
                    }
                }
            }
        }
 public void Initialise(MHParseNode p, MHEngine engine)
 {
     // A pair consisting of an object reference and an optional action slot sequence.
     m_Object.Initialise(p.GetSeqN(0), engine);
     if (p.GetSeqCount() > 1)
     {
         MHParseNode pSlots = p.GetSeqN(1);
         for (int i = 0; i < pSlots.GetSeqCount(); i++)
         {
             MHParseNode      pAct     = pSlots.GetSeqN(i);
             MHActionSequence pActions = new MHActionSequence();
             m_ActionSlots.Append(pActions);
             // The action slot entry may be NULL.
             if (pAct.NodeType != MHParseNode.PNNull)
             {
                 pActions.Initialise(pAct, engine);
             }
         }
     }
 }
Exemple #5
0
 protected void PrintContents(TextWriter writer, int nTabs)
 {
     base.Print(writer, nTabs + 1);
     if (m_MovementTable.Size != 0)
     {
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(":MovementTable (\n");
         for (int i = 0; i < m_MovementTable.Size; i++)
         {
             m_MovementTable.GetAt(i).Print(writer, nTabs + 2);
         }
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(")\n");
     }
     if (m_TokenGrpItems.Size != 0)
     {
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(":TokenGroupItems (\n");
         for (int i = 0; i < m_TokenGrpItems.Size; i++)
         {
             m_TokenGrpItems.GetAt(i).Print(writer, nTabs + 2);
         }
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(")\n");
     }
     if (m_NoTokenActionSlots.Size != 0)
     {
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(":NoTokenActionSlots (\n");
         for (int i = 0; i < m_NoTokenActionSlots.Size; i++)
         {
             MHActionSequence pActions = m_NoTokenActionSlots.GetAt(i);
             if (pActions.Size == 0)
             {
                 Logging.PrintTabs(writer, nTabs + 2); writer.Write("NULL ");
             }
             else
             {
                 pActions.Print(writer, nTabs + 2);
             }
         }
         Logging.PrintTabs(writer, nTabs + 1); writer.Write(")\n");
     }
 }
Exemple #6
0
        protected string m_Path; // Path from the root directory to this application.  Either the null string or
        // a string of the form /a/b/c .

        public MHApplication()
        {
            m_fIsApp        = true;
            m_nCharSet      = 0;
            m_nTextCHook    = 0;
            m_nIPCHook      = 0;
            m_nStrCHook     = 0;
            m_nBitmapCHook  = 0;
            m_nLineArtCHook = 0;

            m_pCurrentScene      = null;
            m_nLockCount         = 0;
            m_fRestarting        = false;
            m_OnSpawnCloseDown   = new MHActionSequence();
            m_OnRestart          = new MHActionSequence();
            m_BGColour           = new MHColour();
            m_TextColour         = new MHColour();
            m_ButtonRefColour    = new MHColour();
            m_HighlightRefColour = new MHColour();
            m_SliderRefColour    = new MHColour();
            m_Font         = new MHFontBody();
            m_FontAttrs    = new MHOctetString();
            m_DisplayStack = new MHSequence <MHVisible>();
        }
Exemple #7
0
 public MHLink()
 {
     m_EventSource = new MHObjectRef();
     m_EventData   = new MHUnion();
     m_LinkEffect  = new MHActionSequence();
 }