1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-27 16:44:00 +00:00

fix handling of EF_HURT -- shouldn't be trimmed

This commit is contained in:
fgenesis 2024-01-31 01:11:25 +01:00
parent 7a5a222b78
commit 5a24f2868b
3 changed files with 8 additions and 8 deletions

View file

@ -1276,9 +1276,9 @@ void SceneEditor::toggleElementHurt()
const bool set = !(t0.flags & TILEFLAG_HURT); const bool set = !(t0.flags & TILEFLAG_HURT);
if(set) if(set)
ts.changeFlags(TILEFLAG_SOLID | TILEFLAG_HURT, 0, &selectedTiles[0], n); ts.changeFlags(TILEFLAG_SOLID | TILEFLAG_HURT, TILEFLAG_TRIM, &selectedTiles[0], n);
else 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); game->reconstructGrid(true);
} }

View file

@ -7,11 +7,11 @@
static const unsigned s_tileFlags[] = static const unsigned s_tileFlags[] =
{ {
/* EF_NONE -> */ TILEFLAG_NONE, /* EF_NONE -> */ TILEFLAG_NONE,
/* EF_SOLID -> */ TILEFLAG_SOLID, /* EF_SOLID -> */ TILEFLAG_SOLID | TILEFLAG_TRIM,
/* EF_MOVABLE-> */ TILEFLAG_NONE, /* unused */ /* EF_MOVABLE-> */ TILEFLAG_NONE, /* unused */
/* EF_HURT -> */ TILEFLAG_SOLID | TILEFLAG_HURT, /* EF_HURT -> */ TILEFLAG_SOLID | TILEFLAG_HURT,
/* EF_SOLID2 -> */ TILEFLAG_SOLID | TILEFLAG_SOLID_THICK, /* EF_SOLID2 -> */ TILEFLAG_SOLID,
/* EF_SOLID3 -> */ TILEFLAG_SOLID | TILEFLAG_SOLID_THICK | TILEFLAG_SOLID_IN /* EF_SOLID3 -> */ TILEFLAG_SOLID | TILEFLAG_SOLID_IN
}; };
@ -33,7 +33,7 @@ ElementFlag TileMgr::GetElementFlag(TileFlags tf)
ef = EF_HURT; ef = EF_HURT;
else if(tf & TILEFLAG_SOLID_IN) else if(tf & TILEFLAG_SOLID_IN)
ef = EF_SOLID3; ef = EF_SOLID3;
else if(tf & TILEFLAG_SOLID_THICK) else if(!(tf & TILEFLAG_TRIM))
ef = EF_SOLID2; ef = EF_SOLID2;
else else
ef = EF_SOLID; ef = EF_SOLID;
@ -163,7 +163,7 @@ void TileMgr::exportGridFillers(std::vector<GridFiller>& fillers) const
gf.texture = t.et->tex.content(); gf.texture = t.et->tex.content();
gf.width = t.et->w; gf.width = t.et->w;
gf.height = t.et->h; gf.height = t.et->h;
gf.trim = !(t.flags & TILEFLAG_SOLID_THICK); gf.trim = !!(t.flags & TILEFLAG_TRIM);
if(t.flags & TILEFLAG_HURT) if(t.flags & TILEFLAG_HURT)
gf.obs = OT_HURT; gf.obs = OT_HURT;
else if(t.flags & TILEFLAG_SOLID_IN) else if(t.flags & TILEFLAG_SOLID_IN)

View file

@ -99,7 +99,7 @@ enum TileFlags
TILEFLAG_NONE = 0, TILEFLAG_NONE = 0,
TILEFLAG_REPEAT = 0x01, // texture repeats and uses texscale for the repeat factor TILEFLAG_REPEAT = 0x01, // texture repeats and uses texscale for the repeat factor
TILEFLAG_SOLID = 0x02, // generates OT_INVISIBLE 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_SOLID_IN = 0x08, // instead of OT_INVISIBLE, generate OT_INVISIBLEIN
TILEFLAG_HURT = 0x10, // always generate OT_HURT TILEFLAG_HURT = 0x10, // always generate OT_HURT
TILEFLAG_FH = 0x20, // flipped horizontally TILEFLAG_FH = 0x20, // flipped horizontally