summaryrefslogtreecommitdiff
path: root/src/quest.pkg
blob: aed3569af3f42eaf1bff97dc5418febd969f052c (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/* File: quest.pkg */

/*
 * Purpose: Lua interface definitions for quests.
 * To be processed by tolua to generate C source code.
 */

$#include "angband.h"

/** @typedef cptr
 * @note String
 */
typedef char* cptr;

/** @typedef errr
 * @note Number
 */
typedef int errr;

/** @typedef bool
 * @note Boolean
 */
typedef unsigned char bool;

/** @typedef byte
 * @note Number
 */
typedef unsigned char byte;

/** @typedef s16b
 * @note Number
 */
typedef signed short s16b;

/** @typedef u16b
 * @note Number
 */
typedef unsigned short u16b;

/** @typedef s32b
 * @note Number
 */
typedef signed int s32b;

/** @typedef u32b
 * @note Number
 */
typedef unsigned int u32b;

/** @name Quest Status Flags
 * @brief Quest status
 * @{ */

/** @def QUEST_STATUS_IGNORED */
#define QUEST_STATUS_IGNORED	 -1

/** @def QUEST_STATUS_UNTAKEN */
#define QUEST_STATUS_UNTAKEN	 0

/** @def QUEST_STATUS_TAKEN */
#define QUEST_STATUS_TAKEN	   1

/** @def QUEST_STATUS_COMPLETED */
#define QUEST_STATUS_COMPLETED       2

/** @def QUEST_STATUS_REWARDED */
#define QUEST_STATUS_REWARDED	3

/** @def QUEST_STATUS_FAILED */
#define QUEST_STATUS_FAILED	  4

/** @def QUEST_STATUS_FINISHED */
#define QUEST_STATUS_FINISHED	5

/** @def QUEST_STATUS_FAILED_DONE */
#define QUEST_STATUS_FAILED_DONE     6
/** @} */

#define MAX_Q_IDX 30

/** @struct quest_type
 * @brief Quest
 */
struct quest_type
{
	/** @structvar silent
	 * @brief Boolean
	 * @note Does quest appear on quest list?
	 */
	bool silent;

	/** @structvar status
	 * @brief Number
	 * @note Is the quest taken, completed, finished? 
	 */
	s16b status;

	/** @structvar level
	 * @brief Number
	 * @note Dungeon level 
	 */
	s16b level;
};

/** @var  quest_aux;
 * @brief quest_type
 * @note Array of quests
 */
extern quest_type quest[MAX_Q_IDX] @ quest_aux;

$static quest_type *lua_get_quest(int q_idx){return &quest[q_idx];}

/** @fn quest(int q_idx);
 * @brief Return quest with index "q_idx" from quest array.\n
 * @param q_idx Number \n the index of a quest in the quest array.
 * @brief Quest index
 * @return quest_type \n The quest at index "q_idx".
 * @note (see file w_quest.c)
 */
static quest_type *lua_get_quest @ quest(int q_idx);