RS::Bundle::Bundle(Main &main, OCamlBinding &ocaml) : tiles(make_tiles()) , act(WIN_SIZEVI) { ftui::Activity &act = this->act; auto pushFun = [&](std::string const &fname, lua_CFunction f) { act.registerLuaCFun_table("ResultState", fname, f); }; std::ifstream is("res/layout/result_state.xml"); act.inflate(is); main.loadSharedScripts(act); luaL_dostring(act.getLuaState() , "ResultState = {}; GridColor = 0x0000FF;"); pushFun("tagForLeave", &tagForLeaveG); this->act.fireEvent("ON_GAME_LOADED"); return ; }
PS::Bundle::Bundle(Main &main, OCamlBinding &ocaml) : tiles(make_tiles()) , act(WIN_SIZEVI) , selectedId(0) , grids({Grid::def}) { ftui::Activity &act = this->act; auto pushFun = [&](std::string const &fname, lua_CFunction f) { act.registerLuaCFun_table("PickState", fname, f); }; std::ifstream is("res/layout/pick_state.xml"); Grid *gr; act.inflate(is); main.loadSharedScripts(act); luaL_dostring(act.getLuaState() , "PickState = {}; GridColor = 0x0000FF;"); pushFun("selectGrid", &selectGridG); pushFun("deleteGrid", &deleteGridG); pushFun("pushRandomGrid", &pushRandomGridG); pushFun("getNumGrids", &getNumGridsG); pushFun("getGridName", &getGridNameG); pushFun("getGrid", &getGridG); pushFun("getMainGridId", &getMainGridIdG); pushFun("useDefaultGrid", &useDefaultGridG); pushFun("setAlgorithmId", &setAlgorithmIdG); pushFun("setHeuristicId", &setHeuristicIdG); pushFun("setCost", &setCostG); pushFun("tagForSolving", &tagForSolvingG); for (auto const &fileName : main.files) { this->grids.emplace_back(fileName); gr = &this->grids[this->grids.size() - 1]; gr->convert(ocaml.transposition_toabstract(gr->getSize())); } // this->act.fireEvent("GRID_LIST_UPDATE", this->extractGridNames() // , this->grids.size()); this->act.fireEvent("ON_GAME_LOADED"); return ; }