summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_interface.c163
-rw-r--r--src/battle_pyramid.c2
-rwxr-xr-xsrc/cable_car.c8
-rw-r--r--src/contest_link_80F57C4.c6
-rw-r--r--src/easy_chat.c731
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/field_control_avatar.c2
-rw-r--r--src/field_screen_effect.c10
-rw-r--r--src/field_specials.c5
-rw-r--r--src/field_weather.c15
-rw-r--r--src/field_weather_effect.c103
-rw-r--r--src/fieldmap.c6
-rw-r--r--src/overworld.c20
-rw-r--r--src/rom_8011DC0.c4
-rw-r--r--src/script.c43
-rw-r--r--src/start_menu.c18
-rw-r--r--src/trainer_hill.c2
-rw-r--r--src/tv.c2
18 files changed, 884 insertions, 258 deletions
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 0eb494db4..4a6ac67f1 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -35,125 +35,126 @@ struct TestingBar
};
enum
-{
- HEALTHBOX_GFX_0,
- HEALTHBOX_GFX_1,
- HEALTHBOX_GFX_2,
- HEALTHBOX_GFX_HP_BAR_GREEN,
- HEALTHBOX_GFX_4,
- HEALTHBOX_GFX_5,
- HEALTHBOX_GFX_6,
- HEALTHBOX_GFX_7,
- HEALTHBOX_GFX_8,
- HEALTHBOX_GFX_9,
- HEALTHBOX_GFX_10,
- HEALTHBOX_GFX_11,
- HEALTHBOX_GFX_12,
- HEALTHBOX_GFX_13,
- HEALTHBOX_GFX_14,
- HEALTHBOX_GFX_15,
- HEALTHBOX_GFX_16,
- HEALTHBOX_GFX_17,
- HEALTHBOX_GFX_18,
- HEALTHBOX_GFX_19,
- HEALTHBOX_GFX_20,
- HEALTHBOX_GFX_STATUS_PSN_BATTLER0,
- HEALTHBOX_GFX_22,
- HEALTHBOX_GFX_23,
- HEALTHBOX_GFX_STATUS_PRZ_BATTLER0,
+{ // Corresponds to gHealthboxElementsGfxTable (and the tables after it) in graphics.c
+ // These are indexes into the tables, which are filled with 8x8 square pixel data.
+ HEALTHBOX_GFX_0, //hp bar [black section]
+ HEALTHBOX_GFX_1, //hp bar "H"
+ HEALTHBOX_GFX_2, //hp bar "P"
+ HEALTHBOX_GFX_HP_BAR_GREEN, //hp bar [0 pixels]
+ HEALTHBOX_GFX_4, //hp bar [1 pixels]
+ HEALTHBOX_GFX_5, //hp bar [2 pixels]
+ HEALTHBOX_GFX_6, //hp bar [3 pixels]
+ HEALTHBOX_GFX_7, //hp bar [4 pixels]
+ HEALTHBOX_GFX_8, //hp bar [5 pixels]
+ HEALTHBOX_GFX_9, //hp bar [6 pixels]
+ HEALTHBOX_GFX_10, //hp bar [7 pixels]
+ HEALTHBOX_GFX_11, //hp bar [8 pixels]
+ HEALTHBOX_GFX_12, //exp bar [0 pixels]
+ HEALTHBOX_GFX_13, //exp bar [1 pixels]
+ HEALTHBOX_GFX_14, //exp bar [2 pixels]
+ HEALTHBOX_GFX_15, //exp bar [3 pixels]
+ HEALTHBOX_GFX_16, //exp bar [4 pixels]
+ HEALTHBOX_GFX_17, //exp bar [5 pixels]
+ HEALTHBOX_GFX_18, //exp bar [6 pixels]
+ HEALTHBOX_GFX_19, //exp bar [7 pixels]
+ HEALTHBOX_GFX_20, //exp bar [8 pixels]
+ HEALTHBOX_GFX_STATUS_PSN_BATTLER0, //status psn "(P"
+ HEALTHBOX_GFX_22, //status psn "SN"
+ HEALTHBOX_GFX_23, //status psn "|)""
+ HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, //status prz
HEALTHBOX_GFX_25,
HEALTHBOX_GFX_26,
- HEALTHBOX_GFX_STATUS_SLP_BATTLER0,
+ HEALTHBOX_GFX_STATUS_SLP_BATTLER0, //status slp
HEALTHBOX_GFX_28,
HEALTHBOX_GFX_29,
- HEALTHBOX_GFX_STATUS_FRZ_BATTLER0,
+ HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, //status frz
HEALTHBOX_GFX_31,
HEALTHBOX_GFX_32,
- HEALTHBOX_GFX_STATUS_BRN_BATTLER0,
+ HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status brn
HEALTHBOX_GFX_34,
HEALTHBOX_GFX_35,
- HEALTHBOX_GFX_36,
- HEALTHBOX_GFX_37,
- HEALTHBOX_GFX_38,
- HEALTHBOX_GFX_39,
- HEALTHBOX_GFX_40,
- HEALTHBOX_GFX_41,
- HEALTHBOX_GFX_42,
- HEALTHBOX_GFX_43,
- HEALTHBOX_GFX_44,
- HEALTHBOX_GFX_45,
- HEALTHBOX_GFX_46,
- HEALTHBOX_GFX_HP_BAR_YELLOW,
- HEALTHBOX_GFX_48,
- HEALTHBOX_GFX_49,
- HEALTHBOX_GFX_50,
- HEALTHBOX_GFX_51,
- HEALTHBOX_GFX_52,
- HEALTHBOX_GFX_53,
- HEALTHBOX_GFX_54,
- HEALTHBOX_GFX_55,
- HEALTHBOX_GFX_HP_BAR_RED,
- HEALTHBOX_GFX_57,
- HEALTHBOX_GFX_58,
- HEALTHBOX_GFX_59,
- HEALTHBOX_GFX_60,
- HEALTHBOX_GFX_61,
- HEALTHBOX_GFX_62,
- HEALTHBOX_GFX_63,
- HEALTHBOX_GFX_64,
- HEALTHBOX_GFX_65,
- HEALTHBOX_GFX_66,
- HEALTHBOX_GFX_67,
- HEALTHBOX_GFX_68,
- HEALTHBOX_GFX_69,
- HEALTHBOX_GFX_70,
- HEALTHBOX_GFX_STATUS_PSN_BATTLER1,
+ HEALTHBOX_GFX_36, //misc [Black section]
+ HEALTHBOX_GFX_37, //misc [Black section]
+ HEALTHBOX_GFX_38, //misc [Black section]
+ HEALTHBOX_GFX_39, //misc [Blank Health Window?]
+ HEALTHBOX_GFX_40, //misc [Blank Health Window?]
+ HEALTHBOX_GFX_41, //misc [Blank Health Window?]
+ HEALTHBOX_GFX_42, //misc [Blank Health Window?]
+ HEALTHBOX_GFX_43, //misc [Top of Health Window?]
+ HEALTHBOX_GFX_44, //misc [Top of Health Window?]
+ HEALTHBOX_GFX_45, //misc [Top of Health Window?]
+ HEALTHBOX_GFX_46, //misc [Blank Health Window?]
+ HEALTHBOX_GFX_HP_BAR_YELLOW, //hp bar yellow [0 pixels]
+ HEALTHBOX_GFX_48, //hp bar yellow [1 pixels]
+ HEALTHBOX_GFX_49, //hp bar yellow [2 pixels]
+ HEALTHBOX_GFX_50, //hp bar yellow [3 pixels]
+ HEALTHBOX_GFX_51, //hp bar yellow [4 pixels]
+ HEALTHBOX_GFX_52, //hp bar yellow [5 pixels]
+ HEALTHBOX_GFX_53, //hp bar yellow [6 pixels]
+ HEALTHBOX_GFX_54, //hp bar yellow [7 pixels]
+ HEALTHBOX_GFX_55, //hp bar yellow [8 pixels]
+ HEALTHBOX_GFX_HP_BAR_RED, //hp bar red [0 pixels]
+ HEALTHBOX_GFX_57, //hp bar red [1 pixels]
+ HEALTHBOX_GFX_58, //hp bar red [2 pixels]
+ HEALTHBOX_GFX_59, //hp bar red [3 pixels]
+ HEALTHBOX_GFX_60, //hp bar red [4 pixels]
+ HEALTHBOX_GFX_61, //hp bar red [5 pixels]
+ HEALTHBOX_GFX_62, //hp bar red [6 pixels]
+ HEALTHBOX_GFX_63, //hp bar red [7 pixels]
+ HEALTHBOX_GFX_64, //hp bar red [8 pixels]
+ HEALTHBOX_GFX_65, //hp bar frame end
+ HEALTHBOX_GFX_66, //status ball [full]
+ HEALTHBOX_GFX_67, //status ball [empty]
+ HEALTHBOX_GFX_68, //status ball [fainted]
+ HEALTHBOX_GFX_69, //status ball [statused]
+ HEALTHBOX_GFX_70, //status ball [unused extra]
+ HEALTHBOX_GFX_STATUS_PSN_BATTLER1, //status2 "PSN"
HEALTHBOX_GFX_72,
HEALTHBOX_GFX_73,
- HEALTHBOX_GFX_STATUS_PRZ_BATTLER1,
+ HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, //status2 "PRZ"
HEALTHBOX_GFX_75,
HEALTHBOX_GFX_76,
- HEALTHBOX_GFX_STATUS_SLP_BATTLER1,
+ HEALTHBOX_GFX_STATUS_SLP_BATTLER1, //status2 "SLP"
HEALTHBOX_GFX_78,
HEALTHBOX_GFX_79,
- HEALTHBOX_GFX_STATUS_FRZ_BATTLER1,
+ HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, //status2 "FRZ"
HEALTHBOX_GFX_81,
HEALTHBOX_GFX_82,
- HEALTHBOX_GFX_STATUS_BRN_BATTLER1,
+ HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2 "BRN"
HEALTHBOX_GFX_84,
HEALTHBOX_GFX_85,
- HEALTHBOX_GFX_STATUS_PSN_BATTLER2,
+ HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3 "PSN"
HEALTHBOX_GFX_87,
HEALTHBOX_GFX_88,
- HEALTHBOX_GFX_STATUS_PRZ_BATTLER2,
+ HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, //status3 "PRZ"
HEALTHBOX_GFX_90,
HEALTHBOX_GFX_91,
- HEALTHBOX_GFX_STATUS_SLP_BATTLER2,
+ HEALTHBOX_GFX_STATUS_SLP_BATTLER2, //status3 "SLP"
HEALTHBOX_GFX_93,
HEALTHBOX_GFX_94,
- HEALTHBOX_GFX_STATUS_FRZ_BATTLER2,
+ HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, //status3 "FRZ"
HEALTHBOX_GFX_96,
HEALTHBOX_GFX_97,
- HEALTHBOX_GFX_STATUS_BRN_BATTLER2,
+ HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3 "BRN"
HEALTHBOX_GFX_99,
HEALTHBOX_GFX_100,
- HEALTHBOX_GFX_STATUS_PSN_BATTLER3,
+ HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4 "PSN"
HEALTHBOX_GFX_102,
HEALTHBOX_GFX_103,
- HEALTHBOX_GFX_STATUS_PRZ_BATTLER3,
+ HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, //status4 "PRZ"
HEALTHBOX_GFX_105,
HEALTHBOX_GFX_106,
- HEALTHBOX_GFX_STATUS_SLP_BATTLER3,
+ HEALTHBOX_GFX_STATUS_SLP_BATTLER3, //status4 "SLP"
HEALTHBOX_GFX_108,
HEALTHBOX_GFX_109,
- HEALTHBOX_GFX_STATUS_FRZ_BATTLER3,
+ HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, //status4 "FRZ"
HEALTHBOX_GFX_111,
HEALTHBOX_GFX_112,
- HEALTHBOX_GFX_STATUS_BRN_BATTLER3,
+ HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4 "BRN"
HEALTHBOX_GFX_114,
HEALTHBOX_GFX_115,
- HEALTHBOX_GFX_116,
- HEALTHBOX_GFX_117,
+ HEALTHBOX_GFX_116, //unknown_D12FEC
+ HEALTHBOX_GFX_117, //unknown_D1300C
};
extern const u8 *const gNatureNamePointers[];
diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c
index a2fa4120f..340c17c59 100644
--- a/src/battle_pyramid.c
+++ b/src/battle_pyramid.c
@@ -1590,7 +1590,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio
layoutMap += mapLayout->width;
}
}
- mapheader_run_script_with_tag_x1();
+ RunOnLoadMapScript();
free(floorLayoutOffsets);
}
diff --git a/src/cable_car.c b/src/cable_car.c
index 207a0c22d..420bdd30f 100755
--- a/src/cable_car.c
+++ b/src/cable_car.c
@@ -358,7 +358,7 @@ static void CleanupCableCar(void)
HideBg(3);
sub_8150B6C(0);
gSpriteCoordOffsetX = 0;
- sub_80AB130(WEATHER_NONE);
+ SetCurrentAndNextWeatherNoDelay(WEATHER_NONE);
for (i = 0; i < 20; i++)
gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
@@ -394,7 +394,7 @@ static void sub_81503E4(u8 taskId)
case 0:
if (sCableCar->timer == sCableCar->unk4)
{
- ChangeWeather(sCableCar->weather);
+ SetNextWeather(sCableCar->weather);
sCableCar->state = 1;
}
break;
@@ -798,7 +798,7 @@ static void LoadCableCarSprites(void)
gSprites[spriteId].data[1] = 99;
sCableCar->weather = WEATHER_ASH;
sCableCar->unk4 = 0x15e;
- sub_80AB130(WEATHER_SUNNY);
+ SetCurrentAndNextWeatherNoDelay(WEATHER_SUNNY);
break;
case 1:
CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x24, 24, 26, 12, 3, 17);
@@ -822,7 +822,7 @@ static void LoadCableCarSprites(void)
gSprites[spriteId].data[1] = 0x41;
sCableCar->weather = WEATHER_SUNNY;
sCableCar->unk4 = 0x109;
- sub_80AB130(WEATHER_ASH);
+ SetCurrentAndNextWeatherNoDelay(WEATHER_ASH);
break;
}
for (i = 0; i < 9; i++)
diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c
index 485065d71..c0a79af81 100644
--- a/src/contest_link_80F57C4.c
+++ b/src/contest_link_80F57C4.c
@@ -372,12 +372,12 @@ static void sub_80F5CE4(u8 taskId)
sub_80DEDA8(0xFE);
gUnknown_02039F5C = 1;
gUnknown_02039F5D = sub_80DEFA8(0xFE, 0);
- var = VarGet(VAR_0x4086);
- VarSet(VAR_0x4086, 0);
+ var = VarGet(VAR_LINK_CONTEST_ROOM_STATE);
+ VarSet(VAR_LINK_CONTEST_ROOM_STATE, 0);
SetContinueGameWarpStatusToDynamicWarp();
TrySavingData(SAVE_LINK);
ClearContinueGameWarpStatus2();
- VarSet(VAR_0x4086, var);
+ VarSet(VAR_LINK_CONTEST_ROOM_STATE, var);
gTasks[taskId].data[0]++;
break;
case 1:
diff --git a/src/easy_chat.c b/src/easy_chat.c
index 5c55cd2ca..1b1bd105b 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -3,10 +3,12 @@
#include "global.h"
#include "alloc.h"
#include "bg.h"
+#include "decompress.h"
#include "dewford_trend.h"
#include "dynamic_placeholder_text_util.h"
#include "easy_chat.h"
#include "event_data.h"
+#include "event_object_movement.h"
#include "field_weather.h"
#include "gpu_regs.h"
#include "graphics.h"
@@ -22,6 +24,7 @@
#include "task.h"
#include "text_window.h"
#include "window.h"
+#include "constants/event_objects.h"
#include "constants/flags.h"
#include "constants/songs.h"
@@ -82,20 +85,23 @@ struct Unk203A11C
u8 unk6;
u8 unk7;
s8 unk8;
- u8 filler9[0x1];
+ u8 unk9;
u8 unkA;
u8 unkB[0xC1];
- u8 unkCC[0x20C];
- int unk2D8;
- int unk2DC;
- int unk2E0;
- int unk2E4;
- int unk2E8;
- int unk2EC;
- int unk2F0;
- int unk2F4;
- int unk2F8;
- int unk2FC;
+ u8 unkCC[0x202];
+ u16 unk2CE;
+ int unk2D0;
+ int unk2D4;
+ struct Sprite *unk2D8;
+ struct Sprite *unk2DC;
+ struct Sprite *unk2E0;
+ struct Sprite *unk2E4;
+ struct Sprite *unk2E8;
+ struct Sprite *unk2EC;
+ struct Sprite *unk2F0;
+ struct Sprite *unk2F4;
+ struct Sprite *unk2F8;
+ struct Sprite *unk2FC;
u16 unk300[BG_SCREEN_SIZE / 2];
u16 unkB00[BG_SCREEN_SIZE / 2];
};
@@ -202,12 +208,12 @@ static void sub_811CFCC(void);
static void sub_811D0BC(void);
static void sub_811D2C8(void);
static void sub_811D684(void);
-void sub_811DE90(void);
-void sub_811DEC4(void);
-void sub_811DE5C(u8, u8, u8, u8);
-void sub_811E5D4(void);
-void sub_811E720(void);
-void sub_811E828(void);
+static void sub_811DE90(void);
+static void sub_811DEC4(void);
+static void sub_811DE5C(u8, u8, u8, u8);
+static void sub_811E5D4(void);
+static void sub_811E720(void);
+static void sub_811E828(void);
static bool8 sub_811C2D4(void);
static bool8 sub_811C30C(void);
static bool8 sub_811C3E4(void);
@@ -237,51 +243,56 @@ static bool8 sub_811CD94(void);
static bool8 sub_811CDD4(void);
static bool8 sub_811CE14(void);
static bool8 sub_811CE54(void);
-void sub_811DF60(u8, u8);
-int sub_811E920(int);
-void sub_811DF90(void);
+static void sub_811DF60(u8, u8);
+static int sub_811E920(int);
+static void sub_811DF90(void);
static void sub_811D104(u8);
static void sub_811D214(u8);
-void sub_811DFB0(void);
+static void sub_811DFB0(void);
static void sub_811D6D4(void);
static void sub_811D9CC(int);
-void sub_811E3AC(void);
-bool8 sub_811E418(void);
-void sub_811DFC8(void);
-void sub_811E6E0(int);
+static void sub_811E3AC(void);
+static bool8 sub_811E418(void);
+static void sub_811DFC8(void);
+static void sub_811E6E0(int);
static bool8 sub_811DAA4(void);
-void sub_811E64C(void);
-void sub_811E050(void);
-void sub_811E4AC(void);
-void sub_811E6B0(void);
-void sub_811E55C(void);
-bool8 sub_811E4D0(void);
-bool8 sub_811E5B8(void);
-void sub_811E578(void);
-void sub_811E088(void);
-void sub_811DDAC(s16, u8);
-bool8 sub_811DE10(void);
+static void sub_811E64C(void);
+static void sub_811E050(void);
+static void sub_811E4AC(void);
+static void sub_811E6B0(void);
+static void sub_811E55C(void);
+static bool8 sub_811E4D0(void);
+static bool8 sub_811E5B8(void);
+static void sub_811E578(void);
+static void sub_811E088(void);
+static void sub_811DDAC(s16, u8);
+static bool8 sub_811DE10(void);
static void sub_811D9B4(void);
static void sub_811D698(u32);
-void sub_811E288(void);
-void sub_811E794(void);
-void sub_811E380(void);
-void sub_811E7F8(void);
-void sub_811E30C(void);
+static void sub_811E288(void);
+static void sub_811E794(void);
+static void sub_811E380(void);
+static void sub_811E7F8(void);
+static void sub_811E30C(void);
static void sub_811D7A4(void);
static void sub_811D7C8(void);
-int sub_811DE48(void);
+static int sub_811DE48(void);
static void sub_811D7EC(void);
static void sub_811D830(void);
void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8);
-void sub_811DD84(void);
+static void sub_811DD84(void);
static void sub_811D6F4(void);
static void sub_811D758(void);
static void sub_811D794(void);
const u8 *sub_811F424(u8);
static void sub_811D864(u8, u8);
static void sub_811D950(u8, u8);
-void sub_811DADC(u8);
+static void sub_811DADC(u8);
+static void sub_811DC28(int, int, int, int);
+static void sub_811E0EC(s8, s8);
+static void sub_811E1A4(s8, s8);
+static void sub_811E2DC(struct Sprite *);
+static void sub_811E34C(u8, u8);
u8 *CopyEasyChatWordPadded(u8 *, u16, u16);
extern const struct {
@@ -304,6 +315,17 @@ extern const u16 gUnknown_08597C24[];
extern const struct WindowTemplate gUnknown_08597C84;
extern const u8 gUnknown_08597C8C[4];
extern const u8 *const gUnknown_08597C90[4];
+extern const struct SpriteSheet gUnknown_08597CA0[];
+extern const struct SpritePalette gUnknown_08597CC0[];
+extern const struct CompressedSpriteSheet gUnknown_08597CE8[];
+extern const struct SpriteTemplate gUnknown_08597D18;
+extern const struct SpriteTemplate gUnknown_08597D68;
+extern const struct SpriteTemplate gUnknown_08597DF0;
+extern const struct SpriteTemplate gUnknown_08597DD0;
+extern const struct SpriteTemplate gUnknown_08597E48;
+extern const struct SpriteTemplate gUnknown_08597E30;
+extern const u8 gUnknown_08597D08[];
+extern const u8 gUnknown_08597E60[][4];
void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam)
{
@@ -3228,16 +3250,16 @@ static bool8 sub_811CE94(void)
return FALSE;
gUnknown_0203A11C->unk0 = 0;
- gUnknown_0203A11C->unk2D8 = 0;
- gUnknown_0203A11C->unk2DC = 0;
- gUnknown_0203A11C->unk2E0 = 0;
- gUnknown_0203A11C->unk2E4 = 0;
- gUnknown_0203A11C->unk2E8 = 0;
- gUnknown_0203A11C->unk2EC = 0;
- gUnknown_0203A11C->unk2F0 = 0;
- gUnknown_0203A11C->unk2F4 = 0;
- gUnknown_0203A11C->unk2F8 = 0;
- gUnknown_0203A11C->unk2FC = 0;
+ gUnknown_0203A11C->unk2D8 = NULL;
+ gUnknown_0203A11C->unk2DC = NULL;
+ gUnknown_0203A11C->unk2E0 = NULL;
+ gUnknown_0203A11C->unk2E4 = NULL;
+ gUnknown_0203A11C->unk2E8 = NULL;
+ gUnknown_0203A11C->unk2EC = NULL;
+ gUnknown_0203A11C->unk2F0 = NULL;
+ gUnknown_0203A11C->unk2F4 = NULL;
+ gUnknown_0203A11C->unk2F8 = NULL;
+ gUnknown_0203A11C->unk2FC = NULL;
gUnknown_0203A11C->unkA = sub_811BC70();
return TRUE;
}
@@ -3752,3 +3774,602 @@ static bool8 sub_811DAA4(void)
var1 = gUnknown_0203A11C->unk7;
return (var0 ^ var1) > 0;
}
+
+static void sub_811DADC(u8 arg0)
+{
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 10, 30, 10);
+ switch (arg0)
+ {
+ case 0:
+ break;
+ case 1:
+ sub_811DC28(11, 14, 3, 2);
+ break;
+ case 2:
+ sub_811DC28(9, 14, 7, 2);
+ break;
+ case 3:
+ sub_811DC28(7, 14, 11, 2);
+ break;
+ case 4:
+ sub_811DC28(5, 14, 15, 2);
+ break;
+ case 5:
+ sub_811DC28(3, 14, 19, 2);
+ break;
+ case 6:
+ sub_811DC28(1, 14, 23, 2);
+ break;
+ case 11:
+ sub_811DC28(1, 10, 24, 10);
+ break;
+ case 12:
+ sub_811DC28(1, 10, 25, 10);
+ break;
+ case 13:
+ sub_811DC28(1, 10, 26, 10);
+ break;
+ case 14:
+ sub_811DC28(1, 10, 27, 10);
+ break;
+ case 15:
+ sub_811DC28(1, 10, 28, 10);
+ break;
+ case 16:
+ sub_811DC28(1, 10, 29, 10);
+ break;
+ case 17:
+ sub_811DC28(0, 10, 30, 10);
+ break;
+ case 10:
+ case 18:
+ sub_811DC28(1, 10, 23, 10);
+ break;
+ case 9:
+ case 19:
+ sub_811DC28(1, 11, 23, 8);
+ break;
+ case 8:
+ case 20:
+ sub_811DC28(1, 12, 23, 6);
+ break;
+ case 7:
+ case 21:
+ sub_811DC28(1, 13, 23, 4);
+ break;
+ case 22:
+ sub_811DC28(1, 14, 23, 2);
+ break;
+ }
+
+ CopyBgTilemapBufferToVram(1);
+}
+
+static void sub_811DC28(int left, int top, int width, int height)
+{
+ u16 *tilemap;
+ int right;
+ int bottom;
+ int x, y;
+
+ tilemap = gUnknown_0203A11C->unk300;
+ right = left + width - 1;
+ bottom = top + height - 1;
+ x = left;
+ y = top;
+ tilemap[y * 32 + x] = 0x4001;
+ x++;
+ for (; x < right; x++)
+ tilemap[y * 32 + x] = 0x4002;
+
+ tilemap[y * 32 + x] = 0x4003;
+ y++;
+ for (; y < bottom; y++)
+ {
+ tilemap[y * 32 + left] = 0x4005;
+ x = left + 1;
+ for (; x < right; x++)
+ tilemap[y * 32 + x] = 0x4000;
+
+ tilemap[y * 32 + x] = 0x4007;
+ }
+
+ tilemap[y * 32 + left] = 0x4009;
+ x = left + 1;
+ for (; x < right; x++)
+ tilemap[y * 32 + x] = 0x400A;
+
+ tilemap[y * 32 + x] = 0x400B;
+ sub_811DE5C((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8);
+}
+
+static void sub_811DD84(void)
+{
+ ChangeBgY(2, 0x800, 0);
+ gUnknown_0203A11C->unk2CE = 0;
+}
+
+static void sub_811DDAC(s16 arg0, u8 arg1)
+{
+ int bgY;
+ s16 var0;
+
+ bgY = GetBgY(2);
+ gUnknown_0203A11C->unk2CE += arg0;
+ var0 = arg0 * 16;
+ bgY += var0 << 8;
+ if (arg1)
+ {
+ gUnknown_0203A11C->unk2D0 = bgY;
+ gUnknown_0203A11C->unk2D4 = arg1 * 256;
+ if (var0 < 0)
+ gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4;
+ }
+ else
+ {
+ ChangeBgY(2, bgY, 0);
+ }
+}
+
+static bool8 sub_811DE10(void)
+{
+ int bgY;
+
+ bgY = GetBgY(2);
+ if (bgY == gUnknown_0203A11C->unk2D0)
+ {
+ return FALSE;
+ }
+ else
+ {
+ ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1);
+ return TRUE;
+ }
+}
+
+static int sub_811DE48(void)
+{
+ return gUnknown_0203A11C->unk2CE;
+}
+
+static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height)
+{
+ u16 horizontalDimensions = WIN_RANGE(left, left + width);
+ u16 verticalDimensions = WIN_RANGE(top, top + height);
+ SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions);
+ SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions);
+}
+
+static void sub_811DE90(void)
+{
+ u32 i;
+
+ LoadSpriteSheets(gUnknown_08597CA0);
+ LoadSpritePalettes(gUnknown_08597CC0);
+ for (i = 0; i < 4; i++)
+ LoadCompressedSpriteSheet(&gUnknown_08597CE8[i]);
+}
+
+static void sub_811DEC4(void)
+{
+ u8 var0 = sub_811BA68();
+ int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13;
+ int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8;
+ u8 spriteId = CreateSprite(&gUnknown_08597D18, x, y, 2);
+ gUnknown_0203A11C->unk2D8 = &gSprites[spriteId];
+ gSprites[spriteId].data[1] = 1;
+}
+
+void sub_811DF28(struct Sprite *sprite)
+{
+ if (sprite->data[1])
+ {
+ if (++sprite->data[0] > 2)
+ {
+ sprite->data[0] = 0;
+ if (++sprite->pos2.x > 0)
+ sprite->pos2.x = -6;
+ }
+ }
+}
+
+static void sub_811DF60(u8 x, u8 y)
+{
+ gUnknown_0203A11C->unk2D8->pos1.x = x;
+ gUnknown_0203A11C->unk2D8->pos1.y = y;
+ gUnknown_0203A11C->unk2D8->pos2.x = 0;
+ gUnknown_0203A11C->unk2D8->data[0] = 0;
+}
+
+static void sub_811DF90(void)
+{
+ gUnknown_0203A11C->unk2D8->data[0] = 0;
+ gUnknown_0203A11C->unk2D8->data[1] = 0;
+ gUnknown_0203A11C->unk2D8->pos2.x = 0;
+}
+
+static void sub_811DFB0(void)
+{
+ gUnknown_0203A11C->unk2D8->data[1] = 1;
+}
+
+static void sub_811DFC8(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3);
+ gUnknown_0203A11C->unk2DC = &gSprites[spriteId];
+ gUnknown_0203A11C->unk2DC->pos2.x = 32;
+
+ spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3);
+ gUnknown_0203A11C->unk2E0 = &gSprites[spriteId];
+ gUnknown_0203A11C->unk2E0->pos2.x = -32;
+
+ gUnknown_0203A11C->unk2DC->hFlip = 1;
+ sub_811E088();
+}
+
+static void sub_811E050(void)
+{
+ DestroySprite(gUnknown_0203A11C->unk2DC);
+ gUnknown_0203A11C->unk2DC = NULL;
+ DestroySprite(gUnknown_0203A11C->unk2E0);
+ gUnknown_0203A11C->unk2E0 = NULL;
+}
+
+static void sub_811E088(void)
+{
+ u8 var0;
+ u8 var1;
+
+ if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0)
+ {
+ sub_811BB9C(&var0, &var1);
+ if (!sub_811BBB0())
+ sub_811E0EC(var0, var1);
+ else
+ sub_811E1A4(var0, var1);
+ }
+}
+
+static void sub_811E0EC(s8 arg0, s8 arg1)
+{
+ if (arg0 != -1)
+ {
+ StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0);
+ gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58;
+ gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96;
+
+ StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0);
+ gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58;
+ gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96;
+ }
+ else
+ {
+ StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1);
+ gUnknown_0203A11C->unk2DC->pos1.x = 216;
+ gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112;
+
+ StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1);
+ gUnknown_0203A11C->unk2E0->pos1.x = 216;
+ gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112;
+ }
+}
+
+static void sub_811E1A4(s8 arg0, s8 arg1)
+{
+ int anim;
+ int x, y;
+
+ if (arg0 != -1)
+ {
+ y = arg1 * 16 + 96;
+ x = 32;
+ if (arg0 == 6 && arg1 == 0)
+ {
+ x = 158;
+ anim = 2;
+ }
+ else
+ {
+ x += gUnknown_08597D08[(u8)arg0 < 7 ? arg0 : 0];
+ anim = 3;
+ }
+
+ StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim);
+ gUnknown_0203A11C->unk2DC->pos1.x = x;
+ gUnknown_0203A11C->unk2DC->pos1.y = y;
+
+ StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim);
+ gUnknown_0203A11C->unk2E0->pos1.x = x;
+ gUnknown_0203A11C->unk2E0->pos1.y = y;
+ }
+ else
+ {
+ StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1);
+ gUnknown_0203A11C->unk2DC->pos1.x = 216;
+ gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112;
+
+ StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1);
+ gUnknown_0203A11C->unk2E0->pos1.x = 216;
+ gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112;
+ }
+}
+
+static void sub_811E288(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_08597D18, 0, 0, 4);
+ gUnknown_0203A11C->unk2E4 = &gSprites[spriteId];
+ gUnknown_0203A11C->unk2E4->callback = sub_811E2DC;
+ gUnknown_0203A11C->unk2E4->oam.priority = 2;
+ sub_811E30C();
+}
+
+static void sub_811E2DC(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 2)
+ {
+ sprite->data[0] = 0;
+ if (++sprite->pos2.x > 0)
+ sprite->pos2.x = -6;
+ }
+}
+
+static void sub_811E30C(void)
+{
+ s8 var0, var1, x, y;
+
+ sub_811BBC8(&var0, &var1);
+ x = var0 * 13;
+ x = x * 8 + 28;
+ y = var1 * 16 + 96;
+ sub_811E34C(x, y);
+}
+
+static void sub_811E34C(u8 x, u8 y)
+{
+ if (gUnknown_0203A11C->unk2E4)
+ {
+ gUnknown_0203A11C->unk2E4->pos1.x = x;
+ gUnknown_0203A11C->unk2E4->pos1.y = y;
+ gUnknown_0203A11C->unk2E4->pos2.x = 0;
+ gUnknown_0203A11C->unk2E4->data[0] = 0;
+ }
+}
+
+static void sub_811E380(void)
+{
+ if (gUnknown_0203A11C->unk2E4)
+ {
+ DestroySprite(gUnknown_0203A11C->unk2E4);
+ gUnknown_0203A11C->unk2E4 = NULL;
+ }
+}
+
+static void sub_811E3AC(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_08597DF0, 208, 128, 6);
+ gUnknown_0203A11C->unk2E8 = &gSprites[spriteId];
+ gUnknown_0203A11C->unk2E8->pos2.x = -64;
+
+ spriteId = CreateSprite(&gUnknown_08597DD0, 208, 80, 5);
+ gUnknown_0203A11C->unk2EC = &gSprites[spriteId];
+ gUnknown_0203A11C->unk9 = 0;
+}
+
+static bool8 sub_811E418(void)
+{
+ switch (gUnknown_0203A11C->unk9)
+ {
+ default:
+ return FALSE;
+ case 0:
+ gUnknown_0203A11C->unk2E8->pos2.x += 8;
+ if (gUnknown_0203A11C->unk2E8->pos2.x >= 0)
+ {
+ gUnknown_0203A11C->unk2E8->pos2.x = 0;
+ if (!sub_811BBB0())
+ StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1);
+ else
+ StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2);
+
+ gUnknown_0203A11C->unk9++;
+ }
+ break;
+ case 1:
+ if (gUnknown_0203A11C->unk2EC->animEnded)
+ {
+ gUnknown_0203A11C->unk9 = 2;
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+static void sub_811E4AC(void)
+{
+ gUnknown_0203A11C->unk9 = 0;
+ StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3);
+}
+
+static bool8 sub_811E4D0(void)
+{
+ switch (gUnknown_0203A11C->unk9)
+ {
+ default:
+ return FALSE;
+ case 0:
+ if (gUnknown_0203A11C->unk2EC->animEnded)
+ gUnknown_0203A11C->unk9 = 1;
+ break;
+ case 1:
+ gUnknown_0203A11C->unk2E8->pos2.x -= 8;
+ if (gUnknown_0203A11C->unk2E8->pos2.x <= -64)
+ {
+ DestroySprite(gUnknown_0203A11C->unk2EC);
+ DestroySprite(gUnknown_0203A11C->unk2E8);
+ gUnknown_0203A11C->unk2EC = NULL;
+ gUnknown_0203A11C->unk2E8 = NULL;
+ gUnknown_0203A11C->unk9++;
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+static void sub_811E55C(void)
+{
+ StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4);
+}
+
+static void sub_811E578(void)
+{
+ if (!sub_811BBB0())
+ StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1);
+ else
+ StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2);
+}
+
+static bool8 sub_811E5B8(void)
+{
+ return !gUnknown_0203A11C->unk2EC->animEnded;
+}
+
+static void sub_811E5D4(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_08597E48, 96, 80, 0);
+ if (spriteId != MAX_SPRITES)
+ gUnknown_0203A11C->unk2F0 = &gSprites[spriteId];
+
+ spriteId = CreateSprite(&gUnknown_08597E48, 96, 156, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gUnknown_0203A11C->unk2F4 = &gSprites[spriteId];
+ gUnknown_0203A11C->unk2F4->vFlip = 1;
+ }
+
+ sub_811E6B0();
+}
+
+static void sub_811E64C(void)
+{
+ gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8();
+ gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C();
+}
+
+static void sub_811E6B0(void)
+{
+ gUnknown_0203A11C->unk2F0->invisible = 1;
+ gUnknown_0203A11C->unk2F4->invisible = 1;
+}
+
+static void sub_811E6E0(int arg0)
+{
+ if (!arg0)
+ {
+ gUnknown_0203A11C->unk2F0->pos1.x = 96;
+ gUnknown_0203A11C->unk2F4->pos1.x = 96;
+ }
+ else
+ {
+ gUnknown_0203A11C->unk2F0->pos1.x = 120;
+ gUnknown_0203A11C->unk2F4->pos1.x = 120;
+ }
+}
+
+static void sub_811E720(void)
+{
+ u8 spriteId = CreateSprite(&gUnknown_08597E30, 220, 84, 1);
+ if (spriteId != MAX_SPRITES)
+ gUnknown_0203A11C->unk2F8 = &gSprites[spriteId];
+
+ spriteId = CreateSprite(&gUnknown_08597E30, 220, 156, 1);
+ if (spriteId != MAX_SPRITES)
+ {
+ gUnknown_0203A11C->unk2FC = &gSprites[spriteId];
+ StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1);
+ }
+
+ sub_811E7F8();
+}
+
+static void sub_811E794(void)
+{
+ gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8();
+ gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C();
+}
+
+static void sub_811E7F8(void)
+{
+ gUnknown_0203A11C->unk2F8->invisible = 1;
+ gUnknown_0203A11C->unk2FC->invisible = 1;
+}
+
+static void sub_811E828(void)
+{
+ int graphicsId;
+ u8 spriteId;
+
+ switch (sub_811BCBC())
+ {
+ case 0:
+ graphicsId = EVENT_OBJ_GFX_REPORTER_M;
+ break;
+ case 1:
+ graphicsId = EVENT_OBJ_GFX_REPORTER_F;
+ break;
+ case 2:
+ graphicsId = EVENT_OBJ_GFX_BOY_1;
+ break;
+ default:
+ return;
+ }
+
+ if (sub_811BA68() != 4)
+ return;
+
+ spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 0;
+ StartSpriteAnim(&gSprites[spriteId], 2);
+ }
+
+ spriteId = AddPseudoEventObject(
+ gSaveBlock2Ptr->playerGender == MALE ? EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL : EVENT_OBJ_GFX_RIVAL_MAY_NORMAL,
+ SpriteCallbackDummy,
+ 52,
+ 40,
+ 0);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 0;
+ StartSpriteAnim(&gSprites[spriteId], 3);
+ }
+}
+
+int sub_811E8E4(void)
+{
+ u8 var0 = sub_811BA68();
+ switch (gUnknown_08597C30[var0].unk3)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return 2;
+ case 0:
+ return 0;
+ default:
+ return 3;
+ }
+}
+
+static int sub_811E920(int arg0)
+{
+ int var0 = sub_811E8E4();
+ if (var0 < 3)
+ return gUnknown_08597E60[var0][arg0] + 4;
+ else
+ return 0;
+}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index e1d94889a..ba1020669 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -574,7 +574,7 @@ static void Task_EggHatchPlayBGM(u8 taskID)
if (gTasks[taskID].data[0] == 0)
{
StopMapMusic();
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
}
if (gTasks[taskID].data[0] == 1)
PlayBGM(MUS_ME_SHINKA);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 00dce4c7d..cffafaf9f 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -147,7 +147,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input)
if (CheckForTrainersWantingBattle() == TRUE)
return TRUE;
- if (mapheader_run_first_tag2_script_list_match() == 1)
+ if (TryRunOnFrameMapScript() == TRUE)
return TRUE;
if (input->pressedBButton && TrySetupDiveEmergeScript() == TRUE)
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index 93017f125..0a4f3212b 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -503,7 +503,7 @@ void DoWarp(void)
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
WarpFadeScreen();
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = mapldr_default;
CreateTask(sub_80AFA0C, 10);
@@ -514,7 +514,7 @@ void DoDiveWarp(void)
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
WarpFadeScreen();
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
gFieldCallback = mapldr_default;
CreateTask(sub_80AFA0C, 10);
}
@@ -524,7 +524,7 @@ void sub_80AF79C(void)
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
FadeScreen(FADE_TO_WHITE, 8);
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
gFieldCallback = sub_80AF3B0;
CreateTask(sub_80AFA0C, 10);
}
@@ -734,7 +734,7 @@ static void sub_80AFA88(u8 taskId)
case 4:
TryFadeOutOldMapMusic();
WarpFadeScreen();
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
task->data[0] = 0;
task->func = sub_80AFA0C;
break;
@@ -771,7 +771,7 @@ void sub_80AFC60(void)
ScriptContext2_Enable();
TryFadeOutOldMapMusic();
WarpFadeScreen();
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = sub_80AF3C8;
CreateTask(task0A_fade_n_map_maybe, 10);
diff --git a/src/field_specials.c b/src/field_specials.c
index 3c26085dd..307f81399 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -54,6 +54,7 @@
#include "constants/moves.h"
#include "constants/vars.h"
#include "constants/battle_frontier.h"
+#include "constants/weather.h"
EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
EWRAM_DATA u8 gBikeCollisions = 0;
@@ -3527,9 +3528,9 @@ bool8 sub_813B3B0(void)
}
}
-void sub_813B484(void)
+void Unused_SetWeatherSunny(void)
{
- sub_80AB104(2);
+ SetCurrentAndNextWeather(WEATHER_SUNNY);
}
bool32 sub_813B490(void)
diff --git a/src/field_weather.c b/src/field_weather.c
index 0db635c60..9913e9a61 100644
--- a/src/field_weather.c
+++ b/src/field_weather.c
@@ -186,11 +186,11 @@ void StartWeather(void)
}
}
-void ChangeWeather(u8 weather)
+void SetNextWeather(u8 weather)
{
if (weather != WEATHER_RAIN_LIGHT && weather != WEATHER_RAIN_MED && weather != WEATHER_RAIN_HEAVY)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
}
if (gWeatherPtr->nextWeather != weather && gWeatherPtr->currWeather == weather)
@@ -203,18 +203,19 @@ void ChangeWeather(u8 weather)
gWeatherPtr->finishStep = 0;
}
-void sub_80AB104(u8 weather)
+void SetCurrentAndNextWeather(u8 weather)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
gWeatherPtr->currWeather = weather;
gWeatherPtr->nextWeather = weather;
}
-void sub_80AB130(u8 weather)
+void SetCurrentAndNextWeatherNoDelay(u8 weather)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
gWeatherPtr->currWeather = weather;
gWeatherPtr->nextWeather = weather;
+ // Overrides the normal delay during screen fading.
gWeatherPtr->readyForInit = TRUE;
}
@@ -1053,7 +1054,7 @@ void SetRainStrengthFromSoundEffect(u16 soundEffect)
}
}
-void PlayRainSoundEffect(void)
+void PlayRainStoppingSoundEffect(void)
{
if (IsSpecialSEPlaying())
{
diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c
index 2ec51a722..be8fdc6cb 100644
--- a/src/field_weather_effect.c
+++ b/src/field_weather_effect.c
@@ -16,8 +16,8 @@
void sub_80AC6B4(struct Sprite *);
// EWRAM
-EWRAM_DATA static u8 gUnknown_02038BC4 = 0;
-EWRAM_DATA static u16 gUnknown_02038BC6 = 0;
+EWRAM_DATA static u8 gCurrentAlternatingWeather = 0;
+EWRAM_DATA static u16 gUnusedWeatherRelated = 0;
// CONST
const u16 gUnknown_0854C290[] = INCBIN_U16("graphics/weather/1.gbapal");
@@ -2286,13 +2286,14 @@ void unc_0807DAB4(struct Sprite *sprite)
//------------------------------------------------------------------------------
-static void sub_80AEC94(u32 a0, u32 a1)
+// Unused function.
+static void UnusedSetCurrentAlternatingWeather(u32 a0, u32 a1)
{
- gUnknown_02038BC4 = a0;
- gUnknown_02038BC6 = a1;
+ gCurrentAlternatingWeather = a0;
+ gUnusedWeatherRelated = a1;
}
-static void sub_80AECA8(u8 taskId)
+static void Task_DoAlternatingWeather(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -2301,8 +2302,8 @@ static void sub_80AECA8(u8 taskId)
case 0:
if (data[15]-- <= 0)
{
- ChangeWeather(data[1]);
- gUnknown_02038BC4 = data[1];
+ SetNextWeather(data[1]);
+ gCurrentAlternatingWeather = data[1];
data[15] = 600;
data[0]++;
}
@@ -2310,8 +2311,8 @@ static void sub_80AECA8(u8 taskId)
case 1:
if (data[15]-- <= 0)
{
- ChangeWeather(data[2]);
- gUnknown_02038BC4 = data[2];
+ SetNextWeather(data[2]);
+ gCurrentAlternatingWeather = data[2];
data[15] = 600;
data[0] = 0;
}
@@ -2319,25 +2320,25 @@ static void sub_80AECA8(u8 taskId)
}
}
-static void sub_80AED28(void)
+static void CreateAlternatingWeatherTask(void)
{
- u8 taskId = CreateTask(sub_80AECA8, 0);
+ u8 taskId = CreateTask(Task_DoAlternatingWeather, 0);
s16 *data = gTasks[taskId].data;
data[15] = 600;
- if (gUnknown_02038BC4 == WEATHER_RAIN_HEAVY)
+ if (gCurrentAlternatingWeather == WEATHER_RAIN_HEAVY)
{
data[1] = WEATHER_DROUGHT;
data[2] = WEATHER_RAIN_HEAVY;
}
- else if (gUnknown_02038BC4 == WEATHER_DROUGHT)
+ else if (gCurrentAlternatingWeather == WEATHER_DROUGHT)
{
data[1] = WEATHER_RAIN_HEAVY;
data[2] = WEATHER_DROUGHT;
}
else
{
- gUnknown_02038BC4 = WEATHER_RAIN_HEAVY;
+ gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY;
data[1] = WEATHER_DROUGHT;
data[2] = WEATHER_RAIN_HEAVY;
}
@@ -2368,51 +2369,51 @@ void SetSav1WeatherFromCurrMapHeader(void)
void SetWeather(u32 weather)
{
SetSav1Weather(weather);
- ChangeWeather(GetSav1Weather());
+ SetNextWeather(GetSav1Weather());
}
void SetWeather_Unused(u32 weather)
{
SetSav1Weather(weather);
- sub_80AB104(GetSav1Weather());
+ SetCurrentAndNextWeather(GetSav1Weather());
}
void DoCurrentWeather(void)
{
u8 weather = GetSav1Weather();
- if (weather == WEATHER_15)
+ if (weather == WEATHER_ALTERNATING)
{
- if (!FuncIsActiveTask(sub_80AECA8))
- sub_80AED28();
- weather = gUnknown_02038BC4;
+ if (!FuncIsActiveTask(Task_DoAlternatingWeather))
+ CreateAlternatingWeatherTask();
+ weather = gCurrentAlternatingWeather;
}
else
{
- if (FuncIsActiveTask(sub_80AECA8))
- DestroyTask(FindTaskIdByFunc(sub_80AECA8));
- gUnknown_02038BC4 = WEATHER_RAIN_HEAVY;
+ if (FuncIsActiveTask(Task_DoAlternatingWeather))
+ DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather));
+ gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY;
}
- ChangeWeather(weather);
+ SetNextWeather(weather);
}
-void sub_80AEE84(void)
+void ResumePausedWeather(void)
{
u8 weather = GetSav1Weather();
- if (weather == WEATHER_15)
+ if (weather == WEATHER_ALTERNATING)
{
- if (!FuncIsActiveTask(sub_80AECA8))
- sub_80AED28();
- weather = gUnknown_02038BC4;
+ if (!FuncIsActiveTask(Task_DoAlternatingWeather))
+ CreateAlternatingWeatherTask();
+ weather = gCurrentAlternatingWeather;
}
else
{
- if (FuncIsActiveTask(sub_80AECA8))
- DestroyTask(FindTaskIdByFunc(sub_80AECA8));
- gUnknown_02038BC4 = WEATHER_RAIN_HEAVY;
+ if (FuncIsActiveTask(Task_DoAlternatingWeather))
+ DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather));
+ gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY;
}
- sub_80AB104(weather);
+ SetCurrentAndNextWeather(weather);
}
static const u8 sWeatherCycleRoute119[] =
@@ -2434,25 +2435,25 @@ static u8 TranslateWeatherNum(u8 weather)
{
switch (weather)
{
- case WEATHER_NONE: return WEATHER_NONE;
- case WEATHER_CLOUDS: return WEATHER_CLOUDS;
- case WEATHER_SUNNY: return WEATHER_SUNNY;
- case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT;
- case WEATHER_SNOW: return WEATHER_SNOW;
- case WEATHER_RAIN_MED: return WEATHER_RAIN_MED;
- case WEATHER_FOG_1: return WEATHER_FOG_1;
- case WEATHER_ASH: return WEATHER_ASH;
- case WEATHER_SANDSTORM: return WEATHER_SANDSTORM;
- case WEATHER_FOG_2: return WEATHER_FOG_2;
- case WEATHER_FOG_3: return WEATHER_FOG_3;
- case WEATHER_SHADE: return WEATHER_SHADE;
- case WEATHER_DROUGHT: return WEATHER_DROUGHT;
- case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY;
- case WEATHER_BUBBLES: return WEATHER_BUBBLES;
- case WEATHER_15: return WEATHER_15;
+ case WEATHER_NONE: return WEATHER_NONE;
+ case WEATHER_CLOUDS: return WEATHER_CLOUDS;
+ case WEATHER_SUNNY: return WEATHER_SUNNY;
+ case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT;
+ case WEATHER_SNOW: return WEATHER_SNOW;
+ case WEATHER_RAIN_MED: return WEATHER_RAIN_MED;
+ case WEATHER_FOG_1: return WEATHER_FOG_1;
+ case WEATHER_ASH: return WEATHER_ASH;
+ case WEATHER_SANDSTORM: return WEATHER_SANDSTORM;
+ case WEATHER_FOG_2: return WEATHER_FOG_2;
+ case WEATHER_FOG_3: return WEATHER_FOG_3;
+ case WEATHER_SHADE: return WEATHER_SHADE;
+ case WEATHER_DROUGHT: return WEATHER_DROUGHT;
+ case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY;
+ case WEATHER_BUBBLES: return WEATHER_BUBBLES;
+ case WEATHER_ALTERNATING: return WEATHER_ALTERNATING;
case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage];
case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage];
- default: return WEATHER_NONE;
+ default: return WEATHER_NONE;
}
}
diff --git a/src/fieldmap.c b/src/fieldmap.c
index 7d9d079fc..cf5f0356e 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -53,7 +53,7 @@ void InitMap(void)
{
InitMapLayoutData(&gMapHeader);
sub_80E8EE0(gMapHeader.events);
- mapheader_run_script_with_tag_x1();
+ RunOnLoadMapScript();
}
void InitMapFromSavedGame(void)
@@ -62,7 +62,7 @@ void InitMapFromSavedGame(void)
sub_80E9238(0);
sub_80E8EE0(gMapHeader.events);
LoadSavedMapView();
- mapheader_run_script_with_tag_x1();
+ RunOnLoadMapScript();
UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height);
}
@@ -775,7 +775,7 @@ bool8 CameraMove(int x, int y)
old_y = gSaveBlock1Ptr->pos.y;
connection = sub_8088950(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y);
sub_80887F8(connection, direction, x, y);
- mliX_load_map(connection->mapGroup, connection->mapNum);
+ LoadMapFromCameraTransition(connection->mapGroup, connection->mapNum);
gCamera.active = TRUE;
gCamera.x = old_x - gSaveBlock1Ptr->pos.x;
gCamera.y = old_y - gSaveBlock1Ptr->pos.y;
diff --git a/src/overworld.c b/src/overworld.c
index 08fd94c1b..a10d1e17a 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -761,7 +761,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y)
}
else
{
- mapheader_run_script_with_tag_x6();
+ RunOnDiveWarpMapScript();
if (IsDummyWarp(&gFixedDiveWarp))
return FALSE;
SetWarpDestinationToDiveWarp();
@@ -779,7 +779,7 @@ bool8 SetDiveWarpDive(u16 x, u16 y)
return SetDiveWarp(CONNECTION_DIVE, x, y);
}
-void mliX_load_map(u8 mapGroup, u8 mapNum)
+void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
{
s32 paletteIndex;
@@ -800,7 +800,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum)
ChooseAmbientCrySpecies();
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
- mapheader_run_script_with_tag_x3();
+ RunOnTransitionMapScript();
InitMap();
copy_map_tileset2_to_vram_2(gMapHeader.mapLayout);
apply_map_tileset2_palette(gMapHeader.mapLayout);
@@ -813,7 +813,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum)
RoamerMove();
DoCurrentWeather();
ResetFieldTasksArgs();
- mapheader_run_script_with_tag_x5();
+ RunOnResumeMapScript();
if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER || gMapHeader.regionMapSectionId != sLastMapSectionId)
ShowMapNamePopup();
@@ -852,7 +852,7 @@ static void mli0_load_map(u32 a1)
FlagClear(FLAG_SYS_USE_FLASH);
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
- mapheader_run_script_with_tag_x3();
+ RunOnTransitionMapScript();
UpdateLocationHistoryForRoamer();
RoamerMoveToOtherLocationSet();
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE)
@@ -2123,10 +2123,10 @@ static void sub_8086988(u32 a1)
FieldEffectActiveListClear();
StartWeather();
- sub_80AEE84();
+ ResumePausedWeather();
if (!a1)
SetUpFieldTasks();
- mapheader_run_script_with_tag_x5();
+ RunOnResumeMapScript();
TryStartMirageTowerPulseBlendEffect();
}
@@ -2136,7 +2136,7 @@ static void sub_80869DC(void)
gTotalCameraPixelOffsetY = 0;
ResetEventObjects();
TrySpawnEventObjects(0, 0);
- mapheader_run_first_tag4_script_list_match();
+ TryRunOnWarpIntoMapScript();
}
static void mli4_mapscripts_and_other(void)
@@ -2153,14 +2153,14 @@ static void mli4_mapscripts_and_other(void)
SetPlayerAvatarTransitionFlags(player->transitionFlags);
ResetInitialPlayerAvatarState();
TrySpawnEventObjects(0, 0);
- mapheader_run_first_tag4_script_list_match();
+ TryRunOnWarpIntoMapScript();
}
static void sub_8086A68(void)
{
sub_808E16C(0, 0);
RotatingGate_InitPuzzleAndGraphics();
- mapheader_run_script_with_tag_x7();
+ RunOnReturnToFieldMapScript();
}
static void sub_8086A80(void)
diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c
index baed26cf8..c8adfbe0b 100644
--- a/src/rom_8011DC0.c
+++ b/src/rom_8011DC0.c
@@ -1630,7 +1630,7 @@ void sub_8014210(u16 battleFlags)
void sub_8014290(u16 arg0, u16 x, u16 y)
{
- VarSet(VAR_0x4087, arg0);
+ VarSet(VAR_CABLE_CLUB_STATE, arg0);
SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
WarpIntoMap();
@@ -1639,7 +1639,7 @@ void sub_8014290(u16 arg0, u16 x, u16 y)
void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4)
{
gSpecialVar_0x8004 = arg4;
- VarSet(VAR_0x4087, arg4);
+ VarSet(VAR_CABLE_CLUB_STATE, arg4);
gFieldLinkPlayerCount = GetLinkPlayerCount();
gUnknown_03005DB4 = GetMultiplayerId();
SetCableClubWarp();
diff --git a/src/script.c b/src/script.c
index c61ae7183..c95a1141f 100644
--- a/src/script.c
+++ b/src/script.c
@@ -2,6 +2,7 @@
#include "script.h"
#include "event_data.h"
#include "util.h"
+#include "constants/map_scripts.h"
#define RAM_SCRIPT_MAGIC 51
@@ -241,7 +242,7 @@ void ScriptContext2_RunNewScript(const u8 *ptr)
while (RunScriptCommand(&sScriptContext2) == TRUE);
}
-u8 *mapheader_get_tagged_pointer(u8 tag)
+u8 *MapHeaderGetScriptTable(u8 tag)
{
const u8 *mapScripts = gMapHeader.mapScripts;
@@ -261,16 +262,16 @@ u8 *mapheader_get_tagged_pointer(u8 tag)
}
}
-void mapheader_run_script_by_tag(u8 tag)
+void MapHeaderRunScriptType(u8 tag)
{
- u8 *ptr = mapheader_get_tagged_pointer(tag);
+ u8 *ptr = MapHeaderGetScriptTable(tag);
if (ptr)
ScriptContext2_RunNewScript(ptr);
}
-u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag)
+u8 *MapHeaderCheckScriptTable(u8 tag)
{
- u8 *ptr = mapheader_get_tagged_pointer(tag);
+ u8 *ptr = MapHeaderGetScriptTable(tag);
if (!ptr)
return NULL;
@@ -291,45 +292,45 @@ 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_x7(void)
+void RunOnReturnToFieldMapScript(void)
{
- mapheader_run_script_by_tag(7);
+ MapHeaderRunScriptType(MAP_SCRIPT_ON_RETURN_TO_FIELD);
}
-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;
+ return FALSE;
ScriptContext1_SetupScript(ptr);
- return 1;
+ return TRUE;
}
-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/start_menu.c b/src/start_menu.c
index d5eec76d2..6efd7a04a 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -91,7 +91,7 @@ extern void sub_80AF688(void);
extern void var_800D_set_xB(void);
extern void sub_808B864(void);
extern void CB2_Pokedex(void);
-extern void PlayRainSoundEffect(void);
+extern void PlayRainStoppingSoundEffect(void);
extern void CB2_PokeNav(void);
extern void ScriptUnfreezeEventObjects(void);
extern void save_serialize_map(void);
@@ -608,7 +608,7 @@ static bool8 StartMenuPokedexCallback(void)
if (!gPaletteFade.active)
{
IncrementGameStat(GAME_STAT_CHECKED_POKEDEX);
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_Pokedex);
@@ -623,7 +623,7 @@ static bool8 StartMenuPokemonCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_PartyMenuFromStartMenu); // Display party menu
@@ -638,7 +638,7 @@ static bool8 StartMenuBagCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_BagMenuFromStartMenu); // Display bag menu
@@ -653,7 +653,7 @@ static bool8 StartMenuPokeNavCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_PokeNav); // Display PokeNav
@@ -668,7 +668,7 @@ static bool8 StartMenuPlayerNameCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
@@ -699,7 +699,7 @@ static bool8 StartMenuOptionCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_InitOptionMenu); // Display option menu
@@ -732,7 +732,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
CleanupOverworldWindowsAndTilemaps();
ShowTrainerCardInLink(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu);
@@ -761,7 +761,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void)
{
if (!gPaletteFade.active)
{
- PlayRainSoundEffect();
+ PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_PyramidBagMenuFromStartMenu);
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index efe11b0c7..42b196abd 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -796,7 +796,7 @@ void sub_81D5FB4(u16 *mapArg)
dst += 31;
}
- mapheader_run_script_with_tag_x1();
+ RunOnLoadMapScript();
FreeDataStruct();
}
diff --git a/src/tv.c b/src/tv.c
index 5904efeb8..248721083 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -3603,7 +3603,7 @@ void GetMomOrDadStringForTVMessage(void)
void sub_80F01B8(void)
{
- VarSet(VAR_0x40BC, 0);
+ VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0);
RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
FlagSet(FLAG_HIDE_BATTLE_TOWER_REPORTER);
}