/[svn]/libgig/trunk/src/gig.cpp
ViewVC logotype

Diff of /libgig/trunk/src/gig.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2555 by schoenebeck, Fri May 16 23:08:42 2014 UTC revision 2564 by schoenebeck, Tue May 20 12:15:05 2014 UTC
# Line 3509  namespace { Line 3509  namespace {
3509    
3510          // delete temporary region          // delete temporary region
3511          delete tempRgn;          delete tempRgn;
3512    
3513            UpdateVelocityTable();
3514      }      }
3515    
3516      /** @brief Divide split zone of a dimension in two (increment zone amount).      /** @brief Divide split zone of a dimension in two (increment zone amount).
# Line 3646  namespace { Line 3648  namespace {
3648    
3649          // delete temporary region          // delete temporary region
3650          delete tempRgn;          delete tempRgn;
3651    
3652            UpdateVelocityTable();
3653      }      }
3654    
3655      DimensionRegion* Region::GetDimensionRegionByBit(const std::map<dimension_t,int>& DimCase) {      DimensionRegion* Region::GetDimensionRegionByBit(const std::map<dimension_t,int>& DimCase) {
# Line 3739  namespace { Line 3743  namespace {
3743              }              }
3744              bitpos += pDimensionDefinitions[i].bits;              bitpos += pDimensionDefinitions[i].bits;
3745          }          }
3746          DimensionRegion* dimreg = pDimensionRegions[dimregidx];          DimensionRegion* dimreg = pDimensionRegions[dimregidx & 255];
3747            if (!dimreg) return NULL;
3748          if (veldim != -1) {          if (veldim != -1) {
3749              // (dimreg is now the dimension region for the lowest velocity)              // (dimreg is now the dimension region for the lowest velocity)
3750              if (dimreg->VelocityTable) // custom defined zone ranges              if (dimreg->VelocityTable) // custom defined zone ranges
3751                  bits = dimreg->VelocityTable[DimValues[veldim]];                  bits = dimreg->VelocityTable[DimValues[veldim] & 127];
3752              else // normal split type              else // normal split type
3753                  bits = uint8_t(DimValues[veldim] / pDimensionDefinitions[veldim].zone_size);                  bits = uint8_t((DimValues[veldim] & 127) / pDimensionDefinitions[veldim].zone_size);
3754    
3755              dimregidx |= bits << velbitpos;              const uint8_t limiter_mask = (1 << pDimensionDefinitions[veldim].bits) - 1;
3756              dimreg = pDimensionRegions[dimregidx];              dimregidx |= (bits & limiter_mask) << velbitpos;
3757                dimreg = pDimensionRegions[dimregidx & 255];
3758          }          }
3759          return dimreg;          return dimreg;
3760      }      }

Legend:
Removed from v.2555  
changed lines
  Added in v.2564

  ViewVC Help
Powered by ViewVC