From bc23188d603aeacc346f4a1ea40b74fcb0364ffe Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 24 Sep 2023 02:23:15 -0500 Subject: [PATCH] Hitbox fade hints implemented for colliding terrain. --- Crawler/Crawler.cpp | 20 +++++++---- Crawler/Version.h | 2 +- .../maps/Decorations_c1_No_Shadow24x24.tsx | 34 ++++++++++--------- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/Crawler/Crawler.cpp b/Crawler/Crawler.cpp index 90aacca1..f310eda0 100644 --- a/Crawler/Crawler.cpp +++ b/Crawler/Crawler.cpp @@ -636,12 +636,12 @@ void Crawler::RenderWorld(float fElapsedTime){ if(!IsForegroundTile(tileSheet,tileSheetIndex)&&!IsUpperForegroundTile(tileSheetIndex)&&!IsReflectiveTile(tileSheet,tileSheetIndex)){ if(layer.tag.data["class"]!="CollisionOnly"){visibleTiles.erase({x,y});} RenderTile({x,y},tileSheet,tileSheetIndex,{tileSheetX,tileSheetY}); - } - if("debug_collision_boxes"_I){ - if(tileSheet.tileset->collision.find(tileSheetIndex)!=tileSheet.tileset->collision.end()){ - geom2d::rectcollision=tileSheet.tileset->collision[tileSheetIndex].collision; - view.FillRectDecal(vi2d{x,y}*24+collision.pos,collision.size,{0,0,0,128}); - view.DrawRectDecal(vi2d{x,y}*24+collision.pos,collision.size,GREY); + if("debug_collision_boxes"_I){ + if(tileSheet.tileset->collision.find(tileSheetIndex)!=tileSheet.tileset->collision.end()){ + geom2d::rectcollision=tileSheet.tileset->collision[tileSheetIndex].collision; + view.FillRectDecal(vi2d{x,y}*24+collision.pos,collision.size,{0,0,0,128}); + view.DrawRectDecal(vi2d{x,y}*24+collision.pos,collision.size,GREY); + } } } } @@ -752,6 +752,14 @@ void Crawler::RenderWorld(float fElapsedTime){ } for(TileRenderData&tile:group.GetTiles()){ RenderTile(tile,{255,255,255,uint8_t(255-group.fadeFactor/TileGroup::FADE_TIME*TileGroup::FADE_AMT)}); + float distToPlayer=geom2d::line(player->GetPos(),tile.pos+vf2d{12,12}).length(); + if(distToPlayer<24*3&&group.fadeFactor>0&&tile.tileSheet.tileset->collision.find(tile.tileID)!=tile.tileSheet.tileset->collision.end()){ + geom2d::rectcollision=tile.tileSheet.tileset->collision[tile.tileID].collision; + distToPlayer/=4; + if(distToPlayer<1){distToPlayer=1;} + view.FillRectDecal(tile.pos+collision.pos,collision.size,{255,0,0,uint8_t(128*group.fadeFactor/sqrt(distToPlayer))}); + view.DrawRectDecal(tile.pos+collision.pos,collision.size,{128,0,0,uint8_t(255/sqrt(distToPlayer))}); + } } } } diff --git a/Crawler/Version.h b/Crawler/Version.h index 3341c3c0..15064a90 100644 --- a/Crawler/Version.h +++ b/Crawler/Version.h @@ -2,7 +2,7 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 2 #define VERSION_PATCH 0 -#define VERSION_BUILD 1418 +#define VERSION_BUILD 1432 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Crawler/assets/maps/Decorations_c1_No_Shadow24x24.tsx b/Crawler/assets/maps/Decorations_c1_No_Shadow24x24.tsx index 3027dac1..45e84172 100644 --- a/Crawler/assets/maps/Decorations_c1_No_Shadow24x24.tsx +++ b/Crawler/assets/maps/Decorations_c1_No_Shadow24x24.tsx @@ -303,12 +303,13 @@ - + + - + @@ -322,14 +323,14 @@ - + - + - + - + @@ -356,17 +357,17 @@ - + - + - + @@ -388,12 +389,12 @@ - + - + @@ -478,12 +479,13 @@ - + + - + @@ -557,17 +559,17 @@ - + - + - +