summaryrefslogtreecommitdiff
path: root/src/map/mob.cpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-05-22 22:51:51 -0700
committerBen Longbons <b.r.longbons@gmail.com>2013-05-22 22:51:51 -0700
commitcce12d0d059b3328ad74446b389445bd43e0a90b (patch)
treeb381c7aa8424870e1cf88470972597b25dfe4c68 /src/map/mob.cpp
parent10e0b85e0325e5e85f9c4b9e7fe6db02171134ee (diff)
downloadtmwa-cce12d0d059b3328ad74446b389445bd43e0a90b.tar.gz
tmwa-cce12d0d059b3328ad74446b389445bd43e0a90b.tar.bz2
tmwa-cce12d0d059b3328ad74446b389445bd43e0a90b.tar.xz
tmwa-cce12d0d059b3328ad74446b389445bd43e0a90b.zip
RAII-ify some arrays of block_list
Diffstat (limited to 'src/map/mob.cpp')
-rw-r--r--src/map/mob.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/map/mob.cpp b/src/map/mob.cpp
index 8921803..58641a2 100644
--- a/src/map/mob.cpp
+++ b/src/map/mob.cpp
@@ -912,7 +912,7 @@ void mob_timer(TimerData *, tick_t tick, int id, unsigned char data)
if (md->bl.prev == NULL || md->state.state == MS::DEAD)
return;
- map_freeblock_lock();
+ MapBlockLock lock;
switch (md->state.state)
{
case MS::WALK:
@@ -928,8 +928,6 @@ void mob_timer(TimerData *, tick_t tick, int id, unsigned char data)
md->state.state);
break;
}
- map_freeblock_unlock();
- return;
}
/*==========================================
@@ -1025,10 +1023,10 @@ int mob_setdelayspawn(int id)
map_deliddb(&md->bl);
if (md->lootitem)
{
- map_freeblock(md->lootitem);
+ free(md->lootitem);
md->lootitem = NULL;
}
- map_freeblock(md); // Instead of [ of free ]
+ MapBlockLock::freeblock(&md->bl);
return 0;
}
@@ -2492,7 +2490,7 @@ int mob_damage(struct block_list *src, struct mob_data *md, int damage,
// ----- ここから死亡処理 -----
- map_freeblock_lock();
+ MapBlockLock lock;
// cancels timers
mob_changestate(md, MS::DEAD, 0);
mobskill_use(md, tick, MobSkillCondition::ANY);
@@ -2719,7 +2717,6 @@ int mob_damage(struct block_list *src, struct mob_data *md, int damage,
map_delblock(&md->bl);
mob_deleteslave(md);
mob_setdelayspawn(md->bl.id);
- map_freeblock_unlock();
return 0;
}