aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathansmithsmith <thenathansmithsmith@gmail.com>2023-07-09 02:23:05 -0600
committernathansmithsmith <thenathansmithsmith@gmail.com>2023-07-09 02:23:05 -0600
commit23be929353d4583edbd8621cd755f8a636c3fd90 (patch)
tree36d7502dbe628502eb7708c4617d1931420c8a66
parent708072e716e7ab22a37f528311a433f195f75054 (diff)
soldato asset added
-rw-r--r--assets/soldato.mtl12
-rw-r--r--assets/soldato.obj83
-rw-r--r--src/assets.c3
-rw-r--r--src/assets.h5
-rw-r--r--src/entities/soldato.c2
-rw-r--r--src/game.c33
-rw-r--r--src/gameScreen.c9
-rw-r--r--src/gameScreen.h5
-rw-r--r--src/mainMenu.c3
-rw-r--r--src/playerCamera.c5
10 files changed, 118 insertions, 42 deletions
diff --git a/assets/soldato.mtl b/assets/soldato.mtl
new file mode 100644
index 0000000..d6e7e51
--- /dev/null
+++ b/assets/soldato.mtl
@@ -0,0 +1,12 @@
+# Blender 3.5.1 MTL File: 'soldato.blend'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/assets/soldato.obj b/assets/soldato.obj
new file mode 100644
index 0000000..e376217
--- /dev/null
+++ b/assets/soldato.obj
@@ -0,0 +1,83 @@
+# Blender 3.5.1
+# www.blender.org
+mtllib soldato.mtl
+o Cube
+v 1.500000 0.000000 -1.000000
+v 1.500000 -0.500000 -1.000000
+v 0.000000 0.500000 -0.700000
+v -1.500000 0.000000 -1.000000
+v -1.500000 -0.500000 -1.000000
+v 0.000000 -0.500000 5.938437
+v 0.750000 -0.057781 -1.000000
+v -0.750000 -0.057781 -1.000000
+v 1.100000 -0.057781 -1.300000
+v -1.500000 -0.500000 -1.000000
+v 1.100000 -0.458728 -1.300000
+v 0.750000 -0.458728 -1.000000
+v -0.750000 -0.458728 -1.000000
+v -1.100000 -0.057781 -1.300000
+v -1.100000 -0.458728 -1.300000
+vn -0.3382 0.9306 0.1402
+vn 0.3382 0.9306 0.1402
+vn 0.9774 -0.0000 0.2113
+vn -0.0765 0.9931 -0.0893
+vn 0.0765 0.9931 -0.0893
+vn -0.9774 -0.0000 0.2113
+vn 0.6000 -0.0000 -0.8000
+vn -0.6508 -0.0000 -0.7593
+vn 0.6508 -0.0000 -0.7593
+vn -0.6000 -0.0000 -0.8000
+vn -0.0000 0.4737 -0.8807
+vn -0.0000 -0.0000 -1.0000
+vn -0.0548 -0.9964 -0.0640
+vn 0.0548 -0.9964 -0.0640
+vn -0.0549 -0.9984 -0.0119
+vn 0.0337 0.4379 -0.8984
+vn -0.0337 0.4379 -0.8984
+vn 0.0549 -0.9984 -0.0119
+vn -0.0000 -1.0000 -0.0059
+vt 0.625000 0.500000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.625000 0.375000
+vt 0.000000 0.000000
+vt 0.625000 0.250000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+s 0
+usemtl Material
+f 3/4/1 4/6/1 6/7/1
+f 1/1/2 3/4/2 6/7/2
+f 6/7/3 2/3/3 1/1/3
+f 7/8/4 1/2/4 9/10/4
+f 8/9/5 14/15/5 4/5/5
+f 6/7/6 4/6/6 10/11/6
+f 9/10/7 2/3/7 11/12/7
+f 12/13/8 9/10/8 11/12/8
+f 13/14/9 15/16/9 14/15/9
+f 14/15/10 15/16/10 10/11/10
+f 8/9/11 3/4/11 7/8/11
+f 13/14/12 7/8/12 12/13/12
+f 2/3/13 12/13/13 11/12/13
+f 13/14/14 10/11/14 15/16/14
+f 12/13/15 2/3/15 6/7/15
+f 9/10/7 1/2/7 2/3/7
+f 12/13/8 7/8/8 9/10/8
+f 13/14/9 14/15/9 8/9/9
+f 14/15/10 10/11/10 4/5/10
+f 4/6/16 3/4/16 8/9/16
+f 3/4/17 1/2/17 7/8/17
+f 13/14/12 8/9/12 7/8/12
+f 6/7/18 10/11/18 13/14/18
+f 13/14/19 12/13/19 6/7/19
+f 8/9/12 7/8/12 12/13/12
+f 8/9/12 12/13/12 13/14/12
+l 6 5
diff --git a/src/assets.c b/src/assets.c
index 1f0c95b..c8fe3be 100644
--- a/src/assets.c
+++ b/src/assets.c
@@ -7,7 +7,8 @@ const char textureAssetPaths[TEXTURE_ASSET_COUNT][ASSET_PATH_MAX] = {
};
const char modelAssetPaths[MODEL_ASSET_COUNT][ASSET_PATH_MAX] = {
- "/home/nathan/Documents/KillaFacsista/assets/antifaShip.obj"
+ "/home/nathan/Documents/KillaFacsista/assets/antifaShip.obj",
+ "/home/nathan/Documents/KillaFacsista/assets/soldato.obj"
};
void LoadAssets(Assets * assets) {
diff --git a/src/assets.h b/src/assets.h
index f28ddb8..658367a 100644
--- a/src/assets.h
+++ b/src/assets.h
@@ -6,7 +6,7 @@
#define ASSET_PATH_MAX 255
#define TEXTURE_ASSET_COUNT 3
-#define MODEL_ASSET_COUNT 1
+#define MODEL_ASSET_COUNT 2
// Paths to assets.
extern const char textureAssetPaths[TEXTURE_ASSET_COUNT][ASSET_PATH_MAX];
@@ -23,7 +23,8 @@ enum {
// Model asset ids.
enum {
- ANTIFA_SHIP_ASSET
+ ANTIFA_SHIP_ASSET,
+ SOLDATO_ASSET
};
typedef struct Assets {
diff --git a/src/entities/soldato.c b/src/entities/soldato.c
index 4abe5af..da8df84 100644
--- a/src/entities/soldato.c
+++ b/src/entities/soldato.c
@@ -2,7 +2,7 @@
#include "game.h"
void initSoldato(Entity * entity, Game * game) {
- entity->model = &game->assets.models[ANTIFA_SHIP_ASSET];
+ entity->model = &game->assets.models[SOLDATO_ASSET];
entity->velocity.angularVelocity = (AxisAngle){(Vector3){1.0, 1.0, 1.0}, 1.0};
}
diff --git a/src/game.c b/src/game.c
index a89cf0c..2044cac 100644
--- a/src/game.c
+++ b/src/game.c
@@ -12,26 +12,18 @@ void initGame(Game * game) {
LoadAssets(&game->assets);
// Screen id.
- game->screenId = SCREEN_GAME;
+ game->screenId = SCREEN_MAIN_MENU;
// 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()},
@@ -46,29 +38,6 @@ void initGame(Game * 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) {
diff --git a/src/gameScreen.c b/src/gameScreen.c
index 1eb6b55..3282a8f 100644
--- a/src/gameScreen.c
+++ b/src/gameScreen.c
@@ -21,3 +21,12 @@ void updateGameScreen(Game * game) {
EndMode3D();
}
+
+void openGameScreen(Game * game) {
+ game->screenId = SCREEN_GAME;
+ DisableCursor();
+}
+
+void closeGameScreen(Game * game) {
+ EnableCursor();
+}
diff --git a/src/gameScreen.h b/src/gameScreen.h
index 8c3de89..5876e91 100644
--- a/src/gameScreen.h
+++ b/src/gameScreen.h
@@ -9,4 +9,9 @@ typedef struct GameScreen {
void updateGameScreen(Game * game);
+void openGameScreen(Game * game);
+
+// Call before setting screen when in game screen
+void closeGameScreen(Game * game);
+
#endif
diff --git a/src/mainMenu.c b/src/mainMenu.c
index fc67972..c0568f9 100644
--- a/src/mainMenu.c
+++ b/src/mainMenu.c
@@ -1,5 +1,6 @@
#include "mainMenu.h"
#include "game.h"
+#include "gameScreen.h"
void initMainMenu(Game * game) {
game->mainMenu = (MainMenu){
@@ -25,7 +26,7 @@ void updateMainMenu(Game * game) {
bool start = GuiButton(mainMenu->startButton, "Start");
if (start)
- game->screenId = SCREEN_GAME;
+ openGameScreen(game);
if (IsWindowResized())
resizeMainMenu(game);
diff --git a/src/playerCamera.c b/src/playerCamera.c
index df2cce4..e7db154 100644
--- a/src/playerCamera.c
+++ b/src/playerCamera.c
@@ -3,10 +3,6 @@
void initPlayerCamera(Camera3D * camera) {
*camera = (Camera3D){
- //.position = (Vector3){15.0, 15.0, 15.0},
- .position = (Vector3){0.0, 15.0, -15.0},
- .target = (Vector3){0.0, 0.0, 0.0},
- .up = (Vector3){0.0, 1.0, 0.0},
.fovy = 90.0,
.projection = CAMERA_PERSPECTIVE
};
@@ -15,7 +11,6 @@ void initPlayerCamera(Camera3D * camera) {
void updatePlayerCamera(Camera3D * camera, Game * game) {
Entity * player = &game->world.entities[0];
- //UpdateCamera(camera, CAMERA_FIRST_PERSON);
camera->target = player->position;
Matrix m = QuaternionToMatrix(QuaternionInvert(player->rotation));