rendermax: basic daylight

develop
jj 2013-06-24 01:54:09 +02:00
parent 50073ae406
commit fb5d248720
1 changed files with 9 additions and 6 deletions

@ -253,13 +253,16 @@ void lightingEngineViewscreen::initRawSpecific()
static size_t max_list_size = 100000; // Avoid iterating over huge lists static size_t max_list_size = 100000; // Avoid iterating over huge lists
void lightingEngineViewscreen::doOcupancyAndLights() void lightingEngineViewscreen::doOcupancyAndLights()
{ {
lightSource sun(lightCell(1,1,1),15); // TODO better curve (+red dawn ?)
float daycol = abs((*df::global::cur_year_tick % 1200) - 600.0) / 600.0;
lightCell sky_col(daycol, daycol, daycol);
lightSource sky(sky_col, 15);
lightSource lava(lightCell(0.8f,0.2f,0.2f),5); lightSource lava(lightCell(0.8f,0.2f,0.2f),5);
lightSource candle(lightCell(0.96f,0.84f,0.03f),5); lightSource candle(lightCell(0.96f,0.84f,0.03f),5);
lightSource torch(lightCell(0.9f,0.75f,0.3f),8); lightSource torch(lightCell(0.9f,0.75f,0.3f),8);
rect2d vp=getMapViewport(); rect2d vp=getMapViewport();
int window_x=*df::global::window_x; int window_x=*df::global::window_x;
int window_y=*df::global::window_y; int window_y=*df::global::window_y;
int window_z=*df::global::window_z; int window_z=*df::global::window_z;
@ -277,7 +280,7 @@ void lightingEngineViewscreen::doOcupancyAndLights()
for(int block_x = 0; block_x < 16; block_x++) for(int block_x = 0; block_x < 16; block_x++)
for(int block_y = 0; block_y < 16; block_y++) for(int block_y = 0; block_y < 16; block_y++)
{ {
cellArray[block_x][block_y] = lightCell(1,1,1); cellArray[block_x][block_y] = sky_col;
} }
int totalBlank = 0; int totalBlank = 0;
int topLevel = df::global::world->map.z_count-1; int topLevel = df::global::world->map.z_count-1;
@ -347,7 +350,7 @@ void lightingEngineViewscreen::doOcupancyAndLights()
if(!type) if(!type)
{ {
//unallocated, do sky //unallocated, do sky
addLight(tile,sun); addLight(tile,sky);
continue; continue;
} }
df::tiletype_shape shape = ENUM_ATTR(tiletype,shape,*type); df::tiletype_shape shape = ENUM_ATTR(tiletype,shape,*type);
@ -438,7 +441,7 @@ void lightingEngineViewscreen::doOcupancyAndLights()
} }
if(d->bits.outside && d->bits.flow_size==0) if(d->bits.outside && d->bits.flow_size==0)
{ {
addLight(tile,sun); addLight(tile,sky);
} }
} }