state("Czarodzieje"){} startup{ refreshRate = 30; //settings.Add("inSplitter",false); //settings.SetToolTip("inSplitter","If unchecked, splitter is synchronized with splits in LiveSplit, otherwise autosplitter uses own split counter, allowing for additional manual splits."); settings.Add("checkStart",true); } init{ //leave Func<string,bool> getLoc = name=>{ byte[] buffer=new byte[name.Length]; vars.gameFile.Seek(12,SeekOrigin.Begin); vars.gameFile.Read(buffer,0,buffer.Length); if(Encoding.UTF8.GetString(buffer, 0, buffer.Length)==name){ return true; }else{ return false; } }; Func<int,bool> getWiz = position=>{ byte[] czarodziej=new byte[1]; vars.invFile.Seek(position*8+8,SeekOrigin.Begin); vars.invFile.Read(czarodziej,0,1); if(czarodziej[0]>0){ return true; }else{ return false; } }; Func<FileStream, int> getMini= file =>{ byte[] byt=new byte[1]; file.Seek(8,SeekOrigin.Begin); file.Read(byt,0,1); return byt[0]; }; Func<int> getSplit=()=>{ return timer.CurrentSplitIndex; }; var page = modules.First(); var gameDir = Path.GetDirectoryName(page.FileName); vars.saveDir=gameDir+"\\Common\\"; vars.gameFile=new FileStream(vars.saveDir+"GAME0.ARR", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); vars.invFile=new FileStream(vars.saveDir+"INVEST0.ARR", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); vars.miotFile=new FileStream(vars.saveDir+"MIOTLY0.ARR", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); vars.shootFile=new FileStream(vars.saveDir+"SHOOTER0.ARR", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); vars.prog=0; vars.starter=settings["checkStart"]; //instruction //get current split vars.getSplit=getSplit; //check Reksio's location vars.getLoc=getLoc; //check if player already got wizard's testimony vars.getWiz=getWiz; //check for one-byte value in arr file vars.getMini=getMini; vars.idBurektor=0; vars.idGulguldryk=1; vars.idSnejk=2; vars.idWaldi=3; vars.idSpielmauster=4; vars.idChrumburak=5; vars.idBarandalf=6; } start{ if(vars.getLoc("INTRO")) vars.starter=false; if(vars.getLoc("HILLS")&&vars.starter==false){ return true; } } split{ //modify int curr=vars.getSplit(); switch (curr) { case 0: if(vars.getLoc("TELEP_PODWORKO")) return true; break; case 1: if(vars.getLoc("GABINETDYR")) return true; break; case 2: if(vars.getLoc("MIOTSHOP")) return true; break; case 3: if(vars.getLoc("SHOOTER")) return true; break; case 4: if(vars.getLoc("MIOTLY")) return true; break; case 5: if(vars.getWiz(vars.Spielmauster)) return true; break; case 6: if(vars.getLoc("MIOTLY")&&(vars.getMini(vars.miotFile)==2||vars.getMini(vars.miotFile)==4)) return true; break; case 7: if(vars.getWiz(vars.Chrumburak)||vars.getWiz(vars.Barandalf)) return true; break; case 8: if(vars.getLoc("MIOTLY")&&(vars.getMini(vars.miotFile)==2||vars.getMini(vars.miotFile)==4)) return true; break; case 9: if(vars.getWiz(vars.Chrumburak)&&vars.getWiz(vars.Barandalf)) return true; break; case 10: if(vars.getLoc("SHOOTER")&&vars.getMini(vars.shootFile)==2) return true; break; case 11: if(vars.getLoc("SALA")) return true; break; case 12: if(vars.getLoc("OUTRO_1")) return true; break; } }