static public void PreToRoomOrWall(ref AreaMap new_map, Point m_sqr, int room_ID) { new_map.MSGrid[m_sqr.Y][m_sqr.X].MSStates[(int)MSFlagIndex.BL_ST] = MSFlag.NT_BL; if (new_map.ChkAdjacentForRoomID(ref new_map, ref m_sqr, room_ID, Globals.NESWItr, 4)) { new_map.RoomList[roomCounter].RoomSquares.Add(new Point(m_sqr.X, m_sqr.Y)); new_map.MSGrid[m_sqr.Y][m_sqr.X].MSStates[(int)MSFlagIndex.WALL_RM_ENT] = MSFlag.ROOM; new_map.MSGrid[m_sqr.Y][m_sqr.X].MSStates[(int)MSFlagIndex.PASSABLE] = MSFlag.NT_BLKD; } else { new_map.RoomList[roomCounter].WallSquares.Add(new Point(m_sqr.X, m_sqr.Y)); new_map.MSGrid[m_sqr.Y][m_sqr.X].MSStates[(int)MSFlagIndex.WALL_RM_ENT] = MSFlag.WALL; new_map.MSGrid[m_sqr.Y][m_sqr.X].MSStates[(int)MSFlagIndex.PASSABLE] = MSFlag.BLKD; } }
static public bool CheckForGoodPathEnds(ref AreaMap new_map, int room_index, int sqr_index, ref Point sqr_point) { if (!new_map.ChkAdjacentForRoomID(ref new_map, ref sqr_point, room_index, Globals.AllDirItr, 4)) // is corner? { return(false); } else if (new_map.ChkMSForState(ref new_map.MSGrid[sqr_point.Y][sqr_point.X], MSFlag.ENT, MSFlagIndex.WALL_RM_ENT)) // is entrance? { return(false); } else if (!new_map.ChkAdjacentForMState(ref new_map, ref sqr_point, MSFlag.BL, MSFlagIndex.BL_ST, Globals.NESWItr, 1)) // is blocked off? { return(false); } return(true); }