ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/treasure.h
(Generate patch)

Comparing deliantra/server/include/treasure.h (file contents):
Revision 1.5 by root, Fri Sep 8 16:53:57 2006 UTC vs.
Revision 1.9 by root, Fri Dec 15 20:08:45 2006 UTC

1/*
2 * static char *rcsid_treasure_h =
3 * "$Id: treasure.h,v 1.5 2006/09/08 16:53:57 root Exp $";
4 */
5
6/* 1/*
7 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
8 3
9 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
10 Copyright (C) 1992 Frank Tore Johansen 5 Copyright (C) 1992 Frank Tore Johansen
21 16
22 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
23 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
24 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 20
26 The authors can be reached via e-mail at crossfire-devel@real-time.com 21 The authors can be reached via e-mail at crossfire@schmorp.de
27*/ 22*/
28 23
29/* 24/*
30 * defines and variables used by the artifact generation routines 25 * defines and variables used by the artifact generation routines
31 */ 26 */
43 38
44#define MAXMAGIC 4 39#define MAXMAGIC 4
45 40
46#define DIFFLEVELS 31 41#define DIFFLEVELS 31
47 42
48
49/* 43/*
50 * Flags to generate_treasures(): 44 * Flags to generate_treasures():
51 */ 45 */
52 46
53enum { 47enum
48{
54 GT_ENVIRONMENT = 0x0001, 49 GT_ENVIRONMENT = 0x0001,
55 GT_INVISIBLE = 0x0002, 50 GT_INVISIBLE = 0x0002,
56 GT_STARTEQUIP = 0x0004, 51 GT_STARTEQUIP = 0x0004,
57 GT_APPLY = 0x0008, 52 GT_APPLY = 0x0008,
58 GT_ONLY_GOOD = 0x0010, 53 GT_ONLY_GOOD = 0x0010,
59 GT_UPDATE_INV = 0x0020, 54 GT_UPDATE_INV = 0x0020,
60 GT_MINIMAL = 0x0040 /* Do minimal adjustments */ 55 GT_MINIMAL = 0x0040 /* Do minimal adjustments */
61}; 56};
62
63 57
64/* when a treasure got cloned from archlist, we want perhaps change some default 58/* when a treasure got cloned from archlist, we want perhaps change some default
65 * values. All values in this structure will override the default arch. 59 * values. All values in this structure will override the default arch.
66 * TODO: It is a bad way to implement this with a special structure. 60 * TODO: It is a bad way to implement this with a special structure.
67 * Because the real arch list is a at runtime not changed, we can grap for example 61 * Because the real arch list is a at runtime not changed, we can grap for example
68 * here a clone of the arch, store it in the treasure list and then run the original 62 * here a clone of the arch, store it in the treasure list and then run the original
69 * arch parser over this clone, using the treasure list as script until an END comes. 63 * arch parser over this clone, using the treasure list as script until an END comes.
70 * This will allow ANY changes which is possible and we use ony one parser. 64 * This will allow ANY changes which is possible and we use ony one parser.
71 */ 65 */
72 66
73typedef struct _change_arch { 67typedef struct _change_arch
68{
74 shstr name; /* is != NULL, copy this over the original arch name */ 69 shstr name; /* is != NULL, copy this over the original arch name */
75 shstr title; /* is != NULL, copy this over the original arch name */ 70 shstr title; /* is != NULL, copy this over the original arch name */
76 shstr slaying; /* is != NULL, copy this over the original arch name */ 71 shstr slaying; /* is != NULL, copy this over the original arch name */
77} _change_arch; 72} _change_arch;
78
79 73
80/* 74/*
81 * treasure is one element in a linked list, which together consist of a 75 * treasure is one element in a linked list, which together consist of a
82 * complete treasure-list. Any arch can point to a treasure-list 76 * complete treasure-list. Any arch can point to a treasure-list
83 * to get generated standard treasure when an archetype of that type 77 * to get generated standard treasure when an archetype of that type
84 * is generated (from a generator) 78 * is generated (from a generator)
85*/ 79*/
86 80
87typedef struct treasurestruct : zero_initialised 81struct treasure : zero_initialised
88{ 82{
89 struct archetype *item; /* Which item this link can be */ 83 struct archetype *item; /* Which item this link can be */
90 shstr name; /* If non null, name of list to use 84 shstr name; /* If non null, name of list to use
91 instead */ 85 instead */
92 struct treasurestruct *next; /* Next treasure-item in a linked list */ 86 treasure *next; /* Next treasure-item in a linked list */
93 struct treasurestruct *next_yes; /* If this item was generated, use */ 87 treasure *next_yes; /* If this item was generated, use */
94 /* this link instead of ->next */ 88 /* this link instead of ->next */
95 struct treasurestruct *next_no; /* If this item was not generated, */ 89 treasure *next_no; /* If this item was not generated, */
96 /* then continue here */ 90 /* then continue here */
97 struct _change_arch change_arch; /* override default arch values if set in treasure list */ 91 struct _change_arch change_arch; /* override default arch values if set in treasure list */
98 uint8 chance; /* Percent chance for this item */ 92 uint8 chance; /* Percent chance for this item */
99 uint8 magic; /* Max magic bonus to item */ 93 uint8 magic; /* Max magic bonus to item */
100 /* If the entry is a list transition, 94 /* If the entry is a list transition,
101 * 'magic' contains the difficulty 95 * 'magic' contains the difficulty
102 * required to go to the new list 96 * required to go to the new list
103 */ 97 */
104 uint16 nrof; /* random 1 to nrof items are generated */ 98 uint16 nrof; /* random 1 to nrof items are generated */
105} treasure; 99};
106 100
107
108typedef struct treasureliststruct : zero_initialised 101struct treasurelist : zero_initialised
109{ 102{
110 shstr name; /* Usually monster-name/combination */ 103 shstr name; /* Usually monster-name/combination */
111 sint16 total_chance; /* If non-zero, only 1 item on this 104 sint16 total_chance; /* If non-zero, only 1 item on this
112 * list should be generated. The 105 * list should be generated. The
113 * total_chance contains the sum of 106 * total_chance contains the sum of
114 * the chance for this list. 107 * the chance for this list.
115 */ 108 */
116 struct treasureliststruct *next; /* Next treasure-item in linked list */ 109 treasurelist *next; /* Next treasure-item in linked list */
117 struct treasurestruct *items; /* Items in this list, linked */ 110 treasure *items; /* Items in this list, linked */
118} treasurelist; 111};
119 112
120#endif 113#endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines