From 5dbf6ad7225ea5bbad45c630ff431a829a690a45 Mon Sep 17 00:00:00 2001 From: wdbee Date: Sat, 16 May 2009 10:42:57 +0000 Subject: [PATCH] Soft suspension setups git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@925 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: e81e28cf7d368b5e3348b05e3e8c9dc1259e6677 Former-commit-id: b03b73ee8fb72e0794931c7e214b6f316cdc3589 --- src/drivers/simplix/simplix_sc/0/skill.xml | 2 +- src/drivers/simplix/simplix_sc/1/skill.xml | 2 +- src/drivers/simplix/simplix_sc/10/skill.xml | 2 +- src/drivers/simplix/simplix_sc/11/skill.xml | 2 +- src/drivers/simplix/simplix_sc/12/skill.xml | 2 +- src/drivers/simplix/simplix_sc/13/skill.xml | 2 +- src/drivers/simplix/simplix_sc/2/skill.xml | 2 +- src/drivers/simplix/simplix_sc/3/skill.xml | 2 +- src/drivers/simplix/simplix_sc/4/skill.xml | 2 +- src/drivers/simplix/simplix_sc/5/skill.xml | 2 +- src/drivers/simplix/simplix_sc/6/skill.xml | 2 +- src/drivers/simplix/simplix_sc/7/skill.xml | 2 +- src/drivers/simplix/simplix_sc/8/skill.xml | 2 +- src/drivers/simplix/simplix_sc/9/skill.xml | 2 +- src/drivers/simplix/simplix_sc/readme.txt | 26 ----- src/drivers/simplix/simplix_sc/simplix_sc.xml | 2 +- .../simplix/simplix_sc/tracks/Corkscrew.xml | 9 +- .../simplix/simplix_sc/tracks/aalborg.xml | 8 +- .../simplix/simplix_sc/tracks/alpine-1.xml | 10 +- .../simplix/simplix_sc/tracks/alpine-2.xml | 10 +- .../simplix/simplix_sc/tracks/e-track-1.xml | 7 +- .../simplix/simplix_sc/tracks/e-track-2.xml | 9 +- .../simplix/simplix_sc/tracks/e-track-3.xml | 9 +- .../simplix/simplix_sc/tracks/e-track-4.xml | 8 +- .../simplix/simplix_sc/tracks/e-track-6.xml | 9 +- .../simplix/simplix_sc/tracks/eroad.xml | 9 +- .../simplix/simplix_sc/tracks/forza.xml | 11 +- .../simplix/simplix_sc/tracks/g-track-1.xml | 7 +- .../simplix/simplix_sc/tracks/g-track-2.xml | 9 +- .../simplix/simplix_sc/tracks/g-track-3.xml | 11 +- .../simplix/simplix_sc/tracks/ole-road-1.xml | 9 +- .../simplix/simplix_sc/tracks/ruudskogen.xml | 9 +- .../simplix/simplix_sc/tracks/spring.xml | 7 +- .../simplix/simplix_sc/tracks/street-1.xml | 9 +- .../simplix/simplix_sc/tracks/wheel-1.xml | 7 +- .../simplix/simplix_sc/tracks/wheel-2.xml | 20 ++-- src/drivers/simplix/src/unitdriver.cpp | 106 +++++++++++++----- src/drivers/simplix/src/unitdriver.h | 3 + src/drivers/simplix/src/unitfixcarparam.cpp | 6 +- src/drivers/simplix/src/unitglobal.h | 6 + src/drivers/simplix/src/unitlane.cpp | 43 +++++-- src/drivers/simplix/src/unitlanepoint.cpp | 31 ++--- src/drivers/simplix/src/unitmain.cpp | 4 +- src/drivers/simplix/src/unitopponent.cpp | 1 + 44 files changed, 276 insertions(+), 167 deletions(-) delete mode 100644 src/drivers/simplix/simplix_sc/readme.txt diff --git a/src/drivers/simplix/simplix_sc/0/skill.xml b/src/drivers/simplix/simplix_sc/0/skill.xml index a0b5c0b88..af23fa632 100644 --- a/src/drivers/simplix/simplix_sc/0/skill.xml +++ b/src/drivers/simplix/simplix_sc/0/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/1/skill.xml b/src/drivers/simplix/simplix_sc/1/skill.xml index 75754ec54..0bf82daed 100644 --- a/src/drivers/simplix/simplix_sc/1/skill.xml +++ b/src/drivers/simplix/simplix_sc/1/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/10/skill.xml b/src/drivers/simplix/simplix_sc/10/skill.xml index 13e4685b7..bf15cf443 100644 --- a/src/drivers/simplix/simplix_sc/10/skill.xml +++ b/src/drivers/simplix/simplix_sc/10/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/11/skill.xml b/src/drivers/simplix/simplix_sc/11/skill.xml index 9d68ccaa9..f5c56808e 100644 --- a/src/drivers/simplix/simplix_sc/11/skill.xml +++ b/src/drivers/simplix/simplix_sc/11/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/12/skill.xml b/src/drivers/simplix/simplix_sc/12/skill.xml index 8e0cd7afb..d4aee1b74 100644 --- a/src/drivers/simplix/simplix_sc/12/skill.xml +++ b/src/drivers/simplix/simplix_sc/12/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/13/skill.xml b/src/drivers/simplix/simplix_sc/13/skill.xml index 56ebaea87..4e90955ad 100644 --- a/src/drivers/simplix/simplix_sc/13/skill.xml +++ b/src/drivers/simplix/simplix_sc/13/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/2/skill.xml b/src/drivers/simplix/simplix_sc/2/skill.xml index 32e38ee98..84529b7bf 100644 --- a/src/drivers/simplix/simplix_sc/2/skill.xml +++ b/src/drivers/simplix/simplix_sc/2/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/3/skill.xml b/src/drivers/simplix/simplix_sc/3/skill.xml index f14d663af..6ef35e734 100644 --- a/src/drivers/simplix/simplix_sc/3/skill.xml +++ b/src/drivers/simplix/simplix_sc/3/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/4/skill.xml b/src/drivers/simplix/simplix_sc/4/skill.xml index 88828e769..1b803083e 100644 --- a/src/drivers/simplix/simplix_sc/4/skill.xml +++ b/src/drivers/simplix/simplix_sc/4/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/5/skill.xml b/src/drivers/simplix/simplix_sc/5/skill.xml index a5843346b..a584abf5c 100644 --- a/src/drivers/simplix/simplix_sc/5/skill.xml +++ b/src/drivers/simplix/simplix_sc/5/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/6/skill.xml b/src/drivers/simplix/simplix_sc/6/skill.xml index d38500eef..21f0b539c 100644 --- a/src/drivers/simplix/simplix_sc/6/skill.xml +++ b/src/drivers/simplix/simplix_sc/6/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/7/skill.xml b/src/drivers/simplix/simplix_sc/7/skill.xml index 60c62eb6b..0a05e68a8 100644 --- a/src/drivers/simplix/simplix_sc/7/skill.xml +++ b/src/drivers/simplix/simplix_sc/7/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/8/skill.xml b/src/drivers/simplix/simplix_sc/8/skill.xml index e603b8893..86511622b 100644 --- a/src/drivers/simplix/simplix_sc/8/skill.xml +++ b/src/drivers/simplix/simplix_sc/8/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/9/skill.xml b/src/drivers/simplix/simplix_sc/9/skill.xml index 90a6c56aa..e7cb3adab 100644 --- a/src/drivers/simplix/simplix_sc/9/skill.xml +++ b/src/drivers/simplix/simplix_sc/9/skill.xml @@ -12,7 +12,7 @@ - + diff --git a/src/drivers/simplix/simplix_sc/readme.txt b/src/drivers/simplix/simplix_sc/readme.txt deleted file mode 100644 index 17951ddce..000000000 --- a/src/drivers/simplix/simplix_sc/readme.txt +++ /dev/null @@ -1,26 +0,0 @@ -// simplix readme.txt 05. Dez. 2008 -// -// Hints - -Skilling: - -The skilling is used to define the range of lap times for the gamers opponents. -This can be done on two separate levels. -The first level is the global level defined by Andrew Sumner and used for the Career mode of Mart Kelder. -If the supercarpackage of Andrew is installed, there is the file ...\torcs\config\raceman\extra\skill.xml. -It contains one parameter to be set in the range of 0.0 (fast) to 10.0 (slow). - -To Enable/Disable the skilling for all cars of a robot there is a file -...\drivers\robotname\default.xml. -Here you can enable skilling (1) or disable it (0). - -If needed, the individual skill of a car can be set in the -...\drivers\robotname\cartype\default.xml. -The parameter skill in "simplix private" can be set to - -1 (disable skilling for this car), - 0.0 (normal skilling as defined in extra\skill.xml) or - values up to 10.0 (make car drive slower). - -The individual skilling isn't needed here, the trb1 carset is balanced! - - diff --git a/src/drivers/simplix/simplix_sc/simplix_sc.xml b/src/drivers/simplix/simplix_sc/simplix_sc.xml index f9cda6d46..24b7dbf5b 100644 --- a/src/drivers/simplix/simplix_sc/simplix_sc.xml +++ b/src/drivers/simplix/simplix_sc/simplix_sc.xml @@ -2,7 +2,7 @@ diff --git a/src/drivers/simplix/simplix_sc/tracks/Corkscrew.xml b/src/drivers/simplix/simplix_sc/tracks/Corkscrew.xml index 3ac7a0e78..ff2671f65 100644 --- a/src/drivers/simplix/simplix_sc/tracks/Corkscrew.xml +++ b/src/drivers/simplix/simplix_sc/tracks/Corkscrew.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/aalborg.xml b/src/drivers/simplix/simplix_sc/tracks/aalborg.xml index 1d602b91f..a235e089d 100644 --- a/src/drivers/simplix/simplix_sc/tracks/aalborg.xml +++ b/src/drivers/simplix/simplix_sc/tracks/aalborg.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,11 @@ - - + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/alpine-1.xml b/src/drivers/simplix/simplix_sc/tracks/alpine-1.xml index dabd96a82..12dd1e06d 100644 --- a/src/drivers/simplix/simplix_sc/tracks/alpine-1.xml +++ b/src/drivers/simplix/simplix_sc/tracks/alpine-1.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,11 @@ - - + + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/alpine-2.xml b/src/drivers/simplix/simplix_sc/tracks/alpine-2.xml index 77ea2f57f..ba64187d7 100644 --- a/src/drivers/simplix/simplix_sc/tracks/alpine-2.xml +++ b/src/drivers/simplix/simplix_sc/tracks/alpine-2.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,11 @@ - - + + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/e-track-1.xml b/src/drivers/simplix/simplix_sc/tracks/e-track-1.xml index c0fb526e4..670ffe28a 100644 --- a/src/drivers/simplix/simplix_sc/tracks/e-track-1.xml +++ b/src/drivers/simplix/simplix_sc/tracks/e-track-1.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,10 @@ - - + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/e-track-2.xml b/src/drivers/simplix/simplix_sc/tracks/e-track-2.xml index 59b60fb7a..ec76b4c1d 100644 --- a/src/drivers/simplix/simplix_sc/tracks/e-track-2.xml +++ b/src/drivers/simplix/simplix_sc/tracks/e-track-2.xml @@ -2,7 +2,7 @@ @@ -25,7 +25,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/e-track-3.xml b/src/drivers/simplix/simplix_sc/tracks/e-track-3.xml index d549679f4..93797eebc 100644 --- a/src/drivers/simplix/simplix_sc/tracks/e-track-3.xml +++ b/src/drivers/simplix/simplix_sc/tracks/e-track-3.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/e-track-4.xml b/src/drivers/simplix/simplix_sc/tracks/e-track-4.xml index 7cbe3527c..d46eb2577 100644 --- a/src/drivers/simplix/simplix_sc/tracks/e-track-4.xml +++ b/src/drivers/simplix/simplix_sc/tracks/e-track-4.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,11 @@ - - + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/e-track-6.xml b/src/drivers/simplix/simplix_sc/tracks/e-track-6.xml index 70c6340d6..bb8f1252a 100644 --- a/src/drivers/simplix/simplix_sc/tracks/e-track-6.xml +++ b/src/drivers/simplix/simplix_sc/tracks/e-track-6.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/eroad.xml b/src/drivers/simplix/simplix_sc/tracks/eroad.xml index 15927765a..b7e3a1b30 100644 --- a/src/drivers/simplix/simplix_sc/tracks/eroad.xml +++ b/src/drivers/simplix/simplix_sc/tracks/eroad.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/forza.xml b/src/drivers/simplix/simplix_sc/tracks/forza.xml index 53c866e86..dc3b873e2 100644 --- a/src/drivers/simplix/simplix_sc/tracks/forza.xml +++ b/src/drivers/simplix/simplix_sc/tracks/forza.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,10 @@ - - - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/g-track-1.xml b/src/drivers/simplix/simplix_sc/tracks/g-track-1.xml index f698fa08a..7a360bd87 100644 --- a/src/drivers/simplix/simplix_sc/tracks/g-track-1.xml +++ b/src/drivers/simplix/simplix_sc/tracks/g-track-1.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,10 @@ - - + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/g-track-2.xml b/src/drivers/simplix/simplix_sc/tracks/g-track-2.xml index 79bac5a4f..fa1326ab6 100644 --- a/src/drivers/simplix/simplix_sc/tracks/g-track-2.xml +++ b/src/drivers/simplix/simplix_sc/tracks/g-track-2.xml @@ -2,7 +2,7 @@ @@ -24,8 +24,9 @@ - - - + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/g-track-3.xml b/src/drivers/simplix/simplix_sc/tracks/g-track-3.xml index d98e64cb6..e350cfd0a 100644 --- a/src/drivers/simplix/simplix_sc/tracks/g-track-3.xml +++ b/src/drivers/simplix/simplix_sc/tracks/g-track-3.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,10 @@ - - - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/ole-road-1.xml b/src/drivers/simplix/simplix_sc/tracks/ole-road-1.xml index e1d4c367d..e0d8fe5a8 100644 --- a/src/drivers/simplix/simplix_sc/tracks/ole-road-1.xml +++ b/src/drivers/simplix/simplix_sc/tracks/ole-road-1.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/ruudskogen.xml b/src/drivers/simplix/simplix_sc/tracks/ruudskogen.xml index fc5b7de29..3c88b8987 100644 --- a/src/drivers/simplix/simplix_sc/tracks/ruudskogen.xml +++ b/src/drivers/simplix/simplix_sc/tracks/ruudskogen.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/spring.xml b/src/drivers/simplix/simplix_sc/tracks/spring.xml index 140a58d72..311a19a65 100644 --- a/src/drivers/simplix/simplix_sc/tracks/spring.xml +++ b/src/drivers/simplix/simplix_sc/tracks/spring.xml @@ -2,7 +2,7 @@ @@ -23,9 +23,10 @@ - - + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/street-1.xml b/src/drivers/simplix/simplix_sc/tracks/street-1.xml index 5203754be..83c6cd4f2 100644 --- a/src/drivers/simplix/simplix_sc/tracks/street-1.xml +++ b/src/drivers/simplix/simplix_sc/tracks/street-1.xml @@ -2,7 +2,7 @@ @@ -23,7 +23,10 @@ - - + + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/wheel-1.xml b/src/drivers/simplix/simplix_sc/tracks/wheel-1.xml index cfadc6069..bc3e63f5d 100644 --- a/src/drivers/simplix/simplix_sc/tracks/wheel-1.xml +++ b/src/drivers/simplix/simplix_sc/tracks/wheel-1.xml @@ -2,7 +2,7 @@ @@ -26,6 +26,9 @@ - + + + + diff --git a/src/drivers/simplix/simplix_sc/tracks/wheel-2.xml b/src/drivers/simplix/simplix_sc/tracks/wheel-2.xml index 6e8f3fc02..8e891f394 100644 --- a/src/drivers/simplix/simplix_sc/tracks/wheel-2.xml +++ b/src/drivers/simplix/simplix_sc/tracks/wheel-2.xml @@ -2,7 +2,7 @@ @@ -12,17 +12,6 @@
- - - - - - - - - - - @@ -34,5 +23,12 @@ + + + + + + +
diff --git a/src/drivers/simplix/src/unitdriver.cpp b/src/drivers/simplix/src/unitdriver.cpp index 1dc664fea..1bc55efd8 100644 --- a/src/drivers/simplix/src/unitdriver.cpp +++ b/src/drivers/simplix/src/unitdriver.cpp @@ -9,7 +9,7 @@ // // File : unitdriver.cpp // Created : 2007.11.25 -// Last changed : 2009.02.27 +// Last changed : 2009.05.16 // Copyright : © 2007-2009 Wolf-Dieter Beelitz // eMail : wdb@wdbee.de // Version : 2.00.000 @@ -84,6 +84,7 @@ char* TDriver::SECT_PRIV = "simplix private"; // Private section char* TDriver::DEFAULTCARTYPE = "car1-trb1"; // Default car type bool TDriver::AdvancedParameters = false; // Advanced parameters bool TDriver::UseOldSkilling = false; // Use old skilling +bool TDriver::UseSCSkilling = false; // Use supercar skilling bool TDriver::UseBrakeLimit = false; // Use brake limit float TDriver::BrakeLimit = -6; // Brake limit float TDriver::BrakeLimitBase = 0.025f; // Brake limit base @@ -214,9 +215,9 @@ TDriver::TDriver(int Index): oSteerAngle(0.0f), oCarType(NULL), oClutchMax(0.5), - oClutchDelta(0.05), + oClutchDelta(0.009), oClutchRange(0.82), - oClutchRelease(0.4), + oClutchRelease(0.5), oCurrSpeed(0), // oGearEff oIndex(0), @@ -263,6 +264,7 @@ TDriver::TDriver(int Index): oReduced(false), oFuelNeeded(0.0), oRepairNeeded(0.0), + oSideReduction(1.0), NBRRL(0), oRL_FREE(0), @@ -431,29 +433,44 @@ void TDriver::InitTrack oSkilling = true; // of TORCS-Installation GfOut("#Skilling: On\n"); + void* SkillHandle = NULL; + snprintf(PathFilenameBuffer, BUFLEN, - "%sconfig/raceman/extra/skill.xml",GetDataDir()); + "%sconfig/raceman/extra/skill.xml",GetLocalDir()); GfOut("#skill.xml: %s\n", PathFilename); - void* SkillHandle = GfParmReadFile + SkillHandle = GfParmReadFile (PathFilename, GFPARM_RMODE_REREAD); if (SkillHandle) { oSkillGlobal = MAX(0.0,MIN(10.0,GfParmGetNum(SkillHandle, "skill", "level", (char *) NULL, 10.0))); - GfOut("#SkillGlobal: %g\n", oSkillGlobal); + GfOut("#LocalDir: SkillGlobal: %g\n", oSkillGlobal); + } + else + { + snprintf(PathFilenameBuffer, BUFLEN, + "%sconfig/raceman/extra/skill.xml",GetDataDir()); + GfOut("#skill.xml: %s\n", PathFilename); + SkillHandle = GfParmReadFile + (PathFilename, GFPARM_RMODE_REREAD); + if (SkillHandle) + { + oSkillGlobal = MAX(0.0,MIN(10.0,GfParmGetNum(SkillHandle, + "skill", "level", (char *) NULL, 10.0))); + GfOut("#DataDir: SkillGlobal: %g\n", oSkillGlobal); + } } // Get individual skilling int SkillEnabled = 0; snprintf(PathFilenameBuffer,BUFLEN,"%s/%d/skill.xml", BaseParamPath,oIndex); - GfOut("#PathFilename: %s\n", PathFilenameBuffer); // itself + GfOut("#PathFilename: %s\n", PathFilenameBuffer); // itself SkillHandle = GfParmReadFile (PathFilename, GFPARM_RMODE_REREAD); if (SkillHandle) { - oSkillDriver = - MIN(10.0,GfParmGetNum(SkillHandle,"skill","level",0,0.0)); + oSkillDriver = GfParmGetNum(SkillHandle,"skill","level",0,0.0); oSkillDriver = MIN(1.0, MAX(0.0, oSkillDriver)); GfOut("#oSkillDriver: %g\n", oSkillDriver); @@ -515,7 +532,7 @@ void TDriver::InitTrack BaseParamPath,oTrackName); oPitLoad[2] = PitLoadRightBuffer; // Set pointer to buffer - // Override params for track (Pitting) + // Override params for track (Pitting) snprintf(Buf,sizeof(Buf),"%s/tracks/%s.xml", BaseParamPath,oTrackName); Handle = TUtils::MergeParamFile(Handle,Buf); @@ -555,9 +572,13 @@ void TDriver::InitTrack if ((oSituation->_raceType == RM_TYPE_QUALIF) || (TestQualification > 0)) { - Qualification = true; - GfOut("#Qualification = True\n"); - NBRRL = 1; + if ((oSituation->_raceType == RM_TYPE_PRACTICE) + || (oSituation->_raceType == RM_TYPE_QUALIF)) + { + Qualification = true; + GfOut("#Qualification = True\n"); + NBRRL = 1; + } } // Get car's length @@ -778,15 +799,17 @@ void TDriver::InitTrack } else { - oSkillOffset = MAX(0.0,MIN(1.0,GfParmGetNum(Handle,TDriver::SECT_PRIV,"offset skill", (char *) NULL, oSkillOffset))); + oSkillOffset = MAX(0.0,MIN(10.0,GfParmGetNum(Handle,TDriver::SECT_PRIV,"offset skill", (char *) NULL, oSkillOffset))); GfOut("#SkillOffset: %g\n", oSkillOffset); - oSkillScale = MAX(0.0,MIN(2.0,GfParmGetNum(Handle,TDriver::SECT_PRIV,"scale skill", (char *) NULL, oSkillScale))); + oSkillScale = MAX(0.0,MIN(10.0,GfParmGetNum(Handle,TDriver::SECT_PRIV,"scale skill", (char *) NULL, oSkillScale))); GfOut("#SkillScale: %g\n", oSkillScale); oLookAhead = oLookAhead / (1+oSkillGlobal/24); oLookAheadFactor = oLookAheadFactor / (1+oSkillGlobal/24); if (UseOldSkilling) + { + // Scaling to match hymies oSkill = -0.0000455 * oSkillGlobal*oSkillGlobal*oSkillGlobal*oSkillGlobal*oSkillGlobal +0.0014 * oSkillGlobal*oSkillGlobal*oSkillGlobal*oSkillGlobal @@ -794,13 +817,24 @@ void TDriver::InitTrack +0.0512 * oSkillGlobal*oSkillGlobal +0.0978 * oSkillGlobal + oSkillOffset + oSkillDriver; + } + else if (UseSCSkilling) + { + // Scaling to match usr_sc + oSkillScale = oSkillScale/50.0; + oSkillDriver = oSkillDriver / ((50.0 - oSkillGlobal)/40.0); + oSkill = oSkillScale * (oSkillGlobal + oSkillDriver * 2) * (1.0 + oSkillDriver) + oSkillOffset; + } else { + // Scaling + oSkillScale = oSkillScale/50.0; oSkillDriver = oSkillDriver / ((50.0 - oSkillGlobal)/40.0); - oSkill = (oSkillGlobal + oSkillDriver * 2) * (1.0 + oSkillDriver) + 10 * oSkillOffset; + oSkill = oSkillScale * (oSkillGlobal + oSkillDriver * 2) * (1.0 + oSkillDriver) + oSkillOffset; } - oSkill *= oSkillScale; + if (Qualification) + oSkill *= 1.5; Param.Tmp.oSkill = 1.0 + oSkill; GfOut("\n#>>>Skilling: Skill %g oSkillGlobal %g oSkillDriver %g oLookAhead %g oLookAheadFactor %g effSkill:%g\n\n", @@ -1003,7 +1037,7 @@ void TDriver::Drive() oCar->ctrl.clutchCmd = (float) oClutch; oCar->ctrl.gear = oGear; oCar->ctrl.steer = (float) oSteer; - //GfOut("#%d: A: %g B: %g C: %g G: %d S: %g\n",oIndex,oAccel,oBrake,oClutch,oGear,oSteer); + //GfOut("#%d: %g A: %g B: %g C: %g G: %d S: %g\n",oIndex,CurrSimTime,oAccel,oBrake,oClutch,oGear,oSteer); /* if (oDoAvoid) oCar->ctrl.lightCmd = RM_LIGHT_HEAD2; // Only small lights on @@ -1017,6 +1051,9 @@ void TDriver::Drive() if (!Qualification) // Don't use pit while oStrategy->CheckPitState(0.6f); // qualification + + //if ((oCurrSpeed < 100.0/3.6) && (CurrSimTime > 0) && (CurrSimTime < 10)) + // GfOut("t:%.2f s v:%.1f km/h A:%.3f C:%.3f G:%d\n",CurrSimTime,oCurrSpeed*3.6,oAccel,oClutch,oGear); } //==========================================================================* @@ -1251,7 +1288,7 @@ void TDriver::FindRacinglines() void TDriver::TeamInfo() { #ifdef TORCS_NG - RtTeamManagerShowInfo(); + //RtTeamManagerShowInfo(); oTeamIndex = RtTeamManagerIndex(oCar,oTrack,oSituation); RtTeamManagerDump(); #else @@ -1307,8 +1344,9 @@ void TDriver::Update(tCarElt* Car, tSituation* S) else // else use oAngleSpeed = atan2(CarSpeedY, CarSpeedX); // direction of movement - Param.Tmp.oSkill = - (1.0 + oSkill/oSkillScale + CarDamage/30000);// Adjust skill to damages +// Param.Tmp.oSkill = +// (1.0 + oSkill/oSkillScale + CarDamage/30000);// Adjust skill to damages +// (1.0 + oSkill + CarDamage/30000); // Adjust skill to damages oTrackAngle = // Direction of track at the RtTrackSideTgAngleL(&CarTrackPos); // position of the car @@ -1344,6 +1382,14 @@ void TDriver::Update(tCarElt* Car, tSituation* S) } oStrategy->Update(oCar,MinDistBack,MinTimeSlot);// Update strategic params + + oSideReduction = 1.0; + if (WheelSeg(REAR_RGT) != WheelSeg(REAR_LFT)) + { + float MinFriction = MIN(WheelSegFriction(REAR_RGT),WheelSegFriction(REAR_LFT)); + oSideReduction = MIN(1.0,MinFriction / CarFriction); + //GfOut("SideReduction: %g\n",oSideReduction); + } } //==========================================================================* @@ -1631,7 +1677,7 @@ void TDriver::Clutching() //--------------------------------------------------------------------------* void TDriver::Turning() { - if (!oUnstucking && (DistanceRaced > 10)) + if (!oUnstucking && (DistanceRaced > 25)) { double Angle = oLanePoint.Angle - CarYaw; // Direction moving to DOUBLE_NORM_PI_PI(Angle); // normalize it @@ -1831,6 +1877,7 @@ void TDriver::InitAdaptiveShiftLevels() } Rpm += 1; } + } //for (J = 1; J < oLastGear; J++) @@ -2398,10 +2445,10 @@ bool TDriver::TargetReached(double Target, double AvoidTarget) void TDriver::Runaround(double Scale, double Target, bool DoAvoid) { // Scale limits of change of lateral movement (accellerations/velocities) - double RangeAccMax = 0.00075 * Scale; // Range accelleration and + double RangeAccMax = 0.0005 * Scale; // Range accelleration and double RangeVelMax = 0.005 * Scale; // velocity per sim.step - double OffsetAccMax = 0.0003 * Scale; // Offset accelleration and - double OffsetVelMax = 0.2 * Scale; // velocity per sim.step + double OffsetAccMax = 0.00015 * Scale; // Offset accelleration and + double OffsetVelMax = 0.1 * Scale; // velocity per sim.step double AvoidTarget = 0; // Assume come back to RL if (DoAvoid) // But if needed @@ -2689,6 +2736,9 @@ double TDriver::FilterSkillBrake(double Brake) //--------------------------------------------------------------------------* double TDriver::FilterTCL(double Accel) { + if (DistanceRaced < 50) // Not at start + return Accel; + if(fabs(CarSpeedLong) < 0.001) // Only if driving faster return Accel; @@ -2767,6 +2817,8 @@ double TDriver::FilterTrack(double Accel) if (fabs(oDeltaOffset) > oTolerance) // Check offset difference Accel *= (float) // Decrease acceleration (MAX(1.0 - (fabs(oDeltaOffset) - oTolerance) * 0.2, 0.4)); + + Accel *= oSideReduction; } return Accel; } @@ -2911,6 +2963,10 @@ double TDriver::CalcSkill(double TargetSpeed) double Rand2 = (double) getRandom() / 65536.0; double Rand3 = (double) getRandom() / 65536.0; + //double Rand1 = 0.0; + //double Rand2 = 0.0; + //double Rand3 = 0.0; + // acceleration to use in current time limit oDecelAdjustTarget = (oSkill/4 * Rand1); diff --git a/src/drivers/simplix/src/unitdriver.h b/src/drivers/simplix/src/unitdriver.h index dda26f51e..5edbd3316 100644 --- a/src/drivers/simplix/src/unitdriver.h +++ b/src/drivers/simplix/src/unitdriver.h @@ -323,6 +323,8 @@ private: bool oReduced; double oFuelNeeded; double oRepairNeeded; + float oSideReduction; + int NBRRL; int oRL_FREE; @@ -374,6 +376,7 @@ private: static bool AdvancedParameters; static bool UseOldSkilling; + static bool UseSCSkilling; static bool UseBrakeLimit; static float BrakeLimit; static float BrakeLimitScale; diff --git a/src/drivers/simplix/src/unitfixcarparam.cpp b/src/drivers/simplix/src/unitfixcarparam.cpp index be33ef9fa..3b66e9669 100644 --- a/src/drivers/simplix/src/unitfixcarparam.cpp +++ b/src/drivers/simplix/src/unitfixcarparam.cpp @@ -9,7 +9,7 @@ // // File : unitfixcarparam.cpp // Created : 2007.11.25 -// Last changed : 2009.02.14 +// Last changed : 2009.04.26 // Copyright : © 2007-2009 Wolf-Dieter Beelitz // eMail : wdb@wdbee.de // Version : 2.00.000 @@ -225,7 +225,7 @@ double TFixCarParam::CalcBraking double Ftanroad = -sqrt(Froad * Froad - Flatroad * Flatroad) + Ftan; Acc = CarParam.oScaleBrake * Ftanroad - / (oTmpCarParam->oMass * oTmpCarParam->oSkill); + / (oTmpCarParam->oMass * ( 3 + oTmpCarParam->oSkill) / 4); if (TDriver::UseBrakeLimit) { @@ -372,7 +372,7 @@ double TFixCarParam::CalcMaxSpeed double MuF = Friction * oTyreMuFront * CarParam.oScaleMu; double MuR = Friction * oTyreMuRear * CarParam.oScaleMu; - //Mu = (MuF + MuR) / (2 * oTmpCarParam->oSkill); + //Mu = MIN(MuF,MuR) /(( 3 + oTmpCarParam->oSkill)/4); Mu = MIN(MuF,MuR) / oTmpCarParam->oSkill; Den = (AbsCrv - ScaleBump * CrvZ) diff --git a/src/drivers/simplix/src/unitglobal.h b/src/drivers/simplix/src/unitglobal.h index 60c00d6c3..1909fd977 100644 --- a/src/drivers/simplix/src/unitglobal.h +++ b/src/drivers/simplix/src/unitglobal.h @@ -262,6 +262,8 @@ enum #define CarDamage (oCar->_dammage) #define CarDriverIndex (oCar->_driverIndex) #define CarFriction (oCar->_trkPos.seg->surface->kFriction) +#define CarRoughness (oCar->_trkPos.seg->surface->kRoughness) +#define CarRollRes (oCar->_trkPos.seg->surface->kRollRes) #define CarFuel (oCar->_fuel) #define CarGearNbr (oCar->_gearNb) #define CarGearOffset (oCar->_gearOffset) @@ -311,6 +313,10 @@ enum #define SteerLock (oCar->_steerLock) #define WheelRad(x) (oCar->_wheelRadius(x)) #define WheelSpinVel(x) (oCar->_wheelSpinVel(x)) +#define WheelSeg(x) (oCar->_wheelSeg(x)) +#define WheelSegFriction(x) (oCar->_wheelSeg(x)->surface->kFriction) +#define WheelSegRoughness(x) (oCar->_wheelSeg(x)->surface->kRoughness) +#define WheelSegRollRes(x) (oCar->_wheelSeg(x)->surface->kRollRes) #define UsedGear (oCar->_gear) // ... Shortcuts for TORCS diff --git a/src/drivers/simplix/src/unitlane.cpp b/src/drivers/simplix/src/unitlane.cpp index d9f253746..09334efc6 100644 --- a/src/drivers/simplix/src/unitlane.cpp +++ b/src/drivers/simplix/src/unitlane.cpp @@ -2,15 +2,17 @@ // unitlane.cpp //--------------------------------------------------------------------------* // TORCS: "The Open Racing Car Simulator" -// Roboter für TORCS-Version 1.3.0 +// A robot for TORCS-NG-Version 1.4.0 +//--------------------------------------------------------------------------* +// Lane // Fahrspur // -// Datei : unitlane.cpp -// Erstellt : 25.11.2007 -// Stand : 24.11.2008 -// Copyright: © 2007-2008 Wolf-Dieter Beelitz -// eMail : wdb@wdbee.de -// Version : 1.01.000 +// File : unitlane.cpp +// Created : 2007.11.25 +// Last changed : 2009.05.16 +// Copyright : © 2007-2009 Wolf-Dieter Beelitz +// eMail : wdb@wdbee.de +// Version : 2.00.000 //--------------------------------------------------------------------------* // Ein erweiterter TORCS-Roboters //--------------------------------------------------------------------------* @@ -39,19 +41,24 @@ // Copyright: (C) 2006-2007 Tim Foden // //--------------------------------------------------------------------------* +// This program was developed and tested on windows XP +// There are no known Bugs, but: +// Who uses the files accepts, that no responsibility is adopted +// for bugs, dammages, aftereffects or consequential losses. +// // Das Programm wurde unter Windows XP entwickelt und getestet. // Fehler sind nicht bekannt, dennoch gilt: // Wer die Dateien verwendet erkennt an, dass für Fehler, Schäden, // Folgefehler oder Folgeschäden keine Haftung übernommen wird. -// -// Im übrigen gilt für die Nutzung und/oder Weitergabe die -// GNU GPL (General Public License) -// Version 2 oder nach eigener Wahl eine spätere Version. //--------------------------------------------------------------------------* // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. +// +// Im übrigen gilt für die Nutzung und/oder Weitergabe die +// GNU GPL (General Public License) +// Version 2 oder nach eigener Wahl eine spätere Version. //--------------------------------------------------------------------------* #include @@ -314,6 +321,13 @@ void TLane::CalcCurvaturesXY(int Start, int Step) oPathPoints[P].CalcPt(), oPathPoints[Pn].CalcPt()); } + + // Overwrite values at start to avoid slowdown caused by track errors + for (int I = 0; I <= Step; I++) + { + oPathPoints[I].Crv = 0.0; + oPathPoints[N-1-I].Crv = 0.0; + } } //==========================================================================* @@ -337,6 +351,13 @@ void TLane::CalcCurvaturesZ(int Start, int Step) oPathPoints[P].CalcPt(), oPathPoints[Pn].CalcPt()); } + + // Overwrite values at start to avoid slowdown caused by track errors + for (int I = 0; I <= Step; I++) + { + oPathPoints[I].CrvZ = 0.0; + oPathPoints[N-1-I].CrvZ = 0.0; + } } //==========================================================================* diff --git a/src/drivers/simplix/src/unitlanepoint.cpp b/src/drivers/simplix/src/unitlanepoint.cpp index 685de1757..f07e584a8 100644 --- a/src/drivers/simplix/src/unitlanepoint.cpp +++ b/src/drivers/simplix/src/unitlanepoint.cpp @@ -2,36 +2,41 @@ // unitlanepoint.cpp //--------------------------------------------------------------------------* // TORCS: "The Open Racing Car Simulator" -// Roboter für TORCS-Version 1.3.0 +// A robot for TORCS-NG-Version 1.4.0 +//--------------------------------------------------------------------------* +// Point of a lane // Punkt einer Fahrspur // -// Datei : unitlanepoint.cpp -// Erstellt : 25.11.2007 -// Stand : 24.11.2008 -// Copyright: © 2007-2008 Wolf-Dieter Beelitz -// eMail : wdb@wdbee.de -// Version : 1.01.000 -//--------------------------------------------------------------------------* -// Ein erweiterter TORCS-Roboters +// File : unitlanepoint.cpp +// Created : 2007.11.25 +// Last changed : 2009.05.16 +// Copyright : © 2007-2009 Wolf-Dieter Beelitz +// eMail : wdb@wdbee.de +// Version : 2.00.000 //--------------------------------------------------------------------------* // Diese Unit basiert auf dem Roboter mouse_2006 // // Copyright: (C) 2006-2007 Tim Foden // //--------------------------------------------------------------------------* +// This program was developed and tested on windows XP +// There are no known Bugs, but: +// Who uses the files accepts, that no responsibility is adopted +// for bugs, dammages, aftereffects or consequential losses. +// // Das Programm wurde unter Windows XP entwickelt und getestet. // Fehler sind nicht bekannt, dennoch gilt: // Wer die Dateien verwendet erkennt an, dass für Fehler, Schäden, // Folgefehler oder Folgeschäden keine Haftung übernommen wird. -// -// Im übrigen gilt für die Nutzung und/oder Weitergabe die -// GNU GPL (General Public License) -// Version 2 oder nach eigener Wahl eine spätere Version. //--------------------------------------------------------------------------* // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. +// +// Im übrigen gilt für die Nutzung und/oder Weitergabe die +// GNU GPL (General Public License) +// Version 2 oder nach eigener Wahl eine spätere Version. //--------------------------------------------------------------------------* #include "unitglobal.h" #include "unitcommon.h" diff --git a/src/drivers/simplix/src/unitmain.cpp b/src/drivers/simplix/src/unitmain.cpp index 1ca5b86ea..d01b0cbbe 100644 --- a/src/drivers/simplix/src/unitmain.cpp +++ b/src/drivers/simplix/src/unitmain.cpp @@ -209,6 +209,7 @@ void* GetFileHandle(const char* RobotName) //--------------------------------------------------------------------------* void SetParameters(int N, char* DefaultCarType) { + NBBOTS = N; TDriver::NBBOTS = N; // Used nbr of cars TDriver::MyBotName = BufName; // Name of this bot TDriver::ROBOT_DIR = BufPathDir; // Path to dll @@ -242,7 +243,8 @@ void SetUpSimplix_trb1() void SetUpSimplix_sc() { SetParameters(NBBOTS, "sc996"); - TDriver::UseOldSkilling = true; // Use old skilling +// TDriver::UseOldSkilling = true; // Use old skilling + TDriver::UseSCSkilling = true; // Use supercar skilling }; //==========================================================================* diff --git a/src/drivers/simplix/src/unitopponent.cpp b/src/drivers/simplix/src/unitopponent.cpp index a59c72e71..357c620d9 100644 --- a/src/drivers/simplix/src/unitopponent.cpp +++ b/src/drivers/simplix/src/unitopponent.cpp @@ -4,6 +4,7 @@ // TORCS: "The Open Racing Car Simulator" // A robot for TORCS-NG-Version 1.4.0 //--------------------------------------------------------------------------* +// Opponents // Rivalen (und Teammitglieder) // // File : unitopponent.cpp