public List <int> GetOcclistIndexes(roomSlotStatE filterval) { var fltIdxList = new List <int>( occlookup.Select((p, i) => new { p, i }) .Where(z => z.p == filterval) .Select(z => (z.i))); return(fltIdxList); }
public bool DoubleNcap() { if (!slotsCanExpand) { return(false); } var ocap = ncap; //Debug.Log("Room " + room.name + " doubling cap from " + ncap + " to " + 2*ncap + " nocc:" + Nocc() + " nres:" + Nreserved() + " nfree:" + Nfree()); var nocclookup = new roomSlotStatE[2 * ncap]; for (int i = 0; i < ncap; i++) { nocclookup[2 * i] = occlookup[i]; nocclookup[2 * i + 1] = roomSlotStatE.free; } foreach (Person pers in occDict.Values) { pers.roomPlaceIdx = 2 * pers.roomPlaceIdx; } occlookup = nocclookup; ncap = 2 * ncap; //Debug.Log("Room " + room.name + " doubled cap from " + ocap + " to " + ncap + " nocc:" + Nocc()+" nres:" + Nreserved() + " nfree:" + Nfree()); return(true); }