diff --git a/src/drivers/simplix/CMakeLists.txt b/src/drivers/simplix/CMakeLists.txt
index ac2ea965..1798bb7d 100644
--- a/src/drivers/simplix/CMakeLists.txt
+++ b/src/drivers/simplix/CMakeLists.txt
@@ -5,8 +5,8 @@ INCLUDE(../../../cmake/macros.cmake)
SET(ROBOT_NAME "simplix")
SET(ROBOT_INTERFACE LEGACY WELCOME
- simplix_indy simplix_trb1a simplix_trb1b simplix_sca simplix_scb simplix_36GP simplix_ls1
- my_simplix_0 my_simplix_1 my_simplix_2 my_simplix_3 my_simplix_4
+ simplix_gp1600 simplix_indy simplix_trb1a simplix_trb1b simplix_sca simplix_scb simplix_36GP simplix_ls1
+ my_simplix_0 my_simplix_1 my_simplix_2 my_simplix_3 my_simplix_4
my_simplix_5 my_simplix_6 my_simplix_7 my_simplix_8 my_simplix_9)
SET(ROBOT_SOURCES
@@ -70,7 +70,7 @@ SET(ROBOT_SOURCES
src/unitvec3d.h
)
-SET(ROBOT_CLONES simplix_indy simplix_36GP simplix_sc simplix_trb1 simplix_ls1)
+SET(ROBOT_CLONES simplix_indy simplix_36GP simplix_sc simplix_trb1 simplix_ls1 simplix_gp1600)
ROBOT_MODULE(NAME ${ROBOT_NAME} INTERFACE ${ROBOT_INTERFACE} SOURCES ${ROBOT_SOURCES}
CLONENAMES ${ROBOT_CLONES})
@@ -117,3 +117,9 @@ SET(ROBOT_SHIPSUBDIRS 0 1 2 3 4 5 6 7 8 9 10 11 12 13
ROBOT_DATA(NAME simplix_trb1 SHIPPREFIX simplix_trb1
SHIPFILES ${ROBOT_SHIP} SHIPSUBDIRS ${ROBOT_SHIPSUBDIRS})
+SET(ROBOT_SHIPSUBDIRS 0 1 2 3 4 5 gp1600 tracks)
+
+ROBOT_DATA(NAME simplix_gp1600 SHIPPREFIX simplix_gp1600
+ SHIPFILES ${ROBOT_SHIP} SHIPSUBDIRS ${ROBOT_SHIPSUBDIRS})
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/0/skill.xml b/src/drivers/simplix/simplix_gp1600/0/skill.xml
new file mode 100644
index 00000000..a06646a7
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/0/skill.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/1/skill.xml b/src/drivers/simplix/simplix_gp1600/1/skill.xml
new file mode 100644
index 00000000..919571d1
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/1/skill.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/2/skill.xml b/src/drivers/simplix/simplix_gp1600/2/skill.xml
new file mode 100644
index 00000000..8d89e49a
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/2/skill.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/3/skill.xml b/src/drivers/simplix/simplix_gp1600/3/skill.xml
new file mode 100644
index 00000000..6ae9b2ba
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/3/skill.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/4/skill.xml b/src/drivers/simplix/simplix_gp1600/4/skill.xml
new file mode 100644
index 00000000..6ae9b2ba
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/4/skill.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/5/skill.xml b/src/drivers/simplix/simplix_gp1600/5/skill.xml
new file mode 100644
index 00000000..8d89e49a
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/5/skill.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/default.xml b/src/drivers/simplix/simplix_gp1600/default.xml
new file mode 100644
index 00000000..65408604
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/default.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/gp1600/default.xml b/src/drivers/simplix/simplix_gp1600/gp1600/default.xml
new file mode 100644
index 00000000..91238c45
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/gp1600/default.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/readme.txt b/src/drivers/simplix/simplix_gp1600/readme.txt
new file mode 100644
index 00000000..1b6a4686
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/readme.txt
@@ -0,0 +1,26 @@
+// simplix readme.txt 03. 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_gp1600/simplix_gp1600.xml b/src/drivers/simplix/simplix_gp1600/simplix_gp1600.xml
new file mode 100644
index 00000000..a23ed88b
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/simplix_gp1600.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/simplix_gp1600/tracks/Corkscrew.xml b/src/drivers/simplix/simplix_gp1600/tracks/Corkscrew.xml
new file mode 100644
index 00000000..b387dd1f
--- /dev/null
+++ b/src/drivers/simplix/simplix_gp1600/tracks/Corkscrew.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/drivers/simplix/src/unitdriver.cpp b/src/drivers/simplix/src/unitdriver.cpp
index 007b54af..7b13ee59 100644
--- a/src/drivers/simplix/src/unitdriver.cpp
+++ b/src/drivers/simplix/src/unitdriver.cpp
@@ -3410,6 +3410,16 @@ double TDriver::CalcCrv_simplix_INDY(double Crv)
}
//==========================================================================*
+//==========================================================================*
+// simplix_GP1600
+//--------------------------------------------------------------------------*
+double TDriver::CalcCrv_simplix_GP1600(double Crv)
+{
+ return MAX(0.75,MIN(3.0,350000.0 * Crv * Crv * Crv));
+ //return MAX(0.75,MIN(3.0,600000.0 * Crv * Crv * Crv));
+}
+//==========================================================================*
+
//==========================================================================*
// simplix_LS1
//--------------------------------------------------------------------------*
@@ -3504,6 +3514,16 @@ double TDriver::CalcHairpin_simplix_LS1(double Crv)
}
//==========================================================================*
+//==========================================================================*
+// simplix_GP1600
+//--------------------------------------------------------------------------*
+double TDriver::CalcHairpin_simplix_GP1600(double Crv)
+{
+ return MAX(0.75,MIN(5.0,300000.0 * Crv * Crv * Crv));
+ //return MAX(0.75,MIN(5.0,600000.0 * Crv * Crv * Crv));
+}
+//==========================================================================*
+
//==========================================================================*
// simplix_sc
//--------------------------------------------------------------------------*
diff --git a/src/drivers/simplix/src/unitdriver.h b/src/drivers/simplix/src/unitdriver.h
index 90189fbe..aeebd314 100644
--- a/src/drivers/simplix/src/unitdriver.h
+++ b/src/drivers/simplix/src/unitdriver.h
@@ -424,6 +424,7 @@ private:
double CalcCrv_simplix_36GP(double Crv);
double CalcCrv_simplix_INDY(double Crv);
double CalcCrv_simplix_LS1(double Crv);
+ double CalcCrv_simplix_GP1600(double Crv);
double CalcHairpin_simplix(double Crv);
double CalcHairpin_simplix_TRB1(double Crv);
@@ -431,6 +432,7 @@ private:
double CalcHairpin_simplix_36GP(double Crv);
double CalcHairpin_simplix_INDY(double Crv);
double CalcHairpin_simplix_LS1(double Crv);
+ double CalcHairpin_simplix_GP1600(double Crv);
void UseFilterAccel(){oUseFilterAccel = true;};
void UseAccelOut(){oUseAccelOut = true;};
diff --git a/src/drivers/simplix/src/unitglobal.h b/src/drivers/simplix/src/unitglobal.h
index feca8f5d..2b447c35 100644
--- a/src/drivers/simplix/src/unitglobal.h
+++ b/src/drivers/simplix/src/unitglobal.h
@@ -98,6 +98,7 @@
#define RTYPE_SIMPLIX_36GP 3 // Robot type simplix_36GP
#define RTYPE_SIMPLIX_INDY 4 // Robot type simplix_indy
#define RTYPE_SIMPLIX_LS1 5 // Robot type simplix_ls1
+#define RTYPE_SIMPLIX_GP1600 6 // Robot type simplix_gp1600
//==========================================================================*
//==========================================================================*
diff --git a/src/drivers/simplix/src/unitmain.cpp b/src/drivers/simplix/src/unitmain.cpp
index 207f7f14..9e2db2e4 100644
--- a/src/drivers/simplix/src/unitmain.cpp
+++ b/src/drivers/simplix/src/unitmain.cpp
@@ -289,6 +289,17 @@ void SetUpSimplix_ls1()
};
//==========================================================================*
+//==========================================================================*
+// Schismatic entry point for simplix_gp1600
+//--------------------------------------------------------------------------*
+void SetUpSimplix_gp1600()
+{
+ cRobotType = RTYPE_SIMPLIX_GP1600;
+ SetParameters(NBBOTS, "gp1600");
+ //TDriver::UseSCSkilling = true;
+};
+//==========================================================================*
+
//==========================================================================*
// Handle module entry for Speed Dreams Interface V1.00 (new fixed name scheme)
//--------------------------------------------------------------------------*
@@ -374,6 +385,8 @@ int moduleWelcomeV1_00
SetUpSimplix_indy();
else if (strncmp(RobName,"simplix_LS1",strlen("simplix_LS1")) == 0)
SetUpSimplix_ls1();
+ else if (strncmp(RobName,"simplix_gp1600",strlen("simplix_gp1600")) == 0)
+ SetUpSimplix_ls1();
else
SetUpSimplix();
@@ -576,6 +589,14 @@ static int InitFuncPt(int Index, void *Pt)
cRobot[Index-IndexOffset]->ScaleSide(0.95f,0.95f);
cRobot[Index-IndexOffset]->SideBorderOuter(0.20f);
}
+ else if (cRobotType == RTYPE_SIMPLIX_GP1600)
+ {
+ GfOut("#cRobotType == RTYPE_SIMPLIX_GP1600\n");
+ cRobot[Index-IndexOffset]->CalcCrvFoo = &TDriver::CalcCrv_simplix_GP1600;
+ cRobot[Index-IndexOffset]->CalcHairpinFoo = &TDriver::CalcHairpin_simplix_GP1600;
+ cRobot[Index-IndexOffset]->ScaleSide(0.85f,0.85f);
+ cRobot[Index-IndexOffset]->SideBorderOuter(0.75f);
+ }
return 0;
}
@@ -835,6 +856,20 @@ extern "C" int simplix_ls1(tModInfo *ModInfo)
};
//==========================================================================*
+//==========================================================================*
+// Schismatic entry point for simplix_gp1600
+//--------------------------------------------------------------------------*
+extern "C" int simplix_gp1600(tModInfo *ModInfo)
+{
+ void *RobotSettings = GetFileHandle("simplix_gp1600");
+ if (!RobotSettings)
+ return -1;
+
+ SetParameters(10, "gp1600");
+ return simplixEntryPoint(ModInfo,RobotSettings);
+};
+//==========================================================================*
+
//==========================================================================*
// Schismatic entry point for my_simplix_0
//--------------------------------------------------------------------------*