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

📄 worldthread.h

📁 魔兽世界的私服源程序
💻 H
字号:
#ifndef _WORLDTHREAD_H
#define _WORLDTHREAD_H

#include "Common.h"
#include "HandlerTemplates.h"
#include "ThreadComm.h"
#include "NetCode/Packet.h"
#include "Core.h"
#include "Handlers/ObjectManager.h"

class LuaScriptHandler;
class PacketHandler;
class CallbackHandler;
class UserManager;
class WorldThread :
	public wxThread
{
static WorldThread *TheThread;
	LuaScriptHandler *mScriptHandler;
	PacketHandler    *mPacketHandler;
	CallbackHandler  *mCallbackHandler;
	UserManager		 *mUserManager;
    ObjectManager    *mObjectManager;
	ThreadComm *Comm;
	wxStopWatch GlobalStopWatch;
	bool mPostedPackets;
	unsigned long CycleCount;
	void DoMainLoop();

	
public:
	WorldThread(ThreadComm *comm) :Comm(comm),mPostedPackets(false){}
	wxStopWatch &GetStopWatch(){return GlobalStopWatch;}
	void *Entry();
	void OnExit();
	LuaScriptHandler *GetScriptHandler(){return mScriptHandler;}
	PacketHandler    *GetPacketHandler(){return mPacketHandler;}
	CallbackHandler  *GetCallbackHandler(){return mCallbackHandler;}
	void PostPacket(wowPacket *packet)
	{
		if(packet->GetSocket())
		{
			Comm->WorldPost(packet);
			mPostedPackets = true;
		} else
		{
			LOG("Packet with NULL socket was being sent! Deleting!");
			delete packet;
		}
		
	}
	void PostPacket(wowPacket &packet)
	{
		PostPacket(new wowPacket(packet));
	}
	void PCC()
	{
		LOG(_T("CycleCount : %ld in %ldms"),CycleCount,GlobalStopWatch.Time());
	}
    ObjectManager   *GetObjectManager   (void)  { return mObjectManager; }
    UserManager     *GetUserManager     (void)  { return mUserManager; }
static WorldThread  *GetThread          (void)  { return TheThread; }
};

#endif

⌨️ 快捷键说明

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