blob: 63edd6762257a98219502c317495d9428f374ddd [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// inpc.c -- Intelligenter NPC
4//
5// $Id: inpc.c 6571 2007-10-21 14:41:10Z Zesstra $
6#pragma strong_types
7#pragma save_types
8#pragma range_check
9#pragma no_clone
10#pragma pedantic
11
12inherit "/std/npc";
13inherit "/std/inpc/nobank";
14inherit "/std/inpc/select";
15inherit "/std/inpc/boozing";
16inherit "/std/inpc/items";
17inherit "/std/inpc/eval";
18
19#include <moving.h>
20#include <inpc.h>
21#define ME this_object()
22#define ENV environment()
23#define TP this_player()
24
25#pragma strong_types
26
27protected void create() {
28 npc::create();
29 items::create();
30 add_select_commands();
31}
32
33protected void create_super() {
34 set_next_reset(-1);
35}
36
37void reset() {
38 npc::reset();
39 items::reset();
40}
41
42void init() {
43 npc::init();
44 if (TP && query_once_interactive(TP))
45 SetProp(P_INPC_LAST_PLAYER_CONTACT,time());
46}
47
48varargs int move(mixed dest, int meth, string dir, string tin, string tout) {
49 int res;
50 object env;
51
52 env=ENV;
53 if (!(meth&M_NOCHECK)
54 && !ENV
55 && QueryProp(P_INPC_WALK_MODE)
56 && !may_enter_room(dest))
57 return ME_CANT_TPORT_IN;
58 res=::move(dest,meth,dir,tin,tout);
59 if (env!=ENV)
60 SetProp(P_INPC_LAST_ENVIRONMENT,ENV);
61 return res;
62}