diff options
author | nathansmithsmith <thenathansmithsmith@gmail.com> | 2023-07-09 01:26:05 -0600 |
---|---|---|
committer | nathansmithsmith <thenathansmithsmith@gmail.com> | 2023-07-09 01:26:05 -0600 |
commit | 708072e716e7ab22a37f528311a433f195f75054 (patch) | |
tree | ee778b916531b8da3967ad5324019cbfb4e03e1c /src | |
parent | 3f0be672f9c5a07a98be0dc703b95f1bbe73f33e (diff) |
World entries added
Diffstat (limited to 'src')
-rw-r--r-- | src/entities/antifaShip.c | 4 | ||||
-rw-r--r-- | src/game.c | 45 | ||||
-rw-r--r-- | src/settings.c | 10 | ||||
-rw-r--r-- | src/settings.h | 4 | ||||
-rw-r--r-- | src/world.c | 31 | ||||
-rw-r--r-- | src/world.h | 10 |
6 files changed, 71 insertions, 33 deletions
diff --git a/src/entities/antifaShip.c b/src/entities/antifaShip.c index 7dfbe26..f102f6c 100644 --- a/src/entities/antifaShip.c +++ b/src/entities/antifaShip.c @@ -60,8 +60,8 @@ void controlAntifaShipKeyboardAndMouse(Game * game, Entity * entity) { // Using mouse as a joystick. Vector3 mouseStick = (Vector3){ - (v.y / GetScreenHeight()) * game->settings.mouseSensitivity, - (-v.x / GetScreenWidth()) * game->settings.mouseSensitivity, + v.y * game->settings.mouseSensitivity, + -v.x * game->settings.mouseSensitivity, 0.0, }; @@ -6,6 +6,7 @@ void initGame(Game * game) { // Settings. initSettings(&game->settings); + applySettings(&game->settings); // Assets. LoadAssets(&game->assets); @@ -19,7 +20,6 @@ void initGame(Game * game) { // Camera. initPlayerCamera(&game->playerCamera); - SetTargetFPS(60); DisableCursor(); // World. @@ -27,32 +27,26 @@ void initGame(Game * game) { // Debug. // Add player. - addEntityToWorld( + //addEntityToWorld( + // &game->world, + // createEntity(ENTITY_ANTIFA, game) + //); + + WorldEntry entries[] = { + (WorldEntry){ENTITY_ANTIFA, Vector3Zero(), QuaternionIdentity()}, + (WorldEntry){ENTITY_SOLDATO, (Vector3){10.0, 10.0, 10.0}, QuaternionIdentity()}, + (WorldEntry){ENTITY_SOLDATO, (Vector3){20.0, 20.0, 20.0}, QuaternionIdentity()}, + (WorldEntry){ENTITY_SOLDATO, (Vector3){30.0, 30.0, 30.0}, QuaternionIdentity()}, + (WorldEntry){ENTITY_SOLDATO, (Vector3){40.0, 40.0, 40.0}, QuaternionIdentity()} + }; + + addEntriesToWorld( &game->world, - createEntity(ENTITY_ANTIFA, game) + game, + entries, + sizeof(entries) / sizeof(WorldEntry) ); - // Test entity. - Entity soldato = createEntity(ENTITY_SOLDATO, game); - soldato.position = (Vector3){10.0, 10.0, 10.0}; - addEntityToWorld(&game->world, soldato); - - soldato = createEntity(ENTITY_SOLDATO, game); - soldato.position = (Vector3){20.0, 20.0, 20.0}; - addEntityToWorld(&game->world, soldato); - - soldato = createEntity(ENTITY_SOLDATO, game); - soldato.position = (Vector3){30.0, 30.0, 30.0}; - addEntityToWorld(&game->world, soldato); - - printf("%d\n", removeEntityFromWorld(&game->world, 2)); - printf("%d\n", removeEntityFromWorld(&game->world, 3)); - - soldato = createEntity(ENTITY_SOLDATO, game); - soldato.position = (Vector3){-30.0, -30.0, -30.0}; - addEntityToWorld(&game->world, soldato); - - puts("v"); for (int i = 0; i < game->world.vacantIdsCount; ++i) @@ -99,7 +93,8 @@ void updateGame(Game * game) { break; } - DrawFPS(5, 5); + if (game->settings.drawFps) + DrawFPS(5, 5); EndDrawing(); } diff --git a/src/settings.c b/src/settings.c index d436d4a..d46bc86 100644 --- a/src/settings.c +++ b/src/settings.c @@ -2,8 +2,14 @@ void initSettings(Settings * settings) { *settings = (Settings){ - .mouseSensitivity = 50.0, + .mouseSensitivity = 0.05, .scrollBarSpeed = 10.0, - .controlMode = KEYBOARD_AND_MOUSE_CONTROL + .controlMode = KEYBOARD_AND_MOUSE_CONTROL, + .fps = 60, + .drawFps = true }; } + +void applySettings(Settings * settings) { + SetTargetFPS(settings->fps); +} diff --git a/src/settings.h b/src/settings.h index a880a2c..15cdcb7 100644 --- a/src/settings.h +++ b/src/settings.h @@ -13,8 +13,12 @@ typedef struct Settings { float mouseSensitivity; float scrollBarSpeed; ControlMode controlMode; + + int fps; + bool drawFps; } Settings; void initSettings(Settings * settings); +void applySettings(Settings * settings); #endif diff --git a/src/world.c b/src/world.c index 0ec3b32..3bc02cd 100644 --- a/src/world.c +++ b/src/world.c @@ -66,7 +66,7 @@ EntityId popVacantId(World * world) { // Already empty. if (world->vacantIds == NULL) - return ENTITY_ID_NONE; + return ENTITY_NONE; id = world->vacantIds[world->vacantIdsCount - 1]; @@ -120,7 +120,7 @@ EntityId addEntityToWorld(World * world, Entity entity) { if (world->entities == NULL || world->lookUp == NULL) { ALLOCATION_ERROR; - return ENTITY_ID_NONE; + return ENTITY_NONE; } // Set entity and id. @@ -141,7 +141,7 @@ EntityId addEntityToWorld(World * world, Entity entity) { if (world->entities == NULL) { ALLOCATION_ERROR; - return ENTITY_ID_NONE; + return ENTITY_NONE; } // Set entity. @@ -167,7 +167,7 @@ EntityId addEntityToWorld(World * world, Entity entity) { if (world->lookUp == NULL) { ALLOCATION_ERROR; - return ENTITY_ID_NONE; + return ENTITY_NONE; } // Set id. @@ -250,3 +250,26 @@ void drawWorld(World * world, Game * game) { entity->drawCb(game, entity); } } + +KfError addEntryToWorld(World * world, Game * game, WorldEntry entry) { + // Create entity. + Entity entity = createEntity(entry.type, game); + entity.position = entry.position; + entity.rotation = entry.rotation; + + // Add to world. + if (addEntityToWorld(world, entity) == ENTITY_NONE) + return KFERROR; + + return KFSUCCESS; +} + +KfError addEntriesToWorld(World * world, Game * game, WorldEntry * entries, size_t entriesCount) { + int i; + + for (i = 0; i < entriesCount; ++i) + if (addEntryToWorld(world, game, entries[i]) != KFSUCCESS) + return KFERROR; + + return KFSUCCESS; +} diff --git a/src/world.h b/src/world.h index b075301..b3a7d69 100644 --- a/src/world.h +++ b/src/world.h @@ -35,4 +35,14 @@ KfError removeEntityFromWorld(World * world, EntityId id); void updateWorld(World * world, Game * game); void drawWorld(World * world, Game * game); +// Used for creating worlds. +typedef struct WorldEntry { + EntityType type; + Vector3 position; + Quaternion rotation; +} WorldEntry; + +KfError addEntryToWorld(World * world, Game * game, WorldEntry entry); +KfError addEntriesToWorld(World * world, Game * game, WorldEntry * entries, size_t entriesCount); + #endif |