Implement unit action queueing and busy state validation

This commit is contained in:
bart
2026-11-08 21:31:56 +01:00
parent cbba54969a
commit 4b237872eb
7 changed files with 502 additions and 50 deletions
+9
View File
@@ -91,6 +91,7 @@ public:
void commandBuildCitySelected(Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
void commandBuildFarmSelected(Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
void completeUnitBuilding(Unit &unit, Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
void processUnitActionQueue(Unit &unit, Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
const std::map<std::pair<int, int>, TileImprovement>& getTileImprovements() const { return m_tileImprovements; }
const TileImprovement* getImprovementAt(int tx, int ty) const;
@@ -103,6 +104,10 @@ public:
float getSimSpeed() const { return m_simSpeedMultiplier; }
void setSimSpeed(float s) { m_simSpeedMultiplier = std::max(0.2f, std::min(10.0f, s)); }
int getMaxActionQueueSize() const { return m_maxActionQueueSize; }
bool isActionQueueingAllowed() const { return m_allowActionQueueing; }
bool isAutoQueueMoveWhenBusy() const { return m_autoQueueMoveWhenBusy; }
void addFloatingText(const QString &text, const QVector3D &worldPos, const QColor &color, float duration = 1.8f);
int getNextUnitId() { return ++m_nextUnitId; }
@@ -131,6 +136,10 @@ private:
float m_tickTimer;
float m_simSpeedMultiplier; // 1.0x, 2.0x, etc.
int m_maxActionQueueSize;
bool m_autoQueueMoveWhenBusy;
bool m_allowActionQueueing;
int m_nextUnitId;
int m_nextCityId;
bool m_initialized;