Added global variables (syncRain, syncWind, syncMisc) which give some control over the weather module:

*Removed duplicate debug output
This commit is contained in:
ulteq 2015-04-24 10:03:48 +02:00
parent 0146439925
commit 5a90ef6207
6 changed files with 23 additions and 33 deletions

View File

@ -1,6 +1,5 @@
class Extended_PreInit_EventHandlers {
class ADDON {
clientInit = QUOTE(call COMPILE_FILE(XEH_preClientInit));
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};

View File

@ -1,6 +1,8 @@
#include "script_component.hpp"
GVAR(enableRain) = true;
GVAR(syncRain) = true;
GVAR(syncWind) = true; // Wind, Gusts, Waves
GVAR(syncMisc) = true; // Lightnings, Rainbow, Fog
GVAR(wind_period_start_time) = time;
GVAR(rain_period_start_time) = time;
@ -8,10 +10,12 @@ GVAR(rain_period_start_time) = time;
"ACE_WIND_PARAMS" addPublicVariableEventHandler { GVAR(wind_period_start_time) = time; };
"ACE_RAIN_PARAMS" addPublicVariableEventHandler { GVAR(rain_period_start_time) = time; };
"ACE_MISC_PARAMS" addPublicVariableEventHandler {
if !(isServer) then {
30 setLightnings (ACE_MISC_PARAMS select 0);
30 setRainbow (ACE_MISC_PARAMS select 1);
30 setFog (ACE_MISC_PARAMS select 2);
if (!isServer) then {
if (GVAR(syncMisc)) then {
30 setLightnings (ACE_MISC_PARAMS select 0);
30 setRainbow (ACE_MISC_PARAMS select 1);
30 setFog (ACE_MISC_PARAMS select 2);
};
GVAR(temperatureShift) = (ACE_MISC_PARAMS select 3);
GVAR(badWeatherShift) = (ACE_MISC_PARAMS select 4);
GVAR(humidityShift) = (ACE_MISC_PARAMS select 5);

View File

@ -1,17 +0,0 @@
#include "script_component.hpp"
FUNC(KEEPTIME) = {
if((count GVAR(WINDSPEED)) > 0) then {
private ["_wind", "_p", "_str"];
_wind = ACE_wind;
_p = _wind call CBA_fnc_vect2polar;
_str = format["Wind: %1 at %2m/s (%3MPH)\n%4", floor(_p select 1), floor(_p select 0), floor((_p select 0)*2.23693629), GVAR(WINDSPEED)];
TRACE_2("Wind",_wind,_str);
};
};
#ifdef DEBUG_MODE_FULL
[FUNC(KEEPTIME), 0.0, []] call CBA_fnc_addPerFrameHandler;
#endif

View File

@ -11,12 +11,12 @@
*/
#include "script_component.hpp"
private ["_i", "_lastRain", "_rainOverCast", "_transitionTime", "_windDirectionVariance", "_windSpeed", "_windSpeedChange", "_windMaxDiff", "_windMinDiff", "_windDirection", "_windDirectionChange", "_time", "_ratioMin", "_ratioMax"];
private ["_lastRain", "_rainOverCast", "_transitionTime", "_windDirectionVariance", "_windSpeed", "_windSpeedChange", "_windMaxDiff", "_windMinDiff", "_windDirection", "_windDirectionChange", "_time", "_ratioMin", "_ratioMax"];
// Rain simulation
if(GVAR(rain_period_count) > GVAR(rain_next_period)) then {
if (GVAR(syncRain) && GVAR(rain_period_count) > GVAR(rain_next_period)) then {
if(overcast >= 0.7) then {
if (overcast >= 0.7) then {
_lastRain = GVAR(current_rain);
_rainOverCast = ((overcast-0.7)/0.3);
GVAR(rain_next_period) = ceil((1+random(10))/GVAR(overcast_multiplier));
@ -44,7 +44,7 @@ if(GVAR(rain_period_count) > GVAR(rain_next_period)) then {
};
// Wind simulation
if(GVAR(wind_period_count) > GVAR(wind_next_period)) then {
if (GVAR(syncWind) && GVAR(wind_period_count) > GVAR(wind_next_period)) then {
GVAR(wind_next_period) = ceil((2 + (random 5)) / GVAR(overcast_multiplier));
GVAR(wind_period_count) = 0;
@ -89,9 +89,11 @@ if(GVAR(wind_period_count) > GVAR(wind_next_period)) then {
publicVariable "ACE_WIND_PARAMS";
};
// Sync misc. parameters
ACE_MISC_PARAMS = [lightnings, rainbow, fogParams, GVAR(temperatureShift), GVAR(badWeatherShift), GVAR(humidityShift)];
publicVariable "ACE_MISC_PARAMS";
if (GVAR(syncMisc)) then {
ACE_MISC_PARAMS = [lightnings, rainbow, fogParams, GVAR(temperatureShift), GVAR(badWeatherShift), GVAR(humidityShift)];
publicVariable "ACE_MISC_PARAMS";
};
GVAR(rain_period_count) = GVAR(rain_period_count) + 1;
GVAR(wind_period_count) = GVAR(wind_period_count) + 1;

View File

@ -11,9 +11,9 @@
*/
#include "script_component.hpp"
private ["_oldStrength", "_rainStrength", "_transitionTime", "_periodPosition", "_periodPercent"];
if (!GVAR(syncRain)) exitWith {};
if (!GVAR(enableRain)) exitWith {};
private ["_oldStrength", "_rainStrength", "_transitionTime", "_periodPosition", "_periodPercent"];
if (!isNil "ACE_RAIN_PARAMS" && {!isNil QGVAR(rain_period_start_time)}) then {
_oldStrength = ACE_RAIN_PARAMS select 0;

View File

@ -11,6 +11,8 @@
*/
#include "script_component.hpp"
if (!GVAR(syncWind)) exitWith { ACE_wind = wind };
ACE_wind = [] call FUNC(getWind);
setWind [ACE_wind select 0, ACE_wind select 1, true];
2 setGusts 0;
@ -18,4 +20,4 @@ setWind [ACE_wind select 0, ACE_wind select 1, true];
// Set waves: 0 when no wind, 1 when wind >= 16 m/s
1 setWaves (((vectorMagnitude ACE_wind) / 16.0) min 1.0);
//hintSilent format["Wind: %1\nACE_wind: %2\nDeviation: %3 (m/s)", wind, ACE_wind, Round((vectorMagnitude (ACE_wind vectorDiff wind)) * 1000) / 1000];
TRACE_3("Wind/ACE_wind/Deviation(m/s)",wind,ACE_wind,Round((vectorMagnitude (ACE_wind vectorDiff wind)) * 1000) / 1000);