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

📄 queue.cpp

📁 空战游戏flacon源码
💻 CPP
字号:
#include <windows.h>
#include "f4thread.h"
#include "vu2.h"
#include <queue.h>
#include "falcuser.h"
#include "debuggr.h"

CommsQueue *gUICommsQ=NULL;

/* static char *QueueType[]=
{
	"_Q_NOTHING_",
	"_Q_SESSION_ADD_",
	"_Q_SESSION_REMOVE_",
	"_Q_SESSION_UPDATE_",
	"_Q_GAME_ADD_",
	"_Q_GAME_REMOVE_",
	"_Q_GAME_UPDATE_",
}; */

F4CSECTIONHANDLE* QueueCritical=NULL;

CommsQueue::~CommsQueue()
{
}

void CommsQueue::Setup(HWND hwnd)
{
	appwin_=hwnd;
	PostPending=FALSE;
	QueueCritical = F4CreateCriticalSection();
}

void CommsQueue::Cleanup()
{
	F4EnterCriticalSection(QueueCritical);
	while(Root_)
		Remove();
	F4LeaveCriticalSection(QueueCritical);
	F4DestroyCriticalSection(QueueCritical);
}

void CommsQueue::Add(short itemtype,VU_ID SessionID,VU_ID GameID)
{
	QUEUEITEM *cur,*q;

	// MonoPrint("%s\n",QueueType[itemtype]);

	F4EnterCriticalSection(QueueCritical);
	q=new QUEUEITEM;
	q->Type=itemtype;
	q->SessionID=SessionID;
	q->GameID=GameID;
	q->Next=NULL;

	if(!Root_)
		Root_=q;
	else
	{
		cur=Root_;
		while(cur->Next)
			cur=cur->Next;
		cur->Next=q;
	}
	if(!PostPending)
	{
		PostMessage(appwin_,FM_UI_UPDATE_GAMELIST,0,0);
		PostPending=TRUE;
	}
	F4LeaveCriticalSection(QueueCritical);

}

QUEUEITEM *CommsQueue::Remove()
{
	QUEUEITEM *dl;

	F4EnterCriticalSection(QueueCritical);
	dl=Root_;
	Root_=Root_->Next;
	delete dl;
	if(!Root_)
		PostPending=FALSE;
	F4LeaveCriticalSection(QueueCritical);
	return(Root_);
}

⌨️ 快捷键说明

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