www.pudn.com > XmudOSr.rar > D3DRMScreen.h
#ifndef __D3DRMSCREEN_H__
#define __D3DRMSCREEN_H__
#define NUM_STOP_FRAMES D3DVAL(19) //移动的总帧数
#define NUM_LEFTGO_FRAMES D3DVAL(6) //左脚的总帧数
#define NUM_RIGHTGO_FRAMES D3DVAL(6) //右脚的总帧数
#define NUM_FIGHTREADY_FRAMES D3DVAL(4) //战斗预备的总帧数
#define NUM_HAND_FRAMES D3DVAL(6) //拳击
#define NUM_FOOT_FRAMES D3DVAL(6) //踢退
#define NUM_PRACTICE_FRAMES D3DVAL(6) //练武
#define NUM_DAZUO_FRAMES D3DVAL(0) //打坐
#define NUM_SLEEP_FRAMES D3DVAL(0) //休息
#define NUM_DEAD_FRAMES D3DVAL(0) //死亡
#define NUM_EAT_FRAMES D3DVAL(10) //吃
#define NUM_DRINK_FRAMES D3DVAL(10) //喝
#define NUM_KETOU_FRAMES D3DVAL(4) //磕头
#define NUM_WOUND_FRAMES D3DVAL(10) //受伤
#define NUM_GURAD_FRAMES D3DVAL(9) //防守
//定义某特定动作的开始帧
#define STOP_START D3DVAL(51)
#define LEFTGO_START D3DVAL(1)
#define RIGHTGO_START D3DVAL(7)
#define FIGHTREADY_START D3DVAL(42)
#define HANDEXT_START D3DVAL(140) //泰山压顶攻击
#define HANDEXTGURAD_START D3DVAL(147) //回避(泰山压顶)
#define FOOTEXT_START D3DVAL(154) //凌空踢腿(用泰山压顶的回避)
#define FOOTLOW_START D3DVAL(119) //扫堂腿
#define FOOTLOWGURAD_START D3DVAL(126) //回避扫堂腿
#define FOOTLOWWOUND_START D3DVAL(133) //被扫中
#define HAND_START D3DVAL(13)
#define FOOT_START D3DVAL(20)
#define PRACTICE_START D3DVAL(6)
#define DAZUO_START D3DVAL(97)
#define SLEEP_START D3DVAL(98)
#define DEAD_START D3DVAL(96)
#define EAT_START D3DVAL(71)
#define DRINK_START D3DVAL(81)
#define KETOU_START D3DVAL(91)
#define WOUND_START D3DVAL(99)
#define GURAD_START D3DVAL(110)
typedef struct tagPathInfo
{
FLOAT fTime;
LPDIRECT3DRMFRAME3 pChaseFrame;
LPDIRECT3DRMFRAME3 pPlaneFrame;
LPDIRECT3DRMANIMATION2 pFlightPath;
}PathInfo;
enum
{
STOP, //站立旋转
LEFTGO, //左脚走
RIGHTGO, //右脚走
FIGHTREADY, //战斗预备
HAND, //拳击
FOOT, //脚踢
HANDEXT, //泰山压顶
FOOTEXT, //凌空踢腿
FOOTLOW, //扫堂腿
DAZUO, //打坐
SLEEP, //休息
DEAD, //死亡
ATTACK, //剑击
PRACTICE, //练武
KETOU, //磕头
WOUND, //受伤
FOOTLOWWOUND, //被扫堂腿扫中
GURAD, //防守
HANDEXTGURAD, //上回避
FOOTLOWGURAD, //回避(扫堂腿)
EAT, //吃
DRINK, //喝
};
typedef struct tagFightPos{
POSITION tagPosite;//when fight with other,this point tag's posite
}TFightTag;
typedef struct {
CList pathlist;
int PlayerState;
int iAimSite;
CString cXFileType;
CString cXFileName;
CString cTitle;
CString cCName;
LPDIRECT3DRMANIMATIONSET2 animset;
LPDIRECT3DRMFRAME3 frame3obj;
D3DVALUE time;
int nSteps;
int way;
CListfightopplist;
}animationCallbackArgs;
typedef struct tatExitInfo{
CString cXFileName;
LPDIRECT3DRMFRAME3 frame3obj;
D3DVECTOR posExit;
}CExitInfo;
void __cdecl animationCallback(LPDIRECT3DRMFRAME3 obj, LPVOID arg, D3DVALUE delta);
void __cdecl animationDestroyCallback(LPDIRECT3DRMOBJECT pFrame,LPVOID pvArg);
void __cdecl CleanupObjectsCallback( LPDIRECT3DRMOBJECT pObj, VOID* pArg );
void __cdecl MoveCameraCallback( LPDIRECT3DRMFRAME3 pCamera, VOID* pArg, D3DVALUE delta );
D3DVECTOR GetNextPosite(LPDIRECT3DRMFRAME3 npcframe,animationCallbackArgs * lpanimate);
BOOL modifyfile(char* FileName,CString sTagName);
HRESULT AddItemXFile(const char * filename,D3DVECTOR playerpos,CString cXfileName);
HRESULT LoadXFile(const char *filename,D3DVECTOR playerpos,float fRotation);
HRESULT AddXFile(const char *filename);
void SetCammerPos(int cammerpos);
void SomejoinMap(char * JoinMapMsg);
// guanhua 2000/10/02 remark +1
//void SomeQuitMap(char * ExitMapMsg,char *szExitName);
// guanhua 2000/10/02 +1
void SomeQuitMap(char * ExitMapMsg,char *szExitName,bool bEscape = FALSE);
void DoFight(CString szWho,int iFightKind);
void OtherFight(CString szCWho,CString szWho,CString szCWho2,CString szWho2);
void StopOther(POSITION pos);
#endif