From 5a24f2868bc7796633862154cb41280da798532c Mon Sep 17 00:00:00 2001 From: fgenesis Date: Wed, 31 Jan 2024 01:11:25 +0100 Subject: [PATCH] fix handling of EF_HURT -- shouldn't be trimmed --- Aquaria/SceneEditor.cpp | 4 ++-- Aquaria/TileMgr.cpp | 10 +++++----- BBGE/Tile.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Aquaria/SceneEditor.cpp b/Aquaria/SceneEditor.cpp index b4b6675..2343887 100644 --- a/Aquaria/SceneEditor.cpp +++ b/Aquaria/SceneEditor.cpp @@ -1276,9 +1276,9 @@ void SceneEditor::toggleElementHurt() const bool set = !(t0.flags & TILEFLAG_HURT); if(set) - ts.changeFlags(TILEFLAG_SOLID | TILEFLAG_HURT, 0, &selectedTiles[0], n); + ts.changeFlags(TILEFLAG_SOLID | TILEFLAG_HURT, TILEFLAG_TRIM, &selectedTiles[0], n); else - ts.changeFlags(0, TILEFLAG_SOLID | TILEFLAG_HURT | TILEFLAG_SOLID_IN | TILEFLAG_SOLID_THICK, &selectedTiles[0], n); + ts.changeFlags(0, TILEFLAG_SOLID | TILEFLAG_HURT | TILEFLAG_SOLID_IN | TILEFLAG_TRIM, &selectedTiles[0], n); game->reconstructGrid(true); } diff --git a/Aquaria/TileMgr.cpp b/Aquaria/TileMgr.cpp index 59fa00f..673aa63 100644 --- a/Aquaria/TileMgr.cpp +++ b/Aquaria/TileMgr.cpp @@ -7,11 +7,11 @@ static const unsigned s_tileFlags[] = { /* EF_NONE -> */ TILEFLAG_NONE, - /* EF_SOLID -> */ TILEFLAG_SOLID, + /* EF_SOLID -> */ TILEFLAG_SOLID | TILEFLAG_TRIM, /* EF_MOVABLE-> */ TILEFLAG_NONE, /* unused */ /* EF_HURT -> */ TILEFLAG_SOLID | TILEFLAG_HURT, - /* EF_SOLID2 -> */ TILEFLAG_SOLID | TILEFLAG_SOLID_THICK, - /* EF_SOLID3 -> */ TILEFLAG_SOLID | TILEFLAG_SOLID_THICK | TILEFLAG_SOLID_IN + /* EF_SOLID2 -> */ TILEFLAG_SOLID, + /* EF_SOLID3 -> */ TILEFLAG_SOLID | TILEFLAG_SOLID_IN }; @@ -33,7 +33,7 @@ ElementFlag TileMgr::GetElementFlag(TileFlags tf) ef = EF_HURT; else if(tf & TILEFLAG_SOLID_IN) ef = EF_SOLID3; - else if(tf & TILEFLAG_SOLID_THICK) + else if(!(tf & TILEFLAG_TRIM)) ef = EF_SOLID2; else ef = EF_SOLID; @@ -163,7 +163,7 @@ void TileMgr::exportGridFillers(std::vector& fillers) const gf.texture = t.et->tex.content(); gf.width = t.et->w; gf.height = t.et->h; - gf.trim = !(t.flags & TILEFLAG_SOLID_THICK); + gf.trim = !!(t.flags & TILEFLAG_TRIM); if(t.flags & TILEFLAG_HURT) gf.obs = OT_HURT; else if(t.flags & TILEFLAG_SOLID_IN) diff --git a/BBGE/Tile.h b/BBGE/Tile.h index 0d3789f..f2d53ba 100644 --- a/BBGE/Tile.h +++ b/BBGE/Tile.h @@ -99,7 +99,7 @@ enum TileFlags TILEFLAG_NONE = 0, TILEFLAG_REPEAT = 0x01, // texture repeats and uses texscale for the repeat factor TILEFLAG_SOLID = 0x02, // generates OT_INVISIBLE - TILEFLAG_SOLID_THICK = 0x04, // generates more OT_INVISIBLE + TILEFLAG_TRIM = 0x04, // trim generated OT_* to make it less thick TILEFLAG_SOLID_IN = 0x08, // instead of OT_INVISIBLE, generate OT_INVISIBLEIN TILEFLAG_HURT = 0x10, // always generate OT_HURT TILEFLAG_FH = 0x20, // flipped horizontally