diff options
author | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-12-26 18:47:04 +0000 |
---|---|---|
committer | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-12-26 18:47:04 +0000 |
commit | a028a5fa44a6eb6b0ed87781eb18b8555eb08837 (patch) | |
tree | 47a3c8144bf0c11ece28b41767f0c7d6d993869e /src/map/map.h | |
parent | 48f2ec3f27a57a7fe3c60f5475174c075eec890d (diff) | |
download | hercules-a028a5fa44a6eb6b0ed87781eb18b8555eb08837.tar.gz hercules-a028a5fa44a6eb6b0ed87781eb18b8555eb08837.tar.bz2 hercules-a028a5fa44a6eb6b0ed87781eb18b8555eb08837.tar.xz hercules-a028a5fa44a6eb6b0ed87781eb18b8555eb08837.zip |
* Added Bitmap File system
* Added --run_once flag
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@789 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/map.h')
-rw-r--r-- | src/map/map.h | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/src/map/map.h b/src/map/map.h index 9d8a0b194..2b976fe6c 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -500,10 +500,15 @@ enum { EQP_HELM = 0x0100, // 頭上段 }; +#define MAX_CELL_TYPE 7 //今ではセルのタイプは数字的に6が最大なので7にした、 + //MAX_CELL_TYPE+1はワープポイントなどのタッチ系に + struct map_data { char name[24]; unsigned char *gat; // NULLなら下のmap_data_other_serverとして扱う - char *alias; // [MouseJstr] + char *alias; // [MouseJstr] + int *gat_fileused[MAX_CELL_TYPE+1+1]; //もしビットマップを使うならこちらを使う、 + //上のgatはキャストされてgat_fileused[0]に指す struct block_list **block; struct block_list **block_mob; int *block_count,*block_mob_count; @@ -557,8 +562,8 @@ struct map_data_other_server { unsigned long ip; unsigned int port; }; -#define read_gat(m,x,y) (map[m].gat[(x)+(y)*map[m].xs]) -#define read_gatp(m,x,y) (m->gat[(x)+(y)*m->xs]) +#define read_gat(m,x,y) (map_getcell(m,x,y,CELL_CHKTYPE)) //ビットマップ使う場合結構CPUに負担かかるので、消極的に使おう +#define read_gatp(m,x,y) (map_getcellp(m,x,y,CELL_CHKTYPE)) //同上 struct flooritem_data { struct block_list bl; @@ -617,6 +622,25 @@ enum { LOOK_BASE,LOOK_HAIR,LOOK_WEAPON,LOOK_HEAD_BOTTOM,LOOK_HEAD_TOP,LOOK_HEAD_MID,LOOK_HAIR_COLOR,LOOK_CLOTHES_COLOR,LOOK_SHIELD,LOOK_SHOES }; +/*-------CELL_CHK*---------------- + * CELL_CHKPASS: セルは0,3,6のどっちかの場合は1を返す、以外は0 + * CELL_CHKNOPASS: セルは1、5のどっちかの場合は1を返す、以外は0 + * CELL_CHKWATER: セルは3の場合は1を返す、以外は0 + * CELL_CHKHIGH: セルは5の場合は1を返す、以外は0 + * CHELL_CHKTOUCH:セルはタッチ系の場合は1を返す、以外は0 + * CELL_CHKTYPE: セルのタイプを知りたい場合は1を返す、以外は0 +*/ +typedef enum { + CELL_CHKPASS,CELL_CHKNOPASS,CELL_CHKWATER=3,CELL_CHKHIGH=5,CELL_CHKTOUCH,CELL_CHKTYPE +} CELL_CHK; + +/*-------CELL_SET*--------------- + * ほとんどは上と対応、設定用 + */ +typedef enum { + CELL_SETPASS,CELL_SETNOPASS,CELL_SETWATER=3,CELL_SETHIGH=5,CELL_SETNOHIGH,CELL_SETTOUCH +} CELL_SET; + struct chat_data { struct block_list bl; @@ -638,6 +662,13 @@ extern int autosave_interval; extern int agit_flag; extern int night_flag; // 0=day, 1=night [Yor] +//------bitmap使用とgrfファイル使用両方対応できるために追加、また、 +//セルの取得や設定は列挙型CELL_CHK*とCELL_SET*を使った方が意図がわかりやすいので変更してみた +int map_getcell(int,int,int,CELL_CHK); +int map_getcellp(struct map_data*,int,int,CELL_CHK); +extern int map_read_flag; //セル情報のソース判定フラグ、0ならgrfファイル、1ならビットマップファイル +enum { READ_FROM_GAT, READ_FROM_AFM, READ_FROM_BITMAP, CREATE_BITMAP }; + extern char motd_txt[]; extern char help_txt[]; @@ -698,8 +729,7 @@ struct map_session_data * map_nick2sd(char*); int compare_item(struct item *a, struct item *b); // gat関連 -int map_getcell(int,int,int); -int map_setcell(int,int,int,int); +int map_setcell(int,int,int,CELL_SET); // その他 int map_check_dir(int s_dir,int t_dir); |