]> git.jsancho.org Git - lugaru.git/commitdiff
Lighting code cleanup.
authorRyan C. Gordon <icculus@icculus.org>
Fri, 14 May 2010 15:43:54 +0000 (11:43 -0400)
committerRyan C. Gordon <icculus@icculus.org>
Fri, 14 May 2010 15:43:54 +0000 (11:43 -0400)
Source/Lights.cpp

index 31f01457ed2ba5b2d1da011c491394eff7c7b4d0..9a351c9ae070b7a02fd1e02a18df53f99d0d4a08 100644 (file)
@@ -27,9 +27,8 @@ void SetUpLight(Light* whichsource, int whichlight){
        static float cattenuation[]={1.5f};
        static float lattenuation[]={0.5f};
        static float zattenuation[]={0.0f};
-
+       
        //Initialize lights
-
        if(whichlight==0){
                GLfloat LightAmbient[]=         { whichsource->ambient[0], whichsource->ambient[1], whichsource->ambient[2], 1.0f};
                GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
@@ -40,91 +39,40 @@ void SetUpLight(Light* whichsource, int whichlight){
                glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient);         
                glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse);         
                glEnable(GL_LIGHT0);    
-       }
-
-       if(whichlight==1){
+       }else{
+               GLenum lightselect=GL_LIGHT1;
+               switch (whichlight){
+                       case 2:
+                               lightselect=GL_LIGHT2;
+                               break;
+                       case 3:
+                               lightselect=GL_LIGHT3;
+                               break;
+                       case 4:
+                               lightselect=GL_LIGHT4;
+                               break;
+                       case 5:
+                               lightselect=GL_LIGHT5;
+                               break;
+                       case 6:
+                               lightselect=GL_LIGHT6;
+                               break;
+                       case 7:
+                               lightselect=GL_LIGHT7;
+                               break;
+               }
+               
                GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
                GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
                GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
 
-               glLightfv(GL_LIGHT1, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT1, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT1);    
-       }
-
-       if(whichlight==2){
-               GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
-               GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
-               GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
-
-               glLightfv(GL_LIGHT2, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT2, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT2, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT2, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT2);    
-       }
-
-       if(whichlight==3){
-               GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
-               GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
-               GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
-
-               glLightfv(GL_LIGHT3, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT3, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT3, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT3, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT3);    
-       }
-
-       if(whichlight==4){
-               GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
-               GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
-               GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
-
-               glLightfv(GL_LIGHT4, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT4, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT4, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT4, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT4);    
-       }
-
-       if(whichlight==5){
-               GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
-               GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
-               GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
-
-               glLightfv(GL_LIGHT5, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT5, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT5, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT5, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT5);    
-       }
-
-       if(whichlight==6){
-               GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
-               GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
-               GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
-
-               glLightfv(GL_LIGHT6, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT6, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT6, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT6, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT6);    
-       }
-
-       if(whichlight==7){
-               GLfloat LightAmbient[]=         { 0, 0, 0, 1.0f};
-               GLfloat LightDiffuse[]=         { whichsource->color[0], whichsource->color[1], whichsource->color[2], 1.0f };
-               GLfloat LightPosition[]=        { whichsource->location.x, whichsource->location.y, whichsource->location.z, 1.0f };
-
-               glLightfv(GL_LIGHT7, GL_QUADRATIC_ATTENUATION, qattenuation);
-               glLightfv(GL_LIGHT7, GL_POSITION, LightPosition);
-               glLightfv(GL_LIGHT7, GL_AMBIENT, LightAmbient);         
-               glLightfv(GL_LIGHT7, GL_DIFFUSE, LightDiffuse);         
-               glEnable(GL_LIGHT7);    
-       }
+               glLightfv(lightselect, GL_QUADRATIC_ATTENUATION, qattenuation);
+               glLightfv(lightselect, GL_POSITION, LightPosition);
+               glLightfv(lightselect, GL_AMBIENT, LightAmbient);               
+               glLightfv(lightselect, GL_DIFFUSE, LightDiffuse);               
+               glEnable(lightselect);  
+               
+               }       
 }
 
 void SetUpMainLight(Light* whichsource, int whichlight, float ambientr, float ambientg, float ambientb){