diff --git a/make_filepaths.sh b/make_filepaths.sh index a4a33a5..bba074f 100755 --- a/make_filepaths.sh +++ b/make_filepaths.sh @@ -46,5 +46,6 @@ printf '%s\n}\n' "$LEVEL_ARRAY" # Create headers cd "$START_POS" mkdir -p generated/include +printf '#define LEVEL_COUNT %s\n' "$LEVEL_COUNT" > generated/include/pack_count.h [ "$((LEVEL_COUNT % 4))" != 0 ] && LEVEL_COUNT="$((LEVEL_COUNT + 4 - LEVEL_COUNT % 4))" -printf '#define PACK_COUNT %s\n' "$((LEVEL_COUNT / 4))" > generated/include/pack_count.h +printf '#define PACK_COUNT %s\n' "$((LEVEL_COUNT / 4))" >> generated/include/pack_count.h diff --git a/src/level/load.c b/src/level/load.c index 17b3f82..d63e1eb 100644 --- a/src/level/load.c +++ b/src/level/load.c @@ -3,6 +3,7 @@ #include "conf.h" #include "level.h" +#include "pack_count.h" #include "tiles.h" #include #include @@ -89,9 +90,13 @@ void level_load_binary(void) { extern uint8_t *level_binaries[]; - uint8_t *level_binary = level_binaries[level_id]; + uint8_t *level_binary; int i; + assert(level_id < LEVEL_COUNT, "level doesn't exist"); + + level_binary = level_binaries[level_id]; + i = LEVEL_SIZE; while (i-- > 0) level.data[i] = level_binary[KBLE_HEADER_LEN + i];