From 17d5058ddbbf06776d18770cc709f7e7f2a25e9d Mon Sep 17 00:00:00 2001 From: torcs-ng Date: Mon, 6 Jul 2015 02:02:08 +0000 Subject: [PATCH] - Update Shadow's driver git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6039 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 6f92f1e05f13a304d2ab9eeb48e740f442f15516 Former-commit-id: f4c971fdacf58409afaee5e03cad42a086e1384d --- src/drivers/shadow/src/Driver.cpp | 26 ++++++++++++++++++-------- src/drivers/shadow/src/Driver.h | 2 ++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/drivers/shadow/src/Driver.cpp b/src/drivers/shadow/src/Driver.cpp index 3cb7b9330..c016343e0 100644 --- a/src/drivers/shadow/src/Driver.cpp +++ b/src/drivers/shadow/src/Driver.cpp @@ -193,7 +193,9 @@ TDriver::TDriver(int Index, const int robot_type): m_FuelNeeded(0), - m_Strategy(NULL) + m_Strategy(NULL), + + m_raceType(0) { INDEX = Index; @@ -445,6 +447,8 @@ void TDriver::InitTrack( tTrack* pTrack, void* pCarHandle, void** ppCarParmHandl // const char* raceType[] = { "practice", "qualify", "race" }; + m_raceType = pS->_raceType; + LogSHADOW.info("#RaceType = %d\n", m_raceType); m_WeatherCode = GetWeather(); @@ -461,15 +465,20 @@ void TDriver::InitTrack( tTrack* pTrack, void* pCarHandle, void** ppCarParmHandl // ok, lets read/merge the car parms. // + Meteorology(); + // default params for car type (e.g. clkdtm) snprintf( buf, BUFSIZE, "drivers/%s/%s/%s.xml", robot_name, m_CarType, trackName ); LogSHADOW.info("#Override params for car type with params of track: %s\n", buf); hCarParm = MergeParamFile(hCarParm, buf); - // Override params for car type with params of track and weather - snprintf(buf, BUFSIZE, "drivers/%s/%s/%s-%d.xml", robot_name, m_CarType, trackName, m_WeatherCode); - LogSHADOW.info("#Override params for car type with params of track and weather: %s\n", buf); - hCarParm = MergeParamFile(hCarParm, buf); + if (m_Rain) + { + // Override params for car type with params of track and weather + snprintf(buf, BUFSIZE, "drivers/%s/%s/%s-%d.xml", robot_name, m_CarType, trackName, m_WeatherCode); + LogSHADOW.info("#Override params for car type with params of track and weather: %s\n", buf); + hCarParm = MergeParamFile(hCarParm, buf); + } // override params for car type on track of specific race type. snprintf( buf, sizeof(buf), "drivers/%s/%s/track-%s-%s.xml", robot_name, m_CarType, trackName, raceType[pS->_raceType] ); @@ -487,16 +496,17 @@ void TDriver::InitTrack( tTrack* pTrack, void* pCarHandle, void** ppCarParmHandl m_cm.AERO = (int)GfParmGetNum(hCarParm, SECT_PRIV, PRV_AERO_MOD, 0, 0); m_cm.MU_SCALE = GfParmGetNum(hCarParm, SECT_PRIV, PRV_MU_SCALE, NULL, 0.9f); - if (raceType[pS->_raceType] == "qualify") + if (m_raceType == 1) + { m_cm.MU_SCALE = m_cm.MU_SCALE + 0.02; + LogSHADOW.info("#Scale Mu Qualification\n"); + } m_cm.KZ_SCALE = GfParmGetNum(hCarParm, SECT_PRIV, PRV_KZ_SCALE, NULL, 0.43f); m_cm.BUMP_FACTOR = GfParmGetNum(hCarParm, SECT_PRIV, PRV_BUMP_FACTOR, NULL, 1.0); m_cm.NEEDSINLONG = GfParmGetNum(hCarParm, SECT_PRIV, PRV_NEED_SIN, NULL, 0); m_cm.USEDACCEXIT = GfParmGetNum(hCarParm, SECT_PRIV, PRV_USED_ACC, NULL, 0); - Meteorology(); - FACTORS.RemoveAll(); for( int i = 0; ; i++ ) diff --git a/src/drivers/shadow/src/Driver.h b/src/drivers/shadow/src/Driver.h index 2358b3e08..ba0cd2603 100644 --- a/src/drivers/shadow/src/Driver.h +++ b/src/drivers/shadow/src/Driver.h @@ -458,6 +458,8 @@ private: double DecelAdjustTarget; // double DecelAdjustPerc; // + int m_raceType; + unsigned int RandomSeed; // seed of generator double CA;