summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurausukun <lord.uber1@gmail.com>2021-07-03 16:57:44 -0400
committerKurausukun <lord.uber1@gmail.com>2021-07-03 16:57:44 -0400
commit85beaf7f82b9848cf21fe40b86a51027cd5fbbc1 (patch)
treee4c20560416857c59dcaa0a0bf1e8682b49f6707
parent72fc4b6f844a47ac4711c421cc4e06e0197dc7c5 (diff)
parentbbf39b8560c752d6b7e94bf1fea9ac60dc79c902 (diff)
Merge branch 'master' of https://github.com/pret/pokefirered into cast_test
-rw-r--r--Makefile4
-rw-r--r--data/battle_scripts_1.s30
-rw-r--r--data/maps/PewterCity_Gym/text.inc3
-rw-r--r--src/battle_bg.c10
-rw-r--r--src/battle_main.c2
-rw-r--r--src/malloc.c4
-rw-r--r--src/party_menu.c2
-rw-r--r--src/wild_encounter.c4
8 files changed, 36 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index a5fe77f23..9aaccc2fc 100644
--- a/Makefile
+++ b/Makefile
@@ -98,6 +98,8 @@ FIX := tools/gbafix/gbafix
MAPJSON := tools/mapjson/mapjson
JSONPROC := tools/jsonproc/jsonproc
+PERL := perl
+
# Clear the default suffixes
.SUFFIXES:
# Don't delete intermediate files
@@ -354,4 +356,4 @@ modern: ; @$(MAKE) MODERN=1
###################
$(SYM): $(ELF)
- $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" > $@ \ No newline at end of file
+ $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 79b5dffc1..5e6fd2885 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -1165,7 +1165,8 @@ BattleScript_EffectLeechSeed::
pause 0x20
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
- accuracycheck .+6, ACC_CURR_MOVE
+ accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE
+BattleScript_DoLeechSeed::
setseeded
attackanimation
waitanimation
@@ -1605,10 +1606,11 @@ BattleScript_EffectSandstorm::
BattleScript_EffectRollout::
attackcanceler
attackstring
- jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutHit
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy
ppreduce
+BattleScript_RolloutCheckAccuracy::
+ accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE
BattleScript_RolloutHit::
- accuracycheck .+6, ACC_CURR_MOVE
typecalc2
rolloutdamagecalculation
goto BattleScript_HitFromCritCalc
@@ -1640,7 +1642,7 @@ BattleScript_EffectFuryCutter::
attackcanceler
attackstring
ppreduce
- accuracycheck .+6, ACC_CURR_MOVE
+ accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
BattleScript_FuryCutterHit::
furycuttercalc
critcalc
@@ -2247,7 +2249,8 @@ BattleScript_MementoSubstituteInvulnerable::
BattleScript_MementoNoReduceStats::
attackstring
ppreduce
- jumpifattackandspecialattackcannotfall .+4
+ jumpifattackandspecialattackcannotfall BattleScript_MementoNoReduceStatsEnd
+BattleScript_MementoNoReduceStatsEnd::
setatkhptozero
pause 0x40
effectivenesssound
@@ -2897,7 +2900,8 @@ BattleScript_FaintedMonEnd::
end2
BattleScript_LinkBattleHandleFaint::
- openpartyscreen BS_UNKNOWN_5, .+4
+ openpartyscreen BS_UNKNOWN_5, BattleScript_LinkBattleHandleFaintStart
+BattleScript_LinkBattleHandleFaintStart::
switchhandleorder BS_FAINTED, 0
openpartyscreen BS_UNKNOWN_6, BattleScript_LinkBattleFaintedMonEnd
switchhandleorder BS_FAINTED, 0
@@ -2921,7 +2925,8 @@ BattleScript_LocalTrainerBattleWon::
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
- getmoneyreward .+4
+ getmoneyreward BattleScript_LocalTrainerBattleWonGotMoney
+BattleScript_LocalTrainerBattleWonGotMoney::
printstring STRINGID_PLAYERGOTMONEY
waitmessage 0x40
BattleScript_PayDayMoneyAndPickUpItems::
@@ -3183,7 +3188,7 @@ BattleScript_DamagingWeatherLoop::
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
- atk24 .+4
+ atk24 BattleScript_DamagingWeatherContinuesEnd
BattleScript_DamagingWeatherContinuesEnd::
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_WeatherDamageEndedBattle
addbyte gBattleCommunication, 1
@@ -3494,7 +3499,8 @@ BattleScript_DoFutureAttackHit::
resultmessage
waitmessage 0x40
tryfaintmon BS_TARGET, 0, NULL
- atk24 .+4
+ atk24 BattleScript_FutureAttackEnd
+BattleScript_FutureAttackEnd::
moveendcase 0
moveendfromto 11, 14
setbyte gMoveResultFlags, 0
@@ -3694,7 +3700,8 @@ BattleScript_DoTurnDmg::
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
- atk24 .+4
+ atk24 BattleScript_DoTurnDmgEnd
+BattleScript_DoTurnDmgEnd::
end2
BattleScript_BurnTurnDmg::
@@ -4370,7 +4377,8 @@ BattleScript_BerryConfuseHealEnd2::
BattleScript_BerryStatRaiseEnd2::
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
- statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, .+4
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BerryStatRaiseDoStatUp
+BattleScript_BerryStatRaiseDoStatUp::
setbyte cMULTISTRING_CHOOSER, 4
call BattleScript_StatUp
removeitem BS_ATTACKER
diff --git a/data/maps/PewterCity_Gym/text.inc b/data/maps/PewterCity_Gym/text.inc
index b6a1d87ee..4ba144beb 100644
--- a/data/maps/PewterCity_Gym/text.inc
+++ b/data/maps/PewterCity_Gym/text.inc
@@ -14,6 +14,9 @@ PewterCity_Gym_Text_BrockIntro:: @ 8190CD4
.string "Fine, then!\n"
.string "Show me your best!{PLAY_BGM}{MUS_ENCOUNTER_GYM_LEADER}$"
+@ NOTE: This defeat text actually causes a buffer overflow. It's too long for the gDisplayedStringBattle
+@ buffer that it's put into, and it stomps all over the gBattleTextBuffs after, as well as the otherwise
+@ unused array after that, gUnknown_2022AE8. Perhaps that's the reason why said array exists.
PewterCity_Gym_Text_BrockDefeat:: @ 8190E4F
.string "I took you for granted, and so\n"
.string "I lost.\p"
diff --git a/src/battle_bg.c b/src/battle_bg.c
index c30f10643..f5b8d7921 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -612,13 +612,13 @@ static u8 GetBattleTerrainByMapScene(u8 mapBattleScene)
if (mapBattleScene == sMapBattleSceneMapping[i].mapScene)
return sMapBattleSceneMapping[i].battleTerrain;
}
- return 9;
+ return BATTLE_TERRAIN_PLAIN;
}
static void LoadBattleTerrainGfx(u16 terrain)
{
if (terrain >= NELEMS(sBattleTerrainTable))
- terrain = 9;
+ terrain = BATTLE_TERRAIN_PLAIN;
// Copy to bg3
LZDecompressVram(sBattleTerrainTable[terrain].tileset, (void *)BG_CHAR_ADDR(2));
LZDecompressVram(sBattleTerrainTable[terrain].tilemap, (void *)BG_SCREEN_ADDR(26));
@@ -628,7 +628,7 @@ static void LoadBattleTerrainGfx(u16 terrain)
static void LoadBattleTerrainEntryGfx(u16 terrain)
{
if (terrain >= NELEMS(sBattleTerrainTable))
- terrain = 9;
+ terrain = BATTLE_TERRAIN_PLAIN;
// Copy to bg1
LZDecompressVram(sBattleTerrainTable[terrain].entryTileset, (void *)BG_CHAR_ADDR(1));
LZDecompressVram(sBattleTerrainTable[terrain].entryTilemap, (void *)BG_SCREEN_ADDR(28));
@@ -636,8 +636,8 @@ static void LoadBattleTerrainEntryGfx(u16 terrain)
UNUSED void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr)
{
- if (terrain > 9)
- terrain = 9;
+ if (terrain > BATTLE_TERRAIN_PLAIN)
+ terrain = BATTLE_TERRAIN_PLAIN;
*tilesPtr = sBattleTerrainTable[terrain].tileset;
*mapPtr = sBattleTerrainTable[terrain].tilemap;
*palPtr = sBattleTerrainTable[terrain].palette;
diff --git a/src/battle_main.c b/src/battle_main.c
index 021a0ca81..53757d13c 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -125,7 +125,7 @@ EWRAM_DATA u8 gDisplayedStringBattle[300] = {0};
EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0};
EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0};
EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0};
-static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0};
+static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0}; // Note: This shouldn't be removed without adjusting the size of gDisplayedStringBattle.
EWRAM_DATA u32 gBattleTypeFlags = 0;
EWRAM_DATA u8 gBattleTerrain = 0;
EWRAM_DATA u32 gUnknown_2022B54 = 0;
diff --git a/src/malloc.c b/src/malloc.c
index 590d45c05..260c41d0d 100644
--- a/src/malloc.c
+++ b/src/malloc.c
@@ -192,12 +192,12 @@ void InitHeap(void *heapStart, u32 heapSize)
void *Alloc(u32 size)
{
- AllocInternal(sHeapStart, size);
+ return AllocInternal(sHeapStart, size);
}
void *AllocZeroed(u32 size)
{
- AllocZeroedInternal(sHeapStart, size);
+ return AllocZeroedInternal(sHeapStart, size);
}
void Free(void *pointer)
diff --git a/src/party_menu.c b/src/party_menu.c
index e08c427c8..aa7ffc702 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -839,7 +839,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot)
if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR)
{
gSpecialVar_Result = FALSE;
- if (gSpecialVar_0x8005 > 14)
+ if (gSpecialVar_0x8005 >= TUTOR_MOVE_COUNT)
return FALSE;
DisplayPartyPokemonDataToTeachMove(slot, 0, gSpecialVar_0x8005);
}
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index 5c3e59fde..90501e583 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -87,7 +87,7 @@ static u8 ChooseWildMonIndex_Land(void)
return 8;
else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_8 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_9)
return 9;
- else if (rand == ENCOUNTER_CHANCE_LAND_MONS_SLOT_9)
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_9 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_10)
return 10;
else
return 11;
@@ -147,7 +147,7 @@ static u8 ChooseWildMonIndex_Fishing(u8 rod)
wildMonIndex = 7;
if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_7 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8)
wildMonIndex = 8;
- if (rand == ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8)
+ if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_9)
wildMonIndex = 9;
break;
}