From 8bd37d4fe75a43deab8d6f24b481c23d7f965c5a Mon Sep 17 00:00:00 2001 From: nathansmithsmith Date: Sun, 3 Dec 2023 01:09:04 -0700 Subject: More and more level stuff --- src/entityGrouping.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/entityGrouping.c (limited to 'src/entityGrouping.c') diff --git a/src/entityGrouping.c b/src/entityGrouping.c new file mode 100644 index 0000000..1fa8a81 --- /dev/null +++ b/src/entityGrouping.c @@ -0,0 +1,37 @@ +#include "entityGrouping.h" +#include "entitiesInclude.h" +#include "game.h" +#include "world.h" + +void addEntityGroupToWorld(Game * game, EntityId id, int groupSize, Vector3 position, Vector3 spacing) { + int i; + WorldEntry entries[groupSize]; + + for (i = 0; i < groupSize; ++i) + entries[i] = (WorldEntry){ + id, + Vector3Add(position, Vector3Multiply((Vector3){i, i, i}, spacing)), + QuaternionIdentity() + }; + + addEntriesToWorld( + &game->world, + game, + entries, + sizeof(entries) / sizeof(WorldEntry) + ); +} + +void addSoldatoGroupWithLeader(Game * game, EntityId leader, int groupSize, Vector3 position, Vector3 spacing) { + // Add leader. + addEntryToWorld(&game->world, game, (WorldEntry){leader, position, QuaternionIdentity()}); + + // Add soldato + addEntityGroupToWorld( + game, + ENTITY_SOLDATO, + groupSize, + Vector3Add(position, spacing), + spacing + ); +} -- cgit v1.2.3