Fix ladder not switching to one_way solid
parent
82efc711d0
commit
5bbbaa19e2
|
@ -42,6 +42,7 @@ typedef struct CollideEntity {
|
||||||
|
|
||||||
void change_a_tile(TileGrid_t* tilemap, unsigned int tile_idx, TileType_t new_type)
|
void change_a_tile(TileGrid_t* tilemap, unsigned int tile_idx, TileType_t new_type)
|
||||||
{
|
{
|
||||||
|
TileType_t last_type = tilemap->tiles[tile_idx].tile_type;
|
||||||
tilemap->tiles[tile_idx].tile_type = new_type;
|
tilemap->tiles[tile_idx].tile_type = new_type;
|
||||||
|
|
||||||
switch (new_type)
|
switch (new_type)
|
||||||
|
@ -78,6 +79,16 @@ void change_a_tile(TileGrid_t* tilemap, unsigned int tile_idx, TileType_t new_ty
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (last_type == LADDER && new_type != LADDER)
|
||||||
|
{
|
||||||
|
int down_tile = tile_idx + tilemap->width;
|
||||||
|
if (down_tile < tilemap->n_tiles && tilemap->tiles[down_tile].tile_type == LADDER)
|
||||||
|
{
|
||||||
|
tilemap->tiles[down_tile].solid = ONE_WAY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (new_type == SPIKES)
|
if (new_type == SPIKES)
|
||||||
{
|
{
|
||||||
// Priority: Down, Up, Left, Right
|
// Priority: Down, Up, Left, Right
|
||||||
|
|
Loading…
Reference in New Issue