src/engine/eFloor.cpp File Reference

#include "eFloor.h"
#include "rScreen.h"
#include "rTexture.h"
#include <stdlib.h>

Include dependency graph for eFloor.cpp:

Go to the source code of this file.

Functions

REAL se_GridSize ()
void se_glFloorColor (REAL alpha, REAL intens)
void se_glFloorTexture ()
void se_glFloorTexture_a ()
void se_glFloorTexture_b ()
bool se_BlackSky ()
void se_FloorColor (REAL &r, REAL &g, REAL &b)
void se_MakeColorValid (REAL &r, REAL &g, REAL &b, REAL f)


Function Documentation

bool se_BlackSky (  ) 

Definition at line 67 of file eFloor.cpp.

References eFloor::BlackSky(), and eFloor::Floor.

Referenced by eGrid::display_simple().

00068 {
00069     if (eFloor::Floor)
00070         return eFloor::Floor->BlackSky();
00071     else
00072         return false;
00073 }

Here is the call graph for this function:

Here is the caller graph for this function:

void se_FloorColor ( REAL r,
REAL g,
REAL b 
)

Definition at line 75 of file eFloor.cpp.

References eFloor::Floor, eFloor::FloorColor(), and sr_floorDetail.

Referenced by gAIPlayer::gAIPlayer(), and se_MakeColorValid().

00076 {
00077     if (eFloor::Floor && sr_floorDetail > 1)
00078         eFloor::Floor->FloorColor(r,g,b);
00079     else
00080     {
00081         r = g = b = 0;
00082     }
00083 }

Here is the call graph for this function:

Here is the caller graph for this function:

void se_glFloorColor ( REAL  alpha,
REAL  intens 
)

Definition at line 47 of file eFloor.cpp.

References eFloor::Floor, and eFloor::glFloorColor().

Referenced by eGrid::display_simple(), and MenuBackground().

00047                                              {
00048     if (eFloor::Floor)
00049         eFloor::Floor->glFloorColor(alpha, intens);
00050 }

Here is the call graph for this function:

Here is the caller graph for this function:

void se_glFloorTexture (  ) 

Definition at line 52 of file eFloor.cpp.

References eFloor::Floor, and eFloor::glFloorTexture().

Referenced by eGrid::display_simple(), and MenuBackground().

00052                         {
00053     if (eFloor::Floor)
00054         eFloor::Floor->glFloorTexture();
00055 }

Here is the call graph for this function:

Here is the caller graph for this function:

void se_glFloorTexture_a (  ) 

Definition at line 57 of file eFloor.cpp.

References eFloor::Floor, and eFloor::glFloorTexture_a().

Referenced by eGrid::display_simple().

00057                           {
00058     if (eFloor::Floor)
00059         eFloor::Floor->glFloorTexture_a();
00060 }

Here is the call graph for this function:

Here is the caller graph for this function:

void se_glFloorTexture_b (  ) 

Definition at line 62 of file eFloor.cpp.

References eFloor::Floor, and eFloor::glFloorTexture_b().

Referenced by eGrid::display_simple().

00062                           {
00063     if (eFloor::Floor)
00064         eFloor::Floor->glFloorTexture_b();
00065 }

Here is the call graph for this function:

Here is the caller graph for this function:

REAL se_GridSize (  ) 

Definition at line 40 of file eFloor.cpp.

References eFloor::Floor, and eFloor::GridSize().

Referenced by eGrid::display_simple().

00040                   {
00041     if (eFloor::Floor)
00042         return eFloor::Floor->GridSize();
00043     else
00044         return 4;
00045 }

Here is the call graph for this function:

Here is the caller graph for this function:

void se_MakeColorValid ( REAL r,
REAL g,
REAL b,
REAL  f 
)

Definition at line 85 of file eFloor.cpp.

References G, REAL, and se_FloorColor().

Referenced by gCycle::gCycle(), gCycle::MyInitAfterCreation(), zZone::ReadSync(), gZone::ReadSync(), and ArmageTron_color_menuitem::RenderBackground().

00086 {
00087     REAL R, G, B; // the floor color
00088     se_FloorColor(R, G, B);
00089 
00090     /*
00091         REAL wallInt = 2.0f;
00092         if ( TextureMode[rTEX_WALL] <= 0 )
00093         {
00094                 wallInt = 1.0f;
00095         }
00096 
00097         R *= wallInt;
00098         G *= wallInt;
00099         B *= wallInt;
00100     */  
00101 
00102     // if we are too close to the floor color, just change to white.
00103     while ((r < .95 && g < .95 && b < .95) &&
00104             (
00105                 (fabs(R    - r*f) + fabs(G    - g*f) + fabs(B    - b*f) < .5 )  ||
00106                 //                         (fabs(R*.5 - r*f) + fabs(G*.5 - g*f) + fabs(B*.5 - b*f) < .5) ||
00107                 (fabs(r*f) + fabs(g*f) + fabs(b*f) < .5 )
00108             )
00109           )
00110 
00111     {
00112         REAL step = 1/(15.0 * 3);
00113         REAL step_r, step_g, step_b;
00114         REAL rgb_sum = 0;
00115         if ( r < .99 )
00116             rgb_sum += r;
00117         if ( g < .99 )
00118             rgb_sum += g;
00119         if ( b < .99 )
00120             rgb_sum += b;
00121 
00122         if ( rgb_sum < .02 )
00123         {
00124             step_r = step;
00125             step_g = step;
00126             step_b = step;
00127         }
00128         else
00129         {
00130             step_r = step * r / rgb_sum;
00131             step_g = step * g / rgb_sum;
00132             step_b = step * b / rgb_sum;
00133         }
00134 
00135         r += step_r;
00136         g += step_g;
00137         b += step_b;
00138         if (r > 1)
00139             r = 1;
00140         if (g > 1)
00141             g = 1;
00142         if (b > 1)
00143             b = 1;
00144     }
00145 }

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Sat Mar 15 22:57:04 2008 for Armagetron Advanced by  doxygen 1.5.4