From cd9c07e8a0a816fffdd63c9b92a1a5c1e8f32907 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Fri, 24 Mar 2023 00:51:17 +0900 Subject: Convert fog effect to Zig --- src/GameDraw.cpp | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) (limited to 'src/GameDraw.cpp') diff --git a/src/GameDraw.cpp b/src/GameDraw.cpp index f2d5695..f68ff54 100644 --- a/src/GameDraw.cpp +++ b/src/GameDraw.cpp @@ -567,13 +567,13 @@ void Game::DrawGLScene(void) glClearColor(fogcolorr,fogcolorg,fogcolorb,1); if (environment == sunny_environment) { - fog.SetFog(fogcolorr, fogcolorg, fogcolorb, 0, viewdistance * 0.8, 0.1); + setFog(&fog, fogcolorr, fogcolorg, fogcolorb, 0, viewdistance * 0.8, 0.1); GLfloat LightAmbient[]= { fogcolorr/4, fogcolorg/4, fogcolorb/4, 1.0f}; GLfloat LightDiffuse[]= { fogcolorr*1.6f, fogcolorg*1.6f, fogcolorr*1.6f, 1.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient); glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse); } else { - fog.SetFog(fogcolorr, fogcolorg, fogcolorb, 0, viewdistance * 0.8, 0.2); + setFog(&fog, fogcolorr, fogcolorg, fogcolorb, 0, viewdistance * 0.8, 0.2); GLfloat LightAmbient[]= { fogcolorr*.8f, fogcolorg*.8f, fogcolorb*.8f, 1.0f}; GLfloat LightDiffuse[]= { fogcolorr*.8f, fogcolorg*.8f, fogcolorr*.8f, 1.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient); @@ -595,7 +595,7 @@ void Game::DrawGLScene(void) fogcolorr=(sinefluct/4+.5); fogcolorg=0; fogcolorb=0; - fog.SetFog(fogcolorr,fogcolorg,fogcolorb,0,viewdistance*.8*.5*(sinefluct/4+.3),sinefluct/3+.7); + setFog(&fog, fogcolorr,fogcolorg,fogcolorb,0,viewdistance*.8*.5*(sinefluct/4+.3),sinefluct/3+.7); glClearColor(fogcolorr,fogcolorg,fogcolorb,1); ReSizeGLScene(this, 120.0f - sinefluct * 20.0f, 0.3f); @@ -781,14 +781,11 @@ void Game::DrawGLScene(void) } - //Decals - + // Decals decals.draw(); - //Occluding blocks - + // Occluding blocks beginx=(camera.position.x+block_spacing/2)/block_spacing-2; - if(beginx<0)beginx=0; beginz=(camera.position.z+block_spacing/2)/block_spacing-2; @@ -804,31 +801,24 @@ void Game::DrawGLScene(void) if(endz>num_blocks-1)endz=num_blocks-1; float M[16]; - XYZ drawpoint; - float size=20; - //Draw people - - if(visions==1)fog.SetFog(fogcolorr,fogcolorg,fogcolorb,0,viewdistance*.8*.5*(-sinefluct/4+.3),-sinefluct/3+.7); - - glColor4f(1,1,1,1); + // Draw people + if (visions) + setFog(&fog, fogcolorr, fogcolorg, fogcolorb, 0, + viewdistance * 0.8 * 0.5 * (-sinefluct / 4 + 0.3), + -sinefluct / 3 + 0.7); + glColor4f(1 , 1, 1, 1); glEnable(GL_COLOR_MATERIAL); - glEnable(GL_BLEND); - for(int i=0;i=0&&person[i].whichblockx=0&&person[i].whichblocky