Grid      *ReadUserGrid()
{
   Grid          *user_grid;

   SubgridArray  *user_all_subgrids;
   SubgridArray  *user_subgrids;

   int            num_user_subgrids;

   int            i;


   num_user_subgrids = GetIntDefault("UserGrid.NumSubgrids", 1);
			     
   /* read user_subgrids */
   user_all_subgrids = NewSubgridArray();
   user_subgrids = NewSubgridArray();
   for(i = 0; i < num_user_subgrids; i++)
   {
      AppendSubgrid(ReadUserSubgrid(), user_all_subgrids);
      AppendSubgrid(SubgridArraySubgrid(user_all_subgrids, i), user_subgrids);
   }
   
   /* create user_grid */
   user_grid = NewGrid(user_subgrids, user_all_subgrids);

   return user_grid;
}
Example #2
0
TerrainTest::TerrainTest()
	: Frame(gui, "TerrainTest", gui->GetScreenPosition())
{
	grid = NULL;
	width = height = 0;
	m_iUpperHeight = 2;
	m_iLowerHeight = 0;
	m_bDisplayTypeMap = true;
	NewGrid(Width() / TILE_SIZE, Height() / TILE_SIZE);
}
Example #3
0
void TerrainTest::Event(SDL_Event* event)
{
	switch (event->type)
	{
		case SDL_KEYUP:
		{
			switch (event->key.keysym.sym)
			{
				case SDLK_n:
					NewGrid(Width() / TILE_SIZE, Height() / TILE_SIZE);
					break;	
				case SDLK_q:
					if (m_iUpperHeight < MAX_HEIGHT)
						m_iUpperHeight++;
					break;
				case SDLK_a:
					if (m_iUpperHeight > 0)
						m_iUpperHeight--;
					break;
				case SDLK_w:
					if (m_iLowerHeight < MAX_HEIGHT)
						m_iLowerHeight++;
					break;
				case SDLK_s:
					if (m_iLowerHeight > 0)
						m_iLowerHeight--;
					break;
				case SDLK_t:
					m_bDisplayTypeMap = !m_bDisplayTypeMap;
					break;
				default: break;
			}
		} break;
		case SDL_MOUSEMOTION:
		{
			int x, y;
			if (gui->IsMouseButtonDown(MOUSE_BUTTON_LEFT, &x, &y))
			{
				PushUp(x / TILE_SIZE, y / TILE_SIZE);
			}
			else if (gui->IsMouseButtonDown(MOUSE_BUTTON_RIGHT, &x, &y))
			{
				PushDown(x / TILE_SIZE, y / TILE_SIZE);
			}
		} break;
		default: break;
	}
}