diff options
author | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2010-06-08 00:20:38 +0530 |
---|---|---|
committer | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2010-06-08 00:22:21 +0530 |
commit | 156635a1e9723b107d8d20d0207d5c01a86a4a7a (patch) | |
tree | bb3c8f5553a1191c77949753e4ddccfd45c9787e /crawl-ref/source/l_mons.cc | |
parent | fa4d29f457d4e7b1aed794dca063a68a32486009 (diff) | |
download | crawl-ref-156635a1e9723b107d8d20d0207d5c01a86a4a7a.tar.gz crawl-ref-156635a1e9723b107d8d20d0207d5c01a86a4a7a.zip |
[591] Test case to fail if a monster behind plants jumps back and forth between a set of locations when trying to move to the player.
Diffstat (limited to 'crawl-ref/source/l_mons.cc')
-rw-r--r-- | crawl-ref/source/l_mons.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/crawl-ref/source/l_mons.cc b/crawl-ref/source/l_mons.cc index 7eacb20e35..bae5b3dc74 100644 --- a/crawl-ref/source/l_mons.cc +++ b/crawl-ref/source/l_mons.cc @@ -7,6 +7,8 @@ #include "dlua.h" #include "initfile.h" #include "libutil.h" +#include "mon-act.h" +#include "mon-behv.h" #include "mon-util.h" #include "mon-stuff.h" @@ -228,9 +230,29 @@ static int l_mons_do_dismiss(lua_State *ls) } return (0); } - MDEFN(dismiss, do_dismiss) +// Run the monster AI code. +static int l_mons_do_run_ai(lua_State *ls) +{ + ASSERT_DLUA; + monsters *mons = clua_get_lightuserdata<monsters>(ls, lua_upvalueindex(1)); + if (mons->alive()) + handle_monster_move(mons); + return (0); +} +MDEFN(run_ai, do_run_ai) + +static int l_mons_do_handle_behaviour(lua_State *ls) +{ + ASSERT_DLUA; + monsters *mons = clua_get_lightuserdata<monsters>(ls, lua_upvalueindex(1)); + if (mons->alive()) + handle_behaviour(mons); + return (0); +} +MDEFN(handle_behaviour, do_handle_behaviour) + static int l_mons_do_random_teleport(lua_State *ls) { // We should only be able to teleport monsters from dlua. @@ -393,6 +415,8 @@ static MonsAccessor mons_attrs[] = { "energy", l_mons_energy }, { "add_energy", l_mons_add_energy }, { "dismiss", l_mons_dismiss }, + { "run_ai", l_mons_run_ai }, + { "handle_behaviour",l_mons_handle_behaviour }, { "experience", l_mons_experience }, { "random_teleport", l_mons_random_teleport }, { "set_prop", l_mons_set_prop }, |