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

📄 mapics.h

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

// A mesh list
typedef struct sMapItemMeshList {
  char       Filename[MAX_PATH];  // Filename of mesh/anim
  long       Count;               // # characters using mesh
  cMesh      Mesh;                // Mesh object

  sMapItemMeshList()  { Count = 0;                     }
  ~sMapItemMeshList() { Mesh.Free();  }
} sMapItemMeshList;

typedef struct sMapItem
{
  long      ItemNum;          // MIL item number
  long      Quantity;         // Quantity of item (ie coins)
  float     XPos, YPos, ZPos; // Map coordinates

  sMapItem  *Prev, *Next;     // linked list pointers

  long       Index;           // This items index #
  long       Owner;           // Owner index #
  sMapItem  *Parent;          // Parent of a contained item
  cObject Object;           // Character object class
  sMapItem()  
  { 
    Prev = Next = Parent = NULL;
    Index = 0; Owner = -1;
   }
   
  ~sMapItem() { delete Next; } 
} sMapItem;

class cMapICS
{
  private:
    long      m_NumItems;    // # items in map
    sMapItem *m_ItemParent;  // Linked list parent map item
    cGraphics  *m_Graphics;            // Parent graphics object
    
    // Functions to read in next long or float # in file
    long  GetNextLong(FILE *fp);
    float GetNextFloat(FILE *fp);
	    cFrustum      *m_Frustum;      // Viewing frustum

  public:
	      sItem      *m_MIL;                 // Master item list
	sMapItemMeshList m_Meshes[MAX_MIL];

    cMapICS();   // Constructor
    ~cMapICS();  // Destructor
BOOL Init(	cGraphics *Graphics, sItem *MIL);
    // Load, save, and free a list of map items
    BOOL Load(char *Filename);
    BOOL Save(char *Filename);
    BOOL Free();

    // Add and remove an item on map
    BOOL Add(long ItemNum, long Quantity,                     \
             float XPos, float YPos, float ZPos,              \
             sMapItem *OwnerItem = NULL);
    BOOL Remove(sMapItem *Item);

    // Retrieve # items or parent linked list object
    long      GetNumItems();
    sMapItem *GetParentItem();
    sMapItem *GetItem(long Num);
    void Render(cFrustum *Frustum=NULL, float ZDistance = 0.0f);  
};

#endif

⌨️ 快捷键说明

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