mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-11-04 07:43:02 +00:00 
			
		
		
		
	bt:: direct_tmatrix are now saved in cgi
This commit is contained in:
		@@ -530,10 +530,10 @@ EX namespace bt {
 | 
			
		||||
          throw "unknown direction";
 | 
			
		||||
        }
 | 
			
		||||
      else if(use_direct_for(dir))
 | 
			
		||||
        return direct_tmatrix[dir];
 | 
			
		||||
        return cgi.direct_tmatrix[dir];
 | 
			
		||||
      else {
 | 
			
		||||
        h->cmove(dir);
 | 
			
		||||
        return inverse_tmatrix[h->c.spin(dir)];
 | 
			
		||||
        return cgi.inverse_tmatrix[h->c.spin(dir)];
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@@ -584,18 +584,12 @@ EX namespace bt {
 | 
			
		||||
 | 
			
		||||
  EX hrmap *new_alt_map(heptagon *o) { return new hrmap_binary(o); }
 | 
			
		||||
 | 
			
		||||
  EX transmatrix direct_tmatrix[14];
 | 
			
		||||
  EX transmatrix inverse_tmatrix[14];
 | 
			
		||||
 | 
			
		||||
  /** a bitmask for hr::bt::use_direct_for */  
 | 
			
		||||
  int use_direct;
 | 
			
		||||
 | 
			
		||||
  /** \brief return if ew should use direct_tmatrix[dir] to get the adjacent cell the given direction
 | 
			
		||||
   *  
 | 
			
		||||
   *  Otherwise, this is the 'up' direction and thus we should use inverse_tmatrix for the inverse direction
 | 
			
		||||
   */
 | 
			
		||||
  EX bool use_direct_for(int dir) {
 | 
			
		||||
    return (use_direct >> dir) & 1;
 | 
			
		||||
    return (cgi.use_direct >> dir) & 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /** \brief which coordinate is expanding */
 | 
			
		||||
@@ -726,7 +720,10 @@ EX namespace bt {
 | 
			
		||||
  
 | 
			
		||||
  EX void build_tmatrix() {
 | 
			
		||||
    if(among(geometry, gBinaryTiling, gSol, gArnoldCat)) return; // unused
 | 
			
		||||
    use_direct = (1 << (S7-1)) - 1;
 | 
			
		||||
    auto& direct_tmatrix = cgi.direct_tmatrix;
 | 
			
		||||
    auto& inverse_tmatrix = cgi.inverse_tmatrix;
 | 
			
		||||
    auto& use_direct = cgi.use_direct;
 | 
			
		||||
    use_direct = (1 << (S7-1)) - 1;    
 | 
			
		||||
    if(geometry == gBinary4) {
 | 
			
		||||
      use_direct = 3;
 | 
			
		||||
      direct_tmatrix[0] = xpush(-log(2)) * parabolic(-0.5);
 | 
			
		||||
 
 | 
			
		||||
@@ -159,6 +159,13 @@ struct geometry_information {
 | 
			
		||||
  int single_step;
 | 
			
		||||
  /** the number of levels in SL2 */
 | 
			
		||||
  int steps;
 | 
			
		||||
 | 
			
		||||
  /** for binary tilings */
 | 
			
		||||
  transmatrix direct_tmatrix[14];
 | 
			
		||||
  transmatrix inverse_tmatrix[14];
 | 
			
		||||
 | 
			
		||||
  /** a bitmask for hr::bt::use_direct_for */  
 | 
			
		||||
  int use_direct;
 | 
			
		||||
  
 | 
			
		||||
  /** various parameters related to the 3D view */
 | 
			
		||||
  ld INFDEEP, BOTTOM, HELLSPIKE, LAKE, WALL, FLOOR, STUFF,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user