0

I'm attempting to use a map ( and int array containing only 0's and 1's) to populate a list of booleans, but it throws the following error:

NullReferenceException: Object reference not set to an instance of an object

on the line where I try to do so. Here's the part of my code I'm having issues with:

public List<bool> free;
void checkSurrounding(int[,] map)
{
    int YStart = (int)cell.transform.position.y;

    int XStart = (int)cell.transform.position.x;
    Debug.Log(YStart + " " + XStart + "THIS");
    Debug.Log(map[5, 5]+"THISTHIS");
    //bool[] free;

    //We check +-1 of the position in the Cellular Automata generated map in both X,Y.
    //Went for if statements over for loops for sake of clarity during intial coding, might revist later

    if (map[XStart, YStart - 1] == 1) //bool[0]
    {


        free.Add(true); //It breaks here
    }
    else if (map[XStart, YStart - 1] == 0)
    {
        free.Insert(0, false);
    }
    if (map[XStart - 1, YStart - 1] == 1) //free[1]
    {
        free.Insert(1, true);
    }
    else if (map[XStart - 1, YStart - 1] == 0)
    {
        free.Insert(1, false);
    }
    if (map[XStart + 1, YStart - 1] == 1) //free[2]
    {
        free.Insert(2, true);
    }
    else if (map[XStart + 1, YStart - 1] == 0)
    {
        free.Insert(2, false);
    }
    if (map[XStart-1, YStart] == 1) //free[3]
    {
        free.Insert(3, true);
    }
    else if (map[XStart - 1, YStart] == 0)
    {
        free.Insert(3, false);
    }
    if (map[XStart+1, YStart] == 1) //free[4]
    {
        free.Insert(4, true);
    }
    else if (map[XStart + 1, YStart] == 0)
    {
        free.Insert(4, false);
    }
    if (map[XStart-1, YStart+1] == 1) //free[5]
    {
        free.Insert(5, true);
    }
    else if (map[XStart - 1, YStart + 1] == 0)
    {
        free.Insert(5, false);
    }
    if (map[XStart, YStart+1] == 1) //free[6]
    {
        free.Insert(6, true);
    }
    else if (map[XStart, YStart + 1] == 0)
    {
        free.Insert(6, false);
    }
    if (map[XStart+1, YStart+1] == 1) //free[7]
    {
        free.Insert(7, true);
    }
    else if (map[XStart + 1, YStart + 1] == 0)
    {
        free.Insert(7, false);
    }

    int test = free.Count;
    Debug.Log(test);}

I'd greatly appreciate some help on finding out why this happens. Thanks!

Umair M
  • 8,566
  • 3
  • 33
  • 67

0 Answers0