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

📄 queue.h

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

#ifndef QUEUE_H
#define QUEUE_H

enum queuetype
{
    NONE            = 0x0000,
    ANTAGONIST      = 0x0001,
    HANDHELD        = 0x0002,
    BASEOBJECT      = 0x0004,
    LANDSCAPE       = 0x0008,
    GATEWAY         = 0x0010,
    DUDEHOLDER      = 0x0020,
    WEAPONHOLDER    = 0x0040,
    TELEPORTER      = 0x0080
};

class qentry
{
public:
friend class drawqueue;

             qentry() { Next = Prev = 0; m_type = NONE; }
virtual     ~qentry() { detach(); }
virtual void draw() = 0;
virtual queuetype type()   { return m_type; }
        void detach();
        char IsANTAGONIST()     { return (char)(m_type == ANTAGONIST); }
        char IsHANDHELD()       { return (char)(m_type == HANDHELD  ); } 
        char IsBASEOBJECT()     { return (char)(m_type == BASEOBJECT); }
        char IsLANDSCAPE()      { return (char)(m_type == LANDSCAPE ); }
        char IsGATEWAY()        { return (char)(m_type == GATEWAY   ); }
        char IsDUDEHOLDER()     { return (char)(m_type == DUDEHOLDER); }
        char IsWEAPONHOLDER()   { return (char)(m_type == WEAPONHOLDER); }
        char IsTELEPORTER()     { return (char)(m_type == TELEPORTER); }

protected:

queuetype    m_type;
qentry      *Next;
qentry      *Prev;

};

class drawqueue
{
public:
friend qentry;
            drawqueue() { First = searchpos = mdead = 0; }
           ~drawqueue() { purge(); }
void        run();
void        add(qentry *q);
void       *first(short qtype);
void       *next(short qtype);
void        purge(queuetype p = NONE);
void        KillLater(qentry *dead) { mdead = dead; }

private:

qentry     *First;
qentry     *searchpos;
qentry     *mdead;

};

#endif

⌨️ 快捷键说明

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