From 37c358c28699e4bd8f9b0eff6053908975481a16 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Sun, 19 Dec 2021 18:13:43 +0100 Subject: [PATCH] burn polarity & heady heading --- CMakeLists.txt | 1 + inc/tile.h | 2 ++ res/headtrauma.kble | Bin 0 -> 356 bytes res/tileset.png | Bin 10973 -> 11645 bytes src/level.c | 7 +++++-- src/player.c | 11 ++++++++++- 6 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 res/headtrauma.kble diff --git a/CMakeLists.txt b/CMakeLists.txt index 608be1d..d35076f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,7 @@ set(ASSETS res/shake.kble res/tilt.kble res/cave.kble + res/headtrauma.kble res/fonts/dina.png ) diff --git a/inc/tile.h b/inc/tile.h index 5f52320..120965c 100644 --- a/inc/tile.h +++ b/inc/tile.h @@ -14,6 +14,8 @@ enum Tile { TILE_GRAV_R, TILE_GRAV_L, TILE_WATER, + TILE_BURN_RED, + TILE_BURN_BLUE, TILE_COUNT, TILE_OOB, }; diff --git a/res/headtrauma.kble b/res/headtrauma.kble new file mode 100644 index 0000000000000000000000000000000000000000..31bfa347791ca95eafa3a0370f7864c7ca99f40a GIT binary patch literal 356 zcmbV_ITFAy2m^(4Ri@AXKN^HbObVK03tPi-z;MIu2WJQOV2pt+P>3HX&>%7Ak`6?Q mmzzimk3wO#SC-)P!I4#Xx92K}9AtCe(eYZRKyh_YeB}Wm&;tMf literal 0 HcmV?d00001 diff --git a/res/tileset.png b/res/tileset.png index 405f7b71d98a9906f618481034eb38312507c375..a6a560a54cd0f78d2441828443238dfd07934a52 100644 GIT binary patch delta 5661 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 VQ71YkgBkz;002ovPDHLkV1hyc-4*}< diff --git a/src/level.c b/src/level.c index f860af8..cd08540 100644 --- a/src/level.c +++ b/src/level.c @@ -12,10 +12,11 @@ static struct Level level; extern bopti_image_t bimg_tileset; extern struct LevelBin kble_test, kble_burn, kble_bounce, kble_worm, kble_shake, - kble_tilt, kble_cave; + kble_tilt, kble_cave, kble_headtrauma; static const struct LevelBinNamed levels[] = { {&kble_test, "gentle introduction"}, - {&kble_cave, "light at the end of the tunnel"}, + {&kble_cave, "the light at the end of the tunnel"}, + {&kble_headtrauma, "minefield"}, {&kble_burn, "these are rare"}, {&kble_bounce, "deceptive road"}, {&kble_shake, "breaking into reality"}, @@ -92,9 +93,11 @@ level_regen_visual_data(int editing) if (editing) continue; switch (tile) { case TILE_RED: + case TILE_BURN_RED: vd->img_y += polarity() ? TILE_SIZE : 0; break; case TILE_BLUE: + case TILE_BURN_BLUE: vd->img_y += polarity() ? 0 : TILE_SIZE; break; default: diff --git a/src/player.c b/src/player.c index 2f90d24..eacfd76 100644 --- a/src/player.c +++ b/src/player.c @@ -12,6 +12,7 @@ static struct Vec update_rem(struct Player *); static int collide_margin(int x, int y, int tile, int margin); static int collide(int x, int y, int tile); static int collide_solid(int x, int y); +static int collide_burn(int x, int y); void player_spawn(struct Player *p) @@ -116,7 +117,7 @@ player_update(struct Player *p) } /* burn and death */ - if (collide(p->pos.x, p->pos.y, TILE_BURN)) { + if (collide_burn(p->pos.x, p->pos.y)) { if (++p->burn >= BURN_DEATH) { level_reload(); return; @@ -241,3 +242,11 @@ collide_solid(int x, int y) (!polarity() && collide(x, y, TILE_RED)) || (polarity() && collide(x, y, TILE_BLUE)); } + +static int +collide_burn(int x, int y) +{ + return collide(x, y, TILE_BURN) || + (!polarity() && collide(x, y, TILE_BURN_RED)) || + (polarity() && collide(x, y, TILE_BURN_BLUE)); +}