fp: Improve swarming of buildings

This commit is contained in:
2023-10-07 19:14:09 +11:00
parent 11cab9a726
commit d564ad225d
4 changed files with 159 additions and 111 deletions
+19 -4
View File
@@ -14,7 +14,7 @@ enum FP_GameEntityFlag
FP_GameEntityFlag_NonTraversable = 1 << 6,
FP_GameEntityFlag_MobSpawner = 1 << 7,
FP_GameEntityFlag_MobSpawnerWaypoint = 1 << 8,
FP_GameEntityFlag_AggrosWhenNearTerry = 1 << 9,
FP_GameEntityFlag_Aggros = 1 << 9,
FP_GameEntityFlag_Attackable = 1 << 10,
FP_GameEntityFlag_RespondsToBuildings = 1 << 11,
FP_GameEntityFlag_OccupiedInBuilding = 1 << 12,
@@ -22,6 +22,8 @@ enum FP_GameEntityFlag
FP_GameEntityFlag_CameraTracking = 1 << 14,
FP_GameEntityFlag_BuildZone = 1 << 15,
FP_GameEntityFlag_TTL = 1 << 16,
FP_GameEntityFlag_Friendly = 1 << 17,
FP_GameEntityFlag_Foe = 1 << 18,
};
enum FP_GameShapeType
@@ -71,9 +73,10 @@ enum FP_GameWaypointArrive
enum FP_GameWaypointType
{
FP_GameWaypointType_At, // Move to the specified entity
FP_GameWaypointType_Side, // Move to the side of the entity specified by the direction
FP_GameWaypointType_Offset, // Move to the designed offset from the entity
FP_GameWaypointType_At, // Move to the specified entity
FP_GameWaypointType_Side, // Move to the side of the entity specified by the direction
FP_GameWaypointType_ClosestSide, // Move to the side of the entity closest to us
FP_GameWaypointType_Offset, // Move to the designed offset from the entity
};
enum FP_GameDirection
@@ -152,6 +155,13 @@ struct FP_GameInventory
uint8_t churchs;
};
enum FP_GameEntityFaction
{
FP_GameEntityFaction_Nil,
FP_GameEntityFaction_Friendly,
FP_GameEntityFaction_Foe,
};
struct FP_GameEntity
{
FP_GameEntity *next;
@@ -221,6 +231,11 @@ struct FP_GameEntity
uint16_t hp_cap;
uint16_t stamina;
uint16_t stamina_cap;
bool converted_faction;
FP_GameEntityFaction faction;
uint32_t count_of_entities_targetting_sides[FP_GameDirection_Count];
};
struct FP_GameEntityIterator