void CUser::HealMagic() { int region_x = (int)(m_curx / VIEW_DIST); int region_z = (int)(m_curz / VIEW_DIST); MAP* pMap = GetMap(); if (pMap == nullptr) return; int min_x = region_x - 1; if(min_x < 0) min_x = 0; int min_z = region_z - 1; if(min_z < 0) min_z = 0; int max_x = region_x + 1; if(max_x > pMap->GetXRegionMax()) max_x = pMap->GetXRegionMax(); int max_z = region_z + 1; if(min_z > pMap->GetZRegionMax()) min_z = pMap->GetZRegionMax(); int search_x = max_x - min_x + 1; int search_z = max_z - min_z + 1; int i, j; for(i = 0; i < search_x; i++) { for(j = 0; j < search_z; j++) { HealAreaCheck( min_x+i, min_z+j ); } } }
void CUser::HealMagic() { int region_x = (int)(m_curx / VIEW_DIST); int region_z = (int)(m_curz / VIEW_DIST); MAP* pMap = GetMap(); if (pMap == NULL) return; int max_xx = pMap->m_sizeRegion.cx; int max_zz = pMap->m_sizeRegion.cy; int min_x = region_x - 1; if(min_x < 0) min_x = 0; int min_z = region_z - 1; if(min_z < 0) min_z = 0; int max_x = region_x + 1; if(max_x >= max_xx) max_x = max_xx - 1; int max_z = region_z + 1; if(min_z >= max_zz) min_z = max_zz - 1; int search_x = max_x - min_x + 1; int search_z = max_z - min_z + 1; int i, j; for(i = 0; i < search_x; i++) { for(j = 0; j < search_z; j++) { HealAreaCheck( min_x+i, min_z+j ); } } }