summaryrefslogtreecommitdiff
path: root/src/module_type.hpp
blob: 969388564dd329532dcbd862cc649e407dcc1a39 (plain)
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
#pragma once

#include "h-basic.h"

/**
 * Module descriptor.
 */
struct module_type
{
	/* Metadata about the module: author, description, etc. */
	struct {
		/* Module name */
		cptr name;

		/* Module version number */
		struct {
			s32b major;
			s32b minor;
			s32b patch;
		} version;

		/* Module author */
		struct {
			cptr name;
			cptr email;
		} author;

		/* Module description */
		cptr desc;

		/* Save file tag */
		cptr save_file_tag;

		/* Module directory */
		cptr module_dir;
	} meta;

	/* Random artifact generation chances */
	struct {
		s32b weapon_chance;
		s32b armor_chance;
		s32b jewelry_chance;
	} randarts;

	/* Max player level. */
	int max_plev;

	/* Skills */
	struct {
		/* Skill points per level */
		s32b skill_per_level;
		/* Maximum "overage" for skill points, i.e. how many skill
		   points you can go above your current level. */
		s32b max_skill_overage;
	} skills;

	/* Function to show introduction to module */
	void (*intro)();

	/* Function to compute race status, i.e. whether monsters
	   are friendly/neutral towards the player. Returns NULL
	   to indicate that no override happens. */
	s16b *(*race_status)(int r_idx);
};