summaryrefslogtreecommitdiff
path: root/include/global.h
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-09-21 10:50:15 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2017-09-21 10:50:15 +0200
commit9ee9a20152694f456841eb890b986d42f3c50e26 (patch)
tree2998678c0f3db391b080318633bc506248542ecb /include/global.h
parent3919b7130b2a8709562b012099947923a16af02d (diff)
parented9e0e20547e2c96833cddea67c6b423ef7af7ef (diff)
fix merge conflicts
Diffstat (limited to 'include/global.h')
-rw-r--r--include/global.h66
1 files changed, 65 insertions, 1 deletions
diff --git a/include/global.h b/include/global.h
index a1f79e985..4014c6dde 100644
--- a/include/global.h
+++ b/include/global.h
@@ -18,6 +18,14 @@ void memcpy(void *, const void *, size_t);
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
+// useful math macros
+
+// Converts a number to Q8.8 fixed-point format
+#define Q_8_8(n) ((s16)((n) * 256))
+
+// Converts a number to Q4.12 fixed-point format
+#define Q_4_12(n) ((s16)((n) * 4096))
+
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
@@ -662,6 +670,61 @@ struct DaycareData
#define FLAGS_COUNT 300
#define VARS_COUNT 256
+enum {
+ LILYCOVE_LADY_QUIZ,
+ LILYCOVE_LADY_FAVOUR,
+ LILYCOVE_LADY_CONTEST
+};
+
+struct LilycoveLadyQuiz
+{
+ /*0x000*/ u8 id;
+ /*0x001*/ u8 phase;
+ /*0x002*/ u16 unk_002[9];
+ /*0x014*/ u16 unk_014;
+ /*0x016*/ u16 unk_016;
+ /*0x018*/ u8 playerName[8];
+ /*0x020*/ u16 playerTrainerId[4];
+ /*0x028*/ u16 itemId;
+ /*0x02a*/ u8 unk_02a;
+ /*0x02b*/ u8 unk_02b;
+ /*0x02c*/ u8 unk_02c;
+ /*0x02d*/ u8 language;
+};
+
+struct LilycoveLadyFavour
+{
+ /*0x000*/ u8 id;
+ /*0x001*/ u8 phase;
+ /*0x002*/ u8 unk_002;
+ /*0x003*/ u8 unk_003;
+ /*0x004*/ u8 playerName[8];
+ /*0x00c*/ u8 unk_00c;
+ /*0x00e*/ u16 itemId;
+ /*0x010*/ u16 unk_010;
+ /*0x012*/ u8 language;
+};
+
+struct LilycoveLadyContest
+{
+ /*0x000*/ u8 id;
+ /*0x001*/ u8 phase;
+ /*0x002*/ u8 fave_pkblk;
+ /*0x003*/ u8 other_pkblk;
+ /*0x004*/ u8 playerName[8];
+ /*0x00c*/ u8 max_sheen;
+ /*0x00d*/ u8 category;
+ /*0x00e*/ u8 language;
+};
+
+typedef union // TODO
+{
+ struct LilycoveLadyQuiz quiz;
+ struct LilycoveLadyFavour favour;
+ struct LilycoveLadyContest contest;
+ u8 id;
+} LilycoveLady;
+
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -745,7 +808,8 @@ struct SaveBlock1
/*0x3728*/ struct RamScript ramScript;
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[52];
- /*0x3B58*/ u8 lilycoveLady[536]; // TODO: convert to a union
+ /*0x3B58*/ LilycoveLady lilycoveLady;
+ /*0x3B88*/ u8 filler_3B88[0x1E8];
/*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct
// sizeof: 0x3D88
};