📄 queue.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 + -