aboutsummaryrefslogtreecommitdiff
path: root/src/gameScreen.c
diff options
context:
space:
mode:
authornathansmithsmith <thenathansmithsmith@gmail.com>2023-12-18 12:06:26 -0700
committernathansmithsmith <thenathansmithsmith@gmail.com>2023-12-18 12:06:26 -0700
commit2016fd3e8a39205843f770df7e80df27f720abad (patch)
tree926eebf9d5c332f6827a88ed35fba24330ddebef /src/gameScreen.c
parentef8583564b648f6fdda73711a18b469416c1fdfc (diff)
Health from last level now saved
Diffstat (limited to 'src/gameScreen.c')
-rw-r--r--src/gameScreen.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gameScreen.c b/src/gameScreen.c
index 609f145..d35a05d 100644
--- a/src/gameScreen.c
+++ b/src/gameScreen.c
@@ -1,6 +1,7 @@
#include "gameScreen.h"
#include "game.h"
#include "world.h"
+#include "entity.h"
#include "bullets.h"
#include "assets.h"
#include "killLog.h"
@@ -42,6 +43,7 @@ void initGameScreen(Game * game, GameScreen * gameScreen) {
gameScreen->gameOver = false;
gameScreen->mainCamera = THIRD_PERSON_CAMERA;
gameScreen->levelComplete = false;
+ gameScreen->healthAtLevelEnd = ENTITY_MAX_HEALTH;
// Gyroscope indeed
initGyroscope(&gameScreen->gyroscope);
@@ -238,6 +240,7 @@ void gameScreenHandleLevels(Game * game, GameScreen * gameScreen) {
if (GetTime() - gameScreen->timeAtLevelComplete >= GAME_SCREEN_NEXT_LEVEL_DELAY) {
gameScreen->levelComplete = false;
startLevel(game, &game->levels, gameScreen->lastLevel + 1);
+ getEntityFromWorld(game->world, 0)->health = gameScreen->healthAtLevelEnd;
}
return;
@@ -248,6 +251,7 @@ void gameScreenHandleLevels(Game * game, GameScreen * gameScreen) {
// This fucker been completed.
if (complete) {
gameScreen->lastLevel = game->levels.currentLevel;
+ gameScreen->healthAtLevelEnd = getEntityFromWorld(game->world, 0)->health;
endLevel(game, &game->levels);
gameScreen->levelComplete = true;
gameScreen->timeAtLevelComplete = GetTime();