summaryrefslogtreecommitdiff
path: root/src/union_room.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/union_room.c')
-rw-r--r--src/union_room.c103
1 files changed, 47 insertions, 56 deletions
diff --git a/src/union_room.c b/src/union_room.c
index 5050b04f1..ea3658903 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -40,11 +40,13 @@
#include "strings.h"
#include "mevent.h"
#include "dynamic_placeholder_text_util.h"
-#include "rom_8011DC0.h"
+#include "union_room.h"
#include "easy_chat.h"
#include "event_obj_lock.h"
#include "union_room_chat.h"
#include "berry_crush.h"
+#include "mystery_gift.h"
+#include "union_room_player_avatar.h"
EWRAM_DATA u8 gUnknown_02022C20[12] = {};
EWRAM_DATA u8 gUnknown_02022C2C = 0;
@@ -60,8 +62,6 @@ EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {};
IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0;
IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4;
IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8;
-IWRAM_DATA void *gUnknown_03000DAC;
-IWRAM_DATA bool32 gUnknown_03000DB0;
// this file's functions
void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5);
@@ -100,23 +100,17 @@ void sub_801AC54(void);
void sub_802A9A8(u8 monId, MainCallback callback);
void sub_802493C(u8 monId, MainCallback callback);
void sub_80149D8(void);
-u16 sub_8019930(void);
-void sub_8018784(u8 windowId);
-void sub_8018884(const u8 *src);
-bool32 mevent_0814257C(u8 *textState, const u8 *str);
-s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);
+void MG_DrawTextBorder(u8 windowId);
+s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);
bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1);
u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2);
void sub_8019F2C(void);
-void sub_8019E70(u8 *arg0, s32 arg1);
bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1);
void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1);
-bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
void sub_80181CC(void);
bool32 sub_8017940(void);
u8 sub_8016B00(void);
void sub_801A274(struct UnkStruct_URoom *arg0);
-void sub_801A284(struct UnkStruct_URoom *arg0);
bool32 sub_8017FD8(struct UnkStruct_URoom *arg0);
void sub_801689C(struct UnkStruct_URoom *arg0);
u8 sub_80181DC(struct UnkStruct_URoom *arg0);
@@ -125,7 +119,6 @@ bool32 sub_801704C(void);
s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0);
s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender);
void sub_801818C(bool32 arg0);
-void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate);
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6);
s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1);
@@ -135,12 +128,10 @@ void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender);
u32 sub_80179AC(struct UnkStruct_x20 *arg0);
void sub_8017E00(u8 *dst, u8 arg1);
-void sub_8019F04(u8 *spriteIds);
-void sub_8019E3C(void);
void sub_80173B0(void);
s32 sub_8017D04(u32 type, u32 species);
bool32 sub_8017020(const u8 *src);
-void sub_8019BA8(void *);
+u8 sub_8019BA8(struct UnkStruct_8019BA8 * );
s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3);
void sub_801697C(u8 taskId);
bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1);
@@ -1557,7 +1548,7 @@ void sub_8012780(u8 taskId)
break;
case 21:
case 23:
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
sub_800EDD4();
sub_8012F64(data);
data->state++;
@@ -2078,7 +2069,7 @@ void sub_80134E8(u8 taskId)
data->state++;
break;
case 13:
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()]))
{
gSpecialVar_Result = 6;
@@ -2086,12 +2077,12 @@ void sub_80134E8(u8 taskId)
}
break;
case 11:
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
gSpecialVar_Result = 5;
data->state = 23;
break;
case 15:
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()]))
{
gSpecialVar_Result = 8;
@@ -2341,7 +2332,7 @@ void sub_8013F90(u8 taskId)
if (GetBlockReceivedStatus() == 3)
{
gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]);
- IncrementGameStat(GAME_STAT_50);
+ IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES);
ResetBlockReceivedFlags();
gTasks[taskId].data[0]++;
}
@@ -2483,7 +2474,7 @@ void sub_80143E4(void *arg0, bool32 arg1)
TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr);
if (arg1)
- argAsU16Ptr[48] = sub_801B39C();
+ argAsU16Ptr[48] = GetWonderCardFlagID();
else
argAsU16Ptr[48] = 0;
}
@@ -2682,7 +2673,7 @@ void sub_8014790(u8 taskId)
case 8:
if (gReceivedRemoteLinkPlayers == 0)
{
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
EnableBothScriptContexts();
DestroyTask(taskId);
}
@@ -2701,7 +2692,7 @@ void sub_80149D8(void)
gTasks[taskId].data[0] = 0;
}
-void sub_8014A00(u32 arg0)
+void MEvent_CreateTask_Leader(u32 arg0)
{
u8 taskId;
struct UnkStruct_Leader *dataPtr;
@@ -2747,10 +2738,10 @@ void sub_8014A40(u8 taskId)
data->field_17 = sub_8016FC0(data->field_4, 0xFF);
winTemplate = gUnknown_082F011C;
- winTemplate.baseBlock = sub_8019930();
+ winTemplate.baseBlock = GetMysteryGiftBaseBlock();
winTemplate.paletteNum = 0xC;
data->listWindowId = AddWindow(&winTemplate);
- sub_8018784(data->listWindowId);
+ MG_DrawTextBorder(data->listWindowId);
gMultiuseListMenuTemplate = gUnknown_082F015C;
gMultiuseListMenuTemplate.windowId = data->listWindowId;
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
@@ -2765,7 +2756,7 @@ void sub_8014A40(u8 taskId)
data->state = 3;
break;
case 3:
- sub_8018884(gStringVar4);
+ AddTextPrinterToWindow1(gStringVar4);
data->state = 4;
break;
case 4:
@@ -2773,11 +2764,11 @@ void sub_8014A40(u8 taskId)
if (gMain.newKeys & B_BUTTON)
{
data->state = 13;
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
}
break;
case 6:
- if (mevent_0814257C(&data->textState, gUnknown_082EDF40))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF40))
{
data->field_13 = sub_8013398(data->field_0);
RedrawListMenu(data->listTaskId);
@@ -2788,7 +2779,7 @@ void sub_8014A40(u8 taskId)
data->state = 7;
break;
case 7:
- switch (sub_8018B08(&data->textState, &data->field_14, 0, gStringVar4))
+ switch (mevent_message_print_and_prompt_yes_no(&data->textState, &data->field_14, 0, gStringVar4))
{
case 0:
sub_800E0E8();
@@ -2839,7 +2830,7 @@ void sub_8014A40(u8 taskId)
}
break;
case 9:
- sub_8018884(gStringVar4);
+ AddTextPrinterToWindow1(gStringVar4);
data->state = 10;
break;
case 10:
@@ -2862,7 +2853,7 @@ void sub_8014A40(u8 taskId)
}
break;
case 13:
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
sub_800EDD4();
DestroyListMenuTask(data->listTaskId, 0, 0);
CopyBgTilemapBufferToVram(0);
@@ -2874,7 +2865,7 @@ void sub_8014A40(u8 taskId)
data->state++;
break;
case 14:
- if (mevent_0814257C(&data->textState, gText_PleaseStartOver))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_PleaseStartOver))
{
DestroyTask(taskId);
gSpecialVar_Result = 5;
@@ -2909,7 +2900,7 @@ void sub_8014A40(u8 taskId)
}
}
-void sub_8014EFC(u32 arg0)
+void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0)
{
u8 taskId;
struct UnkStruct_Group *dataPtr;
@@ -2942,7 +2933,7 @@ void sub_8014F48(u8 taskId)
data->state = 1;
break;
case 1:
- sub_8018884(gUnknown_082EF7F8);
+ AddTextPrinterToWindow1(gUnknown_082EF7F8);
data->state = 2;
break;
case 2:
@@ -2951,7 +2942,7 @@ void sub_8014F48(u8 taskId)
data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7);
winTemplate1 = gUnknown_082F0174;
- winTemplate1.baseBlock = sub_8019930();
+ winTemplate1.baseBlock = GetMysteryGiftBaseBlock();
winTemplate1.paletteNum = 0xC;
data->listWindowId = AddWindow(&winTemplate1);
@@ -2959,12 +2950,12 @@ void sub_8014F48(u8 taskId)
winTemplate2.paletteNum = 0xC;
data->field_D = AddWindow(&winTemplate2);
- sub_8018784(data->listWindowId);
+ MG_DrawTextBorder(data->listWindowId);
gMultiuseListMenuTemplate = gUnknown_082F0204;
gMultiuseListMenuTemplate.windowId = data->listWindowId;
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
- sub_8018784(data->field_D);
+ MG_DrawTextBorder(data->field_D);
FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1));
PutWindowTilemap(data->field_D);
sub_80125BC(data->field_D);
@@ -3015,7 +3006,7 @@ void sub_8014F48(u8 taskId)
}
break;
case 4:
- sub_8018884(gUnknown_082EFC3C);
+ AddTextPrinterToWindow1(gUnknown_082EFC3C);
sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
data->state = 5;
break;
@@ -3034,7 +3025,7 @@ void sub_8014F48(u8 taskId)
data->state = 8;
break;
case 5:
- sub_8018884(gUnknown_082EDDF4);
+ AddTextPrinterToWindow1(gUnknown_082EDDF4);
sub_8011A64(0, 0);
break;
}
@@ -3052,17 +3043,17 @@ void sub_8014F48(u8 taskId)
data->state++;
break;
case 9:
- if (mevent_0814257C(&data->textState, gUnknown_082EDF80[sub_8011A74()]))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF80[sub_8011A74()]))
{
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
DestroyTask(taskId);
sub_800EDD4();
gSpecialVar_Result = 5;
}
break;
case 7:
- sub_800E084();
- sub_8018884(gText_PleaseStartOver);
+ DestroyWirelessStatusIndicatorSprite();
+ AddTextPrinterToWindow1(gText_PleaseStartOver);
DestroyTask(taskId);
sub_800EDD4();
gSpecialVar_Result = 5;
@@ -3078,7 +3069,7 @@ void sub_8014F48(u8 taskId)
}
}
-void sub_80152A8(u32 arg0)
+void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0)
{
u8 taskId;
struct UnkStruct_Group *dataPtr;
@@ -3111,7 +3102,7 @@ void sub_80152F4(u8 taskId)
data->state = 1;
break;
case 1:
- sub_8018884(gUnknown_082EFBC8);
+ AddTextPrinterToWindow1(gUnknown_082EFBC8);
data->state = 2;
break;
case 2:
@@ -3122,10 +3113,10 @@ void sub_80152F4(u8 taskId)
if (data->field_13 != 0)
{
winTemplate = gUnknown_082F0174;
- winTemplate.baseBlock = sub_8019930();
+ winTemplate.baseBlock = GetMysteryGiftBaseBlock();
data->listWindowId = AddWindow(&winTemplate);
- sub_8018784(data->listWindowId);
+ MG_DrawTextBorder(data->listWindowId);
gMultiuseListMenuTemplate = gUnknown_082F0204;
gMultiuseListMenuTemplate.windowId = data->listWindowId;
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
@@ -3180,7 +3171,7 @@ void sub_80152F4(u8 taskId)
}
break;
case 4:
- sub_8018884(gUnknown_082EFC90);
+ AddTextPrinterToWindow1(gUnknown_082EFC90);
sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
data->state = 5;
break;
@@ -3199,7 +3190,7 @@ void sub_80152F4(u8 taskId)
data->state = 8;
break;
case 5:
- sub_8018884(gUnknown_082EDEC4);
+ AddTextPrinterToWindow1(gUnknown_082EDEC4);
sub_8011A64(0, 0);
break;
}
@@ -3220,27 +3211,27 @@ void sub_80152F4(u8 taskId)
data->state++;
break;
case 9:
- if (mevent_0814257C(&data->textState, gUnknown_082EDF04))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF04))
{
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
DestroyTask(taskId);
sub_800EDD4();
gSpecialVar_Result = 5;
}
break;
case 7:
- if (mevent_0814257C(&data->textState, gText_WirelessSearchCanceled))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_WirelessSearchCanceled))
{
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
DestroyTask(taskId);
sub_800EDD4();
gSpecialVar_Result = 5;
}
break;
case 11:
- if (mevent_0814257C(&data->textState, gUnknown_082EFD58[data->field_12]))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EFD58[data->field_12]))
{
- sub_800E084();
+ DestroyWirelessStatusIndicatorSprite();
DestroyTask(taskId);
sub_800EDD4();
gSpecialVar_Result = 5;
@@ -4515,7 +4506,7 @@ s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe
{
case 0:
winTemplateCopy = *winTemplate;
- r1 = sub_81DB41C(menuTemplate);
+ r1 = Intl_GetListMenuWidth(menuTemplate);
if (winTemplateCopy.width > r1)
{
winTemplateCopy.width = r1;