143 lines
5.5 KiB
C
143 lines
5.5 KiB
C
#ifndef __MAGIC_BASE_H__
|
|
#define __MAGIC_BASE_H__
|
|
|
|
#include "util.h"
|
|
|
|
typedef enum
|
|
{
|
|
MAGIC_FIELD_ALL, /* 允屯化及桦赭匹银尹月 */
|
|
MAGIC_FIELD_BATTLE, /* 爵 及心 */
|
|
MAGIC_FIELD_MAP, /* 骚橘穴永皿晓及心 */
|
|
|
|
}MAGIC_FIELDTYPE;
|
|
|
|
typedef enum
|
|
{
|
|
MAGIC_TARGET_MYSELF, /* 愤坌及心 */
|
|
MAGIC_TARGET_OTHER, /* 职及谛 愤坌殖戈) */
|
|
MAGIC_TARGET_ALLMYSIDE, /* 蝈 */
|
|
MAGIC_TARGET_ALLOTHERSIDE, /* 锹澎础蝈 */
|
|
MAGIC_TARGET_ALL, /* 蝈化 */
|
|
MAGIC_TARGET_NONE, /* 簿手蓟 请 卅中[ 豢支凶户及凛 */
|
|
MAGIC_TARGET_OTHERWITHOUTMYSELF,/* 职及谛 愤坌殖引卅中) */
|
|
MAGIC_TARGET_WITHOUTMYSELFANDPET, /* 愤坌午矢永玄动陆 */
|
|
MAGIC_TARGET_WHOLEOTHERSIDE,/* 及扔奶玉蝈 */
|
|
|
|
#ifdef _ATTACK_MAGIC
|
|
|
|
MAGIC_TARGET_SINGLE, // 针对敌方的某一人
|
|
MAGIC_TARGET_ONE_ROW, // 针对敌方的某一列
|
|
MAGIC_TARGET_ALL_ROWS, // 针对敌方的所有人
|
|
|
|
#endif
|
|
}MAGIC_TARGETTYPE;
|
|
|
|
typedef enum
|
|
{
|
|
MAGIC_ID, /* 栋 寞 */
|
|
MAGIC_FIELD, /* 银尹月桦赭 */
|
|
MAGIC_TARGET, /* 覆擂 */
|
|
MAGIC_TARGET_DEADFLG, /* 韶氏分樊手覆擂卞殖户月井 */
|
|
#ifdef _ATTACK_MAGIC
|
|
MAGIC_IDX ,
|
|
#endif
|
|
MAGIC_DATAINTNUM,
|
|
}MAGIC_DATAINT;
|
|
|
|
typedef enum
|
|
{
|
|
MAGIC_NAME, /* 热诸 */
|
|
MAGIC_COMMENT, /* 戊丢件玄*/
|
|
MAGIC_FUNCNAME, /* 楮醒 */
|
|
MAGIC_OPTION, /* 左皿扑亦件 */
|
|
MAGIC_DATACHARNUM,
|
|
}MAGIC_DATACHAR;
|
|
|
|
typedef struct tagMagic
|
|
{
|
|
int data[MAGIC_DATAINTNUM];
|
|
STRING64 string[MAGIC_DATACHARNUM];
|
|
|
|
}Magic;
|
|
|
|
#ifdef _ATTACK_MAGIC
|
|
|
|
typedef struct tagAttMagic
|
|
{
|
|
unsigned int uiSpriteNum;// 此咒术在Spr_x.bin的编号
|
|
unsigned int uiAttackType;// 攻击的方式:单人,整排( 轮流 ) , 整排( 轮流 ) , 整排( 同时 ) , 全体( 轮流 ) , 全体( 同时 )
|
|
unsigned int uiSliceTime;// 轮流攻击时的时间差
|
|
unsigned int uiShowType; // 显示的位置方式:中央、指定
|
|
int siSx; // 显示的位置 - X轴
|
|
int siSy; // 显示的位置 - Y轴
|
|
unsigned int uiShowBehindChar; // 显示在人物的前方或下方
|
|
unsigned int uiShakeScreen; // 是否震动画面
|
|
unsigned int uiShakeFrom; // 震动画面的起始时间( 毫秒 )
|
|
unsigned int uiShakeTo; // 震动画面的结束时间( 毫秒 _
|
|
unsigned int uiPrevMagicNum; // 前置咒术的索引号( 0XFFFFFFFFFF 表示无前置咒术 )
|
|
int siPrevMagicSx; // 前置咒术的显示位置 - X轴
|
|
int siPrevMagicSy; // 前置咒术的显示位置 - Y轴
|
|
int siPrevMagicOnChar; // 前置咒术显示在人物的前方或下方
|
|
unsigned int uiPostMagicNum; // 後置咒术的索引号( 0XFFFFFFFF 表示无後置咒术 )
|
|
int siPostMagicSx; // 後置咒术的显示位置 - X轴
|
|
int siPostMagicSy; // 後置咒术的显示位置 - Y轴
|
|
int siPostMagicOnChar; // 後置咒术显示在人物的前方或下方
|
|
int siField[3][5]; // 攻击索引
|
|
}AttMagic;
|
|
|
|
#endif
|
|
|
|
#ifdef _MAGIC_TOCALL
|
|
|
|
typedef struct tagToCallMagic
|
|
{
|
|
unsigned int uiSpriteNum;// 此咒术在Spr_x.bin的编号
|
|
unsigned int uiAttackType;// 攻击的方式:单人,整排( 轮流 ) , 整排( 轮流 ) , 整排( 同时 ) , 全体( 轮流 ) , 全体( 同时 )
|
|
unsigned int uiSliceTime;// 轮流攻击时的时间差
|
|
unsigned int uiShowType; // 显示的位置方式:中央、指定
|
|
int siSx; // 显示的位置 - X轴
|
|
int siSy; // 显示的位置 - Y轴
|
|
unsigned int uiShowBehindChar; // 显示在人物的前方或下方
|
|
unsigned int uiShakeScreen; // 是否震动画面
|
|
unsigned int uiShakeFrom; // 震动画面的起始时间( 毫秒 )
|
|
unsigned int uiShakeTo; // 震动画面的结束时间( 毫秒 _
|
|
unsigned int uiPrevMagicNum; // 前置咒术的索引号( 0XFFFFFFFFFF 表示无前置咒术 )
|
|
int siPrevMagicSx; // 前置咒术的显示位置 - X轴
|
|
int siPrevMagicSy; // 前置咒术的显示位置 - Y轴
|
|
int siPrevMagicOnChar; // 前置咒术显示在人物的前方或下方
|
|
unsigned int uiPostMagicNum; // 後置咒术的索引号( 0XFFFFFFFF 表示无後置咒术 )
|
|
int siPostMagicSx; // 後置咒术的显示位置 - X轴
|
|
int siPostMagicSy; // 後置咒术的显示位置 - Y轴
|
|
int siPostMagicOnChar; // 後置咒术显示在人物的前方或下方
|
|
int isPostDisappear; // 咒术一般攻击完时是否马上消失
|
|
int ToCallMagicNo; // 召唤术的编号
|
|
}ToCallMagic;
|
|
|
|
#endif
|
|
|
|
typedef int (*MAGIC_CALLFUNC)( int, int, int, int );
|
|
|
|
INLINE BOOL MAGIC_CHECKINDEX( int index );
|
|
INLINE int MAGIC_getInt( int index, MAGIC_DATAINT element);
|
|
INLINE int MAGIC_setInt( int index, MAGIC_DATAINT element, int data);
|
|
INLINE char* MAGIC_getChar( int index, MAGIC_DATACHAR element);
|
|
INLINE BOOL MAGIC_setChar( int index ,MAGIC_DATACHAR element, char* new );
|
|
int MAGIC_getMagicNum( void);
|
|
BOOL MAGIC_initMagic( char *filename);
|
|
BOOL MAGIC_reinitMagic( void );
|
|
|
|
#ifdef _ATTACK_MAGIC
|
|
|
|
BOOL ATTMAGIC_initMagic( char *filename );
|
|
BOOL ATTMAGIC_reinitMagic( void );
|
|
|
|
#endif
|
|
|
|
int MAGIC_getMagicArray( int magicid);
|
|
MAGIC_CALLFUNC MAGIC_getMagicFuncPointer(char* name);
|
|
// Nuke +1 08/23 : For checking the validity of magic target
|
|
int MAGIC_isTargetValid( int magicid, int toindex);
|
|
|
|
#endif
|
|
|