File: artifact.h

package info (click to toggle)
powder 117-2
  • links: PTS
  • area: non-free
  • in suites: stretch
  • size: 10,576 kB
  • ctags: 3,545
  • sloc: cpp: 55,002; makefile: 541; sh: 258; objc: 245; ansic: 107; csh: 54
file content (69 lines) | stat: -rw-r--r-- 1,585 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
 * PROPRIETARY INFORMATION.  This software is proprietary to POWDER
 * Development, and is not to be reproduced, transmitted, or disclosed
 * in any way without written permission.
 *
 * Produced by:	Jeff Lait
 *
 *      	POWDER Development
 *
 * NAME:        artifact.h ( POWDER Library, C++ )
 *
 * COMMENTS:
 *	This handles the randart (cool name - always read that as
 *	random artwork rather than random artifacts).  The idea is that
 *	artifact's properties are generated by their names.  Thus, the
 *	long sword Foobar will be the same from game to game.
 */

#ifndef __artifact__
#define __artifact__

#include "mygba.h"
#include "glbdef.h"
#include "buf.h"

class ARTIFACT
{
public:
    ARTIFACT();
    ~ARTIFACT();
    
    bool		 hasattack;
    ATTACK_DEF		 attack;
    bool		 hasthrownattack;
    ATTACK_DEF		 thrownattack;
    s8			 acbonus;
    u8			 lightradius;
    u8			 iscarryintrinsic;
    char 		*intrinsics;

    // This is used internally to chain the allocated artifacts.
    // Treat this as private.
    char		*name;
    ITEM_NAMES		 baseitem;
    ARTIFACT		*next;
};

// Global initialization code.
// This will reset the artifact tables.  It should be called
// on new game or load.
void
artifact_init();

// Builds a random artifact name.
BUF
artifact_buildname(ITEM_NAMES baseitem);

//
// This builds an artifact table for the given item.
// The long sword Foobar has different properties than
// the wooden shield Foobar.
//
// The returned pointer is persistant.
//
ARTIFACT *
artifact_buildartifact(const char *name, ITEM_NAMES baseitem);

#endif