blob: 82468e677693471fea3908fd2975b3a4374f51ac [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
MG Mud User88f12472016-06-24 23:31:02 +020010
11inherit "/std/npc";
12inherit "/std/inpc/nobank";
13inherit "/std/inpc/select";
14inherit "/std/inpc/boozing";
15inherit "/std/inpc/items";
16inherit "/std/inpc/eval";
17
18#include <moving.h>
19#include <inpc.h>
20#define ME this_object()
21#define ENV environment()
22#define TP this_player()
23
24#pragma strong_types
25
26protected void create() {
27 npc::create();
28 items::create();
29 add_select_commands();
30}
31
32protected void create_super() {
33 set_next_reset(-1);
34}
35
36void reset() {
37 npc::reset();
38 items::reset();
39}
40
Zesstra5b71ebb2018-03-07 20:50:35 +010041public varargs void init(object origin) {
42 npc::init(origin);
MG Mud User88f12472016-06-24 23:31:02 +020043 if (TP && query_once_interactive(TP))
44 SetProp(P_INPC_LAST_PLAYER_CONTACT,time());
45}
46
47varargs int move(mixed dest, int meth, string dir, string tin, string tout) {
48 int res;
49 object env;
50
51 env=ENV;
52 if (!(meth&M_NOCHECK)
53 && !ENV
54 && QueryProp(P_INPC_WALK_MODE)
55 && !may_enter_room(dest))
56 return ME_CANT_TPORT_IN;
57 res=::move(dest,meth,dir,tin,tout);
58 if (env!=ENV)
59 SetProp(P_INPC_LAST_ENVIRONMENT,ENV);
60 return res;
61}