diff options
| author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2023-03-25 22:14:03 +0900 |
|---|---|---|
| committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2023-03-25 22:14:03 +0900 |
| commit | 968d8a86f5a7e08f71bd449a466cc467efb11e3d (patch) | |
| tree | bfd82936edd7439e48412a43892340ea25b5a672 /src/GameDraw.cpp | |
| parent | d7f9a74f75ba0ce2167fa0e529a009becdcee7e3 (diff) | |
| download | blackshades-968d8a86f5a7e08f71bd449a466cc467efb11e3d.tar.gz | |
Convert square of norm calculation to Zig
Diffstat (limited to 'src/GameDraw.cpp')
| -rw-r--r-- | src/GameDraw.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/GameDraw.cpp b/src/GameDraw.cpp index 010fbc0..1fbbca2 100644 --- a/src/GameDraw.cpp +++ b/src/GameDraw.cpp @@ -508,7 +508,8 @@ void Game::DrawGLScene(void) move.y=0; move.x=i*block_spacing; move.z=j*block_spacing; - if(findDistancefast(move,camera.position)<300000)drawn[i][j]=0; + if (sqrlen(move - camera.position) < 300000) + drawn[i][j] = 0; } } } @@ -553,8 +554,8 @@ void Game::DrawGLScene(void) }else draw=0; if(draw) if(!cubeInFrustum(frustum, person[i].playercoords.x,person[i].playercoords.y,person[i].playercoords.z,5))draw=0; - if(draw) - if(findDistancefast(person[i].playercoords,camera.position)>1000000)draw=0; + if (draw && sqrlen(person[i].playercoords - camera.position) > 1000000) + draw = 0; if(draw) for(int j=beginx;j<=endx;j++){ for(int k=beginz;k<=endz;k++){ @@ -562,7 +563,7 @@ void Game::DrawGLScene(void) move.y=0; move.x=j*block_spacing; move.z=k*block_spacing; - if(findDistancefast(move,camera.position)<100000){ + if (sqrlen(move - camera.position) < 100000) { whichtri=blockocclude.LineCheck2(camera.position,person[i].playercoords,&collpoint,move,0); if(whichtri!=-1)draw=0; } @@ -583,8 +584,8 @@ void Game::DrawGLScene(void) if(person[i].skeleton.free==1){ if(draw) if(!person[i].skeleton.broken&&!cubeInFrustum(frustum, person[i].averageloc.x,person[i].averageloc.y,person[i].averageloc.z,5))draw=0; - if(draw) - if(findDistancefast(person[i].averageloc,camera.position)>1000000)draw=0; + if (draw && sqrlen(person[i].averageloc - camera.position) > 1000000) + draw = 0; if(draw) if(person[i].skeleton.joints[0].position.y<-2)draw=0; @@ -594,7 +595,7 @@ void Game::DrawGLScene(void) move.y=0; move.x=j*block_spacing; move.z=k*block_spacing; - if(findDistancefast(move,camera.position)<100000){ + if (sqrlen(move - camera.position) < 100000) { whichtri=blockocclude.LineCheck2(camera.position,person[i].averageloc,&collpoint,move,0); if(whichtri!=-1)draw=0; } @@ -612,7 +613,10 @@ void Game::DrawGLScene(void) } if(draw&&person[i].existing==1){ - if((findDistancefast(person[i].playercoords,camera.position)<100000+zoom*3000000&&person[i].skeleton.free<1)||(findDistancefast(person[i].averageloc,camera.position)<100000+zoom*3000000&&person[i].skeleton.free>=1)){ + if ((sqrlen(person[i].playercoords - camera.position) < 100000 + zoom * 3000000 + && !person[i].skeleton.free) + || (sqrlen(person[i].averageloc - camera.position) < 100000 + zoom * 3000000 + && person[i].skeleton.free)) { glPushMatrix(); if(person[i].skeleton.free==0){ glTranslatef(person[i].playercoords.x,person[i].playercoords.y,person[i].playercoords.z); @@ -666,7 +670,8 @@ void Game::DrawGLScene(void) } if(person[i].skeleton.free<1&&!draw)person[i].DoAnimationslite(i); if(!person[i].existing) - if(!draw||findDistancefast(person[i].playercoords,camera.position)>10000){person[i].existing=1;} + if (!draw || sqrlen(person[i].playercoords - camera.position) > 10000) + person[i].existing = 1; } glDisable(GL_COLOR_MATERIAL); glDisable(GL_BLEND); |
