Atrinik Server  4.0
word_of_recall.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 
37 static void
38 process_func (object *op)
39 {
40  HARD_ASSERT(op != NULL);
41 
42  if (op->env != NULL && op->env->map && op->env->type == PLAYER) {
43  if (blocks_magic(op->env->map, op->env->x, op->env->y)) {
44  draw_info(COLOR_WHITE, op, "You feel something fizzle inside you.");
45  } else {
46  object_enter_map(op->env, op, NULL, 0, 0, false);
47  }
48  }
49 
50  object_remove(op, 0);
51  object_destroy(op);
52 }
53 
57 OBJECT_TYPE_INIT_DEFINE(word_of_recall)
58 {
60 }
void object_destroy(object *ob)
Definition: object.c:1441
#define PLAYER
Definition: define.h:122
bool object_enter_map(object *op, object *exit, mapstruct *m, int x, int y, bool fixed_pos)
Definition: object.c:2956
void object_remove(object *op, int flags)
Definition: object.c:1623
#define WORD_OF_RECALL
Definition: define.h:405
int16_t y
Definition: object.h:276
static void process_func(object *op)
OBJECT_TYPE_INIT_DEFINE(word_of_recall)
struct mapdef * map
Definition: object.h:139
struct obj * env
Definition: object.h:130
int blocks_magic(mapstruct *m, int x, int y)
Definition: map.c:529
int16_t x
Definition: object.h:273
uint8_t type
Definition: object.h:360
#define OBJECT_METHODS(type)