📄 3dgamemap.h
字号:
int GetLayerAmount();
CMapLayer* GetLayerByIndex(int nIndex);
void DelLayer(int nIndex);
void LayerUp(int nIndex);
void LayerDn(int nIndex);
void GetMapObjSize(CMySize& infoSize, CMapObj* pObj);
void ApplyObjShow(CMapObj* pMapObj);
void AddInteractiveObj(CMapObj* pMapObj);
void DelInteractiveObj(CMapObj* pMapObj);
void ClearMapLayer();
void AddLayer(CMapLayer* pLayer, int nIndex = -1); //nIndex表示插入以后的位置
CTerrainLayer* GetTerrainLayer();
CInteractiveLayer* GetInteractiveLayer();
CFloorLayer * GetFloorLayer();
CSkyLayer * GetSkyLayer();
private:
CMapItemManager m_objItemManager;
CTerrainObjManager m_objTerrainObjManager;
CMagicEffectManager m_objMagicEffectManager;
CTerrainEffectManager m_objTerrainEffectManager;
public:
void AddMapItem(OBJID idMapItem, OBJID idItemType, CMyPos posCell);
void DelMapItem(OBJID idMapItem);
OBJID GetMapItem(CMyPos posCell);
OBJID GetFocusMapItem(CMyPos& posCell);
void Add2DMapItem(OBJID idMapItem, OBJID idItemType, CMyPos posCell,char* szName=NULL);
void Del2DMapItem(OBJID idMapItem);
OBJID Get2DMapItem(CMyPos posCell);
OBJID Get2DFocusMapItem(CMyPos& posCell);
void Add3DMapItem(OBJID idMapItem, OBJID idItemType, CMyPos posCell);
void Del3DMapItem(OBJID idMapItem);
OBJID Get3DMapItem(CMyPos posCell);
OBJID Get3DFocusMapItem(CMyPos& posCell);
C3DMapEffect* Add3DMapEffect(CMyPos posWorld, char* pszIndex, BOOL bDelself = true);
void Del3DMapEffect(CMyPos posWorld);
void Del3DMapEffect(C3DMapEffect* pEffect);
void AddMagicEffect(CMagicEffect* pEffect);
void Add3DMapMagicItem(OBJID idType, OBJID id, CMyPos posCell);
void LastMapMagicItem(OBJID id);
void EndMapMagicItem(OBJID id);
// data memeber
OBJID m_idMap;
OBJID m_idDoc;
DWORD m_dwType;
BOOL m_bShowMiniMap;
CRadar m_objRadar;
DWORD m_dwMapARGB;
char m_szMapName[64];
BOOL m_bSnow;
public:
void SetID(OBJID idMap);
OBJID GetID();
void SetIDDoc(OBJID idMapDoc);
OBJID GetIDDoc();
void SetType(DWORD dwType);
DWORD GetType();
const char* GetMapName(){ return m_szMapName;}
void ShowCellRange();
void ShowCell(BOOL bGride, BOOL bMask, BOOL bArea, BOOL bAltitude);
void InitMask();
void SetShowMapObjInfoFlag(BOOL bShow){m_bShowMapObjInfo = bShow;}
BOOL GetShowMapObjInfoFlag(){return m_bShowMapObjInfo;}
DWORD GetARGB(){return m_dwMapARGB;}
void SetARGB(DWORD dwARGB);
void CleanForEditor();
void GetMapSizeByPuzzle(CMySize& sizeMap);
void CreateMapByPuzzle(char* pszPuzzleFile);
void AddTerrainMagicUnit(CTerainEffectUnit* pUnit){m_objTerrainEffectManager.AddUnit(pUnit);}
BOOL Outof9Block(CMyPos posHero, CMyPos posTarget);
void ProcessManager();
// map Scale Show pos
void MapScaleShowPos(int& nX, int& nY);
void MapScaleMousePos(int& nX, int& nY);
void SetShowExp(DWORD dwExp);
private:
int m_nScale;
int m_nRealScreenWidth;
int m_nRealScreenHeight;
public:
void SetScale(int nScale);
int GetScale(){return m_nScale;}
// search friend and so on ...
private:
DWORD m_dwBeginShowFriendPos;
CMyPos m_posFriend;
// region and so on
private:
BOOL m_bRegionNameChangeCount;
char m_szRegionName[64];
char m_szRegionEffect[64];
char m_szRegionDes[128];
int m_RegionNShowType;
int m_RegionDShowType;
int m_RegionDPos;
DWORD m_dwDesColor;
DWORD m_dwNameColor;
DWORD m_dwRegionEffectBegin;
BOOL m_bShowRegionEffect;
BOOL m_bShowGobalRegionEffect;
DWORD m_dwRegionNameChangeBegin;
BOOL m_bShowExp;
DWORD m_dwOldExp;
DWORD m_dwTimeExpBegin;
DWORD m_dwShowExp;
CGame3DEffectEx m_objRegionEffect;
DEQUE_REGIONINFO m_setRegionData;
VECTOR_INDEXLAYER m_setIndexLayerInfo;
public:
void ProcessRegion(CMyPos posCell);
void ShowRegionName();
BOOL ShowRegionNameFade();
BOOL ShowRegionDesFade(BOOL bTline);
BOOL ShowRegionNameRoll();
BOOL ShowRegionDesRoll(BOOL bTline);
BOOL ShowRegionNameWindow();
BOOL ShowRegionDesWindow(BOOL bTline);
void CreateRegionData();
void DestroyRegionData();
void SelectRegionData();
BOOL IsPkRegion(CMyPos posCell);
public:
void SetFriendPos(CMyPos posFriend){m_dwBeginShowFriendPos = ::TimeGet(); m_posFriend = posFriend;}
void GetFriendPos(CMyPos& posFriend){posFriend = m_posFriend;}
DWORD GetFriendBeginShow(){return m_dwBeginShowFriendPos;}
DWORD CellIndexCounter();
void CellIndexUniteCounter(DWORD &dwSame, DWORD &dwDif);
// screen effect ...
private:
struct
{
DWORD dwTimeBegin;
DWORD dwFrameInterval;
DWORD dwFrameAmount;
DWORD dwSwing;
BOOL bOn;
}ShakeEffectInfo;
struct
{
int nOldScale;
DWORD dwTimeBegin;
DWORD dwFrameInterval;
DWORD dwFrameAmount;
DWORD dwSwing;
BOOL bOn;
}ScaleEffectInfo;
struct
{
DWORD dwOldColor;
DWORD dwTimeBegin;
DWORD dwChangeDuration;
DWORD dwChangeBackDuration;
DWORD dwDuration;
BOOL bOn;
BYTE bRed;
BYTE bGreen;
BYTE bBlue;
BYTE bRedE;
BYTE bGreenE;
BYTE bBlueE;
}ColorEffectInfo;
public:
enum{_SCREEN_EFFECT_NONE = 0, _SCREEN_EFFECT_NORMAL = 1};
void BeginShakeEffect(int nEffectType = _SCREEN_EFFECT_NORMAL);
void BeginScaleEffect(int nEffectType = _SCREEN_EFFECT_NORMAL);
void BeginColorEffect(int nEffectType = _SCREEN_EFFECT_NORMAL);
void ProcessShakeEffect();
void ProcessScaleEffect();
void ProcessColorEffect();
public:
CInfoViewManager m_InfoViewManager;
public:
TerrainWeatherInfo* GetDefaultWeatherInfo();
// for terrain npc
public:
void AddTerrainNpc(int nType, int nDir, OBJID id, CMyPos posCell);
void DeleteTerrainNpc(OBJID id);
void SetTerrainNpcDir(OBJID id, int nDir);
void SetTerrainNpcPos(OBJID id, CMyPos posCell);
void GetTerrainNpcPos(OBJID id, CMyPos& posCell);
int GetTerrainNpcLook(OBJID id);
OBJID GetFocusTerrainNpc();
BOOL IsTerrainNpcFocus(OBJID id);
public:
void DDALine(int x0, int y0, int x1, int y1, vector<POINT>& vctPoint);
char* GetRegionName(){return m_szRegionName;}
// for resource edit
public:
void SetShowRes(BOOL bShow) {m_bShowRes=bShow;}
void LoadMapRes(char* szFileName);
void SaveMapRes(char* szFileName);
void PutCellRes(DWORD x, DWORD y, DWORD idTmp);
void ClearRes();
void DelCellRes(DWORD x, DWORD y);
private:
MAP_CELLRES m_setCellRes;
BOOL m_bShowRes;
CellRes* GetCellRes(DWORD x, DWORD y);
private:
VECTOR_REGIONEFFECT m_setRegionEffect;
DWORD m_dwTimeRegionEffect;
int m_nCurRegionEffectIndex;
CGame3DEffectEx m_objSnow;
CMyPos m_posSnow[4];
BOOL m_bMapShowWeather;
void ShowSnow();
BOOL m_bBrume;
CGame3DEffectEx m_objBrume;
CMyPos m_posBrume[4];
void ShowBrume();
void ProcessRegionEffect(CMyPos posCell);
bool CreateRegionEffectInfo();
void DestroyRegionEffectInfo();
int GetRegionEffectInfo(CMyPos posCell);
private:
BOOL m_bShowScreenInfo;
void ShowScreenInfo();
public:
void SwitchScreenInfo(){m_bShowScreenInfo = !m_bShowScreenInfo;}
void BuildMapResSql(const char* pszFileName, const char* pszTemplate);
};
//------------------------------------------
extern CGameMap g_objGameMap;
#ifdef _ANALYSIS_ON
extern BOOL g_bShowAnalysisInfo;
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -