Atrinik Server  4.0
detector.c
Go to the documentation of this file.
1 /*************************************************************************
2  * Atrinik, a Multiplayer Online Role Playing Game *
3  * *
4  * Copyright (C) 2009-2014 Alex Tokar and Atrinik Development Team *
5  * *
6  * Fork from Crossfire (Multiplayer game for X-windows). *
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  * This program is distributed in the hope that it will be useful, *
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16  * GNU General Public License for more details. *
17  * *
18  * You should have received a copy of the GNU General Public License *
19  * along with this program; if not, write to the Free Software *
20  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
21  * *
22  * The author can be reached at admin@atrinik.org *
23  ************************************************************************/
24 
32 #include <global.h>
33 #include <object.h>
34 #include <object_methods.h>
35 #include <pedestal.h>
36 
38 static int
39 move_on_func (object *op, object *victim, object *originator, int state)
40 {
41  HARD_ASSERT(op != NULL);
42  HARD_ASSERT(victim != NULL);
43 
44  if (pedestal_matches_obj(op, victim)) {
45  connection_trigger(op, state);
46 
47  if (op->last_heal != 0) {
48  decrease_ob(victim);
49  }
50  }
51 
52  return OBJECT_METHOD_OK;
53 }
54 
59 {
60  OBJECT_METHODS(DETECTOR)->move_on_func = move_on_func;
61 }
int16_t last_heal
Definition: object.h:310
OBJECT_TYPE_INIT_DEFINE(detector)
Definition: detector.c:58
#define DETECTOR
Definition: define.h:267
#define decrease_ob(xyz)
Definition: object.h:624
void connection_trigger(object *op, int state)
Definition: connection.c:258
#define OBJECT_METHODS(type)
#define OBJECT_METHOD_OK
bool pedestal_matches_obj(object *op, object *tmp)
Definition: pedestal.c:91
static int move_on_func(object *op, object *victim, object *originator, int state)
Definition: detector.c:39