light: fix missing textures accidentally activating "suntexture" feature and breaking sunlight
Fixes #376
This commit is contained in:
parent
dedc524f6a
commit
507c315f78
|
|
@ -391,8 +391,10 @@ static void AddSun(const settings::worldspawn_keys &cfg, const qvec3d &sunvec, v
|
|||
sun.dirt = Dirt_ResolveFlag(cfg, dirtInt);
|
||||
sun.style = style;
|
||||
sun.suntexture = suntexture;
|
||||
sun.suntexture_value = img::find(suntexture);
|
||||
|
||||
if (!suntexture.empty())
|
||||
sun.suntexture_value = img::find(suntexture);
|
||||
else
|
||||
sun.suntexture_value = nullptr;
|
||||
// fmt::print( "sun is using vector {} {} {} light {} color {} {} {} anglescale {} dirt {} resolved to {}\n",
|
||||
// sun->sunvec[0], sun->sunvec[1], sun->sunvec[2], sun->sunlight.light,
|
||||
// sun->sunlight.color[0], sun->sunlight.color[1], sun->sunlight.color[2],
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
// Game: Quake
|
||||
// Format: Valve
|
||||
// entity 0
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"_sunlight" "100"
|
||||
"_sun_mangle" "0 -80 0"
|
||||
"wad" "deprecated/free_wad.wad"
|
||||
"light" "5"
|
||||
// brush 0
|
||||
{
|
||||
( -112 -96 -32 ) ( -112 -95 -32 ) ( -112 -96 -31 ) skip [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( -32 -112 -32 ) ( -32 -112 -31 ) ( -31 -112 -32 ) skip [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( -32 -96 -32 ) ( -31 -96 -32 ) ( -32 -95 -32 ) skip [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 96 32 0 ) ( 96 33 0 ) ( 97 32 0 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 96 80 0 ) ( 97 80 0 ) ( 96 80 1 ) skip [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 128 32 0 ) ( 128 32 1 ) ( 128 33 0 ) skip [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 1
|
||||
{
|
||||
( -128 64 0 ) ( -128 65 0 ) ( -128 64 1 ) sky3 [ 0 1 0 0 ] [ 0 0 -1 -16 ] 0 1 1
|
||||
( 304 -128 -32 ) ( 303 -128 -32 ) ( 304 -128 -31 ) sky3 [ 1 0 0 0 ] [ 0 0 -1 -16 ] 0 1 1
|
||||
( 176 64 192 ) ( 176 65 192 ) ( 175 64 192 ) sky3 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 176 64 208 ) ( 175 64 208 ) ( 176 65 208 ) sky3 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 176 96 0 ) ( 176 96 1 ) ( 175 96 0 ) sky3 [ 1 0 0 0 ] [ 0 0 -1 -16 ] 0 1 1
|
||||
( 144 -64 -32 ) ( 144 -64 -31 ) ( 144 -63 -32 ) sky3 [ 0 1 0 0 ] [ 0 0 -1 -16 ] 0 1 1
|
||||
}
|
||||
// brush 2
|
||||
{
|
||||
( -112 -288 -32 ) ( -112 -287 -32 ) ( -112 -288 -31 ) sbrick2b [ 0 0 -1.0000000000000002 -48 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
( -32 -128 -32 ) ( -32 -128 -31 ) ( -31 -128 -32 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 0 ] 0 1 1
|
||||
( 96 -160 0 ) ( 97 -160 0 ) ( 96 -159 0 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 96 -160 192 ) ( 96 -159 192 ) ( 97 -160 192 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 96 -112 0 ) ( 97 -112 0 ) ( 96 -112 1 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 -1.0000000000000002 48 ] 0 1 1
|
||||
( 128 -160 0 ) ( 128 -160 1 ) ( 128 -159 0 ) sbrick2b [ 0 0 1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
}
|
||||
// brush 3
|
||||
{
|
||||
( 128 64 0 ) ( 128 65 0 ) ( 128 64 1 ) sbrick2b [ 0 0 -1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
( 304 -128 -32 ) ( 303 -128 -32 ) ( 304 -128 -31 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 0 ] 0 1 1
|
||||
( 176 64 0 ) ( 176 65 0 ) ( 175 64 0 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 176 64 192 ) ( 175 64 192 ) ( 176 65 192 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 176 96 0 ) ( 176 96 1 ) ( 175 96 0 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 144 -64 -32 ) ( 144 -64 -31 ) ( 144 -63 -32 ) sbrick2b [ 0 0 1.0000000000000002 16 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
}
|
||||
// brush 4
|
||||
{
|
||||
( -112 -80 -32 ) ( -112 -79 -32 ) ( -112 -80 -31 ) sbrick2b [ 0 0 -1.0000000000000002 -48 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
( -32 80 -32 ) ( -32 80 -31 ) ( -31 80 -32 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 0 1 1
|
||||
( 96 48 0 ) ( 97 48 0 ) ( 96 49 0 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 96 48 192 ) ( 96 49 192 ) ( 97 48 192 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 96 96 0 ) ( 97 96 0 ) ( 96 96 1 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 128 48 0 ) ( 128 48 1 ) ( 128 49 0 ) sbrick2b [ 0 0 1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
}
|
||||
// brush 5
|
||||
{
|
||||
( -128 64 0 ) ( -128 65 0 ) ( -128 64 1 ) sbrick2b [ 0 0 -1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
( 48 -128 -32 ) ( 47 -128 -32 ) ( 48 -128 -31 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 0 ] 0 1 1
|
||||
( -80 64 0 ) ( -80 65 0 ) ( -81 64 0 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( -80 64 192 ) ( -81 64 192 ) ( -80 65 192 ) sbrick2b [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( -80 96 0 ) ( -80 96 1 ) ( -81 96 0 ) sbrick2b [ 1.0000000000000002 0 0 0 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( -112 -64 -32 ) ( -112 -64 -31 ) ( -112 -63 -32 ) sbrick2b [ 0 0 1.0000000000000002 -48 ] [ 0 -1.0000000000000002 0 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 1
|
||||
{
|
||||
"classname" "info_player_start"
|
||||
"origin" "0 0 24"
|
||||
}
|
||||
|
|
@ -793,3 +793,9 @@ TEST_CASE("minlight doesn't bounce")
|
|||
auto [bsp, bspx, lit] = QbspVisLight_Q1("q1_minlight_nobounce.map", {"-lit"});
|
||||
CheckFaceLuxelAtPoint(&bsp, &bsp.dmodels[0], {50, 50, 50}, {0, 0, 0}, {0, 0, 1}, &lit);
|
||||
}
|
||||
|
||||
TEST_CASE("q1_sunlight")
|
||||
{
|
||||
auto [bsp, bspx, lit] = QbspVisLight_Q1("q1_sunlight.map", {"-lit"});
|
||||
CheckFaceLuxelAtPoint(&bsp, &bsp.dmodels[0], {42, 42, 42}, {0, 0, 0}, {0, 0, 1}, &lit);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue