By commenting out that line, all you are doing is ignoring the "skip" if the tile has the star passability flag. Since flags hold much larger values (in most cases) than the simple 0x10, all we're doing here is a bitwise AND check to see if it's binary data includes that particular flag. In ordinary cases, it will move on to the next tile down if star passability is detected.
Now that I think about it, though, this will NOT work since we're only checking one tile. Give me 5 minutes to create a solution.
EDIT: Here is the solution. It checks if the tile is a star before checking passability. If the tile is a star and it is passable, it then checks the tile UNDER it. If not, it returns false as always. This prevents everything that is a star tile from being passable.
Code:
class Game_Map
def check_passage(x, y, bit)
all_tiles(x, y).each do |tile_id|
flag = tileset.flags[tile_id]
if flag & 0x10 != 0 # [☆]: No effect on passage
next if flag & bit == 0 # [○] : Passable but star
return false if flag & bit == bit # [×] : Impassable
else
return true if flag & bit == 0 # [○] : Passable
return false if flag & bit == bit # [×] : Impassable
end
end
return false # Impassable
end
end