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

📄 winmain.h

📁 这是一个服务端/客户端模式的小型网络游戏
💻 H
字号:
#ifndef _WINMAIN_H_
#define _WINMAIN_H_
#include <assert.h>

#include "Global.h"
#include "Game_Chars.h"
#include "Game_Script.h"
#include	<log4cpp/Category.hh>
#include	<log4cpp/FileAppender.hh>
#include	<log4cpp/BasicLayout.hh>

#define MSG_NORMAL 0
#define MSG_STATUS 1
#define MSG_ITEMS  2

///////////////////////////////////////////////////////////
// Application class definition
///////////////////////////////////////////////////////////

struct ScriptHandleStruct{
	float last_XPos, last_YPos, last_ZPos;
	BOOL Renderflag;
	long EffectCounter;
	long ScriptCharID;
};
class cApp : public cApplication
{
  friend class cGameScript;
  friend class cChars;
  private:
    cGraphics       m_Graphics;     // Graphics object
    cCamera         m_Camera;       // Camera object
    cFont           m_Font;         // Font object
    cLight          m_Light;

    GUID           *m_guidAdapter;  // Adapter used to connect
    cNetworkAdapter m_Adapters;     // List of adapters
    cClient         m_Client;       // Derived client class

    char            m_HostIP[16];   // Host IP Address
    char            m_Name[32];     // Player name
    cMapICS         *MapICS;

    cInput          m_Input;        // Input object
    cInputDevice    m_Keyboard;     // Keyboard object
    cInputDevice    m_Mouse;        // Mouse object

    cMesh           m_TerrainMesh;  // Terrain object mesh
    cNodeTreeMesh   m_NodeTreeMesh; // NodeTree object
    cTexture        m_Options;   // Buttons and more pics.

    float           m_CamAngle;     // Viewing camera angle
    float           m_YCamAngle;

    float           m_CamXPos, m_CamYPos, m_CamZPos;
	long			m_Status;
//	long			m_LastStatus;
	long			m_Count;

	ScriptHandleStruct	ScripteHandle;
    sItem           m_MIL[MAX_MIL];
	cChars           m_CharController;
	cSpellController m_SpellController;
	cGameScript     m_Script;
  long MoveAction;
     BOOL CamMoved;

    BOOL SelectAdapter();            // Select network adapter
    BOOL InitializeGame();           // Initialize game
    BOOL JoinGame();                 // Join network session

    // Get player's number in list
    sCharacter* GetCharacterPoint(DPNID dpnidPlayer);
    
    void UpdateCamera();            // Update all players

    void RenderScene();              // Render the scene

    // Send a client network message to server
    BOOL SendNetworkMessage(void *Msg, long SendFlags);

    // Functions to process incoming messages
    void AssignID(sMessage *Msg);
    void CreatePlayer(sMessage *Msg);
    void DestroyPlayer(sMessage *Msg);
    void ChangeState(sMessage *Msg);
	void RoutineChange(sMessage *Msg);
	void ChangeSpell(sMessage *Msg);
	void ChangeAttack(sMessage *Msg);
	void AlterEffect(sMessage *Msg);
	void FileHandle(sMessage *Msg);
	void ReliveChange(sMessage *Msg);
  public:
    // Overloaded class functions
    cApp();

    BOOL Init();
    BOOL Shutdown();
    BOOL Frame();

    // Siphon a network receive message to application
    BOOL Receive(DPNMSG_RECEIVE *Msg);

    // Set adapter to use, IP to connect to, and name to use
    void SetInfo(GUID *Adapter, char *IP, char *Name);
    // Retrieve bit flag encoded keyboard input
    long GetInput();
	void UpdateLatency();

    // Check if player collides with level mesh
    BOOL CheckIntersect(                                      \
                 float XStart, float YStart, float ZStart,    \
                 float XEnd,   float YEnd,   float ZEnd);
};

int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev,          \
                   LPSTR szCmdLine, int nCmdShow);
BOOL CALLBACK ConnectDialogProc(HWND hWnd, UINT uMsg,         \
                                WPARAM wParam, LPARAM lParam);



#endif

⌨️ 快捷键说明

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