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)); }
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; }
/* 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(); }