summaryrefslogtreecommitdiff
path: root/src/map/map.h
diff options
context:
space:
mode:
author(no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-01-26 14:28:19 +0000
committer(no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-01-26 14:28:19 +0000
commit7923c32b8ebfbebd09dc0d783e93fef51a4ec38b (patch)
tree9ab81fa169eb48e71e208f080e5f776f066cad51 /src/map/map.h
parent8ca00fc7e0e1457b1cb1537e2caeefa150344360 (diff)
downloadhercules-7923c32b8ebfbebd09dc0d783e93fef51a4ec38b.tar.gz
hercules-7923c32b8ebfbebd09dc0d783e93fef51a4ec38b.tar.bz2
hercules-7923c32b8ebfbebd09dc0d783e93fef51a4ec38b.tar.xz
hercules-7923c32b8ebfbebd09dc0d783e93fef51a4ec38b.zip
* Fixed a bug in gettick cache when compiling in Windows
- Changed "read_map_from_bitmap" to "read_map_from_cache" in map_athena, "map_bitmap_path" to "map_cache_file" - Fixed item effects not showing when only one was used - Fixed a bug in Safety Wall - Allow only either Storm Gust or Lord of Vermillion to cause damage if stacked together - Added path_search_long, map_find_skill_unit_oncell git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@998 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/map.h')
-rw-r--r--src/map/map.h54
1 files changed, 21 insertions, 33 deletions
diff --git a/src/map/map.h b/src/map/map.h
index ed66e5669..1d0f7a432 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -100,7 +100,7 @@ struct skill_unit_group {
};
struct skill_unit_group_tickset {
unsigned int tick;
- int group_id;
+ int id;
};
struct skill_timerskill {
int timer;
@@ -505,15 +505,10 @@ 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]
- 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;
@@ -567,8 +562,6 @@ struct map_data_other_server {
unsigned long ip;
unsigned int port;
};
-#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;
@@ -627,24 +620,20 @@ 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*---------------
- * ほとんどは上と対応、設定用
+/*
+ * map_getcell()ェヌ゙ナ鯑ェオェェォユォ鬮ー
*/
-typedef enum {
- CELL_SETPASS,CELL_SETNOPASS,CELL_SETWATER=3,CELL_SETHIGH=5,CELL_SETNOHIGH,CELL_SETTOUCH
-} CELL_SET;
+typedef enum {
+ CELL_CHKWALL=1, // ロ(ォサォォソォ、ォラ1)
+ CELL_CHKWATER=3, // 筰゙(ォサォォソォ、ォラ3)
+ CELL_CHKGROUND=5, // 「リ。ェレェ(ォサォォソォ、ォラ5)
+ CELL_CHKNPC=0x80, // ォソォテォチォソォ、ォラェホNPC(ォサォォソォ、ォラ0x80ォユォ鬮ー)
+ CELL_CHKPASS, // ラホヲハヲメ(ォサォォソォ、ォラ1,5、鞣)
+ CELL_CHKNOPASS, // ラホヲワハヲ(ォサォォソォ、ォラ1,5)
+ CELL_GETTYPE // ォサォォソォ、ォラェレェケ
+} cell_t;
+// map_setcell()ェヌ゙ナ鯑ェオェェォユォ鬮ー
+#define CELL_SETNPC 0x80 // ォソォテォチォソォ、ォラェホNPCェォサォテォネ
struct chat_data {
struct block_list bl;
@@ -667,11 +656,11 @@ 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ならビットマップファイル
+// gat?ヨァ
+int map_getcell(int,int,int,cell_t);
+int map_getcellp(struct map_data*,int,int,cell_t);
+void map_setcell(int,int,int,int);
+extern int map_read_flag; // 0: grfォユォ。ォ、ォ 1: ォュォ罩テォキォ 2: ォュォ罩テォキォ(?)
enum {
READ_FROM_GAT, READ_FROM_AFM,
READ_FROM_BITMAP, CREATE_BITMAP,
@@ -702,6 +691,7 @@ void map_foreachinmovearea(int (*)(struct block_list*,va_list),int,int,int,int,i
int map_countnearpc(int,int,int);
//block関連に追加
int map_count_oncell(int m,int x,int y);
+struct skill_unit *map_find_skill_unit_oncell(int m,int x,int y,int skill_id);
// 一時的object関連
int map_addobject(struct block_list *);
int map_delobject(int);
@@ -737,15 +727,13 @@ void map_addnickdb(struct map_session_data *);
struct map_session_data * map_nick2sd(char*);
int compare_item(struct item *a, struct item *b);
-// gat関連
-int map_setcell(int,int,int,CELL_SET);
-
// その他
int map_check_dir(int s_dir,int t_dir);
int map_calc_dir( struct block_list *src,int x,int y);
// path.cより
int path_search(struct walkpath_data*,int,int,int,int,int,int);
+int path_search_long(int m,int x0,int y0,int x1,int y1);
int path_blownpos(int m,int x0,int y0,int dx,int dy,int count);
int map_who(int fd);