⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.cpp

📁 一个三维打斗游戏
💻 CPP
字号:
// (C) Copyright 1996 by Anthony J. Carin.  All Rights Reserved.

#include "stdafx.h"
#include "queue.h"
#include "3dwrap.h"

void drawqueue::add(qentry *q)
{
   if (First)
   {
      First->Prev = q;
      q->Next = First;
   }
   First = q;
}

void drawqueue::run()
{
   qentry *Curr = First;
   while (Curr)
   {
      Curr->draw();
      Curr = Curr->Next;
   }
   if (mdead)
   {
       delete mdead;
       mdead = 0;
   }
}

void * drawqueue::first(short qtype)
{
   searchpos = First;
   return next(qtype);
}

void * drawqueue::next(short qtype)
{
   while (searchpos)
   {
      if (searchpos->type() & qtype)
      {
          qentry *tmp = searchpos;
          searchpos = searchpos->Next;
          return (void *) tmp;
      }
      searchpos = searchpos->Next;
   }
   return NULL;
}

void drawqueue::purge(queuetype p)
{
   qentry *Curr = First;
   if (p == NONE)
   {
      while (Curr)
      {
         First = Curr;
         Curr = Curr->Next;
         delete First;
      }
      First = searchpos = 0;
   }
   else
   {
      qentry *Qtmp;
      while (Curr)
      {
         if (Curr->type() == p)
         {
            Qtmp = Curr->Next;
            Curr->detach();
            delete Curr;
            Curr = Qtmp;
         }
         else
            Curr = Curr->Next;
      }
      searchpos = First;
   }
}

void qentry::detach()
{
   if (Game->DrawQueue()->First == this)
      Game->DrawQueue()->First = Next;
   if (Next)
      Next->Prev = Prev;
   if (Prev)
      Prev->Next = Next;
   Next = Prev = 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -