summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-07-20 18:03:49 -0400
committerGitHub <noreply@github.com>2020-07-20 18:03:49 -0400
commit4dc2ba23f617f0b53a8f4d95e82a71580a808c91 (patch)
tree9522877c5990fcc3877e985f0d1c228a1c42593d /src
parentc6b4319b682807d714f88857f16287770b483db8 (diff)
parentaeeff84462973b267e62031a945603d96afed716 (diff)
Merge branch 'master' into constants-mapdatasize
Diffstat (limited to 'src')
-rw-r--r--src/battle/anim/shadow_minimize.c182
-rw-r--r--src/battle/anim/unused_9.c69
-rw-r--r--src/battle_setup.c57
-rw-r--r--src/berry.c21
-rw-r--r--src/berry_tag_screen.c3
-rw-r--r--src/cable_club.c2
-rw-r--r--src/coins.c4
-rw-r--r--src/crt0.s1
-rw-r--r--src/debug/nohara_debug_menu.c2
-rw-r--r--src/debug/taya_debug_window.c2
-rw-r--r--src/debug/tomomichi_debug_menu.c4
-rw-r--r--src/decompress.c144
-rw-r--r--src/decoration.c4
-rw-r--r--src/decoration_inventory.c4
-rw-r--r--src/easy_chat_1.c2
-rw-r--r--src/field_control_avatar.c79
-rw-r--r--src/field_effect_helpers.c238
-rw-r--r--src/field_fadetransition.c2
-rw-r--r--src/field_special_scene.c4
-rw-r--r--src/field_specials.c6
-rw-r--r--src/field_weather.c1
-rw-r--r--src/fieldmap.c4
-rw-r--r--src/hof_pc.c2
-rw-r--r--src/item.c2
-rw-r--r--src/mail.c2
-rw-r--r--src/main.c7
-rw-r--r--src/new_game.c4
-rw-r--r--src/overworld.c26
-rw-r--r--src/pokedex.c9
-rw-r--r--src/pokemon_2.c6
-rw-r--r--src/pokemon_item_effect.c2
-rw-r--r--src/record_mixing.c2
-rw-r--r--src/scrcmd.c36
-rw-r--r--src/script.c29
-rw-r--r--src/script_menu.c47
-rw-r--r--src/script_pokemon_util_80C4BF0.c18
-rw-r--r--src/secret_base.c49
-rw-r--r--src/shop.c2
-rw-r--r--src/start_menu.c2
-rw-r--r--src/trader.c2
-rw-r--r--src/trainer_see.c2
-rw-r--r--src/tv.c273
-rw-r--r--src/wild_encounter.c12
43 files changed, 464 insertions, 905 deletions
diff --git a/src/battle/anim/shadow_minimize.c b/src/battle/anim/shadow_minimize.c
index a4589f096..913e58bc4 100644
--- a/src/battle/anim/shadow_minimize.c
+++ b/src/battle/anim/shadow_minimize.c
@@ -8,14 +8,14 @@ extern s16 gBattleAnimArgs[];
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
-static void sub_80D04E0(u8 taskId);
-void sub_80D0614(struct Task* task, u8 taskId);
-void sub_80D0704(struct Sprite* sprite);
+static void AnimTask_Minimize_Step(u8 taskId);
+void CreateMinimizeSprite(struct Task* task, u8 taskId);
+void ClonedMinimizeSprite_Step(struct Sprite* sprite);
// shadow_minimize (the minimizing-like shadow over the Pokemon effect.)
// Used in Minimize.
-void sub_80D0488(u8 taskId)
+void AnimTask_Minimize(u8 taskId)
{
struct Task* task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(0);
@@ -28,17 +28,17 @@ void sub_80D0488(u8 taskId)
task->data[5] = 0;
task->data[6] = 0;
task->data[7] = GetBattlerSubpriority(gBattleAnimAttacker);
- task->func = sub_80D04E0;
+ task->func = AnimTask_Minimize_Step;
}
-void sub_80D04E0(u8 taskId)
+void AnimTask_Minimize_Step(u8 taskId)
{
struct Task* task = &gTasks[taskId];
switch (task->data[1])
{
case 0:
if (task->data[2] == 0 || task->data[2] == 3 || task->data[2] == 6)
- sub_80D0614(task, taskId);
+ CreateMinimizeSprite(task, taskId);
task->data[2]++;
task->data[4] += 0x28;
obj_id_set_rotscale(task->data[0], task->data[4], task->data[4], 0);
@@ -97,164 +97,40 @@ void sub_80D04E0(u8 taskId)
}
}
-#ifdef NONMATCHING
-void sub_80D0614(struct Task* task, u8 taskId)
+void CreateMinimizeSprite(struct Task* task, u8 taskId)
{
- s16 r8 = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
- if (r8 >= 0)
+ s16 matrixNum; // u16 in Emerald
+ s16 spriteId = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
+
+ if (spriteId >= 0)
{
- u8 r6 = AllocOamMatrix();
- if (r6 == 0xFF)
+ matrixNum = AllocOamMatrix();
+ if (matrixNum == 0xFF)
{
- obj_delete_but_dont_free_vram(&gSprites[r8]);
+ obj_delete_but_dont_free_vram(&gSprites[spriteId]);
+ return;
}
else
{
- gSprites[r8].oam.objMode = ST_OAM_OBJ_BLEND;
- gSprites[r8].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
- gSprites[r8].affineAnimPaused = TRUE;
- r6 &= 0x1f;
-
- gSprites[r8].oam.matrixNum = r6; // need to inhibit optimizing out the mov r0, 0x3f / neg r0, r0
- // current code does subs r0, #94 (0x1f - 94 = 0xc1, !0x3f = 0xc1)
- gSprites[r8].subpriority = task->data[7] - task->data[3];
+ gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
+ gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
+ gSprites[spriteId].affineAnimPaused = TRUE;
+ gSprites[spriteId].oam.matrixNum = matrixNum;
+ gSprites[spriteId].subpriority = task->data[7] - task->data[3];
task->data[3]++;
task->data[6]++;
- gSprites[r8].data[0] = 16;
- gSprites[r8].data[1] = taskId;
- gSprites[r8].data[2] = 6;
- gSprites[r8].callback = sub_80D0704;
- obj_id_set_rotscale(r8, task->data[4], task->data[4], 0);
- gSprites[r8].oam.affineMode = 1;
- CalcCenterToCornerVec(&gSprites[r8], gSprites[r8].oam.shape, gSprites[r8].oam.size, gSprites[r8].oam.affineMode);
+ gSprites[spriteId].data[0] = 16;
+ gSprites[spriteId].data[1] = taskId;
+ gSprites[spriteId].data[2] = 6;
+ gSprites[spriteId].callback = ClonedMinimizeSprite_Step;
+ obj_id_set_rotscale(spriteId, task->data[4], task->data[4], 0);
+ gSprites[spriteId].oam.affineMode = 1;
+ CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
}
}
}
-#else
-NAKED
-void sub_80D0614(struct Task* task, u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- adds r7, r0, 0 @r7 is task\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- mov r9, r1 @r9 is taskId\n\
- movs r0, 0\n\
- bl duplicate_obj_of_side_rel2move_in_transparent_mode\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r8, r0\n\
- lsls r0, 16\n\
- asrs r4, r0, 16\n\
- cmp r4, 0\n\
- blt _080D06EE @jump to bottom\n\
- bl AllocOamMatrix\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- cmp r6, 0xFF\n\
- bne _080D0658\n\
- lsls r0, r4, 4\n\
- adds r0, r4\n\
- lsls r0, 2\n\
- ldr r1, _080D0654 @ =gSprites\n\
- adds r0, r1\n\
- bl obj_delete_but_dont_free_vram\n\
- b _080D06EE @ jump to bottom\n\
- .align 2, 0\n\
-_080D0654: .4byte gSprites\n\
-_080D0658:\n\
- ldr r5, _080D06FC @ =gSprites\n\
- lsls r3, r4, 4\n\
- adds r3, r4\n\
- lsls r3, 2\n\
- adds r4, r3, r5\n\
- ldrb r1, [r4, 0x1]\n\
- movs r0, 0xD\n\
- negs r0, r0\n\
- ands r0, r1\n\
- movs r1, 0x4\n\
- orrs r0, r1\n\
- movs r1, 0x3\n\
- orrs r0, r1\n\
- strb r0, [r4, 0x1]\n\
- adds r2, r4, 0\n\
- adds r2, 0x2C\n\
- ldrb r0, [r2]\n\
- movs r1, 0x80\n\
- orrs r0, r1\n\
- strb r0, [r2]\n\
- movs r0, 0x1F\n\
- ands r6, r0\n\
- lsls r2, r6, 1\n\
- ldrb r1, [r4, 0x3]\n\
- movs r0, 0x3F\n\
- negs r0, r0\n\
- ands r0, r1\n\
- orrs r0, r2\n\
- strb r0, [r4, 0x3]\n\
- ldrb r0, [r7, 0x16]\n\
- ldrb r1, [r7, 0xE]\n\
- subs r0, r1\n\
- adds r1, r4, 0\n\
- adds r1, 0x43\n\
- strb r0, [r1]\n\
- ldrh r0, [r7, 0xE]\n\
- adds r0, 0x1\n\
- strh r0, [r7, 0xE]\n\
- ldrh r0, [r7, 0x14]\n\
- adds r0, 0x1\n\
- strh r0, [r7, 0x14]\n\
- movs r0, 0x10\n\
- strh r0, [r4, 0x2E]\n\
- mov r0, r9\n\
- strh r0, [r4, 0x30]\n\
- movs r0, 0x6\n\
- strh r0, [r4, 0x32]\n\
- adds r5, 0x1C\n\
- adds r3, r5\n\
- ldr r0, _080D0700 @ =sub_80D0704\n\
- str r0, [r3]\n\
- mov r1, r8 @duplicate_obj_of_side_rel2move_in_transparent_mode(0)\n\
- lsls r0, r1, 24\n\
- lsrs r0, 24\n\
- movs r1, 0x10\n\
- ldrsh r2, [r7, r1]\n\
- adds r1, r2, 0\n\
- movs r3, 0\n\
- bl obj_id_set_rotscale\n\
- ldrb r0, [r4, 0x1]\n\
- movs r3, 0x4\n\
- negs r3, r3\n\
- ands r3, r0\n\
- movs r0, 0x1\n\
- orrs r3, r0\n\
- strb r3, [r4, 0x1]\n\
- lsrs r1, r3, 6\n\
- ldrb r2, [r4, 0x3]\n\
- lsrs r2, 6\n\
- lsls r3, 30\n\
- lsrs r3, 30\n\
- adds r0, r4, 0\n\
- bl CalcCenterToCornerVec\n\
-_080D06EE:\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080D06FC: .4byte gSprites\n\
-_080D0700: .4byte sub_80D0704\n\
-.syntax divided\n");
-}
-#endif
-void sub_80D0704(struct Sprite* sprite)
+void ClonedMinimizeSprite_Step(struct Sprite* sprite)
{
if (--sprite->data[0] == 0)
{
diff --git a/src/battle/anim/unused_9.c b/src/battle/anim/unused_9.c
index a9a42a695..23012fe8a 100644
--- a/src/battle/anim/unused_9.c
+++ b/src/battle/anim/unused_9.c
@@ -33,7 +33,6 @@ void sub_80CFDFC(struct Sprite* sprite)
sprite->callback = sub_80CFE2C;
}
-#ifdef NONMATCHING
static void sub_80CFE2C(struct Sprite* sprite)
{
u16 r7;
@@ -44,9 +43,9 @@ static void sub_80CFE2C(struct Sprite* sprite)
sprite->data[1] = 0;
r5 = sprite->data[0];
r7 = gPlttBufferFaded[r5 + 8];
- for (i = 0; i < 8; i++)
+ for (i = 8; i < 16; i++)
{
- gPlttBufferFaded[r5 + i + 8] = gPlttBufferFaded[r5 + i + 9];
+ gPlttBufferFaded[r5 + i] = gPlttBufferFaded[r5 + i + 1];
}
gPlttBufferFaded[r5 + 15] = r7;
@@ -54,67 +53,3 @@ static void sub_80CFE2C(struct Sprite* sprite)
DestroyAnimSprite(sprite);
}
}
-#else
-NAKED
-static void sub_80CFE2C(struct Sprite* sprite)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- adds r4, r0, 0\n\
- ldrh r0, [r4, 0x30]\n\
- adds r0, 0x1\n\
- strh r0, [r4, 0x30]\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- cmp r0, 0x2\n\
- bne _080CFE90\n\
- movs r0, 0\n\
- strh r0, [r4, 0x30]\n\
- ldrh r5, [r4, 0x2E]\n\
- ldr r1, _080CFE98 @ =gPlttBufferFaded\n\
- adds r0, r5, 0\n\
- adds r0, 0x8\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r7, [r0]\n\
- adds r6, r1, 0 @puts gPlttBufferFaded in r6\n\
- adds r1, r5, 0\n\
- adds r1, 0x9\n\
- lsls r0, r5, 1\n\
- adds r0, r6 \n\
- adds r2, r0, 0\n\
- adds r2, 0x10\n\
- movs r3, 0x7\n\
- lsls r1, 1\n\
- adds r1, r6 \n\
-_080CFE64:\n\
- ldrh r0, [r1]\n\
- strh r0, [r2]\n\
- adds r1, 0x2\n\
- adds r2, 0x2\n\
- subs r3, 0x1\n\
- cmp r3, 0\n\
- bge _080CFE64\n\
- adds r0, r5, 0\n\
- adds r0, 0xF\n\
- lsls r0, 1\n\
- adds r0, r6\n\
- strh r7, [r0]\n\
- ldrh r0, [r4, 0x32]\n\
- adds r0, 0x1\n\
- strh r0, [r4, 0x32]\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- cmp r0, 0x18\n\
- bne _080CFE90\n\
- adds r0, r4, 0\n\
- bl DestroyAnimSprite\n\
-_080CFE90:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080CFE98: .4byte gPlttBufferFaded\n\
-.syntax divided\n");
-}
-#endif
diff --git a/src/battle_setup.c b/src/battle_setup.c
index a7da9905a..cb07c5049 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -27,6 +27,7 @@
#include "task.h"
#include "text.h"
#include "trainer.h"
+#include "constants/battle_setup.h"
#include "constants/map_types.h"
#include "constants/maps.h"
#include "constants/opponents.h"
@@ -54,13 +55,13 @@ extern u8 gBattleOutcome;
extern struct ObjectEvent gObjectEvents[];
-extern u8 gUnknown_0819F818[];
-extern u8 gUnknown_0819F840[];
-extern u8 gUnknown_0819F878[];
-extern u8 gUnknown_0819F887[];
-extern u8 gUnknown_0819F8AE[];
+extern u8 EventScript_TryDoNormalTrainerBattle[];
+extern u8 EventScript_TryDoDoubleTrainerBattle[];
+extern u8 EventScript_DoNoIntroTrainerBattle[];
+extern u8 EventScript_TryDoRematchBattle[];
+extern u8 EventScript_TryDoDoubleRematchBattle[];
-extern u8 gUnknown_0819F80B[];
+extern u8 EventScript_StartTrainerBattle[];
extern u8 gUnknown_081C6C02[];
// The first transition is used if the enemy pokemon are lower level than our pokemon.
@@ -1005,37 +1006,37 @@ u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
switch (sTrainerBattleMode)
{
- case 3:
+ case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT:
TrainerBattleLoadArgs(gTrainerBattleSpecs_3, data);
- return gUnknown_0819F878;
- case 4:
+ return EventScript_DoNoIntroTrainerBattle;
+ case TRAINER_BATTLE_DOUBLE:
TrainerBattleLoadArgs(gTrainerBattleSpecs_2, data);
SetMapVarsToTrainer();
- return gUnknown_0819F840;
- case 1:
- case 2:
+ return EventScript_TryDoDoubleTrainerBattle;
+ case TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC:
+ case TRAINER_BATTLE_CONTINUE_SCRIPT:
TrainerBattleLoadArgs(gTrainerBattleSpecs_1, data);
SetMapVarsToTrainer();
- return gUnknown_0819F818;
- case 6:
- case 8:
+ return EventScript_TryDoNormalTrainerBattle;
+ case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE:
+ case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC:
TrainerBattleLoadArgs(gTrainerBattleSpecs_4, data);
SetMapVarsToTrainer();
- return gUnknown_0819F840;
- case 7:
+ return EventScript_TryDoDoubleTrainerBattle;
+ case TRAINER_BATTLE_REMATCH_DOUBLE:
TrainerBattleLoadArgs(gTrainerBattleSpecs_2, data);
SetMapVarsToTrainer();
gTrainerBattleOpponent = GetRematchTrainerId(gTrainerBattleOpponent);
- return gUnknown_0819F8AE;
- case 5:
+ return EventScript_TryDoDoubleRematchBattle;
+ case TRAINER_BATTLE_REMATCH:
TrainerBattleLoadArgs(gTrainerBattleSpecs_0, data);
SetMapVarsToTrainer();
gTrainerBattleOpponent = GetRematchTrainerId(gTrainerBattleOpponent);
- return gUnknown_0819F887;
- default:
+ return EventScript_TryDoRematchBattle;
+ default: // TRAINER_BATTLE_SINGLE
TrainerBattleLoadArgs(gTrainerBattleSpecs_0, data);
SetMapVarsToTrainer();
- return gUnknown_0819F818;
+ return EventScript_TryDoNormalTrainerBattle;
}
}
@@ -1044,7 +1045,7 @@ void TrainerWantsBattle(u8 trainerObjEventId, const u8 *trainerScript)
gSelectedObjectEvent = trainerObjEventId;
gSpecialVar_LastTalked = gObjectEvents[trainerObjEventId].localId;
BattleSetup_ConfigureTrainerBattle(trainerScript + 1);
- ScriptContext1_SetupScript(gUnknown_0819F80B);
+ ScriptContext1_SetupScript(EventScript_StartTrainerBattle);
ScriptContext2_Enable();
}
@@ -1054,7 +1055,7 @@ bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
return FlagGet(TRAINER_FLAG_START + flag);
}
-void sub_8082524(void)
+void SetUpTrainerMovement(void)
{
struct ObjectEvent *objectEvent = &gObjectEvents[gSelectedObjectEvent];
@@ -1066,7 +1067,7 @@ u8 ScrSpecial_GetTrainerBattleMode(void)
return sTrainerBattleMode;
}
-u8 ScrSpecial_HasTrainerBeenFought(void)
+u8 GetTrainerFlag(void)
{
return FlagGet(CurrentOpponentTrainerFlag());
}
@@ -1139,7 +1140,7 @@ void CB2_EndTrainerEyeRematchBattle(void)
}
}
-void ScrSpecial_StartTrainerEyeRematch(void)
+void BattleSetup_StartRematchBattle(void)
{
gBattleTypeFlags = BATTLE_TYPE_TRAINER;
gMain.savedCallback = CB2_EndTrainerEyeRematchBattle;
@@ -1150,7 +1151,7 @@ void ScrSpecial_StartTrainerEyeRematch(void)
static const u8 *GetTrainerIntroSpeech(void);
static const u8 *GetTrainerNonBattlingSpeech(void);
-void ScrSpecial_ShowTrainerIntroSpeech(void)
+void ShowTrainerIntroSpeech(void)
{
ShowFieldMessage(GetTrainerIntroSpeech());
}
@@ -1471,7 +1472,7 @@ bool8 ShouldTryRematchBattle(void)
return WasSecondRematchWon(gTrainerEyeTrainers, gTrainerBattleOpponent);
}
-u8 ScrSpecial_GetTrainerEyeRematchFlag(void)
+u8 IsTrainerReadyForRematch(void)
{
return GetTrainerEyeRematchFlag(gTrainerEyeTrainers, gTrainerBattleOpponent);
}
diff --git a/src/berry.c b/src/berry.c
index f1bdb5235..590b03469 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -11,6 +11,7 @@
#include "random.h"
#include "task.h"
#include "text.h"
+#include "constants/berry.h"
#include "constants/event_object_movement.h"
#include "constants/items.h"
@@ -1127,7 +1128,7 @@ const struct Berry *GetBerryInfo(u8 berry)
// when getting the pointer to the berry info, enigma berries are handled differently. if your
// berry is an Enigma Berry and its checksum is valid, fetch the pointer to its information in
// the save block.
- if (berry == GETBERRYID(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
+ if (berry == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
return &gSaveBlock1.enigmaBerry.berry;
else
{
@@ -1135,8 +1136,8 @@ const struct Berry *GetBerryInfo(u8 berry)
// an enigma berry whos checksum failed, the game will use the Enigma Berry information
// for this: meaning if you see the Enigma Berry information, its actually because the
// checksum failed.
- if (berry == BERRY_NONE || berry > GETBERRYID(LAST_BERRY))
- berry = GETBERRYID(FIRST_BERRY);
+ if (berry == BERRY_NONE || berry > ITEM_TO_BERRY(LAST_BERRY_INDEX))
+ berry = ITEM_TO_BERRY(FIRST_BERRY_INDEX);
return &gBerries[berry - 1];
}
}
@@ -1321,22 +1322,22 @@ u8 GetStageByBerryTreeId(u8 id)
u8 ItemIdToBerryType(u16 item)
{
- u16 berry = item - FIRST_BERRY;
+ u16 berry = item - FIRST_BERRY_INDEX;
- if (berry > LAST_BERRY - FIRST_BERRY)
- return GETBERRYID(FIRST_BERRY);
+ if (berry > LAST_BERRY_INDEX - FIRST_BERRY_INDEX)
+ return ITEM_TO_BERRY(FIRST_BERRY_INDEX);
else
- return GETBERRYID(item);
+ return ITEM_TO_BERRY(item);
}
static u16 BerryTypeToItemId(u16 berry)
{
u16 item = berry - 1;
- if (item > LAST_BERRY - FIRST_BERRY)
- return FIRST_BERRY;
+ if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX)
+ return FIRST_BERRY_INDEX;
else
- return GETITEMID(berry);
+ return berry + FIRST_BERRY_INDEX - 1;
}
void GetBerryNameByBerryType(u8 berry, u8 *string)
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index a8f797e28..2a2ff6ae2 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -20,7 +20,6 @@
#include "text.h"
#define OFFSET_7B (123)
-#define FIRST_BERRY ITEM_CHERI_BERRY
struct Struct2000000
{
@@ -277,7 +276,7 @@ static void sub_81464E4(void)
berryInfo = GetBerryInfo(gSpecialVar_ItemId + OFFSET_7B + 1);
- ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_ItemId - FIRST_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_ItemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
Menu_PrintText(gStringVar1, 12, 4);
#if ENGLISH
diff --git a/src/cable_club.c b/src/cable_club.c
index 28bf3b759..78e227cef 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -732,7 +732,7 @@ static void sub_80837EC(u8 taskId)
void sub_8083820(void)
{
- ScrSpecial_DoSaveDialog();
+ SaveGame();
}
static void sub_808382C(u8 taskId)
diff --git a/src/coins.c b/src/coins.c
index 2c217e635..273322161 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -54,7 +54,7 @@ u16 GetCoins(void)
return gSaveBlock1.coins;
}
-bool8 GiveCoins(u16 coins)
+bool8 AddCoins(u16 coins)
{
u32 newCoins;
@@ -72,7 +72,7 @@ bool8 GiveCoins(u16 coins)
return TRUE;
}
-bool8 TakeCoins(u16 coins)
+bool8 RemoveCoins(u16 coins)
{
if (GetCoins() >= coins)
{
diff --git a/src/crt0.s b/src/crt0.s
index 15698972d..e876c4c10 100644
--- a/src/crt0.s
+++ b/src/crt0.s
@@ -1,3 +1,4 @@
+ .include "constants/global.h"
.include "constants/gba_constants.inc"
.include "constants/misc_constants.inc"
.include "constants/version.inc"
diff --git a/src/debug/nohara_debug_menu.c b/src/debug/nohara_debug_menu.c
index d26d6038c..53501a52b 100644
--- a/src/debug/nohara_debug_menu.c
+++ b/src/debug/nohara_debug_menu.c
@@ -831,7 +831,7 @@ bool8 debug_sub_80901A4(void)
bool8 debug_sub_80901E4(void)
{
ResetFanClub();
- sub_810FAA0();
+ UpdateTrainerFanClubGameClear();
CloseMenu();
return TRUE;
}
diff --git a/src/debug/taya_debug_window.c b/src/debug/taya_debug_window.c
index aa3c1d993..0b3afa28d 100644
--- a/src/debug/taya_debug_window.c
+++ b/src/debug/taya_debug_window.c
@@ -262,7 +262,7 @@ bool8 debug_sub_8090880(void)
{
if (!UpdatePaletteFade())
{
- sub_80E60D8();
+ ShowEasyChatScreen();
return TRUE;
}
diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c
index c9804c638..5d30cf2c6 100644
--- a/src/debug/tomomichi_debug_menu.c
+++ b/src/debug/tomomichi_debug_menu.c
@@ -737,7 +737,7 @@ static const struct MenuAction gUnknown_Debug_083C1A9C[] = {
static const u8 gUnknown_Debug_083C1AAC[] = {2};
static const u16 gUnknown_Debug_083C1AAE[][9] = {
- {FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2, FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1}
+ {FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2, FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_HM08}
};
static const u8 gUnknown_Debug_083C1AC0[] = DTR("ジムリーダー", "GYM LEADER");
@@ -1561,7 +1561,7 @@ static const u16 sControlWorks_SaveWork_ItemArrays[][9] = {
{VAR_TRICK_HOUSE_ENTRANCE_STATE_2, VAR_TRICK_HOUSE_PRIZE_PICKUP, VAR_TRICK_HOUSE_STATE, VAR_TRICK_HOUSE_ENTRANCE_STATE_3, VAR_TRICK_HOUSE_ENTRANCE_STATE},
{VAR_TRICK_HOUSE_PUZZLE_1_STATE, VAR_TRICK_HOUSE_PUZZLE_2_STATE, VAR_TRICK_HOUSE_PUZZLE_3_STATE, VAR_TRICK_HOUSE_PUZZLE_4_STATE, VAR_TRICK_HOUSE_PUZZLE_5_STATE, VAR_TRICK_HOUSE_PUZZLE_6_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE, VAR_TRICK_HOUSE_PUZZLE_8_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE_2},
{VAR_BRINEY_HOUSE_STATE, VAR_GLASS_WORKSHOP_STATE},
- {VAR_0x4089, VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, VAR_BRINEY_LOCATION, VAR_0x4097, VAR_LILYCOVE_CONTEST_LOBBY_STATE, VAR_ELITE_4_STATE, VAR_CABLE_CAR_STATION_STATE, VAR_SAFARI_ZONE_STATE, VAR_CYCLING_CHALLENGE_STATE},
+ {VAR_SECRET_BASE_INITIALIZED, VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, VAR_BRINEY_LOCATION, VAR_INIT_SECRET_BASE, VAR_LILYCOVE_CONTEST_LOBBY_STATE, VAR_ELITE_4_STATE, VAR_CABLE_CAR_STATION_STATE, VAR_SAFARI_ZONE_STATE, VAR_CYCLING_CHALLENGE_STATE},
{VAR_WEATHER_INSTITUTE_STATE, VAR_SLATEPORT_FAN_CLUB_STATE, 0x40BB, VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, VAR_GAME_CORNER_STATE, VAR_WHICH_FOSSIL_REVIVED}
};
diff --git a/src/decompress.c b/src/decompress.c
index d6c52439f..c0158ada8 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -111,3 +111,147 @@ void Unused_LZDecompressWramIndirect(const void **src, void *dest)
{
LZ77UnCompWram(*src, dest);
}
+
+void unref_sub_800D42C(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles)
+{
+ /*
+ This function appears to emulate behaviour found in the GB(C) versions regarding how the Pokemon images
+ are stitched together to be displayed on the battle screen.
+ Given "compacted" tiles, an object count and a bounding box/object size, place the tiles in such a way
+ that the result will have each object centered in a 8x8 tile canvas.
+ */
+ s32 i, j, k, l;
+ u8 *src = src_tiles, *dest = dest_tiles;
+ u8 bottom_off;
+
+ if (object_size & 1)
+ {
+ // Object size is odd
+ bottom_off = (object_size >> 1) + 4;
+ for (l = 0; l < object_count; l++)
+ {
+ // Clear all unused rows of tiles plus the half-tile required due to centering
+ for (j = 0; j < 8-object_size; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ if (j % 2 == 0)
+ {
+ // Clear top half of top tile and bottom half of bottom tile when on even j
+ ((dest+i) + (k << 5))[((j >> 1) << 8)] = 0;
+ ((bottom_off << 8) + (dest+i) + (k << 5) + 16)[((j >> 1) << 8)] = 0;
+ }
+ else
+ {
+ // Clear bottom half of top tile and top half of tile following bottom tile when on odd j
+ ((dest+i) + (k << 5) + 16)[((j >> 1) << 8)] = 0;
+ ((bottom_off << 8) + (dest+i) + (k << 5) + 256)[((j >> 1) << 8)] = 0;
+ }
+ }
+ }
+ }
+
+ // Clear the columns to the left and right that wont be used completely
+ // Unlike the previous loops, this will clear the later used space as well
+ for (j = 0; j < 2; j++)
+ {
+ for (i = 0; i < 8; i++)
+ {
+ for (k = 0; k < 32; k++)
+ {
+ // Left side
+ ((dest+k) + (i << 8))[(j << 5)] = 0;
+ // Right side
+ ((dest+k) + (i << 8))[(j << 5)+192] = 0;
+ }
+ }
+ }
+
+ // Skip the top row and first tile on the second row for objects of size 5
+ if (object_size == 5) dest += 0x120;
+
+ // Copy tile data
+ for (j = 0; j < object_size; j++)
+ {
+ for (k = 0; k < object_size; k++)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ // Offset the tile by +4px in both x and y directions
+ (dest + (i << 2))[18] = (src + (i << 2))[0];
+ (dest + (i << 2))[19] = (src + (i << 2))[1];
+ (dest + (i << 2))[48] = (src + (i << 2))[2];
+ (dest + (i << 2))[49] = (src + (i << 2))[3];
+
+ (dest + (i << 2))[258] = (src + (i << 2))[16];
+ (dest + (i << 2))[259] = (src + (i << 2))[17];
+ (dest + (i << 2))[288] = (src + (i << 2))[18];
+ (dest + (i << 2))[289] = (src + (i << 2))[19];
+ }
+ src += 32;
+ dest += 32;
+ }
+
+ // At the end of a row, skip enough tiles to get to the beginning of the next row
+ if (object_size == 7) dest += 0x20;
+ else if (object_size == 5) dest += 0x60;
+ }
+
+ // Skip remaining unused space to go to the beginning of the next object
+ if (object_size == 7) dest += 0x100;
+ else if (object_size == 5) dest += 0x1e0;
+ }
+ }
+ else
+ {
+ // Object size is even
+ for (i = 0; i < object_count; i++)
+ {
+ // For objects of size 6, the first and last row and column will be cleared
+ // While the remaining space will be filled with actual data
+ if (object_size == 6)
+ {
+ for (k = 0; k < 256; k++) {
+ *dest = 0;
+ dest++;
+ }
+ }
+
+ for (j = 0; j < object_size; j++)
+ {
+ if (object_size == 6)
+ {
+ for (k = 0; k < 32; k++) {
+ *dest = 0;
+ dest++;
+ }
+ }
+
+ // Copy tile data
+ for (k = 0; k < 32 * object_size; k++) {
+ *dest = *src;
+ src++;
+ dest++;
+ }
+
+ if (object_size == 6)
+ {
+ for (k = 0; k < 32; k++) {
+ *dest = 0;
+ dest++;
+ }
+ }
+ }
+
+ if (object_size == 6)
+ {
+ for (k = 0; k < 256; k++) {
+ *dest = 0;
+ dest++;
+ }
+ }
+ }
+ }
+}
diff --git a/src/decoration.c b/src/decoration.c
index 8dde2834d..4dd7e0f12 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1430,7 +1430,7 @@ const struct YesNoFuncTable gUnknown_083EC634[] = {
// text
-extern u8 gUnknown_0815F399[];
+extern u8 SecretBase_EventScript_PCCancel[];
void sub_80FE1DC(void)
{
@@ -1524,7 +1524,7 @@ void gpu_pal_decompress_alloc_tag_and_upload(u8 taskId)
FreeSpritePaletteByTag(6);
if (ewram_1f000.isPlayerRoom == 0)
{
- ScriptContext1_SetupScript(gUnknown_0815F399);
+ ScriptContext1_SetupScript(SecretBase_EventScript_PCCancel);
DestroyTask(taskId);
} else
{
diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c
index feec11670..d9aa5d0fc 100644
--- a/src/decoration_inventory.c
+++ b/src/decoration_inventory.c
@@ -61,7 +61,7 @@ bool8 InventoryContainsDecoration(u8 decorationId)
return FALSE;
}
-bool8 GiveDecoration(u8 decorationId)
+bool8 AddDecoration(u8 decorationId)
{
u8 category;
s8 slot;
@@ -159,6 +159,6 @@ void Debug_GiveAllDecorations(void)
u8 decor;
for (decor = 0; decor < DECOR_COUNT; decor++)
- GiveDecoration(decor);
+ AddDecoration(decor);
}
#endif
diff --git a/src/easy_chat_1.c b/src/easy_chat_1.c
index 4f5c71518..ba2fded16 100644
--- a/src/easy_chat_1.c
+++ b/src/easy_chat_1.c
@@ -197,7 +197,7 @@ u8 *sub_80EB218(u8 *, u16, u16);
u16 sub_80EB2D4();
bool8 sub_80EB680(u16 *, u16, u16, u16);
-void sub_80E60D8(void)
+void ShowEasyChatScreen(void)
{
u8 r4 = 3;
u16 *r1;
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index bca856e9e..6e9858cc5 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -49,40 +49,37 @@ u8 gSelectedObjectEvent;
extern u8 gUnknown_081A2C51[];
extern u8 gUnknown_0815281E[];
extern u8 gUnknown_08152C39[];
-extern u8 gUnknown_0815F36C[];
-extern u8 gUnknown_0815F43A[];
-extern u8 gUnknown_081A0009[];
+extern u8 SecretBase_EventScript_PC[];
+extern u8 SecretBase_EventScript_RecordMixingPC[];
+extern u8 EventScript_PC[];
extern u8 gUnknown_081C6C02[];
-extern u8 HiddenItemScript[];
+extern u8 EventScript_HiddenItem[];
extern u8 Event_TV[];
-extern u8 gUnknown_081A0009[];
extern u8 ClosedSootopolisDoorScript[];
extern u8 gUnknown_081A4363[];
extern u8 gUnknown_081C346A[];
extern u8 gUnknown_081616E1[];
-extern u8 Event_WorldMap[];
+extern u8 EventScript_RegionMap[];
extern u8 S_RunningShoesManual[];
-extern u8 PictureBookShelfScript[];
-extern u8 BookshelfScript[];
-extern u8 PokemonCenterBookshelfScript[];
-extern u8 VaseScript[];
-extern u8 TrashCanScript[];
-extern u8 ShopShelfScript[];
-extern u8 BlueprintScript[];
-extern u8 gUnknown_0815F36C[];
-extern u8 gUnknown_0815F43A[];
-extern u8 gUnknown_0815F523[];
-extern u8 gUnknown_0815F528[];
-extern u8 UseSurfScript[];
+extern u8 EventScript_PictureBookshelf[];
+extern u8 EventScript_Bookshelf[];
+extern u8 EventScript_PokemonCenterBookshelf[];
+extern u8 EventScript_Vase[];
+extern u8 EventScript_EmptyTrashCan[];
+extern u8 EventScript_ShopShelf[];
+extern u8 EventScript_Blueprint[];
+extern u8 SecretBase_EventScript_SandOrnament[];
+extern u8 SecretBase_EventScript_ShieldOrToyTV[];
+extern u8 EventScript_UseSurf[];
extern u8 S_UseWaterfall[];
extern u8 S_CannotUseWaterfall[];
extern u8 UseDiveScript[];
extern u8 S_UseDiveUnderwater[];
-extern u8 S_FallDownHole[];
+extern u8 EventScript_FallDownHole[];
extern u8 gUnknown_081A14B8[];
extern u8 S_EggHatch[];
extern u8 gUnknown_0815FD0D[];
-extern u8 gUnknown_081C6BDE[];
+extern u8 EventScript_FallDownHoleMtPyre[];
static void GetPlayerPosition(struct MapPosition *);
static void GetInFrontOfPlayerPosition(struct MapPosition *);
@@ -228,7 +225,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input)
#if DEBUG
!input->input_field_1_1 &&
#endif
- mapheader_run_first_tag2_script_list_match() == 1)
+ TryRunOnFrameMapScript() == TRUE)
return TRUE;
if (input->pressedBButton && TrySetupDiveEmergeScript() == TRUE)
@@ -320,9 +317,9 @@ static bool8 TryStartInteractionScript(struct MapPosition *position, u16 metatil
// Play computer noise for PC-related scripts.
if (script != gUnknown_0815281E
&& script != gUnknown_08152C39
- && script != gUnknown_0815F36C
- && script != gUnknown_0815F43A
- && script != gUnknown_081A0009)
+ && script != SecretBase_EventScript_PC
+ && script != SecretBase_EventScript_RecordMixingPC
+ && script != EventScript_PC)
PlaySE(5);
ScriptContext1_SetupScript(script);
@@ -437,7 +434,7 @@ static u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 m
gSpecialVar_0x8005 = (u32)bgEvent->bgUnion.script;
if (FlagGet(gSpecialVar_0x8004) == TRUE)
return NULL;
- return HiddenItemScript;
+ return EventScript_HiddenItem;
case BG_EVENT_SECRET_BASE:
if (direction == DIR_NORTH)
{
@@ -458,7 +455,7 @@ static u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatile
if (MetatileBehavior_IsPlayerFacingTVScreen(metatileBehavior, direction) == TRUE)
return Event_TV;
if (MetatileBehavior_IsPC(metatileBehavior) == TRUE)
- return gUnknown_081A0009;
+ return EventScript_PC;
if (MetatileBehavior_IsClosedSootopolisDoor(metatileBehavior) == TRUE)
return ClosedSootopolisDoorScript;
if (MetatileBehavior_IsLinkBattleRecords(metatileBehavior) == TRUE)
@@ -468,35 +465,35 @@ static u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatile
if (MetatileBehavior_IsTrickHousePuzzleDoor(metatileBehavior) == TRUE)
return gUnknown_081616E1;
if (MetatileBehavior_IsRegionMap(metatileBehavior) == TRUE)
- return Event_WorldMap;
+ return EventScript_RegionMap;
if (MetatileBehavior_IsRunningShoesManual(metatileBehavior) == TRUE)
return S_RunningShoesManual;
if (MetatileBehavior_IsPictureBookShelf(metatileBehavior) == TRUE)
- return PictureBookShelfScript;
+ return EventScript_PictureBookshelf;
if (MetatileBehavior_IsBookShelf(metatileBehavior) == TRUE)
- return BookshelfScript;
+ return EventScript_Bookshelf;
if (MetatileBehavior_IsPokeCenterBookShelf(metatileBehavior) == TRUE)
- return PokemonCenterBookshelfScript;
+ return EventScript_PokemonCenterBookshelf;
if (MetatileBehavior_IsVase(metatileBehavior) == TRUE)
- return VaseScript;
+ return EventScript_Vase;
if (MetatileBehavior_IsTrashCan(metatileBehavior) == TRUE)
- return TrashCanScript;
+ return EventScript_EmptyTrashCan;
if (MetatileBehavior_IsShopShelf(metatileBehavior) == TRUE)
- return ShopShelfScript;
+ return EventScript_ShopShelf;
if (MetatileBehavior_IsBlueprint(metatileBehavior) == TRUE)
- return BlueprintScript;
+ return EventScript_Blueprint;
height = position->height;
if (height == MapGridGetZCoordAt(position->x, position->y))
{
if (MetatileBehavior_IsSecretBasePC(metatileBehavior) == TRUE)
- return gUnknown_0815F36C;
+ return SecretBase_EventScript_PC;
if (MetatileBehavior_IsRecordMixingSecretBasePC(metatileBehavior) == TRUE)
- return gUnknown_0815F43A;
+ return SecretBase_EventScript_RecordMixingPC;
if (MetatileBehavior_IsSecretBaseSandOrnament(metatileBehavior) == TRUE)
- return gUnknown_0815F523;
+ return SecretBase_EventScript_SandOrnament;
if (MetatileBehavior_IsSecretBaseShieldOrToyTV(metatileBehavior) == TRUE)
- return gUnknown_0815F528;
+ return SecretBase_EventScript_ShieldOrToyTV;
}
return NULL;
@@ -505,7 +502,7 @@ static u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatile
static u8 *GetInteractedWaterScript(struct MapPosition *unused1, u8 metatileBehavior, u8 direction)
{
if (FlagGet(FLAG_BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
- return UseSurfScript;
+ return EventScript_UseSurf;
if (MetatileBehavior_IsWaterfall(metatileBehavior) == TRUE)
{
@@ -566,7 +563,7 @@ bool8 TryStartCrackedFloorHoleScript(u16 metatileBehavior)
{
if (MetatileBehavior_IsCrackedFloorHole(metatileBehavior))
{
- ScriptContext1_SetupScript(S_FallDownHole);
+ ScriptContext1_SetupScript(EventScript_FallDownHole);
return TRUE;
}
return FALSE;
@@ -720,7 +717,7 @@ bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileBehavior
}
if (MetatileBehavior_IsMtPyreHole(metatileBehavior) == TRUE)
{
- ScriptContext1_SetupScript(gUnknown_081C6BDE);
+ ScriptContext1_SetupScript(EventScript_FallDownHoleMtPyre);
return TRUE;
}
sub_8080E88();
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 4e4ff7432..c757a4798 100644
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -1009,19 +1009,19 @@ static void sub_8127FD4(struct ObjectEvent *objectEvent, struct Sprite *sprite)
StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[objectEvent->movementDirection]);
}
-#ifdef NONMATCHING
static void sub_812800C(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- s16 x;
- s16 y;
u8 i;
+ s16 x = objectEvent->currentCoords.x;
+ s16 y = objectEvent->currentCoords.y;
+ s32 spriteY = sprite->pos2.y;
- x = objectEvent->currentCoords.x;
- y = objectEvent->currentCoords.y;
- if (sprite->pos2.y == 0 && (x != sprite->data[6] || y != sprite->data[7]))
+ if (spriteY == 0 && (x != sprite->data[6] || y != sprite->data[7]))
{
- sprite->data[5] = sprite->pos2.y;
- for (sprite->data[6] = x, sprite->data[7] = y, i = DIR_SOUTH; i <= DIR_EAST; i ++, x = sprite->data[6], y = sprite->data[7])
+ sprite->data[5] = spriteY;
+ sprite->data[6] = x;
+ sprite->data[7] = y;
+ for (i = DIR_SOUTH; i <= DIR_EAST; i++, x = sprite->data[6], y = sprite->data[7])
{
MoveCoords(i, &x, &y);
if (MapGridGetZCoordAt(x, y) == 3)
@@ -1032,87 +1032,6 @@ static void sub_812800C(struct ObjectEvent *objectEvent, struct Sprite *sprite)
}
}
}
-#else
-NAKED static void sub_812800C(struct ObjectEvent *objectEvent, struct Sprite *sprite)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r8\n"
- "\tpush {r7}\n"
- "\tsub sp, 0x4\n"
- "\tadds r4, r1, 0\n"
- "\tldrh r2, [r0, 0x10]\n"
- "\tmov r1, sp\n"
- "\tstrh r2, [r1]\n"
- "\tldrh r1, [r0, 0x12]\n"
- "\tmov r0, sp\n"
- "\tadds r0, 0x2\n"
- "\tstrh r1, [r0]\n"
- "\tmovs r2, 0x26\n"
- "\tldrsh r3, [r4, r2]\n"
- "\tmov r8, r0\n"
- "\tcmp r3, 0\n"
- "\tbne _08128094\n"
- "\tmov r0, sp\n"
- "\tmovs r5, 0\n"
- "\tldrsh r2, [r0, r5]\n"
- "\tmovs r5, 0x3A\n"
- "\tldrsh r0, [r4, r5]\n"
- "\tcmp r2, r0\n"
- "\tbne _08128048\n"
- "\tlsls r0, r1, 16\n"
- "\tasrs r0, 16\n"
- "\tmovs r5, 0x3C\n"
- "\tldrsh r1, [r4, r5]\n"
- "\tcmp r0, r1\n"
- "\tbeq _08128094\n"
- "_08128048:\n"
- "\tstrh r3, [r4, 0x38]\n"
- "\tstrh r2, [r4, 0x3A]\n"
- "\tmov r1, r8\n"
- "\tmovs r2, 0\n"
- "\tldrsh r0, [r1, r2]\n"
- "\tstrh r0, [r4, 0x3C]\n"
- "\tmovs r5, 0x1\n"
- "\tmov r7, r8\n"
- "\tmov r6, sp\n"
- "_0812805A:\n"
- "\tadds r0, r5, 0\n"
- "\tmov r1, sp\n"
- "\tadds r2, r7, 0\n"
- "\tbl MoveCoords\n"
- "\tmovs r1, 0\n"
- "\tldrsh r0, [r6, r1]\n"
- "\tmovs r2, 0\n"
- "\tldrsh r1, [r7, r2]\n"
- "\tbl MapGridGetZCoordAt\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tcmp r0, 0x3\n"
- "\tbne _08128080\n"
- "\tldrh r0, [r4, 0x38]\n"
- "\tadds r0, 0x1\n"
- "\tstrh r0, [r4, 0x38]\n"
- "\tb _08128094\n"
- "_08128080:\n"
- "\tadds r0, r5, 0x1\n"
- "\tlsls r0, 24\n"
- "\tlsrs r5, r0, 24\n"
- "\tldrh r0, [r4, 0x3A]\n"
- "\tstrh r0, [r6]\n"
- "\tldrh r0, [r4, 0x3C]\n"
- "\tmov r1, r8\n"
- "\tstrh r0, [r1]\n"
- "\tcmp r5, 0x4\n"
- "\tbls _0812805A\n"
- "_08128094:\n"
- "\tadd sp, 0x4\n"
- "\tpop {r3}\n"
- "\tmov r8, r3\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0");
-}
-#endif
static void sub_81280A0(struct ObjectEvent *objectEvent, struct Sprite *linkedSprite, struct Sprite *sprite)
{
@@ -1453,152 +1372,35 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite)
UpdateObjectEventSpriteVisibility(sprite, FALSE);
}
-#ifdef NONMATCHING
static void sub_812882C(struct Sprite *sprite /*r6*/, u8 z, u8 offset)
{
u8 i;
- s16 xlo;
- s16 xhi;
- s16 lx;
- s16 lyhi;
- s16 ly;
- s16 ylo;
- s16 yhi;
- struct ObjectEvent *objectEvent; // r4
- const struct ObjectEventGraphicsInfo *graphicsInfo; // destroyed
- struct Sprite *linkedSprite; // r5
+ s16 var, xhi, lyhi, yhi, ylo;
+ const struct ObjectEventGraphicsInfo *graphicsInfo; // Unused Variable
+ struct Sprite *linkedSprite;
SetObjectSubpriorityByZCoord(z, sprite, offset);
- for (i = 0; i < 16; i ++)
+ for (i = 0; i < OBJECT_EVENTS_COUNT; i ++)
{
- objectEvent = &gObjectEvents[i];
+ struct ObjectEvent *objectEvent = &gObjectEvents[i];
if (objectEvent->active)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
linkedSprite = &gSprites[objectEvent->spriteId];
xhi = sprite->pos1.x + sprite->centerToCornerVecX;
- xlo = sprite->pos1.x - sprite->centerToCornerVecX;
- lx = linkedSprite->pos1.x;
- if (xhi < lx && xlo > lx)
+ var = sprite->pos1.x - sprite->centerToCornerVecX;
+ if (xhi < linkedSprite->pos1.x && var > linkedSprite->pos1.x)
{
lyhi = linkedSprite->pos1.y + linkedSprite->centerToCornerVecY;
- ly = linkedSprite->pos1.y;
+ var = linkedSprite->pos1.y;
ylo = sprite->pos1.y - sprite->centerToCornerVecY;
yhi = ylo + linkedSprite->centerToCornerVecY;
- if ((lyhi < yhi || lyhi < ylo) && ly > yhi)
+ if ((lyhi < yhi || lyhi < ylo) && var > yhi && sprite->subpriority <= linkedSprite->subpriority)
{
- if (sprite->subpriority <= linkedSprite->subpriority)
- {
- sprite->subpriority = linkedSprite->subpriority + 2;
- break;
- }
+ sprite->subpriority = linkedSprite->subpriority + 2;
+ break;
}
}
}
}
-}
-#else
-NAKED static void sub_812882C(struct Sprite *sprite /*r6*/, u8 z, u8 offset)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tadds r6, r0, 0\n"
- "\tadds r0, r1, 0\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tlsls r2, 24\n"
- "\tlsrs r2, 24\n"
- "\tadds r1, r6, 0\n"
- "\tbl SetObjectSubpriorityByZCoord\n"
- "\tmovs r7, 0\n"
- "_08128842:\n"
- "\tlsls r0, r7, 3\n"
- "\tadds r0, r7\n"
- "\tlsls r0, 2\n"
- "\tldr r1, _081288DC @ =gObjectEvents\n"
- "\tadds r4, r0, r1\n"
- "\tldrb r0, [r4]\n"
- "\tlsls r0, 31\n"
- "\tcmp r0, 0\n"
- "\tbeq _081288E4\n"
- "\tldrb r0, [r4, 0x5]\n"
- "\tbl GetObjectEventGraphicsInfo\n"
- "\tldrb r1, [r4, 0x4]\n"
- "\tlsls r0, r1, 4\n"
- "\tadds r0, r1\n"
- "\tlsls r0, 2\n"
- "\tldr r1, _081288E0 @ =gSprites\n"
- "\tadds r5, r0, r1\n"
- "\tadds r0, r6, 0\n"
- "\tadds r0, 0x28\n"
- "\tmovs r2, 0\n"
- "\tldrsb r2, [r0, r2]\n"
- "\tldrh r0, [r6, 0x20]\n"
- "\tadds r1, r0, r2\n"
- "\tsubs r0, r2\n"
- "\tlsls r0, 16\n"
- "\tlsrs r4, r0, 16\n"
- "\tlsls r1, 16\n"
- "\tasrs r1, 16\n"
- "\tmovs r0, 0x20\n"
- "\tldrsh r2, [r5, r0]\n"
- "\tcmp r1, r2\n"
- "\tbge _081288E4\n"
- "\tlsls r0, r4, 16\n"
- "\tasrs r0, 16\n"
- "\tcmp r0, r2\n"
- "\tble _081288E4\n"
- "\tadds r0, r5, 0\n"
- "\tadds r0, 0x29\n"
- "\tmovs r3, 0\n"
- "\tldrsb r3, [r0, r3]\n"
- "\tldrh r2, [r5, 0x22]\n"
- "\tadds r2, r3\n"
- "\tldrh r4, [r5, 0x22]\n"
- "\tadds r0, r6, 0\n"
- "\tadds r0, 0x29\n"
- "\tmovs r1, 0\n"
- "\tldrsb r1, [r0, r1]\n"
- "\tldrh r0, [r6, 0x22]\n"
- "\tsubs r0, r1\n"
- "\tlsls r0, 16\n"
- "\tasrs r0, 16\n"
- "\tadds r3, r0, r3\n"
- "\tlsls r2, 16\n"
- "\tasrs r2, 16\n"
- "\tlsls r3, 16\n"
- "\tasrs r3, 16\n"
- "\tcmp r2, r3\n"
- "\tblt _081288BC\n"
- "\tcmp r2, r0\n"
- "\tbge _081288E4\n"
- "_081288BC:\n"
- "\tlsls r0, r4, 16\n"
- "\tasrs r0, 16\n"
- "\tcmp r0, r3\n"
- "\tble _081288E4\n"
- "\tadds r2, r6, 0\n"
- "\tadds r2, 0x43\n"
- "\tadds r0, r5, 0\n"
- "\tadds r0, 0x43\n"
- "\tldrb r1, [r0]\n"
- "\tldrb r0, [r2]\n"
- "\tcmp r0, r1\n"
- "\tbhi _081288E4\n"
- "\tadds r0, r1, 0x2\n"
- "\tstrb r0, [r2]\n"
- "\tb _081288EE\n"
- "\t.align 2, 0\n"
- "_081288DC: .4byte gObjectEvents\n"
- "_081288E0: .4byte gSprites\n"
- "_081288E4:\n"
- "\tadds r0, r7, 0x1\n"
- "\tlsls r0, 24\n"
- "\tlsrs r7, r0, 24\n"
- "\tcmp r7, 0xF\n"
- "\tbls _08128842\n"
- "_081288EE:\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0");
-}
-#endif
+} \ No newline at end of file
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index ee1b334a8..a4959703e 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -401,7 +401,7 @@ void sub_8080EF0(void)
CreateTask(sub_808115C, 10);
}
-void sp13F_fall_to_last_warp(void)
+void DoFallWarp(void)
{
sp13E_warp_to_last_warp();
gFieldCallback = sub_8086748;
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index 78c425bc5..343830f25 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -338,7 +338,7 @@ void Task_HandlePorthole(u8 taskId)
}
break;
case EXIT_PORTHOLE: // exit porthole.
- FlagClear(FLAG_SPECIAL_FLAG_1);
+ FlagClear(FLAG_DONT_TRANSITION_MUSIC);
FlagClear(FLAG_SPECIAL_FLAG_0);
copy_saved_warp2_bank_and_enter_x_to_warp1(0);
sp13E_warp_to_last_warp();
@@ -375,7 +375,7 @@ void sub_80C791C(void)
void sub_80C7958(void)
{
FlagSet(FLAG_SYS_CRUISE_MODE);
- FlagSet(FLAG_SPECIAL_FLAG_1);
+ FlagSet(FLAG_DONT_TRANSITION_MUSIC);
FlagSet(FLAG_SPECIAL_FLAG_0);
saved_warp2_set(0, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1);
sub_80C7754();
diff --git a/src/field_specials.c b/src/field_specials.c
index 972b63a0d..38a0bd50b 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -722,7 +722,7 @@ void CableCarWarp(void)
}
}
-void SetFlagInVar(void)
+void SetHiddenItemFlag(void)
{
FlagSet(gSpecialVar_0x8004);
}
@@ -1791,7 +1791,7 @@ bool8 IsPokerusInParty(void)
static void sub_810F7A8(u8);
static void sub_810F814(u8);
-void sub_810F758(void)
+void ShakeCamera(void)
{
u8 taskId = CreateTask(sub_810F7A8, 9);
gTasks[taskId].data[0] = gSpecialVar_0x8005;
@@ -1966,7 +1966,7 @@ void sub_810FA74(void)
}
}
-void sub_810FAA0(void)
+void UpdateTrainerFanClubGameClear(void)
{
if (!((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1))
{
diff --git a/src/field_weather.c b/src/field_weather.c
index 340445fd2..eb802ae84 100644
--- a/src/field_weather.c
+++ b/src/field_weather.c
@@ -15,6 +15,7 @@
#include "task.h"
#include "trig.h"
#include "ewram.h"
+#include "constants/field_weather.h"
#define MACRO1(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00))
diff --git a/src/fieldmap.c b/src/fieldmap.c
index aa6c72c7f..232ee05f9 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -38,7 +38,7 @@ void not_trainer_hill_battle_pyramid(void)
{
mapheader_copy_mapdata_with_padding(&gMapHeader);
sub_80BB970(gMapHeader.events);
- mapheader_run_script_with_tag_x1();
+ RunOnLoadMapScript();
}
void sub_8055FC0(void)
@@ -47,7 +47,7 @@ void sub_8055FC0(void)
sub_80BBCCC(0);
sub_80BB970(gMapHeader.events);
sub_8056670();
- mapheader_run_script_with_tag_x1();
+ RunOnLoadMapScript();
UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height);
}
diff --git a/src/hof_pc.c b/src/hof_pc.c
index ba64b5f4f..767970da7 100644
--- a/src/hof_pc.c
+++ b/src/hof_pc.c
@@ -29,7 +29,7 @@ static void ReshowPCMenuAfterHallOfFamePC(void)
ScriptContext2_Enable();
Overworld_PlaySpecialMapMusic();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0));
- ScrSpecial_CreatePCMenu();
+ ScriptMenu_CreatePCMultichoice();
ScriptMenu_DisplayPCStartupPrompt();
CreateTask(Task_WaitForPaletteFade, 10);
}
diff --git a/src/item.c b/src/item.c
index 470b4d430..8483e6d3f 100644
--- a/src/item.c
+++ b/src/item.c
@@ -64,7 +64,7 @@ void CopyItemName(u16 itemId, u8 *string)
{
if (itemId == ITEM_ENIGMA_BERRY)
{
- StringCopy(string, GetBerryInfo(GETBERRYID(ITEM_ENIGMA_BERRY))->name);
+ StringCopy(string, GetBerryInfo(ITEM_TO_BERRY(ITEM_ENIGMA_BERRY))->name);
StringAppend(string, gOtherText_Berry2);
}
else
diff --git a/src/mail.c b/src/mail.c
index 9a56d73cc..65c85e39b 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -868,7 +868,7 @@ u8 debug_sub_810CEA4(void)
if (!gPaletteFade.active)
{
gSpecialVar_0x8004 = 4;
- sub_80E60D8();
+ ShowEasyChatScreen();
return 1;
}
return 0;
diff --git a/src/main.c b/src/main.c
index b778631f3..433143b38 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,14 +24,7 @@ static void VCountIntr(void);
static void SerialIntr(void);
static void IntrDummy(void);
-#ifdef SAPPHIRE
-#define GAME_VERSION VERSION_SAPPHIRE
-#else
-#define GAME_VERSION VERSION_RUBY
-#endif
-
const u8 gGameVersion = GAME_VERSION;
-
const u8 gGameLanguage = GAME_LANGUAGE;
// The debug menu expects this exact format. With the English build string, it
diff --git a/src/new_game.c b/src/new_game.c
index 683a22801..63a13be5e 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -38,7 +38,7 @@ extern u8 gPlayerPartyCount;
extern u8 gUnknown_03005CE8;
extern u16 gSaveFileStatus;
-extern u8 gUnknown_0819FA81[];
+extern u8 EventScript_ResetAllMapFlags[];
static const struct ContestWinner sEmptyMuseumPortrait =
{
@@ -202,7 +202,7 @@ void NewGameInitData(void)
ResetFanClub();
ResetLotteryCorner();
WarpToTruck();
- ScriptContext2_RunNewScript(gUnknown_0819FA81);
+ ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags);
}
#if DEBUG
diff --git a/src/overworld.c b/src/overworld.c
index d50f72406..7265cf50a 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -60,8 +60,8 @@ extern u8 gUnknown_020297ED;
extern u16 gTotalCameraPixelOffsetY;
extern u16 gTotalCameraPixelOffsetX;
-extern u8 S_WhiteOut[];
-extern u8 gUnknown_0819FC9F[];
+extern u8 EventScript_WhiteOut[];
+extern u8 EventScript_ResetMrBriney[];
extern u8 SingleBattleColosseum_EventScript_1A436F[];
extern u8 SingleBattleColosseum_EventScript_1A4379[];
extern u8 DoubleBattleColosseum_EventScript_1A4383[];
@@ -208,7 +208,7 @@ static void (*const gUnknown_082166D8[])(struct LinkPlayerObjectEvent *, struct
static void DoWhiteOut(void)
{
- ScriptContext2_RunNewScript(S_WhiteOut);
+ ScriptContext2_RunNewScript(EventScript_WhiteOut);
gSaveBlock1.money /= 2;
ScrSpecial_HealPlayerParty();
Overworld_ResetStateAfterWhiteOut();
@@ -234,7 +234,7 @@ void Overworld_ResetStateAfterTeleport(void)
FlagClear(FLAG_SYS_SAFARI_MODE);
FlagClear(FLAG_SYS_USE_STRENGTH);
FlagClear(FLAG_SYS_USE_FLASH);
- ScriptContext2_RunNewScript(gUnknown_0819FC9F);
+ ScriptContext2_RunNewScript(EventScript_ResetMrBriney);
}
void Overworld_ResetStateAfterDigEscRope(void)
@@ -582,7 +582,7 @@ static bool8 SetDiveWarp(u8 direction, u16 x, u16 y)
}
else
{
- mapheader_run_script_with_tag_x6();
+ RunOnDiveWarpMapScript();
if (IsDummyWarp(&gFixedDiveWarp))
return FALSE;
@@ -620,7 +620,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
ChooseAmbientCrySpecies();
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
- mapheader_run_script_with_tag_x3();
+ RunOnTransitionMapScript();
not_trainer_hill_battle_pyramid();
sub_8056D38(gMapHeader.mapLayout);
apply_map_tileset2_palette(gMapHeader.mapLayout);
@@ -633,7 +633,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
RoamerMove();
DoCurrentWeather();
ResetFieldTasksArgs();
- mapheader_run_script_with_tag_x5();
+ RunOnResumeMapScript();
ShowMapNamePopup();
}
@@ -658,7 +658,7 @@ void sub_8053994(u32 a1)
FlagClear(FLAG_SYS_USE_FLASH);
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
- mapheader_run_script_with_tag_x3();
+ RunOnTransitionMapScript();
UpdateLocationHistoryForRoamer();
RoamerMoveToOtherLocationSet();
not_trainer_hill_battle_pyramid();
@@ -926,7 +926,7 @@ void Overworld_ClearSavedMusic(void)
void sub_8053F0C(void)
{
- if (FlagGet(FLAG_SPECIAL_FLAG_1) != TRUE)
+ if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE)
{
u16 newMusic = GetWarpDestinationMusic();
u16 currentMusic = GetCurrentMapMusic();
@@ -973,7 +973,7 @@ u8 GetMapMusicFadeoutSpeed(void)
void TryFadeOutOldMapMusic(void)
{
u16 music = GetWarpDestinationMusic();
- if (FlagGet(FLAG_SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic())
+ if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE && music != GetCurrentMapMusic())
{
u8 speed = GetMapMusicFadeoutSpeed();
FadeOutMapMusic(speed);
@@ -1829,7 +1829,7 @@ void sub_8054D4C(u32 a1)
sub_8080750();
if (!a1)
SetUpFieldTasks();
- mapheader_run_script_with_tag_x5();
+ RunOnResumeMapScript();
}
void sub_8054D90(void)
@@ -1838,7 +1838,7 @@ void sub_8054D90(void)
gTotalCameraPixelOffsetY = 0;
ResetObjectEvents();
TrySpawnObjectEvents(0, 0);
- mapheader_run_first_tag4_script_list_match();
+ TryRunOnWarpIntoMapScript();
}
void mli4_mapscripts_and_other(void)
@@ -1855,7 +1855,7 @@ void mli4_mapscripts_and_other(void)
ResetInitialPlayerAvatarState();
TrySpawnObjectEvents(0, 0);
ResetBerryTreeSparkleFlags();
- mapheader_run_first_tag4_script_list_match();
+ TryRunOnWarpIntoMapScript();
}
void sub_8054E20(void)
diff --git a/src/pokedex.c b/src/pokedex.c
index 8d7ecb896..ea6c69478 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -1961,8 +1961,8 @@ static void sub_808D640(void)
static void SortPokedex(u8 dexMode, u8 sortMode)
{
+ s16 i, r5, r10;
u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever.
- s16 i;
gPokedexView->pokemonListCount = 0;
@@ -2004,18 +2004,13 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
}
else
{
- bool32 r10;
- s16 r5;
-
- r10 = r5 = i = 0;
- for (i = 0; i < vars[0]; i++)
+ for (i = 0, r5= 0, r10 = 0; i < vars[0]; i++)
{
vars[2] = i + 1;
if (GetSetPokedexFlag(vars[2], 0))
r10 = 1;
if (r10)
{
- asm(""); //Needed to match for some reason
gPokedexView->unk0[r5].dexNum = vars[2];
gPokedexView->unk0[r5].seen = GetSetPokedexFlag(vars[2], 0);
gPokedexView->unk0[r5].owned = GetSetPokedexFlag(vars[2], 1);
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index a92d12fd9..9fd145b80 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -1031,14 +1031,14 @@ u8 CalculateEnemyPartyCount(void)
return gEnemyPartyCount;
}
-u8 sub_803DAA0(void)
+u8 GetMonsStateToDoubles(void)
{
s32 aliveCount = 0;
s32 i;
CalculatePlayerPartyCount();
if (gPlayerPartyCount == 1)
- return gPlayerPartyCount;
+ return gPlayerPartyCount; // PLAYER_HAS_ONE_MON
for (i = 0; i < gPlayerPartyCount; i++)
{
@@ -1048,7 +1048,7 @@ u8 sub_803DAA0(void)
aliveCount++;
}
- return (aliveCount > 1) ? 0 : 2;
+ return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON;
}
u8 GetAbilityBySpecies(u16 species, bool8 altAbility)
diff --git a/src/pokemon_item_effect.c b/src/pokemon_item_effect.c
index d59e8d77c..3ab351367 100644
--- a/src/pokemon_item_effect.c
+++ b/src/pokemon_item_effect.c
@@ -96,7 +96,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo
sp34 = 4;
}
- if (!IS_POKEMON_ITEM(item))
+ if (!ITEM_HAS_EFFECT(item))
return TRUE;
if (gItemEffectTable[item - 13] == NULL && item != ITEM_ENIGMA_BERRY)
return TRUE;
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 8588bf637..9a2d32837 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -44,7 +44,7 @@ struct BattleTowerRecord *gBattleTowerPlayerRecord = &gSaveBlock2.battleTower.pl
#define BUFFER_CHUNK_SIZE 200
-void sub_80B929C(void)
+void RecordMixingPlayerSpotTriggered(void)
{
sub_8083A84(Task_RecordMixing_Main);
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index ec3d2c1bc..1a2d55f2e 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -483,7 +483,7 @@ bool8 ScrCmd_random(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_giveitem(struct ScriptContext *ctx)
+bool8 ScrCmd_additem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
@@ -492,7 +492,7 @@ bool8 ScrCmd_giveitem(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_takeitem(struct ScriptContext *ctx)
+bool8 ScrCmd_removeitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
@@ -527,7 +527,7 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_givepcitem(struct ScriptContext *ctx)
+bool8 ScrCmd_addpcitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
@@ -545,15 +545,15 @@ bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_givedecoration(struct ScriptContext *ctx)
+bool8 ScrCmd_adddecoration(struct ScriptContext *ctx)
{
u32 decoration = VarGet(ScriptReadHalfword(ctx));
- gSpecialVar_Result = GiveDecoration(decoration);
+ gSpecialVar_Result = AddDecoration(decoration);
return FALSE;
}
-bool8 ScrCmd_takedecoration(struct ScriptContext *ctx)
+bool8 ScrCmd_removedecoration(struct ScriptContext *ctx)
{
u32 decoration = VarGet(ScriptReadHalfword(ctx));
@@ -667,7 +667,7 @@ bool8 ScrCmd_initclock(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx)
+bool8 ScrCmd_dotimebasedevents(struct ScriptContext *ctx)
{
DoTimeBasedEvents();
return FALSE;
@@ -770,7 +770,7 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx)
SetFixedHoleWarpAsDestination(x - 7, y - 7);
else
Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7);
- sp13F_fall_to_last_warp();
+ DoFallWarp();
ResetInitialPlayerAvatarState();
return TRUE;
}
@@ -1386,7 +1386,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx)
}
}
-bool8 ScrCmd_drawmonpic(struct ScriptContext *ctx)
+bool8 ScrCmd_showmonpic(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u8 x = ScriptReadByte(ctx);
@@ -1396,7 +1396,7 @@ bool8 ScrCmd_drawmonpic(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_erasemonpic(struct ScriptContext *ctx)
+bool8 ScrCmd_hidemonpic(struct ScriptContext *ctx)
{
bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc();
@@ -1406,7 +1406,7 @@ bool8 ScrCmd_erasemonpic(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_drawcontestwinner(struct ScriptContext *ctx)
+bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx)
{
u8 v1 = ScriptReadByte(ctx);
@@ -1513,7 +1513,7 @@ bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx)
u8 stringVarIndex = ScriptReadByte(ctx);
u16 index = VarGet(ScriptReadHalfword(ctx));
- StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]);
+ StringCopy(sScriptStringVars[stringVarIndex], gStdStrings[index]);
return FALSE;
}
@@ -1598,7 +1598,7 @@ bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_givemoney(struct ScriptContext *ctx)
+bool8 ScrCmd_addmoney(struct ScriptContext *ctx)
{
u32 amount = ScriptReadWord(ctx);
u8 ignore = ScriptReadByte(ctx);
@@ -1608,7 +1608,7 @@ bool8 ScrCmd_givemoney(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_takemoney(struct ScriptContext *ctx)
+bool8 ScrCmd_removemoney(struct ScriptContext *ctx)
{
u32 amount = ScriptReadWord(ctx);
u8 ignore = ScriptReadByte(ctx);
@@ -1997,22 +1997,22 @@ bool8 ScrCmd_checkcoins(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
+bool8 ScrCmd_addcoins(struct ScriptContext *ctx)
{
u16 coins = VarGet(ScriptReadHalfword(ctx));
- if (GiveCoins(coins) == TRUE)
+ if (AddCoins(coins) == TRUE)
gSpecialVar_Result = 0;
else
gSpecialVar_Result = 1;
return FALSE;
}
-bool8 ScrCmd_takecoins(struct ScriptContext *ctx)
+bool8 ScrCmd_removecoins(struct ScriptContext *ctx)
{
u16 coins = VarGet(ScriptReadHalfword(ctx));
- if (TakeCoins(coins) == TRUE)
+ if (RemoveCoins(coins) == TRUE)
gSpecialVar_Result = 0;
else
gSpecialVar_Result = 1;
diff --git a/src/script.c b/src/script.c
index 2c6495552..cd4816a52 100644
--- a/src/script.c
+++ b/src/script.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "script.h"
#include "event_data.h"
+#include "constants/map_scripts.h"
#define RAM_SCRIPT_MAGIC 51
#define SCRIPT_STACK_SIZE 20
@@ -256,14 +257,14 @@ static u8 *mapheader_get_tagged_pointer(u8 tag)
}
}
-static void mapheader_run_script_by_tag(u8 tag)
+static void MapHeaderRunScriptType(u8 tag)
{
u8 *ptr = mapheader_get_tagged_pointer(tag);
if (ptr)
ScriptContext2_RunNewScript(ptr);
}
-static u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag)
+static u8 *MapHeaderCheckScriptTable(u8 tag)
{
u8 *ptr = mapheader_get_tagged_pointer(tag);
@@ -286,29 +287,29 @@ static u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag)
}
}
-void mapheader_run_script_with_tag_x1(void)
+void RunOnLoadMapScript(void)
{
- mapheader_run_script_by_tag(1);
+ MapHeaderRunScriptType(MAP_SCRIPT_ON_LOAD);
}
-void mapheader_run_script_with_tag_x3(void)
+void RunOnTransitionMapScript(void)
{
- mapheader_run_script_by_tag(3);
+ MapHeaderRunScriptType(MAP_SCRIPT_ON_TRANSITION);
}
-void mapheader_run_script_with_tag_x5(void)
+void RunOnResumeMapScript(void)
{
- mapheader_run_script_by_tag(5);
+ MapHeaderRunScriptType(MAP_SCRIPT_ON_RESUME);
}
-void mapheader_run_script_with_tag_x6(void)
+void RunOnDiveWarpMapScript(void)
{
- mapheader_run_script_by_tag(6);
+ MapHeaderRunScriptType(MAP_SCRIPT_ON_DIVE_WARP);
}
-bool8 mapheader_run_first_tag2_script_list_match(void)
+bool8 TryRunOnFrameMapScript(void)
{
- u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(2);
+ u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_FRAME_TABLE);
if (!ptr)
return 0;
@@ -317,9 +318,9 @@ bool8 mapheader_run_first_tag2_script_list_match(void)
return 1;
}
-void mapheader_run_first_tag4_script_list_match(void)
+void TryRunOnWarpIntoMapScript(void)
{
- u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4);
+ u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE);
if (ptr)
ScriptContext2_RunNewScript(ptr);
}
diff --git a/src/script_menu.c b/src/script_menu.c
index 1a7489c82..03aef9813 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -11,6 +11,7 @@
#include "sprite.h"
#include "strings.h"
#include "task.h"
+#include "constants/script_menu.h"
// multichoice lists
const struct MenuAction MultichoiceList_00[] =
@@ -555,30 +556,30 @@ const struct MultichoiceListStruct gMultichoiceLists[] =
{MultichoiceList_72, ARRAY_COUNT(MultichoiceList_72)},
};
-const u8 *const gUnknown_083CE048[] =
+const u8 *const gStdStrings[] =
{
- OtherText_Cool2,
- OtherText_Beauty3,
- OtherText_Cute2,
- OtherText_Smart2,
- OtherText_Tough2,
- OtherText_Normal,
- OtherText_Super,
- OtherText_Hyper,
- OtherText_Master,
- OtherText_Cool3,
- OtherText_Beauty4,
- OtherText_Cute3,
- OtherText_Smart3,
- OtherText_Tough3,
- OtherText_Items,
- OtherText_KeyItems,
- OtherText_Balls,
- OtherText_TMsHMs,
- OtherText_Berries,
+ [STDSTRING_COOL] = OtherText_Cool2,
+ [STDSTRING_BEAUTY] = OtherText_Beauty3,
+ [STDSTRING_CUTE] = OtherText_Cute2,
+ [STDSTRING_SMART] = OtherText_Smart2,
+ [STDSTRING_TOUGH] = OtherText_Tough2,
+ [STDSTRING_NORMAL] = OtherText_Normal,
+ [STDSTRING_SUPER] = OtherText_Super,
+ [STDSTRING_HYPER] = OtherText_Hyper,
+ [STDSTRING_MASTER] = OtherText_Master,
+ [STDSTRING_COOL2] = OtherText_Cool3,
+ [STDSTRING_BEAUTY2] = OtherText_Beauty4,
+ [STDSTRING_CUTE2] = OtherText_Cute3,
+ [STDSTRING_SMART2] = OtherText_Smart3,
+ [STDSTRING_TOUGH2] = OtherText_Tough3,
+ [STDSTRING_ITEMS] = OtherText_Items,
+ [STDSTRING_KEYITEMS] = OtherText_KeyItems,
+ [STDSTRING_POKEBALLS] = OtherText_Balls,
+ [STDSTRING_TMHMS] = OtherText_TMsHMs,
+ [STDSTRING_BERRIES] = OtherText_Berries,
};
-extern u8 gPCText_WhichPCShouldBeAccessed[];
+extern u8 Text_WhichPCShouldBeAccessed[];
extern u16 gSpecialVar_Result;
@@ -880,7 +881,7 @@ static void Task_HandleMultichoiceGridInput(u8 taskId)
#undef tIgnoreBPress
#undef tDoWrap
-bool8 ScrSpecial_CreatePCMenu(void)
+bool8 ScriptMenu_CreatePCMultichoice(void)
{
if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
{
@@ -1097,7 +1098,7 @@ _080B588C: .4byte gPCText_PlayersPC\n\
void ScriptMenu_DisplayPCStartupPrompt(void)
{
Menu_DisplayDialogueFrame();
- Menu_PrintText(gPCText_WhichPCShouldBeAccessed, 2, 15);
+ Menu_PrintText(Text_WhichPCShouldBeAccessed, 2, 15);
}
#define tState data[0]
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index ce6c01439..c405d9cb4 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -437,20 +437,18 @@ u8 ScriptGiveEgg(u16 species)
return GiveMonToPlayer(&mon);
}
-void CheckForAlivePartyMons(void)
+void HasEnoughMonsForDoubleBattle(void)
{
- u8 var = sub_803DAA0();
-
- switch(var)
+ switch (GetMonsStateToDoubles())
{
- case 1:
- gSpecialVar_Result = var;
+ case PLAYER_HAS_TWO_USABLE_MONS:
+ gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS;
break;
- case 0:
- gSpecialVar_Result = var;
+ case PLAYER_HAS_ONE_MON:
+ gSpecialVar_Result = PLAYER_HAS_ONE_MON;
break;
- case 2:
- gSpecialVar_Result = var;
+ case PLAYER_HAS_ONE_USABLE_MON:
+ gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON;
break;
}
}
diff --git a/src/secret_base.c b/src/secret_base.c
index 097d95cfe..21dd83dd2 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -30,6 +30,7 @@
#include "task.h"
#include "text.h"
#include "constants/event_bg.h"
+#include "constants/event_objects.h"
#include "constants/decorations.h"
#include "constants/items.h"
#include "constants/map_types.h"
@@ -50,9 +51,10 @@ static void sub_80BCBC0(u8);
static void sub_80BCBF8(u8 taskId);
static void sub_80BCC54(u8 taskId);
static void Task_SecretBasePC_Registry(u8 taskId);
+static u8 GetSecretBaseOwnerType(u8 secretBaseIndex);
-extern u8 gUnknown_0815F399[];
-extern u8 gUnknown_0815F49A[];
+extern u8 SecretBase_EventScript_PCCancel[];
+extern u8 SecretBase_EventScript_ShowRegisterMenu[];
EWRAM_DATA u8 gCurrentSecretBaseId = 0;
const struct
@@ -107,8 +109,19 @@ const struct YesNoFuncTable gUnknown_083D13E4 = {
sub_80BCBC0
};
-const u8 gUnknown_083D13EC[] = {
- 0x23,0x24,0xF,0x1F,0x21,0x2F,0xE,0x14,0x20,0x22,0x0,0x0
+static const u8 sSecretBaseOwnerGfxIds[] = {
+ // Male
+ OBJ_EVENT_GFX_YOUNGSTER,
+ OBJ_EVENT_GFX_BUG_CATCHER,
+ OBJ_EVENT_GFX_BOY_4,
+ OBJ_EVENT_GFX_CAMPER,
+ OBJ_EVENT_GFX_MAN_4,
+ // Female
+ OBJ_EVENT_GFX_LASS,
+ OBJ_EVENT_GFX_GIRL_3,
+ OBJ_EVENT_GFX_WOMAN_3,
+ OBJ_EVENT_GFX_PICNICKER,
+ OBJ_EVENT_GFX_WOMAN_7,
};
extern u8 gUnknown_081A2E14[];
@@ -380,7 +393,7 @@ void sub_80BBAF0(void)
bool8 sub_80BBB24(void)
{
- if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_0x4097) == 0)
+ if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_INIT_SECRET_BASE) == 0)
return FALSE;
return TRUE;
}
@@ -462,7 +475,7 @@ void sub_80BBCCC(u8 flagIn)
sub_80BB764(&x, &y, 0x220);
MapGridSetMetatileIdAt(x + 7, y + 7, 0xe21);
}
- else if (flagIn == 1 && VarGet(VAR_0x4089) == 1)
+ else if (flagIn == 1 && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1)
{
sub_80BB764(&x, &y, 0x220);
MapGridSetMetatileIdAt(x + 7, y + 7, 0xe0a);
@@ -512,7 +525,7 @@ void sub_80BBDD0(void)
metatile = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7);
if (MetatileBehavior_IsSecretBaseLargeMatEdge(metatile) == TRUE || MetatileBehavior_IsLargeMatCenter(metatile) == TRUE)
{
- gSpecialVar_Result = gMapHeader.events->objectEvents[objid].graphicsId + VAR_0x3F20;
+ gSpecialVar_Result = VAR_OBJ_GFX_ID_0 + (gMapHeader.events->objectEvents[objid].graphicsId - OBJ_EVENT_GFX_VAR_0);
VarSet(gSpecialVar_Result, gDecorations[roomdecor[decidx]].tiles[0]);
gSpecialVar_Result = gMapHeader.events->objectEvents[objid].localId;
FlagClear(gSpecialVar_0x8004 + 0xAE);
@@ -527,10 +540,10 @@ void sub_80BBDD0(void)
}
}
-void sub_80BBFA4(void)
+void SetSecretBaseOwnerGfxId(void)
{
int curBase = VarGet(VAR_CURRENT_SECRET_BASE);
- VarSet(VAR_OBJ_GFX_ID_F, gUnknown_083D13EC[sub_80BCCA4(curBase)]);
+ VarSet(VAR_OBJ_GFX_ID_F, sSecretBaseOwnerGfxIds[GetSecretBaseOwnerType(curBase)]);
}
void SetCurrentSecretBaseFromPosition(struct MapPosition *position, struct MapEvents *events)
@@ -704,7 +717,7 @@ void sub_80BC440(void)
sub_80BC0F8();
}
-void SecretBasePC_PackUp(void)
+void MoveOutOfSecretBase(void)
{
IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE);
sub_80BC440();
@@ -765,7 +778,7 @@ u8 sub_80BC538(void)
return retVal;
}
-void sub_80BC56C(void)
+void GetCurSecretBaseRegistrationValidity(void)
{
if (sub_80BC268(sub_80BC14C(gCurrentSecretBaseId)) == TRUE)
gSpecialVar_Result = 1;
@@ -775,10 +788,10 @@ void sub_80BC56C(void)
gSpecialVar_Result = 0;
}
-void sub_80BC5BC(void)
+void ToggleCurSecretBaseRegistry(void)
{
gSaveBlock1.secretBases[sub_80BC14C(gCurrentSecretBaseId)].sbr_field_1_6 ^= 1;
- FlagSet(FLAG_DECORATION_16);
+ FlagSet(FLAG_SECRET_BASE_REGISTRY_ENABLED);
}
void SecretBasePC_Decoration(void)
@@ -1076,14 +1089,14 @@ void sub_80BCC54(u8 taskId)
DestroyVerticalScrollIndicator(BOTTOM_ARROW);
if (curBaseIndex == 0)
- ScriptContext1_SetupScript(gUnknown_0815F399);
+ ScriptContext1_SetupScript(SecretBase_EventScript_PCCancel);
else
- ScriptContext1_SetupScript(gUnknown_0815F49A);
+ ScriptContext1_SetupScript(SecretBase_EventScript_ShowRegisterMenu);
DestroyTask(taskId);
}
-u8 sub_80BCCA4(u8 secretBaseIndex)
+static u8 GetSecretBaseOwnerType(u8 secretBaseIndex)
{
return (gSaveBlock1.secretBases[secretBaseIndex].playerName[OT_NAME_LENGTH] % 5)
+ gSaveBlock1.secretBases[secretBaseIndex].gender * 5;
@@ -1091,7 +1104,7 @@ u8 sub_80BCCA4(u8 secretBaseIndex)
const u8 *GetSecretBaseTrainerLoseText(void)
{
- u8 param = sub_80BCCA4(VarGet(VAR_CURRENT_SECRET_BASE));
+ u8 param = GetSecretBaseOwnerType(VarGet(VAR_CURRENT_SECRET_BASE));
if (param == 0) return UnknownString_81A1BB2;
if (param == 1) return UnknownString_81A1F67;
if (param == 2) return UnknownString_81A2254;
@@ -1147,7 +1160,7 @@ void sub_80BCE90()
FlagSet(FLAG_DAILY_UNKNOWN_8C2);
}
- gSpecialVar_0x8004 = sub_80BCCA4(curBaseIndex);
+ gSpecialVar_0x8004 = GetSecretBaseOwnerType(curBaseIndex);
gSpecialVar_Result = gSaveBlock1.secretBases[curBaseIndex].sbr_field_1_5;
}
diff --git a/src/shop.c b/src/shop.c
index 3e399f0da..75d83d132 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -691,7 +691,7 @@ static void Task_DoItemPurchase(u8 taskId)
}
else // a normal mart is only type 0, so types 1 and 2 are decoration marts.
{
- if (GiveDecoration(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]))
+ if (AddDecoration(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]))
{
if (gMartInfo.martType == MART_TYPE_1)
DisplayItemMessageOnField(taskId, gOtherText_HereYouGo2, Shop_DoItemTransaction, 0xC3E1);
diff --git a/src/start_menu.c b/src/start_menu.c
index 747f13b3a..c87ad6330 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -613,7 +613,7 @@ static u8 RunSaveDialogCallback(void)
return saveDialogCallback();
}
-void ScrSpecial_DoSaveDialog(void)
+void SaveGame(void)
{
sub_807160C();
CreateTask(Task_SaveDialog, 0x50);
diff --git a/src/trader.c b/src/trader.c
index f8606d499..5403f53eb 100644
--- a/src/trader.c
+++ b/src/trader.c
@@ -249,7 +249,7 @@ void ScrSpecial_TraderDoDecorationTrade(void)
struct MauvilleManTrader *trader = &gSaveBlock1.mauvilleMan.trader;
RemoveDecorationFromInventory(gSpecialVar_0x8006);
- GiveDecoration(gSpecialVar_0x8004);
+ AddDecoration(gSpecialVar_0x8004);
StringCopy(trader->unk5[gSpecialVar_0x8005], gSaveBlock2.playerName);
trader->unk1[gSpecialVar_0x8005] = gSpecialVar_0x8006;
sub_810993C();
diff --git a/src/trainer_see.c b/src/trainer_see.c
index caeb22a79..30d8d2794 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -449,7 +449,7 @@ void sub_8084794(struct ObjectEvent *var)
static void Task_DestroyTrainerApproachTask(u8);
-void ScrSpecial_EndTrainerApproach(void)
+void EndTrainerApproach(void)
{
sub_80842FC(Task_DestroyTrainerApproachTask);
}
diff --git a/src/tv.c b/src/tv.c
index d16f28826..890d3bb2c 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -43,6 +43,7 @@
#include "constants/moves.h"
#include "constants/region_map_sections.h"
#include "constants/metatile_labels.h"
+#include "constants/script_menu.h"
struct UnkTvStruct
{
@@ -1512,16 +1513,16 @@ void sub_80BEF10(u8 strvaridx, u8 rank)
switch (rank)
{
case NORMAL_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_NORMAL]);
break;
case SUPER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_SUPER]);
break;
case HYPER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_HYPER]);
break;
case MASTER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_MASTER]);
break;
}
}
@@ -1531,19 +1532,19 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category)
switch (category)
{
case CONTEST_COOL:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_COOL]);
break;
case CONTEST_BEAUTY:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_BEAUTY]);
break;
case CONTEST_CUTE:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_CUTE]);
break;
case CONTEST_SMART:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_SMART]);
break;
case CONTEST_TOUGH:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]);
+ StringCopy(gUnknown_083D1464[strvaridx], gStdStrings[STDSTRING_TOUGH]);
break;
}
}
@@ -2366,11 +2367,12 @@ s8 sub_80C019C(TVShow tvShows[])
return -1;
}
-#ifdef NONMATCHING
void sub_80C01D4(void)
{
u16 i;
- for (i=0; i<24; i++)
+ u16 j;
+
+ for (i = 0; i < 24; i++)
{
switch (gSaveBlock1.tvShows[i].common.kind)
{
@@ -2380,251 +2382,58 @@ void sub_80C01D4(void)
case TVSHOW_MASS_OUTBREAK:
break;
case TVSHOW_FAN_CLUB_LETTER:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->fanclubLetter.species, i);
+ j = (&gSaveBlock1.tvShows[i])->fanclubLetter.species;
+ sub_80C03C8(j, i);
break;
case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->fanclubOpinions.var02, i);
+ j = (&gSaveBlock1.tvShows[i])->fanclubOpinions.var02;
+ sub_80C03C8(j, i);
break;
case TVSHOW_UNKN_SHOWTYPE_04:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->unkShow04.var06, i);
+ j = (&gSaveBlock1.tvShows[i])->unkShow04.var06;
+ sub_80C03C8(j, i);
break;
case TVSHOW_NAME_RATER_SHOW:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->nameRaterShow.species, i);
- sub_80C03C8((&gSaveBlock1.tvShows[i])->nameRaterShow.var1C, i);
+ j = (&gSaveBlock1.tvShows[i])->nameRaterShow.species;
+ sub_80C03C8(j, i);
+ j = (&gSaveBlock1.tvShows[i])->nameRaterShow.var1C;
+ sub_80C03C8(j, i);
break;
case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->bravoTrainer.species, i);
+ j = (&gSaveBlock1.tvShows[i])->bravoTrainer.species;
+ sub_80C03C8(j, i);
break;
case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->bravoTrainerTower.species, i);
- sub_80C03C8((&gSaveBlock1.tvShows[i])->bravoTrainerTower.defeatedSpecies, i);
+ j = (&gSaveBlock1.tvShows[i])->bravoTrainerTower.species;
+ sub_80C03C8(j, i);
+ j = (&gSaveBlock1.tvShows[i])->bravoTrainerTower.defeatedSpecies;
+ sub_80C03C8(j, i);
break;
case TVSHOW_POKEMON_TODAY_CAUGHT:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonToday.species, i);
+ j = (&gSaveBlock1.tvShows[i])->pokemonToday.species;
+ sub_80C03C8(j, i);
break;
case TVSHOW_POKEMON_TODAY_FAILED:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonTodayFailed.species, i);
- sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonTodayFailed.species2, i);
+ j = (&gSaveBlock1.tvShows[i])->pokemonTodayFailed.species;
+ sub_80C03C8(j, i);
+ j = (&gSaveBlock1.tvShows[i])->pokemonTodayFailed.species2;
+ sub_80C03C8(j, i);
break;
case TVSHOW_FISHING_ADVICE:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonAngler.var04, i);
+ j = (&gSaveBlock1.tvShows[i])->pokemonAngler.var04;
+ sub_80C03C8(j, i);
break;
case TVSHOW_WORLD_OF_MASTERS:
- sub_80C03C8((&gSaveBlock1.tvShows[i])->worldOfMasters.var08, i);
- sub_80C03C8((&gSaveBlock1.tvShows[i])->worldOfMasters.var04, i);
+ j = (&gSaveBlock1.tvShows[i])->worldOfMasters.var08;
+ sub_80C03C8(j, i);
+ j = (&gSaveBlock1.tvShows[i])->worldOfMasters.var04;
+ sub_80C03C8(j, i);
break;
default:
sub_80C03A8(i);
}
}
}
-#else
-NAKED
-void sub_80C01D4(void) {
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- movs r6, 0\n\
-_080C01D8:\n\
- ldr r0, _080C01F8 @ =gSaveBlock1\n\
- lsls r2, r6, 3\n\
- adds r1, r2, r6\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldr r0, _080C01FC @ =0x00002738\n\
- adds r1, r0\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x29\n\
- bls _080C01EE\n\
- b _default\n\
-_080C01EE:\n\
- lsls r0, 2\n\
- ldr r1, _080C0200 @ =_080C0204\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_080C01F8: .4byte gSaveBlock1\n\
-_080C01FC: .4byte 0x00002738\n\
-_080C0200: .4byte _080C0204\n\
- .align 2, 0\n\
-_080C0204:\n\
- .4byte _break\n\
- .4byte _fanclubLetter @ TVSHOW_FAN_CLUB_LETTER\n\
- .4byte _break @ TVSHOW_RECENT_HAPPENINGS\n\
- .4byte _fanclubOpinions @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n\
- .4byte _showtype4 @ TVSHOW_UNKN_SHOWTYPE_04\n\
- .4byte _nameRater @ TVSHOW_NAME_RATER_SHOW\n\
- .4byte _bravoTrainerContest @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n\
- .4byte _bravoTrainerTower @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _pokemonTodayS @ TVSHOW_POKEMON_TODAY_CAUGHT\n\
- .4byte _break @ TVSHOW_SMART_SHOPPER\n\
- .4byte _pokemonTodayF @ TVSHOW_POKEMON_TODAY_FAILED\n\
- .4byte _fishing @ TVSHOW_FISHING_ADVICE\n\
- .4byte _worldOfMasters @ TVSHOW_WORLD_OF_MASTERS\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _break @ TVSHOW_MASS_OUTBREAK\n\
-_fanclubLetter:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x2]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C02B8: .4byte gSaveBlock1 + 0x2738\n\
-_fanclubOpinions:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x2]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C02C8: .4byte gSaveBlock1 + 0x2738\n\
-_showtype4:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x6]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C02D8: .4byte gSaveBlock1 + 0x2738\n\
-_nameRater:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0x2]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0x1C]\n\
- b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C02F4: .4byte gSaveBlock1 + 0x2738\n\
-_bravoTrainerContest:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x2]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C0304: .4byte gSaveBlock1 + 0x2738\n\
-_bravoTrainerTower:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0xA]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0x14]\n\
- b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C0320: .4byte gSaveBlock1 + 0x2738\n\
-_pokemonTodayS:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x10]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C0330: .4byte gSaveBlock1 + 0x2738\n\
-_pokemonTodayF:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C034C @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0xC]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0xE]\n\
- b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
-_080C034C: .4byte gSaveBlock1 + 0x2738\n\
-_fishing:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x4]\n\
-_checkSpecies1:\n\
- lsls r1, r6, 24\n\
- lsrs r1, 24\n\
- bl sub_80C03C8\n\
- b _break\n\
- .align 2, 0\n\
-_080C0364: .4byte gSaveBlock1 + 0x2738\n\
-_worldOfMasters:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0x8]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0x4]\n\
-_checkSpecies2:\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- b _break\n\
- .align 2, 0\n\
-_080C0388: .4byte gSaveBlock1 + 0x2738\n\
-_default:\n\
- lsls r0, r6, 24\n\
- lsrs r0, 24\n\
- bl sub_80C03A8\n\
-_break:\n\
- adds r0, r6, 0x1\n\
- lsls r0, 16\n\
- lsrs r6, r0, 16\n\
- cmp r6, 0x17\n\
- bhi _080C03A0\n\
- b _080C01D8\n\
-_080C03A0:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
-.syntax divided\n");
-}
-#endif
void sub_80C03A8(u8 showidx)
{
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index 47eb81541..1ad55dbee 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -86,20 +86,12 @@ static bool8 CheckFeebas(void)
x -= 7;
y -= 7;
-#ifdef NONMATCHING
+ if (y >= gRoute119WaterTileData[3 * 0 + 0] && y <= gRoute119WaterTileData[3 * 0 + 1])
+ route119section = 0;
if (y >= gRoute119WaterTileData[3 * 1 + 0] && y <= gRoute119WaterTileData[3 * 1 + 1])
route119section = 1;
if (y >= gRoute119WaterTileData[3 * 2 + 0] && y <= gRoute119WaterTileData[3 * 2 + 1])
route119section = 2;
-#else
- {
- register const u16 *arr asm("r0");
- if (y >= (arr = gRoute119WaterTileData)[3 * 1 + 0] && y <= arr[3 * 1 + 1])
- route119section = 1;
- if (y >= arr[3 * 2 + 0] && y <= arr[3 * 2 + 1])
- route119section = 2;
- }
-#endif
if (Random() % 100 > 49) //50% chance of encountering Feebas
return FALSE;