Atrinik Server  4.0
process_treasure.h
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 
30 #ifndef COMMON_PROCESS_TREASURE_H
31 #define COMMON_PROCESS_TREASURE_H
32 
33 #include <toolkit/toolkit.h>
34 
38 typedef struct process_treasure_table {
40  uint32_t chance;
41 
58  bool (*set_bonus_func)(object *op,
59  int difficulty,
60  treasure_affinity_t *affinity,
61  double *item_power,
62  int bonus);
64 
73 #define PROCESS_TREASURE_TABLE_TOTAL_CHANCE(table) \
74  process_treasure_table_total_chance(table, arraysize(table))
75 
76 /* Prototypes */
77 
78 bool
79 process_treasure_is_special(object *op);
80 uint32_t
82  size_t table_size);
83 bool
85  size_t table_size,
86  uint32_t total_chance,
87  object *op,
88  int difficulty,
89  treasure_affinity_t *affinity,
90  double *item_power);
91 bool
93  int difficulty,
94  treasure_affinity_t *affinity,
95  double *item_power);
96 void
98  double item_power);
99 
100 #endif
void process_treasure_set_item_power(object *op, double item_power)
uint32_t process_treasure_table_total_chance(const process_treasure_table_t *table, size_t table_size)
bool process_treasure_table_jewelry(object *op, int difficulty, treasure_affinity_t *affinity, double *item_power)
bool process_treasure_is_special(object *op)
bool process_treasure_table(const process_treasure_table_t *table, size_t table_size, uint32_t total_chance, object *op, int difficulty, treasure_affinity_t *affinity, double *item_power)
bool(* set_bonus_func)(object *op, int difficulty, treasure_affinity_t *affinity, double *item_power, int bonus)
struct process_treasure_table process_treasure_table_t