aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2023-07-15 16:54:01 +0100
committerJuan J. Martinez <jjm@usebox.net>2023-07-15 16:54:01 +0100
commitbb7ec5e1b79dabaca52656572d8ec17673f7d35e (patch)
tree3c1aebafe63823991d4126994ed2efe8aac70f82
parent1ac83c4fc1d3ae63d29ae67b2569ebbb4126d154 (diff)
downloadgold-mine-run-bb7ec5e1b79dabaca52656572d8ec17673f7d35e.tar.gz
gold-mine-run-bb7ec5e1b79dabaca52656572d8ec17673f7d35e.zip
Stage 5
-rw-r--r--data/stage05.json153
-rw-r--r--src/data.h1
-rw-r--r--src/game.c9
3 files changed, 160 insertions, 3 deletions
diff --git a/data/stage05.json b/data/stage05.json
new file mode 100644
index 0000000..7b2c489
--- /dev/null
+++ b/data/stage05.json
@@ -0,0 +1,153 @@
+{ "compressionlevel":-1,
+ "height":23,
+ "infinite":false,
+ "layers":[
+ {
+ "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 41, 42, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 41, 42, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 41, 42, 61, 62, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 61, 62, 61, 62, 23, 24, 5, 6, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 7, 8, 5, 6, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 5, 6, 24, 61, 62, 41, 42, 3, 4, 3, 4, 3, 4, 3, 4, 5, 6, 3, 4, 3, 4, 3, 5, 6, 27, 28, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 6, 3, 4, 3, 4, 3, 4, 41, 42, 61, 62, 45, 45, 45, 45, 45, 45, 45, 45, 43, 44, 23, 24, 23, 24, 45, 45, 45, 45, 45, 45, 45, 45, 23, 24, 23, 24, 43, 44, 45, 45, 45, 45, 45, 45, 45, 45, 61, 62, 41, 42, 1, 1, 1, 1, 1, 1, 1, 1, 61, 62, 3, 4, 3, 4, 1, 1, 2, 1, 1, 2, 1, 1, 3, 4, 3, 4, 61, 62, 1, 1, 1, 1, 1, 1, 1, 1, 41, 42, 61, 62, 23, 24, 23, 24, 23, 24, 23, 24, 41, 42, 23, 24, 23, 24, 23, 24, 22, 24, 23, 22, 23, 24, 23, 24, 23, 5, 41, 42, 23, 24, 23, 24, 23, 24, 23, 24, 61, 62, 41, 42, 45, 45, 45, 45, 45, 45, 45, 45, 61, 62, 3, 4, 3, 4, 3, 4, 45, 45, 45, 45, 3, 4, 3, 4, 3, 4, 61, 62, 45, 45, 45, 45, 45, 45, 45, 45, 41, 42, 61, 62, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 24, 5, 6, 23, 24, 2, 1, 1, 2, 23, 24, 23, 24, 23, 24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 61, 62, 41, 42, 5, 6, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 22, 4, 3, 22, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 42, 61, 62, 23, 24, 23, 24, 45, 45, 45, 45, 45, 45, 45, 45, 23, 24, 23, 24, 45, 45, 45, 45, 23, 24, 23, 24, 45, 45, 45, 45, 45, 45, 45, 45, 23, 24, 5, 6, 61, 62, 41, 42, 3, 4, 3, 4, 1, 1, 1, 1, 1, 1, 2, 1, 3, 4, 3, 4, 2, 1, 1, 2, 3, 4, 3, 4, 1, 2, 1, 1, 1, 1, 1, 1, 3, 4, 3, 4, 41, 42, 61, 62, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 22, 24, 23, 24, 23, 24, 22, 24, 23, 22, 23, 24, 23, 24, 23, 22, 23, 24, 5, 6, 23, 24, 23, 24, 23, 24, 61, 62, 41, 42, 45, 45, 45, 45, 45, 45, 3, 4, 3, 4, 22, 4, 3, 4, 3, 4, 45, 45, 45, 45, 3, 4, 3, 4, 3, 22, 3, 4, 3, 4, 45, 45, 45, 45, 45, 45, 41, 42, 61, 62, 1, 1, 1, 1, 1, 1, 23, 24, 5, 6, 22, 24, 23, 24, 23, 24, 2, 1, 1, 2, 23, 5, 6, 24, 23, 22, 23, 24, 23, 24, 1, 1, 1, 1, 1, 1, 61, 62, 41, 42, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 22, 4, 3, 4, 3, 4, 22, 4, 3, 22, 3, 4, 3, 4, 3, 22, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 42, 61, 62, 43, 44, 43, 44, 43, 44, 43, 44, 43, 44, 43, 44, 3, 4, 3, 4, 43, 44, 43, 44, 3, 4, 3, 4, 43, 44, 43, 44, 43, 44, 43, 44, 43, 44, 43, 44, 61, 62, 41, 42, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 101, 101, 101, 101, 61, 62, 61, 62, 101, 101, 101, 101, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 41, 42, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ "height":23,
+ "id":1,
+ "name":"Map",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":40,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":23,
+ "id":2,
+ "name":"Gold",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":40,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "id":3,
+ "name":"Entities",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"Player",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":152,
+ "y":48
+ },
+ {
+ "height":16,
+ "id":28,
+ "name":"Old",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":24,
+ "y":120
+ },
+ {
+ "height":16,
+ "id":29,
+ "name":"Old",
+ "properties":[
+ {
+ "name":"dir",
+ "type":"string",
+ "value":"left"
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":280,
+ "y":120
+ },
+ {
+ "height":16,
+ "id":32,
+ "name":"Snake",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":16,
+ "y":48
+ },
+ {
+ "height":16,
+ "id":33,
+ "name":"Bonus",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":80,
+ "y":96
+ },
+ {
+ "height":16,
+ "id":34,
+ "name":"Time",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":224,
+ "y":96
+ },
+ {
+ "height":16,
+ "id":35,
+ "name":"Snake",
+ "properties":[
+ {
+ "name":"dir",
+ "type":"string",
+ "value":"left"
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":288,
+ "y":48
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }],
+ "nextlayerid":4,
+ "nextobjectid":36,
+ "orientation":"orthogonal",
+ "renderorder":"right-down",
+ "tiledversion":"1.7.2",
+ "tileheight":8,
+ "tilesets":[
+ {
+ "columns":20,
+ "firstgid":1,
+ "image":"tiles.png",
+ "imageheight":48,
+ "imagewidth":160,
+ "margin":0,
+ "name":"Map",
+ "spacing":0,
+ "tilecount":120,
+ "tileheight":8,
+ "tilewidth":8
+ }],
+ "tilewidth":8,
+ "type":"map",
+ "version":"1.6",
+ "width":40
+} \ No newline at end of file
diff --git a/src/data.h b/src/data.h
index 59fa913..9f35f35 100644
--- a/src/data.h
+++ b/src/data.h
@@ -18,6 +18,7 @@ extern const uint8_t binary_stage01_start[];
extern const uint8_t binary_stage02_start[];
extern const uint8_t binary_stage03_start[];
extern const uint8_t binary_stage04_start[];
+extern const uint8_t binary_stage05_start[];
/* sound */
extern const uint8_t binary_music_start[];
diff --git a/src/game.c b/src/game.c
index 2c58107..8c619ed 100644
--- a/src/game.c
+++ b/src/game.c
@@ -48,10 +48,13 @@ static uint8_t gameover;
static uint8_t pause;
static Entity *tmonster;
-#define STAGES_LEN 4
+/* 0-index */
+#define START_STAGE 0
+#define STAGES_LEN 5
static const uint8_t *stages[STAGES_LEN] = {
- binary_stage01_start, binary_stage02_start, binary_stage03_start, binary_stage04_start
+ binary_stage01_start, binary_stage02_start, binary_stage03_start, binary_stage04_start,
+ binary_stage05_start
};
static void hud_render()
@@ -227,7 +230,7 @@ void run_game()
{
lives = GAME_LIVES_START;
score = 0;
- stage = 0;
+ stage = START_STAGE;
run_intro();