rendermax: basic daylight

develop
jj 2013-06-24 01:54:09 +02:00 committed by Warmist
parent 2058a822a3
commit 9a8ee755f8
1 changed files with 9 additions and 7 deletions

@ -271,13 +271,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;
@ -295,7 +298,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;
@ -365,7 +368,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);
@ -456,8 +459,7 @@ void lightingEngineViewscreen::doOcupancyAndLights()
} }
if(d->bits.outside && d->bits.flow_size==0) if(d->bits.outside && d->bits.flow_size==0)
{ {
addLight(tile,sky);
addLight(tile,sun);
} }
} }