diff options
author | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-04-29 17:54:32 +0000 |
---|---|---|
committer | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-04-29 17:54:32 +0000 |
commit | 20990141f99acddc43e09c4090eff120a435719b (patch) | |
tree | c5a5106617f3fdb246445d893390b7f5a42005eb /src/map | |
parent | 856c6ccb9d5d893783e27d7b0d58387276e9f4e8 (diff) | |
download | hercules-20990141f99acddc43e09c4090eff120a435719b.tar.gz hercules-20990141f99acddc43e09c4090eff120a435719b.tar.bz2 hercules-20990141f99acddc43e09c4090eff120a435719b.tar.xz hercules-20990141f99acddc43e09c4090eff120a435719b.zip |
A minor memory improvement, and some curly brace love.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16008 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/map.c | 21 | ||||
-rw-r--r-- | src/map/map.h | 1 | ||||
-rw-r--r-- | src/map/npc.c | 14 |
3 files changed, 18 insertions, 18 deletions
diff --git a/src/map/map.c b/src/map/map.c index deb8548b0..938f46582 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1302,19 +1302,17 @@ int map_get_new_object_id(void) // find a free id i = last_object_id + 1; - while( i != last_object_id ) - { + while( i != last_object_id ) { if( i == MAX_FLOORITEM ) i = MIN_FLOORITEM; - if( idb_get(id_db, i) == NULL ) + if( !idb_exists(id_db, i) ) break; ++i; } - if( i == last_object_id ) - { + if( i == last_object_id ) { ShowError("map_addobject: no free object id!\n"); return 0; } @@ -1892,14 +1890,19 @@ struct map_session_data * map_nick2sd(const char *nick) } /*========================================== - * id番?の物を探す - * 一三bjectの場合は配列を引くのみ + * Looksup id_db DBMap and returns BL pointer of 'id' or NULL if not found *------------------------------------------*/ -struct block_list * map_id2bl(int id) -{ +struct block_list * map_id2bl(int id) { return (struct block_list*)idb_get(id_db,id); } +/** + * Same as map_id2bl except it only checks for its existence + **/ +bool map_blid_exists( int id ) { + return (idb_exists(id_db,id)); +} + /*========================================== * Convext Mirror *------------------------------------------*/ diff --git a/src/map/map.h b/src/map/map.h index 8c4e30e3d..4fe3bdf15 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -660,6 +660,7 @@ struct homun_data* map_id2hd(int id); struct mercenary_data* map_id2mc(int id); struct chat_data* map_id2cd(int id); struct block_list * map_id2bl(int id); +bool map_blid_exists( int id ); #define map_id2index(id) map[(id)].index int map_mapindex2mapid(unsigned short mapindex); diff --git a/src/map/npc.c b/src/map/npc.c index 23eca70d4..79f338600 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -55,17 +55,15 @@ static int npc_cache_mob=0; /// Returns a new npc id that isn't being used in id_db. /// Fatal error if nothing is available. -int npc_get_new_npc_id(void) -{ - if( npc_id >= START_NPC_NUM && map_id2bl(npc_id) == NULL ) +int npc_get_new_npc_id(void) { + if( npc_id >= START_NPC_NUM && !map_blid_exists(npc_id) ) return npc_id++;// available - {// find next id + else {// find next id int base_id = npc_id; - while( base_id != ++npc_id ) - { + while( base_id != ++npc_id ) { if( npc_id < START_NPC_NUM ) npc_id = START_NPC_NUM; - if( map_id2bl(npc_id) == NULL ) + if( !map_blid_exists(npc_id) ) return npc_id++;// available } // full loop, nothing available @@ -3578,7 +3576,6 @@ int do_init_npc(void) npcname_db = strdb_alloc(DB_OPT_BASE,NAME_LENGTH); timer_event_ers = ers_new(sizeof(struct timer_event_data)); - // process all npc files ShowStatus("Loading NPCs...\r"); for( file = npc_src_files; file != NULL; file = file->next ) @@ -3586,7 +3583,6 @@ int do_init_npc(void) ShowStatus("Loading NPC file: %s"CL_CLL"\r", file->name); npc_parsesrcfile(file->name); } - ShowInfo ("Done loading '"CL_WHITE"%d"CL_RESET"' NPCs:"CL_CLL"\n" "\t-'"CL_WHITE"%d"CL_RESET"' Warps\n" "\t-'"CL_WHITE"%d"CL_RESET"' Shops\n" |