MCPcopy Create free account
hub / github.com/Cubitect/cubiomes-viewer / run

Method run

src/searchthread.cpp:943–1097  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

941}
942
943void SearchWorker::run()
944{
945 Pos origin = {0,0};
946 env.init(master->mc, master->large, master->condtree);
947
948 switch (master->searchtype)
949 {
950 case SEARCH_LIST:
951 while (!*env.stop && getNextItem())
952 { // seed = slist[..]
953 uint64_t ie = idx+scnt < len ? idx+scnt : len;
954 for (uint64_t i = idx; i < ie; i++)
955 {
956 seed = slist[i];
957 env.setSeed(seed);
958 if (testTreeAt(origin, &env, PASS_FULL_64, nullptr) == COND_OK)
959 {
960 if (!*env.stop)
961 emit result(seed);
962 }
963 }
964 //if (ie == len) // done
965 // break;
966 }
967 break;
968
969 case SEARCH_48ONLY:
970 while (!*env.stop && getNextItem())
971 {
972 if (slist)
973 {
974 uint64_t ie = idx+scnt < len ? idx+scnt : len;
975 for (uint64_t i = idx; i < ie; i++)
976 {
977 seed = slist[i];
978 env.setSeed(seed);
979 if (testTreeAt(origin, &env, PASS_FULL_48, nullptr) != COND_FAILED)
980 {
981 if (!*env.stop)
982 emit result(seed);
983 }
984 }
985 }
986 else
987 {
988 seed = sstart;
989 for (int i = 0; i < scnt; i++)
990 {
991 env.setSeed(seed);
992 if (testTreeAt(origin, &env, PASS_FULL_48, nullptr) != COND_FAILED)
993 {
994 if (!*env.stop)
995 emit result(seed);
996 }
997
998 if (seed >= MASK48)
999 { // done
1000 break;

Callers

nothing calls this directly

Calls 3

testTreeAtFunction · 0.85
initMethod · 0.45
setSeedMethod · 0.45

Tested by

no test coverage detected