Beispiel #1
0
void CItem::DrivePacman()
{
	if (!IsVisible())
		return;

	if (!CTreeListItem::DrivePacman(GetReadJobs()))
		return;

	int i = GetTreeListControl()->FindTreeItem(this);

	CClientDC dc(GetTreeListControl());
	CRect rc = GetTreeListControl()->GetWholeSubitemRect(i, COL_SUBTREEPERCENTAGE);
	rc.DeflateRect(sizeDeflatePacman);
	DrawPacman(&dc, rc, GetTreeListControl()->GetItemSelectionBackgroundColor(i));
}
Beispiel #2
0
bool CItem::DrawSubitem(int subitem, CDC *pdc, CRect rc, UINT state, int *width, int *focusLeft) const
{
	if (subitem == COL_NAME)
	{
		return CTreeListItem::DrawSubitem(subitem, pdc, rc, state, width, focusLeft);
	}
	if (subitem != COL_SUBTREEPERCENTAGE)
		return false;

	bool showReadJobs = MustShowReadJobs();

	if (showReadJobs && !GetOptions()->IsPacmanAnimation())
		return false;

	if (showReadJobs && IsDone())
		return false;

	if (width != NULL)
	{
		*width = GetSubtreePercentageWidth();
		return true;
	}

	DrawSelection(GetTreeListControl(), pdc, rc, state);

	if (showReadJobs)
	{
		rc.DeflateRect(sizeDeflatePacman);
		DrawPacman(pdc, rc, GetTreeListControl()->GetItemSelectionBackgroundColor(this));
	}
	else
	{
		rc.DeflateRect(2, 5);
		for (int i=0; i < GetIndent(); i++)
			rc.left += rc.Width() / 10;

		DrawPercentage(pdc, rc, GetFraction(), GetPercentageColor());
	}
	return true;
}
Beispiel #3
0
/* Create all the objects, textures, geometry, etc, that we will use */
void InitialiseScene(void)
{
  /* Create new lists, and store its ID number */
  gTerrainList = glGenLists(1);
  gPacman = glGenLists(2);
  gLQGhost = glGenLists(3);
  gMQGhost = glGenLists(4);
  gHQGhost = glGenLists(5);
  gHQDot = glGenLists(6);
  gHQFruit = glGenLists(7);

  // create terrain
  glNewList(gTerrainList, GL_COMPILE);
  DrawTerrain();
  glEndList();

  // create pacman
  glNewList(gPacman, GL_COMPILE);
  DrawPacman();
  glEndList();

  // create ghosts from splines
  theGhostNurb = gluNewNurbsRenderer();
  gluNurbsProperty(theGhostNurb, GLU_SAMPLING_METHOD, GLU_DOMAIN_DISTANCE);
  gluNurbsProperty(theGhostNurb, GLU_DISPLAY_MODE, GLU_FILL);
  gluNurbsProperty(theGhostNurb, GLU_CULLING, GL_TRUE);

  // high quality ghost
  gluNurbsProperty(theGhostNurb, GLU_U_STEP, 50.);
  gluNurbsProperty(theGhostNurb, GLU_V_STEP, 50.);
  glNewList(gHQGhost, GL_COMPILE);
  DrawGhost();
  glEndList();
 
  // medium quality ghost
  gluNurbsProperty(theGhostNurb, GLU_U_STEP, 20.);
  gluNurbsProperty(theGhostNurb, GLU_V_STEP, 20.);
  glNewList(gMQGhost, GL_COMPILE);
  DrawGhost();
  glEndList(); 

  // low quality ghost
  gluNurbsProperty(theGhostNurb, GLU_U_STEP, 5.);
  gluNurbsProperty(theGhostNurb, GLU_V_STEP, 5.);
  glNewList(gLQGhost, GL_COMPILE);
  DrawGhost();
  glEndList(); 

  gluDeleteNurbsRenderer(theGhostNurb); 

  /* create the banana from nurb spline*/
  theFruitNurb = gluNewNurbsRenderer();
  gluNurbsProperty(theFruitNurb, GLU_SAMPLING_METHOD, GLU_DOMAIN_DISTANCE);
  gluNurbsProperty(theFruitNurb, GLU_DISPLAY_MODE, GLU_FILL);
  gluNurbsProperty(theFruitNurb, GLU_CULLING, GL_TRUE);
  gluNurbsProperty(theFruitNurb, GLU_U_STEP, 20.);
  gluNurbsProperty(theFruitNurb, GLU_V_STEP, 20.);
  glNewList(gHQFruit, GL_COMPILE);
  DrawFruit();
  glEndList(); 

  gluDeleteNurbsRenderer(theFruitNurb); 

  /* create a dot */
  glNewList(gHQDot, GL_COMPILE);
  DrawDot(10);
  glEndList();
}