Example #1
0
        public AnimBP(ref Parser _parser)
        {
            name = _parser.GetToken(false);
            _parser.GetToken(false); // "{"

            while (!_parser.EndOfFile)
            {
                string token = _parser.GetToken(false);

                if (token == "}")
                {
                    break;
                }
                else if (token == "code_block")
                {
                    AnimBPCodeBlock codeBlock = new AnimBPCodeBlock();
                    codeBlock.name   = _parser.GetToken(false);
                    codeBlock.buffer = _parser.ReadTillToken("end_code_block");
                    _animBPCodeBlocks.Add(codeBlock);
                }
                else if (token == "event")
                {
                    AnimBPEvent ev = new AnimBPEvent(ref _parser);
                    _animBPEvents.Add(ev);
                }
                else
                {
                    throw new Exception("AnimBP unknown or unexpcted token " + token);
                }
            }
        }
Example #2
0
        public void WriteCPP(string fileName)
        {
            string __cppBuffer    = "";
            string __fileNameOnly = Path.GetFileName(fileName);

            __cppBuffer += string.Format("// {0} - This file has been auto generated by the BuildTool\n", __fileNameOnly);
            __cppBuffer += "// Please do NOT modify this file!\n";
            __cppBuffer += "\n";
            __cppBuffer += "#include \"game_precompiled.h\"\n";
            __cppBuffer += "#pragma hdrstop\n";
            __cppBuffer += "#include \"Game_local.h\"\n";
            __cppBuffer += "// This file has been auto generated by the BuildTool Please do NOT modify this file!\n";
            __cppBuffer += "\n";
            __cppBuffer += string.Format("CLASS_STATES_DECLARATION({0})\n", classname);
            for (int i = 0; i < _animBP.Count; i++)
            {
                AnimBP _anim = _animBP[i];

                foreach (AnimBPEvent ev in _anim._animBPEvents)
                {
                    __cppBuffer += string.Format("\tSTATE(\"{0}\", {1}::State_{2})\n", ev.EventName, classname, ev.EventName);
                }
            }
            __cppBuffer += "END_CLASS_STATES\n";

            __cppBuffer += "// This file has been auto generated by the BuildTool Please do NOT modify this file!\n";
            for (int i = 0; i < _animBP.Count; i++)
            {
                AnimBP _anim = _animBP[i];

                foreach (AnimBPEvent ev in _anim._animBPEvents)
                {
                    AnimBPCodeBlock codeBlock = _anim.FindCodeBlock(ev.CodeName);

                    __cppBuffer += string.Format("stateResult_t {0}::State_{1}(const stateParms_t&parms)\n", classname, ev.EventName);
                    __cppBuffer += EvaluateCodeBlock(codeBlock.buffer, ev.Macro);
                }
            }

            File.WriteAllText(fileName, __cppBuffer);
        }