summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cable_car_util.h13
-rw-r--r--include/constants/easy_chat.h4
-rw-r--r--include/dewford_trend.h1
-rw-r--r--include/easy_chat.h120
-rwxr-xr-xinclude/ewram.h2
-rw-r--r--include/field_map_obj.h2
-rw-r--r--include/field_weather.h4
-rw-r--r--include/gba/macro.h34
-rw-r--r--include/global.h11
-rw-r--r--include/graphics.h94
10 files changed, 247 insertions, 38 deletions
diff --git a/include/cable_car_util.h b/include/cable_car_util.h
new file mode 100644
index 000000000..7126331a1
--- /dev/null
+++ b/include/cable_car_util.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CABLE_CAR_UTIL_H
+#define GUARD_CABLE_CAR_UTIL_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void CableCarUtil_FillWrapped(void *dest, u16 value, u8 x, u8 y, u8 width, u8 height);
+void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 x, u8 y, u8 width, u8 height);
+
+#endif //GUARD_CABLE_CAR_UTIL_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
index 12350aebe..215dac48c 100644
--- a/include/constants/easy_chat.h
+++ b/include/constants/easy_chat.h
@@ -1,7 +1,7 @@
#ifndef GUARD_CONSTANTS_EASY_CHAT_H
#define GUARD_CONSTANTS_EASY_CHAT_H
-#define EC_GROUP_POKEMON 0x0
+#define EC_GROUP_POKEMON_1 0x0
#define EC_GROUP_TRAINER 0x1
#define EC_GROUP_STATUS 0x2
#define EC_GROUP_BATTLE 0x3
@@ -1053,7 +1053,7 @@
#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
-#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon)
+#define EC_POKEMON(mon) ((EC_GROUP_POKEMON_1 << 9) | SPECIES_##mon)
#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon)
#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move)
#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move)
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
index c12d0d740..16b2bdd75 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -2,6 +2,7 @@
#define GUARD_DEWFORDTREND_H
void InitDewfordTrend(void);
+bool8 sub_80FA364(u16 *a);
void sub_80FA4E4(void *, u32, u8);
void UpdateDewfordTrendPerDay(u16);
diff --git a/include/easy_chat.h b/include/easy_chat.h
index a6277fba8..a70d7ad0c 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -1,8 +1,126 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
+struct Sprite;
+
+struct UnknownEasyChatStruct1
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ void *unk8;
+};
+
+struct Shared1000
+{
+ void (*unk0)(void); // main cb 2
+ u16 *unk4;
+ u8 unk8;
+ u8 unk9;
+ u8 unkA; // length of unkC array
+ u8 unkB; // reporter talked to (Gabby or Ty)
+ u16 unkC[9];
+ void (*unk20)(void);
+ u16 unk24;
+ u8 unk26;
+ u8 unk27;
+ u16 unk28;
+ u8 unk2A[11][2];
+ u8 unk40[4][14];
+ u8 unk78[5];
+ u8 unk7D;
+ u8 unk7E[5];
+ s8 unk83;
+ s8 unk84;
+ s8 unk85;
+ s8 unk86;
+ bool8 unk87;
+ u16 unk88;
+ u16 unk8A;
+ u8 unk8C[(0x96-0x8C)/2][2];
+ u8 unk96;
+ u8 filler97;
+ struct Sprite *unk98;
+ struct Sprite *unk9C;
+ struct Sprite *unkA0;
+ struct Sprite *unkA4;
+ struct Sprite *unkA8;
+ struct Sprite *unkAC[2];
+ struct Sprite *unkB4[2];
+ u8 unkBC;
+ u8 fillerBD;
+ u16 unkBE;
+ u8 fillerC0[2];
+ u16 unkC2; // length of unkC8 and unk148 arrays
+ u16 unkC4;
+ u8 fillerC6[2];
+ u16 unkC8[(0x148-0xC8)/16][8];
+ struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12];
+ s8 unk1A8;
+ s8 unk1A9;
+ s8 unk1AA[0xB5-0xAA];
+ s8 unk1B5;
+ s8 unk1B6;
+ s8 unk1B7;
+ u8 unk1B8;
+ u8 unk1B9;
+ u16 unk1BA;
+ u16 unk1BC;
+ u8 unk1BE;
+ s8 unk1BF;
+ s8 unk1C0;
+ u8 filler1C1[3];
+ void (*unk1C4)(void);
+ u8 unk1C8[0x500];
+ u8 unk6C8[0xB78-0x6C8];
+#if GERMAN
+ u16 unkB78[27][270];
+#else
+ u16 unkB78[27][255];
+#endif
+ u16 unk4142[(0x78-0x42)/2]; //0x446C
+ u16 unk4178[(0x41A4-0x4178)/2]; // unknown length
+ const u8 *ecWordStrings[0x16][0x100]; //0x44CE in german
+ s8 unk99A4;
+ s8 unk99A5;
+ s8 unk99A6[130];
+ s8 unk9A28;
+ s8 unk9A29;
+ u16 unk9A2A[(0x9C32-0x9A2A)/4][2]; // unknown length
+ u8 unk9C32;
+ u8 filler9C33;
+ u16 unk9C34[3][9];
+ u8 filler9C6A[2];
+ s8 *unk9C6C;
+ u8 unk9C70;
+ s8 unk9C71;
+ u8 filler9C72[2];
+ struct Sprite *unk9C74;
+ u8 filler9C78[4];
+ u16 unk9C7C; // this is at 0x9FA8 in German
+ s16 unk9C7E;
+ u8 unk9C80[0xC9-0x80];
+ u8 unk9CC9[0xD12-0xCC9];
+ u8 unk9D12[0x5B-0x12];
+ u8 unk9D5B[0xA4-0x5B];
+ u8 unk9DA4[0xC9-0xA4];
+ u8 unk9DC9[0xE14 - 0xDC9];
+ u8 unk9E14[0xE41 - 0xE14];
+ u8 unk9E41[0x6E - 0x41];
+ u8 unk9E6E[0xEE - 0x6E];
+ u8 unk9EEE[0xF6E - 0xEEE];
+ u8 unk9F6E[0x8E - 0x6E]; // unknown length
+ u8 unk9F8E[7]; // unknown length
+};
+
extern u8 gUnknown_020388AC;
+extern u8 gUnknown_03000740;
+
+// const pointer to shared1000. easy_chat might be two separate files.
+extern struct Shared1000 *const gEasyChatStruct;
+void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3);
u16 sub_80EB72C(u16 group);
void sub_80EB6FC(u16 *, u16);
void InitEasyChatPhrases(void);
@@ -19,7 +137,7 @@ u16 sub_80EB8EC(void);
u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3);
#if GERMAN
-u32 de_sub_80EB748(u32, u32);
+u32 de_sub_80EB748(s32, s32);
#endif
#endif // GUARD_EASYCHAT_H
diff --git a/include/ewram.h b/include/ewram.h
index 5a350840a..41a3663f6 100755
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -185,6 +185,7 @@ extern u8 gSharedMem[];
#define ewram17000 (&gSharedMem[0x17000])
#define eLearnMoveStruct (struct LearnMoveStruct *)(gSharedMem + 0x17000)
#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
+#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
#define ewram17002 (&gSharedMem[0x17002])
#define eFlashFireArr (*(struct Struct2017100 *)(gSharedMem + 0x17100))
#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (gSharedMem + 0x17110))
@@ -213,6 +214,7 @@ extern u8 gSharedMem[];
#define ewram18800 (&gSharedMem[0x18800])
#define ePokedexView2 (struct PokedexView *)(gSharedMem + 0x18800)
#define ewram19000 (&gSharedMem[0x19000])
+#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000)
#define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348))
#define ewram19348 (*(struct Struct2019348 *)(gSharedMem + 0x19348))
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index f0b0bb5ab..cf3be36b2 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -337,7 +337,7 @@ void RemoveFieldObjectInternal(struct MapObject *);
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
u8 show_sprite(u8, u8, u8);
void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables);
-u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority);
+u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 sub_805B410(u8, u8, s16, s16, u8, u8);
void sub_805B55C(s16 a, s16 b);
void sub_805B710(u16 i, u16 i1);
diff --git a/include/field_weather.h b/include/field_weather.h
index c96d4055e..267650a2a 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -163,4 +163,8 @@ bool8 sub_807DDFC(void);
void SetWeather(u32);
void UpdateWeatherPerDay(u16);
+extern struct Weather gWeather;
+
+extern struct Weather *const gWeatherPtr;
+
#endif // GUARD_WEATHER_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index d9e6739b3..dcad009e1 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -87,7 +87,7 @@
#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \
{ \
const void *_src = src; \
- void *_dest = dest; \
+ void *_dest = (void *)(dest); \
u32 _size = size; \
while (1) \
{ \
@@ -129,7 +129,7 @@
#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
{ \
const void *_src = src; \
- void *_dest = dest; \
+ void *_dest = (void *)(dest); \
u32 _size = size; \
DmaCopy##bit(dmaNum, _src, _dest, _size); \
}
@@ -137,4 +137,34 @@
#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+#define DmaFillLarge(dmaNum, fillval, dest, size, block, bit) \
+{ \
+ void *_dest = (void *)(dest); \
+ u32 _size = (u32)(size); \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, fillval, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, fillval, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaFill16Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 16)
+#define DmaFill32Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 32)
+
+#define DmaFillDefvars(dmaNum, fillval, dest, size, bit) \
+{ \
+ void *_dest = (void *)(dest); \
+ u32 _size = (u##bit)(size); \
+ DmaFill##bit(dmaNum, fillval, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 32)
+
#endif // GUARD_GBA_MACRO_H
diff --git a/include/global.h b/include/global.h
index 76300d36d..eea1574b7 100644
--- a/include/global.h
+++ b/include/global.h
@@ -14,9 +14,9 @@
#define INCBIN_S8 {0}
#define INCBIN_S16 {0}
#define INCBIN_S32 {0}
-void * memcpy (void *, const void *, size_t);
-void * memset (void *, int, size_t);
-int strcmp (const char *, const char *);
+void *memcpy (void *, const void *, size_t);
+void *memset (void *, int, size_t);
+int strcmp (const char *, const char *);
#endif
// Prevent cross-jump optimization.
@@ -33,7 +33,7 @@ int strcmp (const char *, const char *);
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
-#define min(a, b) ((a) <= (b) ? (a) : (b))
+#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
// why does GF hate 2d arrays
@@ -682,7 +682,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2B40*/ u16 unk2B40[6];
} easyChats;
/*0x2B4C*/ struct MailStruct mail[16];
- /*0x2D8C*/ u8 unk2D8C[4];
+ /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size.
/*0x2D90*/ u8 filler_2D90[0x4];
/*0x2D94*/ union MauvilleMan mauvilleMan;
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
@@ -843,5 +843,6 @@ struct HallOfFame
extern struct HallOfFame gHallOfFame;
extern struct SaveBlock2 gSaveBlock2;
+extern u8 ewram[];
#endif // GUARD_GLOBAL_H
diff --git a/include/graphics.h b/include/graphics.h
index 17abb840e..00a210350 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2656,22 +2656,33 @@ extern const u8 gNamingScreenRightPointingTriangleTiles[];
extern const u8 gNamingScreenUnderscoreTiles[];
extern const u16 gNamingScreenPalettes[][16];
-extern const u8 gSpriteImage_8E988E8[];
-extern const u8 gSpriteImage_8E98968[];
-extern const u8 gSpriteImage_8E989E8[];
-extern const u8 gSpriteImage_8E98A68[];
-extern const u8 gSpriteImage_8E98AE8[];
-extern const u8 gSpriteImage_8E98B68[];
-extern const u8 gSpriteImage_8E991E8[];
-extern const u8 gSpriteImage_8E99808[];
-extern const u8 gSpriteImage_8E98BE8[];
-extern const u8 gSpriteImage_8E98CE8[];
-extern const u8 gSpriteImage_8E993E8[];
-extern const u8 gSpriteImage_8E98DE8[];
-extern const u8 gSpriteImage_8E98FE8[];
-extern const u8 gSpriteImage_8E98848[];
-extern const u8 gSpriteImage_8E98868[];
-extern const u8 gSpriteImage_8E98828[];
+extern const u8 gMenuWordGroupIndicator_Gfx[];
+extern const u8 gMenuWordGroupFrame_Gfx[];
+extern const u16 gMenuWordGroupIndicator_Pal[];
+extern const u16 gMenuWordGroupFrame1_Pal[];
+extern const u16 gMenuWordGroupFrame2_Pal[];
+
+extern const u8 gUnknown_08E94510[];
+extern const u8 gUnknown_08E94550[];
+extern const u8 gUnknown_08E94590[];
+extern const u8 gUnknown_08E945D0[];
+extern const u8 gUnknown_08E94AD0[];
+extern const u8 gUnknown_08E953D0[];
+extern const u8 gUnknown_08E954B0[];
+extern const u8 gUnknown_08E95774[];
+extern const u16 gUnknown_08E95A18[];
+extern const u16 gUnknown_08E95AB8[];
+extern const u16 gUnknown_08E95FB8[];
+
+extern const u16 gSlotMachineSpritePalette0[];
+extern const u16 gSlotMachineSpritePalette1[];
+extern const u16 gSlotMachineSpritePalette2[];
+extern const u16 gSlotMachineSpritePalette3[];
+extern const u16 gSlotMachineSpritePalette4[];
+extern const u16 gSlotMachineSpritePalette5[];
+extern const u16 gSlotMachineSpritePalette6[];
+extern const u8 gSlotMachine_Gfx[];
+
extern const u8 gSlotMachineReelSymbol1Tiles[];
extern const u8 gSlotMachineReelSymbol2Tiles[];
extern const u8 gSlotMachineReelSymbol3Tiles[];
@@ -2689,18 +2700,47 @@ extern const u8 gSlotMachineNumber6Tiles[];
extern const u8 gSlotMachineNumber7Tiles[];
extern const u8 gSlotMachineNumber8Tiles[];
extern const u8 gSlotMachineNumber9Tiles[];
+extern const u8 gSpriteImage_8E98828[];
+extern const u8 gSpriteImage_8E98848[];
+extern const u8 gSpriteImage_8E98868[];
+extern const u8 gSpriteImage_8E988E8[];
+extern const u8 gSpriteImage_8E98968[];
+extern const u8 gSpriteImage_8E989E8[];
+extern const u8 gSpriteImage_8E98A68[];
+extern const u8 gSpriteImage_8E98AE8[];
+extern const u8 gSpriteImage_8E98B68[];
+extern const u8 gSpriteImage_8E98BE8[];
+extern const u8 gSpriteImage_8E98CE8[];
+extern const u8 gSpriteImage_8E98DE8[];
+extern const u8 gSpriteImage_8E98FE8[];
+extern const u8 gSpriteImage_8E991E8[];
+extern const u8 gSpriteImage_8E993E8[];
extern const u8 gUnknownPalette_08E997E8[];
-extern const u16 gSlotMachineSpritePalette0[];
-extern const u16 gSlotMachineSpritePalette1[];
-extern const u16 gSlotMachineSpritePalette2[];
-extern const u16 gSlotMachineSpritePalette3[];
-extern const u16 gSlotMachineSpritePalette4[];
-extern const u16 gSlotMachineSpritePalette5[];
-extern const u16 gSlotMachineSpritePalette6[];
-extern const u8 gSlotMachine_Gfx[];
+extern const u8 gSpriteImage_8E99808[];
extern const u8 gSlotMachineReelTimeLights_Gfx[];
-extern const u16 gUnknown_08E95A18[];
-extern const u16 gUnknown_08E95AB8[];
-extern const u16 gUnknown_08E95FB8[];
+extern const u8 gUnknown_08E99FB0[];
+extern const u8 gUnknown_08E9A100[];
+extern const u8 gUnknown_08E9A300[];
+extern const u8 gUnknown_08E9AB00[];
+extern const u8 gUnknown_08E9AB40[];
+extern const u8 gUnknown_08E9AB60[];
+extern const u8 gUnknown_08E9ABB4[];
+extern const u8 gUnknown_08E9AC2C[];
+extern const u8 gUnknown_08E9AC4C[];
+
+extern const u8 gInterviewOutlineCursorTiles[];
+extern const u8 gTitleScreenPressStart_Gfx[];
+extern const u16 gTitleScreenLogoShinePalette[];
+extern const u8 gUnknown_08E9D8CC[];
+extern const u8 gVersionTiles[];
+extern const u16 gUnknown_08E9F624[];
+extern const u8 gUnknown_08E9F7E4[];
+
+extern const u8 gCableCar_Gfx[];
+extern const u8 gCableCarDoor_Gfx[];
+extern const u8 gCableCarCord_Gfx[];
+extern const u16 gCableCar_Pal[];
+extern const u16 gCableCarBG_Pal[];
+extern const u8 gCableCarBG_Gfx[];
#endif // GUARD_GRAPHICS_H