Added dandroid_srw and adapted gear switching
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6329 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 583e4d3d98e1023badcbc09c1311caeb9e67aebc Former-commit-id: e0fda7d1294ab9a6235120332eb58013eb2c8615
This commit is contained in:
parent
2071ccf0fc
commit
17c42e966a
3 changed files with 17 additions and 7 deletions
|
@ -37,7 +37,7 @@ SET(ROBOT_SOURCES
|
||||||
|
|
||||||
# Official-only dandroid instances.
|
# Official-only dandroid instances.
|
||||||
SET(ROBOT_CLONES dandroid_36GP dandroid_67GP dandroid_lp1 dandroid_ls1 dandroid_ls2 dandroid_mpa1
|
SET(ROBOT_CLONES dandroid_36GP dandroid_67GP dandroid_lp1 dandroid_ls1 dandroid_ls2 dandroid_mpa1
|
||||||
dandroid_mpa11 dandroid_mpa12 dandroid_rs dandroid_sc dandroid_trb1)
|
dandroid_mpa11 dandroid_mpa12 dandroid_rs dandroid_sc dandroid_srw dandroid_trb1)
|
||||||
|
|
||||||
# The ubiquitous robot module and its clones.
|
# The ubiquitous robot module and its clones.
|
||||||
ROBOT_MODULE(NAME ${ROBOT_NAME} VERSION 2.0.0 SOVERSION 1.0.0
|
ROBOT_MODULE(NAME ${ROBOT_NAME} VERSION 2.0.0 SOVERSION 1.0.0
|
||||||
|
|
|
@ -83,6 +83,7 @@ TDriver::TDriver(int index)
|
||||||
mOfftrackInSector = false;
|
mOfftrackInSector = false;
|
||||||
mLearnedAll = false;
|
mLearnedAll = false;
|
||||||
mShiftTimer = 0;
|
mShiftTimer = 0;
|
||||||
|
mGear = 0;
|
||||||
mAccelX = 0.0;
|
mAccelX = 0.0;
|
||||||
mAccelXSum = 0.0;
|
mAccelXSum = 0.0;
|
||||||
mAccelXCount = 0;
|
mAccelXCount = 0;
|
||||||
|
@ -695,6 +696,11 @@ double TDriver::getAccel(double maxspeed)
|
||||||
}
|
}
|
||||||
accel = mSkillDriver * mAccel;
|
accel = mSkillDriver * mAccel;
|
||||||
}
|
}
|
||||||
|
if (oCurrSimTime < 0.0) {
|
||||||
|
if (oCar->_enginerpm / oCar->_enginerpmRedLine > 0.7) {
|
||||||
|
accel = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
return accel;
|
return accel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -733,26 +739,29 @@ int TDriver::getGear()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mShiftTimer < shifttime) {
|
if (mShiftTimer < shifttime) {
|
||||||
return oCar->_gear;
|
return mGear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oCurrSimTime < 0.0) {
|
||||||
|
return mGear = 0;
|
||||||
|
}
|
||||||
if (mDrvState == STATE_STUCK) {
|
if (mDrvState == STATE_STUCK) {
|
||||||
return -1;
|
return mGear = -1;
|
||||||
}
|
}
|
||||||
if (oCar->_gear <= 0) {
|
if (oCar->_gear <= 0) {
|
||||||
return 1;
|
return mGear = 1;
|
||||||
}
|
}
|
||||||
if (oCar->_enginerpm / oCar->_enginerpmRedLine > SHIFT_UP) {
|
if (oCar->_enginerpm / oCar->_enginerpmRedLine > SHIFT_UP) {
|
||||||
mShiftTimer = 0;
|
mShiftTimer = 0;
|
||||||
return oCar->_gear + 1;
|
return mGear++;
|
||||||
} else {
|
} else {
|
||||||
double ratiodown = oCar->_gearRatio[oCar->_gear + oCar->_gearOffset - 1] / oCar->_gearRatio[oCar->_gear + oCar->_gearOffset];
|
double ratiodown = oCar->_gearRatio[oCar->_gear + oCar->_gearOffset - 1] / oCar->_gearRatio[oCar->_gear + oCar->_gearOffset];
|
||||||
if (oCar->_gear > 1 && (oCar->_enginerpmRedLine - SHIFT_DOWN_MARGIN) / oCar->_enginerpm > ratiodown) {
|
if (oCar->_gear > 1 && (oCar->_enginerpmRedLine - SHIFT_DOWN_MARGIN) / oCar->_enginerpm > ratiodown) {
|
||||||
mShiftTimer = 0;
|
mShiftTimer = 0;
|
||||||
return oCar->_gear - 1;
|
return mGear--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return oCar->_gear;
|
return mGear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,6 +195,7 @@ class TDriver {
|
||||||
double mOldTimer;
|
double mOldTimer;
|
||||||
bool mTenthTimer;
|
bool mTenthTimer;
|
||||||
int mShiftTimer;
|
int mShiftTimer;
|
||||||
|
int mGear;
|
||||||
bool mStuck;
|
bool mStuck;
|
||||||
int mStuckcount;
|
int mStuckcount;
|
||||||
bool mStateChange;
|
bool mStateChange;
|
||||||
|
|
Loading…
Reference in a new issue