-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
stats.h
104 lines (93 loc) · 2.4 KB
/
stats.h
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
#ifndef __STATS_H__
#define __STATS_H__
#pragma once
typedef enum {
/* Base stats */
STAT_BASE = 0, // Sentry value
STAT_BASE_ATK = 0,
STAT_BASE_DEF,
STAT_BASE_SPD,
/* NOTE! While accessing SPC/APC_AT will do the correct thing for both
* Gen I and Gen II, accessing SPC_DEF for Gen I will return a value
* that is not used in Gen I games. This normally isn't an issue, but
* is a potential gotcha to be aware of.
*/
STAT_BASE_SPC,
STAT_BASE_SPC_ATK,
STAT_BASE_SPC_DEF,
STAT_BASE_HP,
STAT_BASE_TYPE,
STAT_BASE_MOVE,
STAT_BASE_GROWTH,
STAT_BASE_GENDER_RATIO,
STAT_BASE_INDEX,
STAT_BASE_END, // Sentry value
/* In-party stats */
STAT = 0, // Sentry value
STAT_ATK = 0,
STAT_DEF,
STAT_SPD,
/* Gen I uses SPC, Gen II uses SPC_ATK and SPC_DEF */
STAT_SPC,
STAT_SPC_ATK,
STAT_SPC_DEF,
STAT_HP,
STAT_END = 7, // Sentry value
STAT_TYPE = 7,
/* Move is left here to line up with the table base stats */
STAT_MOVE,
STAT_EV = 10, // Sentry value
STAT_EV_OFFS = 10,
STAT_ATK_EV = 10,
STAT_DEF_EV,
STAT_SPD_EV,
/* There is only SPC EV, there is no SPC_ATK/DEF. However, for the sake
* of making calculations easier, we pretend there are. This means that
* SPC/SPC_ATK/SPC_DEF calculations all grab the SPC EV.
*/
STAT_SPC_EV,
STAT_SPC_ATK_EV,
STAT_SPC_DEF_EV,
STAT_HP_EV = 16,
STAT_EV_END, // Sentry value
STAT_IV = 19,
STAT_IV_OFFS = 20, // Sentry value
STAT_ATK_IV = 20,
STAT_DEF_IV,
STAT_SPD_IV,
/* There is only SPC IV, there is no SPC_ATK/DEF. However, for the sake
* of making calculations easier, we pretend there are. This means that
* SPC/SPC_ATK/SPC_DEF calculations all grab the SPC IV.
*/
STAT_SPC_IV,
STAT_SPC_ATK_IV,
STAT_SPC_DEF_IV,
STAT_HP_IV = 26,
STAT_IV_END, // Sentry value
/* These won't ever really be needed in groups */
STAT_LEVEL = 28,
STAT_INDEX,
STAT_NUM,
STAT_CONDITION,
STAT_NICKNAME,
STAT_OT_NAME,
STAT_OT_ID,
STAT_TRAINER_NAME,
STAT_SEL, // which EV/IV calc to use
STAT_EXP,
STAT_HELD_ITEM,
STAT_POKERUS,
} DataStat;
typedef enum {
MOVE_0 = 0,
MOVE_1,
MOVE_2,
MOVE_3,
TYPE_0 = 0,
TYPE_1,
EXP_0 = 0,
EXP_1,
EXP_2,
NONE = 0, // Just a filler value
} DataStatSub;
#endif // __STATS_H__