summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-07-22 13:35:26 -0400
committerGitHub <noreply@github.com>2020-07-22 13:35:26 -0400
commitd2e33d58e2353895e2affe0ab803315ad5aef37b (patch)
tree945ba8f5039c0914d7c94490d2b6146f9a9a441d
parentaeeff84462973b267e62031a945603d96afed716 (diff)
parent30793ff41bd0c289dc58fad13bb6251923296836 (diff)
Merge pull request #795 from PikalaxALT/common_fix
Fix compatibility with gcc-10
-rw-r--r--include/config.h4
-rw-r--r--include/link.h2
-rw-r--r--ld_script_modern.txt1
-rwxr-xr-xsrc/battle_anim_special.c6
-rw-r--r--src/battle_main.c12
-rw-r--r--src/berry_blender.c7
-rw-r--r--src/contest.c2
-rw-r--r--src/contest_painting_effects.c23
-rw-r--r--src/event_object_lock.c1
-rw-r--r--src/event_object_movement.c2
-rw-r--r--src/field_camera.c6
-rw-r--r--src/field_control_avatar.c2
-rw-r--r--src/item_menu.c4
-rw-r--r--src/mauville_man.c2
-rw-r--r--src/party_menu.c4
-rw-r--r--src/pokedex_cry_screen.c2
-rw-r--r--src/pokemon_summary_screen.c2
-rw-r--r--sym_common.txt2
18 files changed, 50 insertions, 34 deletions
diff --git a/include/config.h b/include/config.h
index 0046c3878..38923710d 100644
--- a/include/config.h
+++ b/include/config.h
@@ -68,4 +68,8 @@
// Fixed in Emerald.
// #define BUGFIX_SETMONIVS
+#if MODERN
+#define UBFIX
+#endif //MODERN
+
#endif // GUARD_CONFIG_H
diff --git a/include/link.h b/include/link.h
index 58e28f42d..6c9c25202 100644
--- a/include/link.h
+++ b/include/link.h
@@ -147,7 +147,7 @@ extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkOpen;
extern bool8 gLinkPlayerPending[MAX_LINK_PLAYERS];
-void (*gLinkCallback)(void);
+extern void (*gLinkCallback)(void);
extern u8 gUnknown_Debug_30030E0;
void Task_DestroySelf(u8);
diff --git a/ld_script_modern.txt b/ld_script_modern.txt
index 09f5060ff..e3571338a 100644
--- a/ld_script_modern.txt
+++ b/ld_script_modern.txt
@@ -27,7 +27,6 @@ SECTIONS {
src/libs/m4a.o(.bss.code);
/* COMMON starts at 0x3001760 */
- INCLUDE "sym_common.ld"
*(COMMON);
end = .;
. = 0x8000;
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index d8cf71be6..86dde8d30 100755
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -19,9 +19,9 @@
#include "constants/items.h"
#include "constants/songs.h"
-extern int gUnknown_03005F0C;
-extern u16 gUnknown_03005F10;
-extern u16 gUnknown_03005F14;
+int gUnknown_03005F0C;
+u16 gUnknown_03005F10;
+u16 gUnknown_03005F14;
extern s16 gBattleAnimArgs[];
extern u8 gBattleAnimAttacker;
diff --git a/src/battle_main.c b/src/battle_main.c
index 721aa7f9f..66140133c 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -113,11 +113,14 @@ extern u16 gUnknown_02024DE8;
extern u8 gActionSelectionCursor[];
extern u8 gMoveSelectionCursor[];
extern u8 gUnknown_02038470[];
-extern MainCallback gPreBattleCallback1;
+MainCallback gPreBattleCallback1;
+u8 gUnknown_03004344;
+u8 gUnknown_03004348;
extern void (*gBattleMainFunc)(void);
-extern u8 gLeveledUpInBattle;
-extern void (*gBattlerControllerFuncs[])(void);
-extern u8 gHealthboxSpriteIds[];
+u8 gLeveledUpInBattle;
+void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
+u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
+u8 gUnknown_0300434C[MAX_BATTLERS_COUNT];
extern u16 gBattleTypeFlags;
extern u8 gReservedSpritePaletteCount;
extern u16 gTrainerBattleOpponent;
@@ -163,6 +166,7 @@ extern u8 gNumSafariBalls;
extern u8 gUnknown_081FA70C[][3];
extern u8 gUnknown_081FA71B[];
extern u8 gUnknown_081FA71F[];
+struct BattleResults gBattleResults;
void BattleMainCB1(void);
static void BattlePrepIntroSlide(void);
diff --git a/src/berry_blender.c b/src/berry_blender.c
index a0300ed1f..52669a316 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -1888,7 +1888,12 @@ u32 Blender_GetPokeblockColor(struct BlenderBerry* berries, s16* a1, u8 playersN
s32 r6;
u8 r2;
- for (i = 0; i <= 5; i++) // bug, writing one index too far
+ // bug, writing one index too far
+#ifdef UBFIX
+ for (i = 0; i < 5; i++)
+#else
+ for (i = 0; i <= 5; i++)
+#endif //UBFIX
vars[i] = a1[i];
r6 = 0;
for (i = 0; i < 5; i++)
diff --git a/src/contest.c b/src/contest.c
index 40afb9741..1a1c62023 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -49,7 +49,7 @@ extern u8 gBattlerTarget;
extern u8 gBattlerPositions[];
extern u8 gBattlerSpriteIds[];
extern struct Window gUnknown_03004210;
-extern u32 gContestRngValue;
+u32 gContestRngValue;
extern struct SpriteTemplate gUnknown_02024E8C;
extern const struct ContestPokemon gContestOpponents[60];
diff --git a/src/contest_painting_effects.c b/src/contest_painting_effects.c
index 57706aea7..ade91a0ec 100644
--- a/src/contest_painting_effects.c
+++ b/src/contest_painting_effects.c
@@ -2,17 +2,18 @@
#include "contest_painting_effects.h"
#include "contest_painting.h"
-extern u16 (*gUnknown_03005DEC)[][32];
-extern u8 gUnknown_083E7A50[][3];
-extern u8 gUnknown_03005DE8;
-extern u8 gUnknown_03005DF0;
-extern u8 gUnknown_03005DFC;
-extern u8 gUnknown_03005DF8;
-extern u8 gUnknown_03005DF4;
-extern u8 gUnknown_03005E00;
-extern u8 gUnknown_03005E04;
-extern u16 * gUnknown_03005E08;
-extern u16 gUnknown_03005E0C;
+extern const u8 gUnknown_083E7A50[][3];
+
+u16 (*gUnknown_03005DEC)[][32];
+u8 gUnknown_03005DE8;
+u8 gUnknown_03005DF0;
+u8 gUnknown_03005DFC;
+u8 gUnknown_03005DF8;
+u8 gUnknown_03005DF4;
+u8 gUnknown_03005E00;
+u8 gUnknown_03005E04;
+u16 * gUnknown_03005E08;
+u16 gUnknown_03005E0C;
// this file's functions
void sub_80FCAA4(void);
diff --git a/src/event_object_lock.c b/src/event_object_lock.c
index 9ffea9460..26f90f813 100644
--- a/src/event_object_lock.c
+++ b/src/event_object_lock.c
@@ -6,6 +6,7 @@
#include "task.h"
extern u16 gSpecialVar_Facing;
+u8 gSelectedObjectEvent;
bool8 walkrun_is_standing_still(void)
{
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 91e9da961..2ccc15777 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -1031,7 +1031,7 @@ static u16 sCurrentSpecialObjectPaletteTag;
extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[];
extern u8 gReservedSpritePaletteCount;
extern struct Camera gCamera;
-extern struct ObjectEvent gObjectEvents[16];
+struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT];
#if DEBUG
u8 gUnknown_Debug_03004BC0;
#endif
diff --git a/src/field_camera.c b/src/field_camera.c
index 2a314dc2f..9c93a51f6 100644
--- a/src/field_camera.c
+++ b/src/field_camera.c
@@ -24,9 +24,9 @@ static s16 sVerticalCameraPan;
static u8 gUnknown_0300059C;
static void (*sFieldCameraPanningCallback)(void);
-extern struct FieldCamera gFieldCamera;
-extern u16 gTotalCameraPixelOffsetY;
-extern u16 gTotalCameraPixelOffsetX;
+struct FieldCamera gFieldCamera;
+u16 gTotalCameraPixelOffsetY;
+u16 gTotalCameraPixelOffsetX;
static void RedrawMapSliceNorth(struct FieldCameraOffset*, struct MapLayout*);
static void RedrawMapSliceSouth(struct FieldCameraOffset*, struct MapLayout*);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 6e9858cc5..619c5ce9f 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -43,7 +43,7 @@ extern u8 gUnknown_020297ED;
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
-u8 gSelectedObjectEvent;
+extern u8 gSelectedObjectEvent;
//scripts
extern u8 gUnknown_081A2C51[];
diff --git a/src/item_menu.c b/src/item_menu.c
index 23e07ef02..ea3faf49e 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -141,8 +141,8 @@ static const u8 *sPopupMenuActionList;
// common
void (*gFieldItemUseCallback)(u8) = NULL;
extern u16 gBattle_BG1_Y;
-extern struct PocketScrollState gBagPocketScrollStates[];
-extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
+struct PocketScrollState gBagPocketScrollStates[5];
+struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
extern const u8 Event_NoRegisteredItem[];
// TODO: decompile the debug code so we can use static in this file
diff --git a/src/mauville_man.c b/src/mauville_man.c
index 64c41f3bf..6fa00b19e 100644
--- a/src/mauville_man.c
+++ b/src/mauville_man.c
@@ -134,7 +134,7 @@ extern const u8 gTextStoryteller_Story36Title[];
extern const u8 gTextStoryteller_Story36Action[];
extern const u8 gTextStoryteller_Story36Text[];
-extern struct BardSong gUnknown_03005DA0;
+struct BardSong gUnknown_03005DA0;
EWRAM_DATA static u16 gUnknown_020388BC = 0; // set but not used?
diff --git a/src/party_menu.c b/src/party_menu.c
index 2095db331..343541ac1 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -102,6 +102,8 @@ static void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d);
static void sub_806BB9C(u8 a);
static void sub_806BBEC(u8 a);
+void (*gPokemonItemUseCallback)(u8 taskId, u16 itemId, TaskFunc taskFunc);
+
extern u16 Random();
EWRAM_DATA u8 gUnknown_0202E8F4 = 0;
@@ -4111,7 +4113,7 @@ s16 sub_806F7E8(u8 taskId, struct BattleInterfaceStruct1 *b, s8 c)
if (hpBarLevel < 2)
b->unkC_0 = 6;
vramPtr = gUnknown_08376858[IsDoubleBattle()][ewram1C000.primarySelectedMonIndex];
- return sub_80460C8(b, &ewram1C000.unkC, vramPtr, 0);
+ return sub_80460C8(b, (int *)&ewram1C000.unkC, vramPtr, 0);
}
void sub_806F8AC(u8 taskId)
diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c
index 0574ca45b..9abea27a1 100644
--- a/src/pokedex_cry_screen.c
+++ b/src/pokedex_cry_screen.c
@@ -41,7 +41,7 @@ void sub_811A350(u8, u16, u8);
void sub_811A534(struct Sprite *);
void sub_811A6D8(s8);
-extern u8 gUnknown_03005E98;
+u8 gUnknown_03005E98;
// data/pokedex_cry_screen.o
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index ef8360681..1079ec20b 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -124,7 +124,7 @@ extern u8 StorageSystemGetNextMonIndex(struct BoxPokemon *, u8, u8, u8);
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern u8 gPPUpReadMasks[];
-extern TaskFunc gUnknown_03005CF0;
+TaskFunc gUnknown_03005CF0;
extern struct SpriteTemplate gUnknown_02024E8C;
extern const u8 gStatusPal_Icons[];
diff --git a/sym_common.txt b/sym_common.txt
index fe75d4d0e..2660de51b 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -186,7 +186,7 @@ gUnknown_Debug_03004BC0 = .;
. += 0x4;
#endif
-// field_control_avatar.c
+// event_object_lock.c
SYMBOL(gSelectedObjectEvent, 4)
// ???