diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/levels/level8.c | 37 | ||||
| -rw-r--r-- | src/levels/level8.h | 4 | 
2 files changed, 39 insertions, 2 deletions
diff --git a/src/levels/level8.c b/src/levels/level8.c index b132c76..2e86726 100644 --- a/src/levels/level8.c +++ b/src/levels/level8.c @@ -5,9 +5,19 @@  #include "entityGrouping.h"  void initLevel8(Game * game, Levels * levels) { +	levels->data = KF_MALLOC(sizeof(Level8)); + +	if (levels->data == NULL) { +		ALLOCATION_ERROR; +		return; +	} + +	Level8 * data = (Level8*)levels->data; +	data->stage = 0; +       WorldEntry entries[] = {  		(WorldEntry){ENTITY_ANTIFA, (Vector3){0.0, 0.0, 0.0}, QuaternionIdentity()}, -		(WorldEntry){ENTITY_GENERALE, (Vector3){0.0, 0.0, 300.0}, QuaternionIdentity()} +		(WorldEntry){ENTITY_GENERALE, (Vector3){0.0, 0.0, 700.0}, QuaternionIdentity()}  	};      addEntriesToWorld( @@ -19,8 +29,31 @@ void initLevel8(Game * game, Levels * levels) {  }  void closelevel8(Levels * levels) { +	if (levels->data != NULL) +		KF_FREE(levels->data);  }  bool updateLevel8(Game * game, Levels * levels) { -    return game->world.entitiesCount == 1; +	Level8 * data = (Level8*)levels->data; +	bool levelDone = false; + +	switch (data->stage) { +		case 0: +			if (game->world.entitiesCount == 1) { +				data->stage = 1; +			} + +			break; +		case 1: +			if (game->world.entitiesCount == 1) { +				levelDone = true; +			} + +			break; +		default: +			levelDone = true; +			break; +	} + +	return levelDone;  } diff --git a/src/levels/level8.h b/src/levels/level8.h index b2bbdc9..e2debb1 100644 --- a/src/levels/level8.h +++ b/src/levels/level8.h @@ -4,6 +4,10 @@  #ifndef LEVEL8_H  #define LEVEL8_H +typedef struct Level8 { +    int stage; +} Level8; +  void initLevel8(Game * game, Levels * levels);  void closelevel8(Levels * levels);  bool updateLevel8(Game * game, Levels * levels);  | 
