public void CompileNextLevel() { if (GrammarGenerator._FullGameScript != null) { generatorText = GrammarGenerator._FullGameScript; StopAllCoroutines(); _program = GameCompiler.Compile(GrammarGenerator._FullGameScript); StartCoroutine(_program.Run()); } }
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); }
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()); } }
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; } }