#include "game.h" void initGame(Game * game) { // Window. InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Killa Facsista"); // Settings. initSettings(&game->settings); applySettings(&game->settings); // Assets. LoadAssets(&game->assets); // Screen id. game->screenId = SCREEN_GAME; // Main menu. initMainMenu(game); // Camera. initPlayerCamera(&game->playerCamera); DisableCursor(); // World. initWorld(&game->world); // Debug. // Add player. //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, game, entries, sizeof(entries) / sizeof(WorldEntry) ); puts("v"); for (int i = 0; i < game->world.vacantIdsCount; ++i) printf("%d\n", game->world.vacantIds[i]); puts("l"); for (int i = 0; i < game->world.lookUpSize; ++i) { printf("%d\n", game->world.lookUp[i]); Entity * e = getEntityFromWorld(game->world, i); if (e == NULL) { puts("null"); continue; } if (e->id == i) printf("good %x\n", e->fingerprint); else printf("bad %d\n", e->id); } } void closeGame(Game * game) { unloadAssets(&game->assets); freeWorld(&game->world); // Close window last. CloseWindow(); } void updateGame(Game * game) { BeginDrawing(); switch (game->screenId) { case SCREEN_MAIN_MENU: updateMainMenu(game); break; case SCREEN_GAME: updateGameScreen(game); break; default: break; } if (game->settings.drawFps) DrawFPS(5, 5); EndDrawing(); }