View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003859 | The Dark Mod | Script/Def | public | 22.09.2014 11:01 | 22.12.2018 09:42 |
| Reporter | tels | Assigned To | |||
| Priority | normal | Severity | normal | Reproducibility | always |
| Status | suspended | Resolution | suspended | ||
| Summary | 0003859: Location settings script object always manipulates the ambient light | ||||
| Description | The script object attached to the "atdm:location_settings" entity will always modify the main ambient light, even when this is not nec. (f.i. when there are no dynamic parts and a script wants to control the ambient light in a location). | ||||
| Tags | No tags attached. | ||||
| Attached Files | tels_patch_i_ambient_fade_2014-09-22.txt (13,347 bytes)
--- /home/te/games/tdm/def/misc.def.org 2014-04-25 21:06:08.000000000 +0200
+++ /home/te/games/tdm/def/misc.def 2014-09-22 11:42:24.000000000 +0200
@@ -137,6 +137,8 @@
"editor_float ambient_light_fade_time" "Time in seconds to fade the ambient light to the new color."
"editor_float fade_time" "Time in seconds to fade the ambient music/sound to the new sound."
"editor_vector ambient_light_dynamic_cap" "Cap the dynamic part of the ambient light at these values. Default is 0.1 0.1 0.1, but other settings can be useful - for instance 0.2 0.05 0.05 in a reddish cave, etc."
+ "editor_vector ambient_light_dynamic" "The factor to multiply light sources in the current PVS to compute the dynamic part of the ambient light. Default is 0.1 0.1 0.1, but other settings can be useful - for instance 0.2 0.05 0.05 in a reddish cave, etc. See also 'ambient_light_dynamic_cap'."
+ "editor_bool no_ambient_light_fade" "If set to 1, the main ambient light will not be modified. Can be overriden in each location with 'no_ambient_light_fade' '0' and defaults to 0."
"editor_float ambient_light_falloff" "Selects the falloff adjustment for the lights in the current area based on their distance. Possible values: 0 = no falloff with distance, 0.5 = sqrt(distance), 1 = linear falloff, 2 = squared falloff. 1 looks best. This setting can be overriden for each location on the 'info_location' entity. See also 'ambient_light_dist_scale'."
"editor_float ambient_light_dist_scale" "An adjustment factor for the distance-based falloffs (if 'ambient_light_falloff' is > 0). Values around 1.0 look best. Can be overriden for each location on the 'info_location' entity."
@@ -146,6 +148,7 @@
"editor_setkeyValue ambient_light_falloff" "0"
"editor_setkeyValue ambient_light_dist_scale" "1.0"
+ "editor_setkeyValue no_ambient_light_fade" "0"
"ambient_light_dynamic_cap" "0.1 0.1 0.1"
"editor_setkeyValue ambient_light_dynamic_cap" "0.1 0.1 0.1"
@@ -203,13 +206,16 @@
"editor_var call_once_on_exit" "Name of global script function to be called exactly once when the player exits this zone."
"editor_var call_once_on_entry" "Name of global script function to be called exactly once when the player enters this zone."
- "editor_var ambient_light_dynamic" "Factor to multiply the sum of all light sources in this location by before adding them to the 'ambient_light'. Set to '0 0 0' to disable dynamic ambient light for this location. Defaults to '0.01 0.01 0.01'."
+ "editor_vector ambient_light_dynamic" "Factor to multiply the sum of all light sources in this location by before adding them to the 'ambient_light'. Set to '0 0 0' to disable dynamic ambient light for this location. Defaults to '0.01 0.01 0.01'."
"editor_float ambient_light_falloff" "Selects the falloff adjustment for the lights in the current area based on their distance. Possible values: -1 = use setting from your atdm:location_settings entity, 0 = no falloff with distance, 0.5 = sqrt(distance), 1 = linear falloff, 2 = squared falloff. 1 looks best. See also 'ambient_light_dist_scale'."
"editor_float ambient_light_dist_scale" "An adjustment factor for the distance-based falloffs (if 'ambient_light_falloff' is > 0). Values around 1.0 look best. A value of -1 uses the value from your atdm:location_settings entity."
"editor_vector ambient_light_dynamic_cap" "Cap the dynamic part of the ambient light at these values. Default is 0.1 0.1 0.1, but other settings can be useful, for instance 0.2 0.05 0.05 in a reddish cave, etc."
+ "editor_bool no_ambient_light_fade" "If set to 1, the main ambient light will not be modified when inside this location. If set to '-1', use setting from your atdm:location_settings entity."
+ "editor_setkeyValue no_ambient_light_fade" "-1"
+
"ambient_light_falloff" "-1" // use atdm:location settings
"ambient_light_dist_scale" "-1" // use atdm:location settings
--- /home/te/games/tdm/script/tdm_location_settings.script.org 2013-12-06 18:23:58.000000000 +0100
+++ /home/te/games/tdm/script/tdm_location_settings.script 2014-09-22 12:43:07.000000000 +0200
@@ -60,6 +60,7 @@
float music_volume;
/* Tels: Additional members for the ambient light changing: */
+ boolean m_al_no_fade;
float m_al_fade_time;
float m_al_fade_time_default;
@@ -129,7 +130,13 @@
music_volume = (sys.strToFloat( sys.getcvar("tdm_music_volume") ) + 40) / 40;
/* Tels: Init the ambient light part: */
-
+ m_al_no_fade = false;
+ if (getBoolKey( "no_ambient_light_fade" ))
+ {
+ m_al_no_fade = true;
+ sys.println ("Global no_ambient_light_fade = true, will not fade the main ambient light.");
+ // but continue, because the current location might want to fade the light again
+ }
// the default time
m_al_fade_time_default = getFloatKey( "ambient_light_fade_time" );
// set a default
@@ -232,7 +239,7 @@
// player entered new location, so update ambient base color and fade time/delay
void speaker_zone_ambient::updateAmbientLight( entity locEnt )
{
- // sys.print( "Setting ambient in location " + locEnt.getName() );
+ // sys.println( "Setting ambient in location " + locEnt.getName() );
//sys.print( "Setting old base to '" + m_al_base + "'\n");
// store the current base and add the old dynamic so we don't experience a sudden drop/raise (bug #2326)
@@ -241,11 +248,10 @@
// fade to the new location's color
m_al_base_target = locEnt.getVectorKey("ambient_light");
- // tels: can this be done simpler? == "0,0,0" doesn't work, tho
- if (m_al_base_target_x == 0 && m_al_base_target_y == 0 && m_al_base_target_z == 0)
+ if (m_al_base_target == '0 0 0')
{
// no value found, use the default
- // sys.print( "No new target, using default color '" + m_al_default_color + "'\n");
+ // sys.println( "No new target, using default color '" + m_al_default_color + "'");
m_al_base_target = m_al_default_color;
}
@@ -270,6 +276,46 @@
}
// time that has elapsed going from base_old to base_target
m_al_fade_start = sys.getTime();
+
+ // See if we need to start or stop fading in this location
+ boolean no_fade = false;
+ string fade_key = locEnt.getKey("no_ambient_light_fade");
+ if (fade_key == "" || fade_key == "-" || fade_key == "-1")
+ {
+ // not defined, use the global setting
+ if (getBoolKey("no_ambient_light_fade"))
+ {
+ no_fade = true;
+ }
+ }
+ else
+ {
+ if (fade_key != "0")
+ {
+ no_fade = true;
+ }
+ }
+
+ // setting changed in this location?
+ if (no_fade && !m_al_no_fade)
+ {
+ sys.println ("speaker_zone_ambient: no_ambient_light_fade = true, stop fading ambient light.");
+ m_al_no_fade = true;
+ // If we stop fading the ambient light, at least set the ambient for the new zone, so we
+ // are not stuck with the old values. After this initial set here, the ambient light will be
+ // left alone and can be controlled by scripts:
+ m_al_fade_start = 0; // avoid a ambient_fade_time > 0 preventing this setting here
+ fadeAmbientLight();
+ }
+ else
+ {
+ if (!no_fade && m_al_no_fade)
+ {
+ sys.println ("speaker_zone_ambient: no_ambient_light_fade = false, start fading ambient light again.");
+ m_al_no_fade = false;
+ }
+ }
+
}
// compute the current base ambient light based on: old color, target color, elapsed time
@@ -376,68 +422,72 @@
// sys.println( "Ambient script check, music_volume " + music_volume + " in location " + locEnt.getName() );
- // Tels: query here the ambient_light_dynamic factor:
- vector dyn = locEnt.getVectorKey("ambient_light_dynamic");
-
- if (dyn_x != 0 || dyn_y != 0 || dyn_z != 0)
+ // now fade the ambient light until the next update
+ if (!m_al_no_fade)
{
- // save the old dynamic value for a smoother fade (bug #2327)
- m_al_dynamic_old = m_al_dynamic;
+ // Tels: query here the ambient_light_dynamic factor:
+ vector dyn = locEnt.getVectorKey("ambient_light_dynamic");
- // parameters: falloff, distance_scaling:
- // falloff == 0: no falloff with distance
- // falloff == 0.5: sqrt(linear) falloff (dist 100 => 1/10)
- // falloff == 1: linear falloff (dist 100 => 1/100)
- // falloff == 2: square falloff (dist 100 => 1/10000)
- // distance scaling: factor to scale the distance, can be used to lower/raise distance factor
- // after the linear or square scaling has been used.
- float falloff;
- falloff = locEnt.getFloatKey("ambient_light_falloff"); // default is 1
- if (falloff == -1)
- {
- falloff = m_al_falloff_default;
- }
- float dynScale;
- dynScale = locEnt.getFloatKey("ambient_light_dist_scale");
- if (dynScale == -1)
- {
- dynScale = m_al_dist_scale_default;
- }
- // adjust the scaling so the mapper can always put 1.0 for every falloff
- // good looking: approx: sqrt(linear): 0.01, linear: 0.1, square 1.0
- if (falloff == 0.5)
+ if (dyn != '0 0 0')
{
- dynScale /= 100; // 1.0 => 0.01
+ // save the old dynamic value for a smoother fade (bug #2327)
+ m_al_dynamic_old = m_al_dynamic;
+
+ // parameters: falloff, distance_scaling:
+ // falloff == 0: no falloff with distance
+ // falloff == 0.5: sqrt(linear) falloff (dist 100 => 1/10)
+ // falloff == 1: linear falloff (dist 100 => 1/100)
+ // falloff == 2: square falloff (dist 100 => 1/10000)
+ // distance scaling: factor to scale the distance, can be used to lower/raise distance factor
+ // after the linear or square scaling has been used.
+ float falloff;
+ falloff = locEnt.getFloatKey("ambient_light_falloff"); // default is 1
+ if (falloff == -1)
+ {
+ falloff = m_al_falloff_default;
+ }
+ float dynScale;
+ dynScale = locEnt.getFloatKey("ambient_light_dist_scale");
+ if (dynScale == -1)
+ {
+ dynScale = m_al_dist_scale_default;
+ }
+ // adjust the scaling so the mapper can always put 1.0 for every falloff
+ // good looking: approx: sqrt(linear): 0.01, linear: 0.1, square 1.0
+ if (falloff == 0.5)
+ {
+ dynScale /= 100; // 1.0 => 0.01
+ }
+ else if (falloff == 1)
+ {
+ dynScale /= 10; // 1.0 => 0.1
+ }
+ vector light_in_pvs = $player1.getLightInPVS( falloff, dynScale );
+ m_al_dynamic_x = light_in_pvs_x * dyn_x;
+ m_al_dynamic_y = light_in_pvs_y * dyn_y;
+ m_al_dynamic_z = light_in_pvs_z * dyn_z;
+
+ // cap the value?
+ vector cap = locEnt.getVectorKey("ambient_light_dynamic_cap");
+ if (cap_x > 0 && m_al_dynamic_x > cap_x ) { m_al_dynamic_x = cap_x; }
+ if (cap_y > 0 && m_al_dynamic_y > cap_y ) { m_al_dynamic_y = cap_y; }
+ if (cap_z > 0 && m_al_dynamic_z > cap_z ) { m_al_dynamic_z = cap_z; }
+
+ //sys.print( " New dynamic ambient light cap is: '" + cap + "'. \n" );
+ // sys.print( " New dynamic ambient light is: '" + m_al_dynamic + "'. \n" );
+ //sys.print( " Old dynamic ambient light: '" + m_al_dynamic_old + "'. \n" );
}
- else if (falloff == 1)
+ else // we entered a zone where the dynamic part is zero? avoid getting *stuck* at the old value
{
- dynScale /= 10; // 1.0 => 0.1
+ // save the old dynamic value for a smoother fade (bug #2327)
+ m_al_dynamic_old = m_al_dynamic;
+ // fade it to half the value, over time this will result in 0:
+ m_al_dynamic_x = m_al_dynamic_old_x / 2;
+ m_al_dynamic_y = m_al_dynamic_old_y / 2;
+ m_al_dynamic_z = m_al_dynamic_old_z / 2;
+ // sys.print( " dyn = 0 0 0, New dynamic ambient light is: '" + m_al_dynamic + "'. \n" );
}
- vector light_in_pvs = $player1.getLightInPVS( falloff, dynScale );
- m_al_dynamic_x = light_in_pvs_x * dyn_x;
- m_al_dynamic_y = light_in_pvs_y * dyn_y;
- m_al_dynamic_z = light_in_pvs_z * dyn_z;
-
- // cap the value?
- vector cap = locEnt.getVectorKey("ambient_light_dynamic_cap");
- if (cap_x > 0 && m_al_dynamic_x > cap_x ) { m_al_dynamic_x = cap_x; }
- if (cap_y > 0 && m_al_dynamic_y > cap_y ) { m_al_dynamic_y = cap_y; }
- if (cap_z > 0 && m_al_dynamic_z > cap_z ) { m_al_dynamic_z = cap_z; }
-
- //sys.print( " New dynamic ambient light cap is: '" + cap + "'. \n" );
- // sys.print( " New dynamic ambient light is: '" + m_al_dynamic + "'. \n" );
- //sys.print( " Old dynamic ambient light: '" + m_al_dynamic_old + "'. \n" );
- }
- else // we entered a zone where the dynamic part is zero? avoid getting *stuck* at the old value
- {
- // save the old dynamic value for a smoother fade (bug #2327)
- m_al_dynamic_old = m_al_dynamic;
- // fade it to half the value, over time this will result in 0:
- m_al_dynamic_x = m_al_dynamic_old_x / 2;
- m_al_dynamic_y = m_al_dynamic_old_y / 2;
- m_al_dynamic_z = m_al_dynamic_old_z / 2;
- // sys.print( " dyn = 0 0 0, New dynamic ambient light is: '" + m_al_dynamic + "'. \n" );
- }
+ } // end no_ambient_light_fade
if( locEnt.getName() != m_prevLocation )
{
@@ -487,7 +537,7 @@
callGlobalFunction( call, m_prevLocationEnt );
}
- /* Tels: Update the new ambient base color and fade times/delays */
+ /* Tels: Update the new ambient base color and fade times/delays, as well as m_al_no_fade */
updateAmbientLight( locEnt );
/* Ambient speaker code starts here: */
@@ -665,7 +715,10 @@
}
// now fade the ambient light until the next update
- fadeAmbientLight();
+ if (!m_al_no_fade)
+ {
+ fadeAmbientLight();
+ }
wait( m_updatePeriod );
}
tels_patch_j_ambient_fade_2014-09-22.txt (8,154 bytes)
--- /home/te/games/tdm/script/tdm_location_settings.script.ol2 2014-09-22 12:43:07.000000000 +0200
+++ /home/te/games/tdm/script/tdm_location_settings.script 2014-09-22 14:15:14.000000000 +0200
@@ -55,12 +55,14 @@
boolean speaker_on; // checks the turning on/off of channels so that channel-1 only gets turned off once when needed, first time after a transition (not every round)
float volumeFactor; // A placeholder variable for the decibel-decimal conversion math
float db_factor; // Pre-computes the conversion factor from ln to log2 for decibel conversion.
+
+ boolean m_invalid_zone; // to run some actions only the first time we enter an invalid location
// Tels: save the old value of the tdm_music_volume CVAR so we can track when it changes in a location
float music_volume;
/* Tels: Additional members for the ambient light changing: */
- boolean m_al_no_fade;
+ boolean m_al_no_fade;
float m_al_fade_time;
float m_al_fade_time_default;
@@ -98,14 +100,17 @@
void RestoreScriptObject();
float getCurrentVolume(entity locEnt); // compute volume of current playing ambient from "volume" spawnarg and menu cvar
void updateLoop();
- void updateAmbientLight( entity locEnt );
- void fadeAmbientLight();
+ void updateAmbientLight( entity locEnt ); // update the settings on location change
+ void fadeAmbientLight(); // compute new light color based on location and time
+ void fadeAmbientLightColor(vector targetColor, float fadeTime); // fade straight to the new color
};
void speaker_zone_ambient::init()
{
sys.println ("speaker_zone_ambient::init() called");
+ m_invalid_zone = false;
+
m_updatePeriod = getFloatKey( "update_period" );
// if == 0?
if (m_updatePeriod < 0.001)
@@ -131,9 +136,11 @@
/* Tels: Init the ambient light part: */
m_al_no_fade = false;
+ boolean global_no_fade = false;
if (getBoolKey( "no_ambient_light_fade" ))
{
m_al_no_fade = true;
+ global_no_fade = true;
sys.println ("Global no_ambient_light_fade = true, will not fade the main ambient light.");
// but continue, because the current location might want to fade the light again
}
@@ -147,7 +154,6 @@
// grayman #3132 - the main ambient light doesn't have to be named 'ambient_world',
// so ask which one has been assigned the job, if any
-
entity ambientWorld = sys.getMainAmbientLight();
if ( ambientWorld != $null_entity )
{
@@ -168,7 +174,23 @@
m_al_dynamic_z = 0;
m_al_dynamic_old = m_al_dynamic;
- updateAmbientLight( $player1.getLocation() );
+ entity curLoc = $player1.getLocation();
+ // skip if we start in an invalid zone
+ if (curLoc != $null_entity)
+ {
+ updateAmbientLight( curLoc );
+ if (global_no_fade && m_al_no_fade)
+ {
+ // we started in a location that has "no_ambient_light_fade", so set the value at least once
+ sys.println("Starting location has no_ambient_light_fade true, setting ambient light once to " + m_al_base_target);
+ vector al_def = curLoc.getVectorKey("ambient_light");
+ fadeAmbientLightColor( al_def, 0 );
+ }
+ }
+ else
+ {
+ m_invalid_zone = true;
+ }
// now run in a loop:
updateLoop();
@@ -299,13 +321,15 @@
// setting changed in this location?
if (no_fade && !m_al_no_fade)
{
- sys.println ("speaker_zone_ambient: no_ambient_light_fade = true, stop fading ambient light.");
+ sys.println ("speaker_zone_ambient: no_ambient_light_fade = true, stopping fading ambient light.");
m_al_no_fade = true;
// If we stop fading the ambient light, at least set the ambient for the new zone, so we
// are not stuck with the old values. After this initial set here, the ambient light will be
// left alone and can be controlled by scripts:
- m_al_fade_start = 0; // avoid a ambient_fade_time > 0 preventing this setting here
- fadeAmbientLight();
+ m_al_base = m_al_base_target;
+ // avoid getting stuck at the old dynamic value
+ m_al_dynamic = '0 0 0';
+ fadeAmbientLightColor( m_al_base, m_updatePeriod * 2 ); // avoid too abrupt changes
}
else
{
@@ -317,6 +341,33 @@
}
}
+
+// fade the ambient light to the new color (or set it for "fast ambient")
+void speaker_zone_ambient::fadeAmbientLightColor(vector targetColor, float fadeTime)
+{
+ if ( sys.getcvar("tdm_ambient_method") == "0")
+ {
+ // grayman #3132 - retrieve the main ambient light
+ entity ambientWorld = sys.getMainAmbientLight();
+ if ( ambientWorld != $null_entity )
+ {
+ ambientWorld.fadeToLight( targetColor, fadeTime );
+ }
+ }
+ // Tels: if the "fast ambient" method is used, do not fade the light, or
+ // it would be turned on and interfere:
+ else
+ {
+ // C++ code has this:
+ // gameLocal.globalShaderParms[2] = ambient_color.x * 1.5f;
+ // gameLocal.globalShaderParms[3] = ambient_color.y * 1.5f;
+ // gameLocal.globalShaderParms[4] = ambient_color.z * 1.5f;
+ // so do the same here:
+ sys.setShaderParm( 2, targetColor_x * 1.5 );
+ sys.setShaderParm( 3, targetColor_y * 1.5 );
+ sys.setShaderParm( 4, targetColor_z * 1.5 );
+ }
+}
// compute the current base ambient light based on: old color, target color, elapsed time
void speaker_zone_ambient::fadeAmbientLight( )
@@ -359,41 +410,16 @@
}
}
- // Tels: if the "fast ambient" method is used, do not fade the light, or
- // it would be turned on and interfere:
- if ( sys.getcvar("tdm_ambient_method") == "0")
- {
- // this call will do nothing if the light is already at the right color
- // fade the light until we update it next:
- // bug #2326: if m_al_fade_time is shorter than m_updatePeriod, use it instead
- float f_time = m_updatePeriod;
- if (m_al_fade_time < f_time)
- {
- f_time = m_al_fade_time;
- }
- //sys.print( "Fading light to '" + m_al_base);
- //sys.print( "' plus '" + m_al_dynamic );
- //sys.print( "' in '" + f_time + "' seconds.\n");
-
- // grayman #3132 - retrieve the main ambient light
- entity ambientWorld = sys.getMainAmbientLight();
- if ( ambientWorld != $null_entity )
- {
- ambientWorld.fadeToLight( m_al_base + m_al_dynamic, f_time );
- }
- }
- else
- {
- // C++ code has this:
- // gameLocal.globalShaderParms[2] = ambient_color.x * 1.5f;
- // gameLocal.globalShaderParms[3] = ambient_color.y * 1.5f;
- // gameLocal.globalShaderParms[4] = ambient_color.z * 1.5f;
- // so do the same here:
- vector al_combined = m_al_base + m_al_dynamic;
- sys.setShaderParm( 2, al_combined_x * 1.5 );
- sys.setShaderParm( 3, al_combined_y * 1.5 );
- sys.setShaderParm( 4, al_combined_z * 1.5 );
- }
+ // bug #2326: if m_al_fade_time is shorter than m_updatePeriod, use it instead
+ float f_time = m_updatePeriod;
+ if (m_al_fade_time < f_time)
+ {
+ f_time = m_al_fade_time;
+ }
+ //sys.print( "Fading light to '" + m_al_base);
+ //sys.print( "' plus '" + m_al_dynamic );
+ //sys.print( "' in '" + f_time + "' seconds.\n");
+ fadeAmbientLightColor( m_al_base + m_al_dynamic, f_time );
/*
sys.print( "Old ambient light is: '" + m_al_base_old + "'. \n" );
sys.print( "New target ambient light is: '" + m_al_base_target + "'. \n" );
@@ -415,11 +441,30 @@
// bug #2326
if (locEnt == $null_entity)
{
+ if (!m_invalid_zone)
+ {
+ // Tels: #3694: when first entering an invalid zone, fade the ambient light back to the default value
+ sys.println("Entered invalid zone - missing no info_location entity!\n Setting ambient light:" + m_al_default_color);
+ m_invalid_zone = true;
+ m_al_dynamic = '0 0 0';
+ m_al_dynamic_old = '0 0 0';
+ m_al_base = m_al_default_color;
+ m_al_base_target = m_al_default_color;
+ fadeAmbientLightColor( m_al_default_color, m_updatePeriod * 2 ); // avoid too abrupt changes
+ // TODO: fade out music?
+ }
// invalid zone, wait and try again
wait( m_updatePeriod );
continue;
}
+ if (m_invalid_zone)
+ {
+ sys.println("Left invalid zone, entered " + locEnt.getName());
+ // TODO: fade music in again if we faded it out?
+ m_invalid_zone = false;
+ }
+
// sys.println( "Ambient script check, music_volume " + music_volume + " in location " + locEnt.getName() );
// now fade the ambient light until the next update
| ||||
|
The attached patch implements a "no_ambient_light_fade" spawnarg on both the location settings and the info_location entities. The attached map demos the new feature. Here is more info: http://forums.thedarkmod.com/topic/16511-my-patches-and-contribution/page__view__findpost__p__354894 |
|
|
Attached is another patch (_j_) which fixes the issue with starting in a location with "no_ambient_light_fade". It also fixes 3694 (entering an invalid zone) and also breaks out the actual "light update" into its own routine, so it an be re-used. The attched tdm_location_settings.script is the version with both patches applied. The new testmap is at bug 3694 - the only difference to this map is the invalid zone in the red area to the far right (from the player start). |
|
| Work around is to manually set "ambient_light_dynamic" to 0 0 0 on all info_location entities in the map. | |
|
Still has latern fixes that might be useful... Suspended. |
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 22.09.2014 11:01 | tels | New Issue | |
| 22.09.2014 11:02 | tels | File Added: ambient_fade_test.pk4 | |
| 22.09.2014 11:02 | tels | File Added: tels_patch_i_ambient_fade_2014-09-22.txt | |
| 22.09.2014 11:03 | tels | Note Added: 0007027 | |
| 22.09.2014 11:04 | tels | Relationship added | related to 0002901 |
| 22.09.2014 12:21 | tels | Relationship added | related to 0003694 |
| 22.09.2014 12:22 | tels | File Added: tels_patch_j_ambient_fade_2014-09-22.txt | |
| 22.09.2014 12:23 | tels | File Added: tdm_location_settings.script | |
| 22.09.2014 12:25 | tels | Note Added: 0007030 | |
| 28.03.2018 09:28 |
|
Note Added: 0010193 | |
| 28.03.2018 09:29 |
|
Status | new => closed |
| 28.03.2018 09:29 |
|
Assigned To | => user81 |
| 28.03.2018 09:29 |
|
Resolution | open => fixed |
| 28.03.2018 09:29 |
|
Fixed in Version | => TDM 2.06 |
| 25.04.2018 05:23 | nbohr1more | Status | closed => suspended |
| 25.04.2018 05:23 | nbohr1more | Resolution | fixed => suspended |
| 25.04.2018 05:23 | nbohr1more | Fixed in Version | TDM 2.06 => |
| 25.04.2018 05:24 | nbohr1more | Note Added: 0010397 | |
| 22.12.2018 09:42 |
|
Assigned To | user81 => |