From a86d50629e0daca30f1b37463eb82310d265128f Mon Sep 17 00:00:00 2001 From: torcs-ng Date: Sun, 12 Jan 2020 23:55:29 +0000 Subject: [PATCH] - Update Shadow's driver git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6809 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: d3432ff21278923135b38b4041f0612e476f9937 Former-commit-id: a1a0828360b471b86ced0d96ed10ce7508a326d8 --- src/drivers/shadow/src/Driver.cpp | 33 ++++++++++++++++++------------- src/drivers/shadow/src/Driver.h | 4 +++- src/drivers/shadow/src/Shadow.cpp | 3 +++ 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/drivers/shadow/src/Driver.cpp b/src/drivers/shadow/src/Driver.cpp index e945f6c44..57c859952 100644 --- a/src/drivers/shadow/src/Driver.cpp +++ b/src/drivers/shadow/src/Driver.cpp @@ -231,6 +231,11 @@ static void* MergeParamFile( void* hParams, const char* fileName ) GFPARM_MMODE_RELSRC | GFPARM_MMODE_RELDST); } +void TDriver::SetShared( Shared* pShared ) +{ + m_pShared = pShared; +} + //==========================================================================* //==========================================================================* @@ -603,7 +608,7 @@ void TDriver::InitTrack( tTrack* pTrack, void* pCarHandle, void** ppCarParmHandl oCarHasESP = true; */ START_HOLD_LINE_TIME = GfParmGetNum(hCarParm, SECT_PRIV, PRV_STARTLINE, 0, 5.0f); - m_pShared = new Shared(); + //m_pShared = new Shared(); MyTrack::SideMod sideMod; sideMod.side = -1; @@ -772,15 +777,15 @@ void TDriver::NewRace( tCarElt* pCar, tSituation* pS ) bool TDriver::Pitting(int path, double pos) const { - return m_Strategy->needPitstop(car, m_Situation) && - m_pitPath[path].ContainsPos(pos); + return m_Strategy->needPitstop(car, m_Situation) && + m_pitPath[path].ContainsPos(pos); } bool TDriver::Pitting(tCarElt* car) const { - double pos = m_track.CalcPos(car); + double pos = m_track.CalcPos(car); - return Pitting(PATH_NORMAL, pos); + return Pitting(PATH_NORMAL, pos); } void TDriver::GetPtInfo( int path, double pos, PtInfo& pi ) const @@ -1871,18 +1876,18 @@ void TDriver::Drive( tSituation* s ) m_LastAccel = acc; m_LastAbsDriftAngle = m_AbsDriftAngle; - const Opponent::Sit& mySit = m_opp[car->index].GetInfo().sit; - m_stuck = NOT_STUCK; + const Opponent::Sit& mySit = m_opp[car->index].GetInfo().sit; + m_stuck = NOT_STUCK; - bool doStuckThing = true; + bool doStuckThing = true; - if (Pitting(car)) - { - doStuckThing = false; - } + if (Pitting(car)) + { + doStuckThing = false; + } - if (doStuckThing) - m_stuckThing.execute(m_track, s, car, mySit); + if (doStuckThing) + m_stuckThing.execute(m_track, s, car, mySit); m_Strategy->update(car, s); //m_Strategy->needPitstop(car, m_Situation); diff --git a/src/drivers/shadow/src/Driver.h b/src/drivers/shadow/src/Driver.h index a8f532c82..808021ffd 100644 --- a/src/drivers/shadow/src/Driver.h +++ b/src/drivers/shadow/src/Driver.h @@ -188,6 +188,8 @@ public: TDriver(int index); // Constructor ~TDriver(); // Destructor + void SetShared( Shared* pShared ); + void InitTrack(tTrack* track, void* carHandle, void** carParmHandle, tSituation* s); void NewRace(tCarElt* car, tSituation* s ); void Drive(tSituation* s); @@ -363,7 +365,7 @@ private: enum StuckAction { - NOT_STUCK, STUCK_GO_BACKWARDS, STUCK_GO_FORWARDS, + NOT_STUCK, STUCK_GO_BACKWARDS, STUCK_GO_FORWARDS, }; private: diff --git a/src/drivers/shadow/src/Shadow.cpp b/src/drivers/shadow/src/Shadow.cpp index fcb91b793..877c8bc0f 100644 --- a/src/drivers/shadow/src/Shadow.cpp +++ b/src/drivers/shadow/src/Shadow.cpp @@ -44,6 +44,8 @@ using ::std::pair; // The "SHADOW" logger instance GfLogger* PLogSHADOW = 0; +static Shared s_shared; + // TORCS interface static void initTrack(int index, tTrack* track, void *carHandle, void **carParmHandle, tSituation *s); static void newRace(int index, tCarElt* car, tSituation *s); @@ -260,6 +262,7 @@ static int InitFuncPt(int index, void *pt) static void initTrack(int index, tTrack* track, void *carHandle, void **carParmHandle, tSituation *s) { + driver[index]->SetShared( &s_shared ); driver[index]->InitTrack(track, carHandle, carParmHandle, s); }