last ...
This commit is contained in:
@@ -164,7 +164,8 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
double targets[];
|
||||
double reward = 0;
|
||||
XBoxZone signalBox;
|
||||
XOBFVG activatedZone;
|
||||
int activatedFVGIDX = 0;
|
||||
int activatedZoneIDX = 0;
|
||||
double amountPercent = 0;
|
||||
bool hasPriority = false;
|
||||
bool hasSignalBox = false;
|
||||
@@ -214,16 +215,8 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
hasWaitingZones = workingZone.DetectZone(
|
||||
drawer,
|
||||
provider //
|
||||
);
|
||||
if (hasWaitingZones)
|
||||
{
|
||||
//
|
||||
// Validate Waiting Zones ...
|
||||
workingZone.ValidateWaitingZones(zIndex);
|
||||
hasWaitingZones = HasChild(workingZone.waitingZones);
|
||||
}
|
||||
|
||||
//
|
||||
// Checking Working Zone Destory or not ...
|
||||
@@ -239,7 +232,6 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
//
|
||||
result = false;
|
||||
workingZone.Clean();
|
||||
activatedZone.Clean();
|
||||
hasWorkingZone = false;
|
||||
|
||||
//
|
||||
@@ -255,13 +247,41 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Start Draw ...
|
||||
//
|
||||
|
||||
//
|
||||
UpdateTo(cTime);
|
||||
|
||||
//
|
||||
// Draw Working Zone ...
|
||||
if (hasWorkingZone)
|
||||
{
|
||||
//
|
||||
workingZone.Draw(
|
||||
drawer,
|
||||
//
|
||||
true, // Draw Supply Zone ...
|
||||
true, // Draw Demand Zone ...
|
||||
true, // Draw Waiting Zones ...
|
||||
true // Draw Waiting Zones Box Area ...
|
||||
//
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// End Draw ...
|
||||
//
|
||||
|
||||
//
|
||||
// Detect Signal Box ...
|
||||
hasSignalBox =
|
||||
hasWorkingZone &&
|
||||
hasWaitingZones &&
|
||||
workingZone.IsZoneActivated(
|
||||
activatedZone,
|
||||
activatedZoneIDX,
|
||||
activatedFVGIDX,
|
||||
provider,
|
||||
zIndex //
|
||||
);
|
||||
@@ -269,7 +289,14 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
{
|
||||
//
|
||||
signalBox.Clean();
|
||||
hasSignalBox = activatedZone.ToZone(signalBox);
|
||||
|
||||
//
|
||||
XOBFVG iOBFVG = workingZone.waitingZones[activatedZoneIDX];
|
||||
XCFVG *activatedFVG = iOBFVG.fvgs[activatedFVGIDX];
|
||||
hasSignalBox = ToBox(
|
||||
signalBox,
|
||||
activatedFVG //
|
||||
);
|
||||
if (hasSignalBox)
|
||||
{
|
||||
//
|
||||
@@ -278,27 +305,42 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_ZONE;
|
||||
|
||||
//
|
||||
int idx = FindIndex(
|
||||
activatedZone,
|
||||
workingZone.waitingZones //
|
||||
ArrayRemove(
|
||||
workingZone.waitingZones[activatedZoneIDX].fvgs,
|
||||
activatedFVGIDX,
|
||||
1 //
|
||||
);
|
||||
bool has = IsValidIndex(idx);
|
||||
if (has)
|
||||
bool isValid = workingZone.waitingZones[activatedZoneIDX].IsValid();
|
||||
if (!isValid)
|
||||
{
|
||||
//
|
||||
ArrayRemove(
|
||||
workingZone.waitingZones,
|
||||
idx,
|
||||
1 //
|
||||
AddRef(
|
||||
workingZone.waitingZones[activatedZoneIDX],
|
||||
workingZone.unavailableZones //
|
||||
);
|
||||
|
||||
//
|
||||
AddRef(
|
||||
activatedZone,
|
||||
workingZone.unavailableZones //
|
||||
ArrayRemove(
|
||||
workingZone.waitingZones,
|
||||
activatedZoneIDX,
|
||||
1 //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
iOBFVG.Clean();
|
||||
ZeroMemory(activatedFVG);
|
||||
}
|
||||
|
||||
//
|
||||
// Remove Invalidate Zones ...
|
||||
if (hasWaitingZones)
|
||||
{
|
||||
//
|
||||
// Validate Waiting Zones ...
|
||||
workingZone.ValidateWaitingZones(zIndex);
|
||||
hasWaitingZones = workingZone.HasWaitingZones();
|
||||
}
|
||||
|
||||
//
|
||||
@@ -314,10 +356,6 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
signalBoxDir = X_DIRECTION_NONE;
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Check Priority Exists ...
|
||||
hasPriority = workingZone
|
||||
@@ -732,37 +770,11 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
mConditions.setupTime = cTime;
|
||||
mConditions.dir = signalBoxDir;
|
||||
mConditions.priority = priority;
|
||||
mConditions.provider = signalProvider;
|
||||
mConditions.signalBox = signalBox;
|
||||
mConditions.provider = signalProvider;
|
||||
mConditions.amountPercent = amountPercent;
|
||||
}
|
||||
|
||||
//
|
||||
UpdateTo(cTime);
|
||||
|
||||
//
|
||||
// Draw Working Zone ...
|
||||
if (hasWorkingZone)
|
||||
{
|
||||
//
|
||||
workingZone.Draw(
|
||||
drawer,
|
||||
//
|
||||
true, // Draw Supply Zone ...
|
||||
true, // Draw Demand Zone ...
|
||||
true, // Draw Waiting Zones ...
|
||||
true // Draw Waiting Zones Box Area ...
|
||||
//
|
||||
);
|
||||
|
||||
//
|
||||
if (hasSignalBox)
|
||||
{
|
||||
//
|
||||
Print("Has Signal Box ...");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -779,7 +791,6 @@ class XCX121SMCXWZSignalDetector : public XCBase
|
||||
|
||||
//
|
||||
signalBox.Clean();
|
||||
activatedZone.Clean();
|
||||
consolidationZBar.Clean();
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user