summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2019-04-15 22:10:27 -0400
committergumi <git@gumi.ca>2019-04-15 22:10:27 -0400
commit12fb620bcb8e77df43938b5c9b183f2bc3aa7e3b (patch)
treee210bfd8359b542ed515ee8bf74ad53021f8b3af
parentb7e61454ed287ed27027fa0eb88502f8dabc234a (diff)
downloadtmwa-12fb620bcb8e77df43938b5c9b183f2bc3aa7e3b.tar.gz
tmwa-12fb620bcb8e77df43938b5c9b183f2bc3aa7e3b.tar.bz2
tmwa-12fb620bcb8e77df43938b5c9b183f2bc3aa7e3b.tar.xz
tmwa-12fb620bcb8e77df43938b5c9b183f2bc3aa7e3b.zip
warp the player on autoblock (since manaplus doesn't allow us to block nicely)
-rw-r--r--src/map/pc.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/map/pc.cpp b/src/map/pc.cpp
index 8cd19d9..7cfbff9 100644
--- a/src/map/pc.cpp
+++ b/src/map/pc.cpp
@@ -2424,13 +2424,15 @@ void pc_walk(TimerData *, tick_t tick, BlockId id, unsigned char data)
{
dumb_ptr<map_session_data> d_sd = d_bl->is_player();
- if (pc_issit(d_sd))
+ if (pc_issit(d_sd) && d_sd != sd)
{
switch (d_sd->automod)
{
case AutoMod::autoblock:
clif_update_collision(sd, x + dx, y + dy, x + dx, y + dy, sd->bl_m->name_, 5); // BlockType::PLAYERWALL
pc_stop_walking(sd, 1);
+ // clif_changemap(sd, sd->mapname_, x, y); <= FIXME: crashes manaplus!
+ pc_setpos(sd, sd->mapname_, x, y, BeingRemoveWhy::WARPED);
return;
}
}