From f7ce3f9765955deb70419f0a22d3361cd42f139a Mon Sep 17 00:00:00 2001 From: KikooDX Date: Sat, 6 Mar 2021 00:15:32 +0100 Subject: [PATCH] Replicated collision bug from the original codebase. This was achieved for complete "feature parity". --- src/player.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/player.c b/src/player.c index 0882689..483ca3e 100644 --- a/src/player.c +++ b/src/player.c @@ -142,10 +142,13 @@ void player_draw(Player player, i16 y_offset) { /* Helper functions */ bool player_collide(Level level, Vec2 pos, tile_t tile, u8 margin) { + /* Note: these `* 2` are here to completely replicate the behavior of + * the original Painfull Success. If you want to reuse this in your + * game, remove them. They are a bug! */ const vec2_int_t xl = pos.x + margin; - const vec2_int_t xr = pos.x + PLAYER_WIDTH - 1 - margin; + const vec2_int_t xr = pos.x + PLAYER_WIDTH - 1 - margin * 2; const vec2_int_t yt = pos.y + margin; - const vec2_int_t yb = pos.y + PLAYER_HEIGHT - 1 - margin; + const vec2_int_t yb = pos.y + PLAYER_HEIGHT - 1 - margin * 2; return ((tile == level_get_tile_at_px(level, (Vec2){xl, yt})) || (tile == level_get_tile_at_px(level, (Vec2){xr, yt})) || (tile == level_get_tile_at_px(level, (Vec2){xl, yb})) ||