mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	adjusted RogueViz
This commit is contained in:
		| @@ -207,7 +207,7 @@ int notry = 0; | ||||
| void bantar() { | ||||
|   if(!on) return; | ||||
|   cwt = cellwalker(currentmap->gamestart(), 0); | ||||
|   viewctr = heptspin(cwt.at->master, 0); | ||||
|   centerover = cwt.at; | ||||
|   infos.clear(); | ||||
|    | ||||
|   vector<bantar_config> genchoices; | ||||
|   | ||||
| @@ -6,7 +6,7 @@ namespace hr { | ||||
| #if CAP_SHOT | ||||
| struct location { | ||||
|   transmatrix lView; | ||||
|   heptspin lviewctr; | ||||
|   cell *lco; | ||||
|   }; | ||||
|  | ||||
| struct lineinfo { | ||||
| @@ -19,10 +19,10 @@ map<int, lineinfo> lines; | ||||
|  | ||||
| location loc_multiply(location orig, transmatrix T) { | ||||
|   dynamicval<transmatrix> dv(View, orig.lView); | ||||
|   dynamicval<heptspin> dc(viewctr, orig.lviewctr); | ||||
|   dynamicval<cell*> dc(centerover, orig.lco); | ||||
|   View = inverse(T) * View; | ||||
|   for(int a=0; a<10; a++) optimizeview(); | ||||
|   return location{View, viewctr}; | ||||
|   return location{View, centerover}; | ||||
|   } | ||||
|  | ||||
| bool show_map = false; | ||||
| @@ -31,8 +31,8 @@ void cvl_marker() { | ||||
|   if(show_map) for(auto& l: lines) { | ||||
|     int id = 0; | ||||
|     for(auto& loc: l.second.locs) { | ||||
|       if(gmatrix.count(loc.lviewctr.at->c7)) { | ||||
|         transmatrix T = gmatrix[loc.lviewctr.at->c7] * inverse(spin(loc.lviewctr.spin*2*M_PI/S7 + master_to_c7_angle())) * inverse(loc.lView); | ||||
|       if(gmatrix.count(loc.lco)) { | ||||
|         transmatrix T = gmatrix[loc.lco] * inverse(loc.lView); | ||||
|         queuepoly(T, cgi.shAsymmetric, 0xFF00FFFF); | ||||
|         queuestr(T, 1.0, its(l.first)+"/"+its(id), 0xFFFFFF); | ||||
|         } | ||||
| @@ -54,7 +54,7 @@ int readArgs() { | ||||
|     int id; | ||||
|     lineinfo l0;     | ||||
|     scan(f, id, l0.plus_matrices, l0.minus_matrices); | ||||
|     l0.locs.push_back(location{View, viewctr}); | ||||
|     l0.locs.push_back(location{View, centerover}); | ||||
|     for(int i=1; i<l0.plus_matrices; i++) | ||||
|       l0.locs.push_back(loc_multiply(l0.locs.back(), xpush(1))); | ||||
|     lines[id] = std::move(l0); | ||||
| @@ -70,18 +70,18 @@ int readArgs() { | ||||
|       for(int a=0; a<9; a++) scan(f, T[0][a]); | ||||
|       scan(f, l1.plus_matrices, l1.minus_matrices); | ||||
|       auto old = lines[id].locs[step]; | ||||
|       println(hlog, "FROM ", old.lView, old.lviewctr, " id=", id, " step=", step); | ||||
|       println(hlog, "FROM ", old.lView, old.lco, " id=", id, " step=", step); | ||||
|       l1.locs.push_back(loc_multiply(old, T)); | ||||
|       println(hlog, "TO ", l1.locs.back().lView, l1.locs.back().lviewctr, "; creating ", l1.plus_matrices); | ||||
|       println(hlog, "TO ", l1.locs.back().lView, l1.locs.back().lco, "; creating ", l1.plus_matrices); | ||||
|       for(int i=1; i<l1.plus_matrices; i++) | ||||
|         l1.locs.push_back(loc_multiply(l1.locs.back(), xpush(1))); | ||||
|       println(hlog, "LAST ", l1.locs.back().lView, l1.locs.back().lviewctr); | ||||
|       println(hlog, "LAST ", l1.locs.back().lView, l1.locs.back().lco); | ||||
|       } | ||||
|     } | ||||
|   else if(argis("-cvllist")) { | ||||
|     for(auto& l: lines) | ||||
|       for(auto& loc: l.second.locs) { | ||||
|         println(hlog, l.first, ". ", loc.lviewctr, " (dist=", celldist(loc.lviewctr.at->c7), "), View = ", loc.lView); | ||||
|         println(hlog, l.first, ". ", loc.lco, " (dist=", celldist(loc.lco), "), View = ", loc.lView); | ||||
|         } | ||||
|     } | ||||
|   else if(argis("-cvlmap")) { | ||||
| @@ -93,7 +93,7 @@ int readArgs() { | ||||
|       int i = 0; | ||||
|       for(auto& loc: p.second.locs) { | ||||
|         dynamicval<transmatrix> dv(View, loc.lView); | ||||
|         dynamicval<heptspin> dc(viewctr, loc.lviewctr); | ||||
|         dynamicval<cell*> dc(centerover, loc.lco); | ||||
|         shot::take(format(s.c_str(), p.first, i++)); | ||||
|         } | ||||
|       } | ||||
|   | ||||
| @@ -237,7 +237,7 @@ namespace flocking { | ||||
|       auto m = vd.m; | ||||
|       // these two functions compute new base and at, based on pats[i] | ||||
|       m->at = pats[i]; | ||||
|       virtualRebase(m, true); | ||||
|       virtualRebase(m); | ||||
|       m->vel = vels[i]; | ||||
|       } | ||||
|     shmup::fixStorage(); | ||||
| @@ -252,7 +252,7 @@ namespace flocking { | ||||
|  | ||||
|       if(follow == 1) { | ||||
|         gmatrix.clear(); | ||||
|         vdata[0].m->pat = View * calc_relative_matrix(vdata[0].m->base, viewctr.at->c7, C0) * vdata[0].m->at; | ||||
|         vdata[0].m->pat = View * calc_relative_matrix(vdata[0].m->base, centerover, C0) * vdata[0].m->at; | ||||
|         View = spin(90 * degree) * inverse(vdata[0].m->pat) * View; | ||||
|         if(GDIM == 3) { | ||||
|           View = hr::cspin(1, 2, 90 * degree) * View; | ||||
| @@ -274,7 +274,6 @@ namespace flocking { | ||||
|         } | ||||
|  | ||||
|       optimizeview(); | ||||
|       centerover.at = viewctr.at->c7; | ||||
|       compute_graphical_distance(); | ||||
|       gmatrix.clear(); | ||||
|       playermoved = false; | ||||
|   | ||||
| @@ -376,7 +376,7 @@ struct hrmap_grigorchuk : hrmap_standard { | ||||
|   void draw() override { | ||||
|    | ||||
|     dq::visited_by_matrix.clear(); | ||||
|     dq::enqueue_by_matrix(viewctr.at, actualV(viewctr, cview())); | ||||
|     dq::enqueue_by_matrix(centerover->master, cview() * master_relative(centerover, true)); | ||||
|      | ||||
|     while(!dq::drawqueue.empty()) {       | ||||
|       auto& p = dq::drawqueue.front(); | ||||
|   | ||||
| @@ -237,7 +237,7 @@ void addedge(int i, int j, edgeinfo *ei) { | ||||
|      | ||||
|     addedge(i, id, ei); | ||||
|     addedge(id, j, ei); | ||||
|     virtualRebase(vdata[i].m, true); | ||||
|     virtualRebase(vdata[i].m); | ||||
|     } | ||||
|   else addedge0(i, j, ei); | ||||
|   } | ||||
| @@ -284,7 +284,7 @@ namespace spiral { | ||||
|    | ||||
|       createViz(i, cwt.at, h); | ||||
|       vd.name = its(i+1); | ||||
|       virtualRebase(vd.m, true); | ||||
|       virtualRebase(vd.m); | ||||
|    | ||||
|       vd.cp = dftcolor; | ||||
|       } | ||||
| @@ -331,7 +331,7 @@ namespace collatz { | ||||
|     vdata.resize(1); | ||||
|     vertexdata& vd = vdata[0]; | ||||
|     createViz(0, cwt.at, xpush(cshift)); | ||||
|     virtualRebase(vd.m, true); | ||||
|     virtualRebase(vd.m); | ||||
|     vd.cp = dftcolor; | ||||
|     vd.data = 0; | ||||
|     addedge(0, 0, 1, false, collatz::collatz1); | ||||
| @@ -466,7 +466,7 @@ namespace anygraph { | ||||
|       printf("Rebasing...\n"); | ||||
|       for(int i=0; i<isize(vdata); i++) { | ||||
|         if(i % 10000 == 0) printf("%d/%d\n", i, isize(vdata)); | ||||
|         if(vdata[i].m) virtualRebase(vdata[i].m, true); | ||||
|         if(vdata[i].m) virtualRebase(vdata[i].m); | ||||
|         } | ||||
|       printf("Done.\n"); | ||||
|       } | ||||
| @@ -567,7 +567,7 @@ namespace tree { | ||||
|      | ||||
|     for(int i=0; i<isize(vdata); i++) { | ||||
|       vertexdata& vd = vdata[i]; | ||||
|       virtualRebase(vd.m, true); | ||||
|       virtualRebase(vd.m); | ||||
|       } | ||||
|      | ||||
|     printf("Clearing the TOL data...\n"); | ||||
| @@ -1383,7 +1383,7 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) { | ||||
|         } | ||||
|       else { | ||||
|        | ||||
|         cell *center = multidraw ? c : euclid ? cwt.at : viewctr.at->c7; | ||||
|         cell *center = multidraw ? c : centerover; | ||||
|        | ||||
|         if(!multidraw && ei->orig && ei->orig != center && celldistance(ei->orig, center) > 3)  | ||||
|           ei->orig = NULL; | ||||
| @@ -1469,7 +1469,7 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) { | ||||
|       vertexdata& vdn = vdata[i0]; | ||||
|       createViz(i0, m->base, m->at * collatz::T2); | ||||
|        | ||||
|       virtualRebase(vdn.m, true); | ||||
|       virtualRebase(vdn.m); | ||||
|       vdn.cp = perturb(cp); | ||||
|       vdn.data = 0; | ||||
|       addedge(i, i0, 1, false, collatz::collatz1); | ||||
| @@ -1492,7 +1492,7 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) { | ||||
|         vdata.resize(i0+2); | ||||
|         vertexdata& vdn = vdata[i0+1]; | ||||
|         createViz(i0+1, m->base, m->at * collatz::T3); | ||||
|         virtualRebase(vdn.m, true); | ||||
|         virtualRebase(vdn.m); | ||||
|         vdn.cp = perturb(cp); | ||||
|         vdn.data = 0; | ||||
|         addedge(i, i0+1, 1, false, collatz::collatz2); | ||||
| @@ -2148,7 +2148,7 @@ template<class T> function<void(presmode)> roguevizslide(char c, const T& t) { | ||||
|     slidecommand = "toggle the player"; | ||||
|     if(mode == 4)  | ||||
|       mapeditor::drawplayer = !mapeditor::drawplayer; | ||||
|     centerover.at = NULL; pd_from = NULL; | ||||
|     pd_from = NULL; | ||||
|     }; | ||||
|   } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue