diff options
author | glighta <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-10-29 06:33:43 +0000 |
---|---|---|
committer | glighta <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-10-29 06:33:43 +0000 |
commit | 07ff4adffb312e138502a83316dff13287a8d153 (patch) | |
tree | 4e4a9d6f582d20ea6ba1490fc31b2085453b9e1f /src/map/map.c | |
parent | 08080a5fc10eb6a9fdc2f1285ba32fda57684d29 (diff) | |
download | hercules-07ff4adffb312e138502a83316dff13287a8d153.tar.gz hercules-07ff4adffb312e138502a83316dff13287a8d153.tar.bz2 hercules-07ff4adffb312e138502a83316dff13287a8d153.tar.xz hercules-07ff4adffb312e138502a83316dff13287a8d153.zip |
-Add some src basic documentation.
-Change some remaining -1 for status ending timer.
-Move some hardcoded msg in msg_athena
-Small optimisation on battle_attr_fix
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16835 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/map.c')
-rw-r--r-- | src/map/map.c | 142 |
1 files changed, 72 insertions, 70 deletions
diff --git a/src/map/map.c b/src/map/map.c index df2e8765f..76bb95021 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -93,7 +93,7 @@ char *SCRIPT_CONF_NAME; char *MSG_CONF_NAME; char *GRF_PATH_FILENAME; -// 極力 staticでロ?カルに?める +// DBMap declaartion static DBMap* id_db=NULL; // int id -> struct block_list* static DBMap* pc_db=NULL; // int id -> struct map_session_data* static DBMap* mobid_db=NULL; // int id -> struct mob_data* @@ -183,12 +183,11 @@ int map_usercount(void) } // -// block削除の安全性確保?理 +// blockソス除ソスフ茨ソスソスSソスソスソスmソスソス?ソスソス // /*========================================== - * blockをfreeするときfreeの?わりに呼ぶ - * ロックされているときはバッファにためる + * Attempt to free a map blocklist *------------------------------------------*/ int map_freeblock (struct block_list *bl) { @@ -205,7 +204,7 @@ int map_freeblock (struct block_list *bl) return block_free_lock; } /*========================================== - * blockのfreeを一市Iに禁止する + * blockソスソスfreeソスソスソスソスsIソスノ禁止ソスソスソスソス *------------------------------------------*/ int map_freeblock_lock (void) { @@ -213,9 +212,9 @@ int map_freeblock_lock (void) } /*========================================== - * blockのfreeのロックを解除する - * このとき、ロックが完全になくなると - * バッファにたまっていたblockを全部削除 + * blockソスソスfreeソスフソスソスbソスNソスソスソスソスソスソスソスソスソスソス + * ソスソスソスフとゑソスソスAソスソスソスbソスNソスソスソスソスソスSソスノなゑソスソスネゑソスソス + * ソスoソスbソスtソス@ソスノゑソスソスワゑソスソストゑソスソスソスblockソスソスSソスソスソス除 *------------------------------------------*/ int map_freeblock_unlock (void) { @@ -235,10 +234,10 @@ int map_freeblock_unlock (void) return block_free_lock; } -// map_freeblock_lock() を呼んで map_freeblock_unlock() を呼ばない -// 関数があったので、定期的にblock_free_lockをリセットするようにする。 -// この関数は、do_timer() のトップレベルから呼ばれるので、 -// block_free_lock を直接いじっても支障無いはず。 +// map_freeblock_lock() ソスソスソストゑソスソス map_freeblock_unlock() ソスソスソストばなゑソス +// ソスヨ撰ソスソスソスソスソスソスソスソスソスソスフで、ソスソスソスIソスソスblock_free_lockソスソスソスソスソスZソスbソスgソスソスソスソス謔、ソスノゑソスソスソスB +// ソスソスソスフ関撰ソスソスヘ、do_timer() ソスフトソスbソスvソスソスソスxソスソスソスソスソスソストばゑソスソスフで、 +// block_free_lock ソス直接ゑソスソスソスソスソスソストゑソスソスxソス癘ウソスソスソスヘゑソスソスB int map_freeblock_timer(int tid, unsigned int tick, int id, intptr_t data) { @@ -252,11 +251,11 @@ int map_freeblock_timer(int tid, unsigned int tick, int id, intptr_t data) } // -// block化?理 +// blockソスソス?ソスソス // /*========================================== - * map[]のblock_listから?がっている場合に - * bl->prevにbl_headのアドレスを入れておく + * map[]ソスソスblock_listソスソスソスソス?ソスソスソスソスソストゑソスソスソス鼾ソスソス + * bl->prevソスソスbl_headソスフアソスhソスソスソスXソスソスソスソストゑソスソスソス *------------------------------------------*/ static struct block_list bl_head; @@ -339,10 +338,10 @@ int map_delblock(struct block_list* bl) int pos; nullpo_ret(bl); - // ?にblocklistから?けている + // blocklist (2ways chainlist) if (bl->prev == NULL) { if (bl->next != NULL) { - // prevがNULLでnextがNULLでないのは有ってはならない + // prevソスソスNULLソスソスnextソスソスNULLソスナなゑソスソスフは有ソスソスソストはなゑソスネゑソス ShowError("map_delblock error : bl->next!=NULL\n"); } return 0; @@ -357,7 +356,7 @@ int map_delblock(struct block_list* bl) if (bl->next) bl->next->prev = bl->prev; if (bl->prev == &bl_head) { - // リストの頭なので、map[]のblock_listを更新する + // ソスソスソスXソスgソスフ難ソスソスネので、map[]ソスソスblock_listソスソスソスXソスVソスソスソスソス if (bl->type == BL_MOB) { map[bl->m].block_mob[pos] = bl->next; } else { @@ -589,10 +588,10 @@ int map_foreachinrange(int (*func)(struct block_list*,va_list), struct block_lis if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachinrange: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -600,7 +599,7 @@ int map_foreachinrange(int (*func)(struct block_list*,va_list), struct block_lis va_end(ap); } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; //[Skotlex] @@ -661,10 +660,10 @@ int map_foreachinshootrange(int (*func)(struct block_list*,va_list),struct block if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachinrange: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -672,16 +671,16 @@ int map_foreachinshootrange(int (*func)(struct block_list*,va_list),struct block va_end(ap); } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; //[Skotlex] } /*========================================== - * map m (x0,y0)-(x1,y1)?の全objに?して - * funcを呼ぶ - * type!=0 ならその種類のみ + * map m (x0,y0)-(x1,y1)?ソスフ全objソスソス?ソスソスソスソス + * funcソスソスソストゑソス + * type!=0 ソスネらそソスフ趣ソズのゑソス *------------------------------------------*/ int map_foreachinarea(int (*func)(struct block_list*,va_list), int m, int x0, int y0, int x1, int y1, int type, ...) { @@ -726,10 +725,10 @@ int map_foreachinarea(int (*func)(struct block_list*,va_list), int m, int x0, in if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachinarea: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -737,7 +736,7 @@ int map_foreachinarea(int (*func)(struct block_list*,va_list), int m, int x0, in va_end(ap); } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; //[Skotlex] @@ -792,10 +791,10 @@ int map_forcountinrange(int (*func)(struct block_list*,va_list), struct block_li if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_forcountinrange: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -805,7 +804,7 @@ int map_forcountinrange(int (*func)(struct block_list*,va_list), struct block_li break; } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; //[Skotlex] @@ -853,10 +852,10 @@ int map_forcountinarea(int (*func)(struct block_list*,va_list), int m, int x0, i if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachinarea: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -866,18 +865,18 @@ int map_forcountinarea(int (*func)(struct block_list*,va_list), int m, int x0, i break; } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; //[Skotlex] } /*========================================== - * 矩形(x0,y0)-(x1,y1)が(dx,dy)移動した暫? - * 領域外になる領域(矩形かL字形)?のobjに - * ?してfuncを呼ぶ + * ソスソス`(x0,y0)-(x1,y1)ソスソス(dx,dy)ソスレ難ソスソスソスソスソスソスb? + * ソスフ茨ソスOソスノなゑソスフ茨ソス(ソスソス`ソスソスLソスソスソス`)?ソスソスobjソスソス + * ?ソスソスソスソスfuncソスソスソストゑソス * - * dx,dyは-1,0,1のみとする(どんな値でもいいっぽい?) + * dx,dyソスソス-1,0,1ソスフみとゑソスソスソスiソスヌゑソスネ値ソスナゑソスソスソスソスソスソスソスソスロゑソスソスHソスj *------------------------------------------*/ int map_foreachinmovearea(int (*func)(struct block_list*,va_list), struct block_list* center, int range, int dx, int dy, int type, ...) { @@ -991,7 +990,7 @@ int map_foreachinmovearea(int (*func)(struct block_list*,va_list), struct block_ if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachinmovearea: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // Prohibit the release from memory for(i=blockcount;i<bl_list_count;i++) if(bl_list[i]->prev) @@ -1002,7 +1001,7 @@ int map_foreachinmovearea(int (*func)(struct block_list*,va_list), struct block_ va_end(ap); } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // Allow Free bl_list_count = blockcount; return returnCount; @@ -1037,10 +1036,10 @@ int map_foreachincell(int (*func)(struct block_list*,va_list), int m, int x, int if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachincell: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -1048,7 +1047,7 @@ int map_foreachincell(int (*func)(struct block_list*,va_list), int m, int x, int va_end(ap); } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; @@ -1274,10 +1273,10 @@ int map_foreachinmap(int (*func)(struct block_list*,va_list), int m, int type,.. if(bl_list_count>=BL_LIST_MAX) ShowWarning("map_foreachinmap: block count too many!\n"); - map_freeblock_lock(); // メモリからの解放を禁止する + map_freeblock_lock(); // ソスソスソスソスソスソスソスソスソスソスフ会ソスソスソスソスヨ止ソスソスソスソス for(i=blockcount;i<bl_list_count;i++) - if(bl_list[i]->prev) // 有?かどうかチェック + if(bl_list[i]->prev) // ソスL?ソスソスソスヌゑソスソスソスソス`ソスFソスbソスN { va_list ap; va_start(ap, type); @@ -1285,7 +1284,7 @@ int map_foreachinmap(int (*func)(struct block_list*,va_list), int m, int type,.. va_end(ap); } - map_freeblock_unlock(); // 解放を許可する + map_freeblock_unlock(); // ソスソスソスソスソスソスソスツゑソスソスソス bl_list_count = blockcount; return returnCount; @@ -1324,12 +1323,12 @@ int map_get_new_object_id(void) } /*========================================== - * 床アイテムを消す + * ソスソスソスAソスCソスeソスソスソスソスソスソスソスソス * - * data==0の暫ヘtimerで消えた殊 * data!=0の暫ヘ拾う等で消えた暫ニして動? + * data==0ソスフ暫ソスtimerソスナ擾ソスソスソスソスソスソスソス * data!=0ソスフ暫ヘ拾ソスソスソスソスソスナ擾ソスソスソスソスソスソスbニゑソスソスト難ソス?? * - * 後者は、map_clearflooritem(id)へ - * map.h?で#defineしてある + * ソスソスメは、map_clearflooritem(id)ソスソス + * map.h?ソスソス#defineソスソスソストゑソスソスソス *------------------------------------------*/ int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data) { @@ -1469,10 +1468,13 @@ int map_search_freecell(struct block_list *src, int m, short *x,short *y, int rx } /*========================================== - * (m,x,y)を中心に3x3以?に床アイテム設置 - * - * item_dataはamount以外をcopyする - * type flag: &1 MVP item. &2 do stacking check. + * Add an item to location (m,x,y) + * Parameters + * @item_data item attributes + * @amount quantity + * @m, @x, @y mapid,x,y + * @first_charid, @second_charid, @third_charid, looting priority + * @flag: &1 MVP item. &2 do stacking check. *------------------------------------------*/ int map_addflooritem(struct item *item_data,int amount,int m,int x,int y,int first_charid,int second_charid,int third_charid,int flags) { @@ -1608,7 +1610,7 @@ void map_reqnickdb(struct map_session_data * sd, int charid) } /*========================================== - * id_dbへblを追加 + * id_dbソスソスblソスソスヌ会ソス *------------------------------------------*/ void map_addiddb(struct block_list *bl) { @@ -1636,7 +1638,7 @@ void map_addiddb(struct block_list *bl) } /*========================================== - * id_dbからblを削除 + * id_dbソスソスソスソスblソスソスソス除 *------------------------------------------*/ void map_deliddb(struct block_list *bl) { @@ -1779,7 +1781,7 @@ int map_quit(struct map_session_data *sd) { } /*========================================== - * id番?のPCを探す。居なければNULL + * idソスソス?ソスソスPCソスソスTソスソスソスBソスソスソスネゑソスソスソスソスNULL *------------------------------------------*/ struct map_session_data * map_id2sd(int id) { @@ -2200,7 +2202,7 @@ bool mapit_exists(struct s_mapiterator* mapit) } /*========================================== - * map.npcへ追加 (warp等の領域持ちのみ) + * map.npcソスヨ追会ソス (warpソスソスソスフ領域持ソスソスソスフゑソス) *------------------------------------------*/ bool map_addnpc(int m,struct npc_data *nd) { @@ -2323,7 +2325,7 @@ void map_removemobs(int m) } /*========================================== - * map名からmap番?へ?換 + * mapソスソスソスソスソスソスmapソスソス?ソスソス?ソスソス *------------------------------------------*/ int map_mapname2mapid(const char* name) { @@ -2351,7 +2353,7 @@ int map_mapindex2mapid(unsigned short mapindex) } /*========================================== - * 他鯖map名からip,port?換 + * ソスソスソスImapソスソスソスソスソスソスip,port?ソスソス *------------------------------------------*/ int map_mapname2ipport(unsigned short name, uint32* ip, uint16* port) { @@ -2463,7 +2465,7 @@ int map_random_dir(struct block_list *bl, short *x, short *y) return 0; } -// gat系 +// gatソスn inline static struct mapcell map_gat2cell(int gat) { struct mapcell cell; @@ -2497,7 +2499,7 @@ static int map_cell2gat(struct mapcell cell) } /*========================================== - * (m,x,y)の状態を調べる + * Confirm if celltype in (m,x,y) match the one given in cellchk *------------------------------------------*/ int map_getcell(int m,int x,int y,cell_chk cellchk) { @@ -2751,7 +2753,7 @@ static DBData create_map_data_other_server(DBKey key, va_list args) } /*========================================== - * 他鯖管理のマップをdbに追加 + * ソスソスソスIソスヌ暦ソスソスフマソスbソスvソスソスdbソスノ追会ソス *------------------------------------------*/ int map_setipport(unsigned short mapindex, uint32 ip, uint16 port) { @@ -2772,7 +2774,7 @@ int map_setipport(unsigned short mapindex, uint32 ip, uint16 port) } /** - * 他鯖管理のマップを全て削除 + * ソスソスソスIソスヌ暦ソスソスフマソスbソスvソスソスSソスト削除 * @see DBApply */ int map_eraseallipport_sub(DBKey key, DBData *data, va_list va) @@ -2792,7 +2794,7 @@ int map_eraseallipport(void) } /*========================================== - * 他鯖管理のマップをdbから削除 + * ソスソスソスIソスヌ暦ソスソスフマソスbソスvソスソスdbソスソスソスソス除 *------------------------------------------*/ int map_eraseipport(unsigned short mapindex, uint32 ip, uint16 port) { @@ -3235,7 +3237,7 @@ int parse_console(const char* buf) } /*========================================== - * 設定ファイルを?み?む + * ソスン抵ソスtソス@ソスCソスソスソスソス?ソスソス?ソスソス *------------------------------------------*/ int map_config_read(char *cfgName) { @@ -3599,7 +3601,7 @@ static int cleanup_db_sub(DBKey key, DBData *data, va_list va) } /*========================================== - * map鯖終了・理 + * mapソスIソスIソスソスソスEソスソス *------------------------------------------*/ void do_final(void) { @@ -3978,7 +3980,7 @@ int do_init(int argc, char *argv[]) do_init_battleground(); do_init_duel(); - npc_event_do_oninit(); // npcのOnInitイベント?行 + npc_event_do_oninit(); // Init npcs (OnInit) if( console ) { |