Ejemplo n.º 1
0
 public void CompileNextLevel()
 {
     if (GrammarGenerator._FullGameScript != null)
     {
         generatorText = GrammarGenerator._FullGameScript;
         StopAllCoroutines();
         _program = GameCompiler.Compile(GrammarGenerator._FullGameScript);
         StartCoroutine(_program.Run());
     }
 }
Ejemplo n.º 2
0
    public static GameProgram Compile(string source)
    {
        AntlrInputStream  antlerStream = new AntlrInputStream(source);
        GameSetupLexer    lexer        = new GameSetupLexer(antlerStream);
        CommonTokenStream tokenStream  = new CommonTokenStream(lexer);
        GameSetupParser   parser       = new GameSetupParser(tokenStream);

        parser.prog(); // <-- compile happens here (see .g4 file)

        GameCompiler compiler = parser.Compiler;
        GameProgram  program  = new GameProgram(compiler.Elements);

        return(program);
    }
Ejemplo n.º 3
0
    public void CompileAndRun()
    {
        if (GameObject.Find("ScriptDisplay") != null)
        {
            grammarDisplay = GameObject.Find("ScriptDisplay").GetComponent <Text>();
        }

        if (GrammarGenerator._FullGameScript == null || GrammarGenerator._FullGameScript.Equals(""))
        {
            grammarDisplay.text = "Remember to press 'Generate Script' before creating the game!";
        }
        else
        {
            generatorText = GrammarGenerator._FullGameScript;
            StopAllCoroutines();
            _program = GameCompiler.Compile(GrammarGenerator._FullGameScript);
            StartCoroutine(_program.Run());
        }
    }
Ejemplo n.º 4
0
            public void ConnectToMachine(MachineBase m, GameProgram g)
            {
                _frameHz     = m.FrameHZ;
                Framebuffer  = m.CreateFrameBuffer();
                BufferWidth  = Framebuffer.VisiblePitch;
                BufferHeight = Framebuffer.Scanlines;
                _vidbuffer   = new int[BufferWidth * BufferHeight];

                uint newsamplerate = (uint)m.SoundSampleFrequency;

                if (newsamplerate != _samplerate)
                {
                    // really shouldn't happen (after init), but if it does, we're ready
                    _resampler?.Dispose();
                    _resampler  = new SpeexResampler((SpeexResampler.Quality) 3, newsamplerate, 44100, newsamplerate, 44100, null, null);
                    _samplerate = newsamplerate;
                    _dcfilter   = new DCFilter(256);
                }

                if (g.MachineType == MachineType.A2600PAL)
                {
                    _palette = TIATables.PALPalette;
                }
                else if (g.MachineType == MachineType.A7800PAL)
                {
                    _palette = MariaTables.PALPalette;
                }
                else if (g.MachineType == MachineType.A2600NTSC)
                {
                    _palette = TIATables.NTSCPalette;
                }
                else
                {
                    _palette = MariaTables.NTSCPalette;
                }
            }