This commit is contained in:
2025-03-07 03:56:11 +03:30
parent 6157bbe125
commit 5534bde7e5
6 changed files with 3636 additions and 3126 deletions
@@ -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();
//