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.c47
1 files changed, 19 insertions, 28 deletions
diff --git a/src/union_room.c b/src/union_room.c
index 28e1139dd..9687502b4 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -53,7 +53,6 @@
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/species.h"
-#include "constants/union_room.h"
static EWRAM_DATA u8 sUnionRoomPlayerName[12] = {};
EWRAM_DATA u8 gPlayerCurrActivity = 0;
@@ -104,7 +103,7 @@ static bool32 AreUnionRoomPlayerGnamesDifferent(struct WirelessGnameUnamePair *a
static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *arg0, u8 multiplayerId);
static void ResetUnionRoomTrade(struct UnionRoomTrade *arg0);
static void CreateTask_StartActivity(void);
-static bool32 GetGnameWonderFlagByLinkGroup(struct GFtgtGname *arg0, s16 arg1);
+static bool32 HasWonderCardOrNewsByLinkGroup(struct GFtgtGname *arg0, s16 arg1);
static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2);
static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade);
static void RegisterTradeMon(u32 monId, struct UnionRoomTrade *arg1);
@@ -1191,14 +1190,14 @@ static void Task_ListenToWireless(u8 taskId)
}
}
-static bool32 IsPartnerActivityAcceptable(u32 activity, u32 group)
+static bool32 IsPartnerActivityAcceptable(u32 activity, u32 linkGroup)
{
- if (group == 0xFF)
+ if (linkGroup == 0xFF)
return TRUE;
- if (group <= ARRAY_COUNT(sAcceptedActivityIds)) // UB: <= may access data outside the array
+ if (linkGroup <= ARRAY_COUNT(sAcceptedActivityIds)) // UB: <= may access data outside the array
{
- const u8 *bytes = sAcceptedActivityIds[group];
+ const u8 *bytes = sAcceptedActivityIds[linkGroup];
while ((*(bytes) != 0xFF))
{
@@ -2149,7 +2148,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId)
{
if (data->field_0->arr[0].groupScheduledAnim == UNION_ROOM_SPAWN_IN && !data->field_0->arr[0].gname_uname.gname.started)
{
- if (GetGnameWonderFlagByLinkGroup(&data->field_0->arr[0].gname_uname.gname, data->isWonderNews + LINK_GROUP_WONDER_CARD))
+ if (HasWonderCardOrNewsByLinkGroup(&data->field_0->arr[0].gname_uname.gname, data->isWonderNews + LINK_GROUP_WONDER_CARD))
{
data->leaderId = 0;
data->refreshTimer = 0;
@@ -2325,15 +2324,15 @@ static void Task_RunUnionRoom(u8 taskId)
data->field_C = AllocZeroed(RFU_CHILD_MAX * sizeof(struct UnkStruct_x1C));
data->field_0 = AllocZeroed(8 * sizeof(struct UnkStruct_x20));
data->field_8 = AllocZeroed(sizeof(struct UnkStruct_x20));
- ClearUnkStruct_x20Array(data->field_0->arr, 8);
+ ClearUnkStruct_x20Array(data->field_0->arr, ARRAY_COUNT(data->field_0->arr));
gPlayerCurrActivity = IN_UNION_ROOM;
data->field_20 = CreateTask_SearchForChildOrParent(data->field_C, data->field_4, LINK_GROUP_UNION_ROOM_RESUME);
- sub_8019BA8(data->field_A0);
- sub_8019F2C();
+ InitUnionRoomPlayerObjects(data->objects);
+ SetTilesAroundUnionRoomPlayersPassable();
data->state = 1;
break;
case 1:
- CreateGroupMemberObjectsInvisible(data->spriteIds, taskData[0]);
+ CreateGroupMemberSpritesInvisible(data->spriteIds, taskData[0]);
if (++taskData[0] == 8)
data->state = 2;
break;
@@ -2426,7 +2425,7 @@ static void Task_RunUnionRoom(u8 taskId)
{
if (gMain.newKeys & A_BUTTON)
{
- if (RfuUnionTool_GetGroupAndMemberInFrontOfPlayer(data->field_0, &taskData[0], &taskData[1], data->spriteIds))
+ if (TrySetUnionRoomMemberFacePlayer(data->field_0, &taskData[0], &taskData[1], data->spriteIds))
{
PlaySE(SE_SELECT);
UR_EnableScriptContext2AndFreezeObjectEvents();
@@ -2526,7 +2525,7 @@ static void Task_RunUnionRoom(u8 taskId)
if (!gReceivedRemoteLinkPlayers)
{
HandleCancelTrade(FALSE);
- UpdateUnionGroupMemberFacing(taskData[0], taskData[1], data->field_0);
+ UpdateUnionRoomMemberFacing(taskData[0], taskData[1], data->field_0);
data->state = 2;
}
break;
@@ -2848,7 +2847,7 @@ static void Task_RunUnionRoom(u8 taskId)
Free(data->field_C);
Free(data->field_4);
DestroyTask(data->field_20);
- DestroyGroupMemberObjects(data->spriteIds);
+ DestroyGroupMemberSprites(data->spriteIds);
data->state = 17;
break;
case 17:
@@ -2858,7 +2857,7 @@ static void Task_RunUnionRoom(u8 taskId)
case 18:
if (!UpdatePaletteFade())
{
- sub_8019E3C();
+ DestroyUnionRoomPlayerObjects();
DestroyTask(taskId);
Free(sWirelessLinkMain.uRoom);
CreateTask_StartActivity();
@@ -3048,7 +3047,7 @@ static void Task_RunUnionRoom(u8 taskId)
if (PrintOnTextbox(&data->textState, gStringVar4))
{
HandleCancelTrade(TRUE);
- UpdateUnionGroupMemberFacing(taskData[0], taskData[1], data->field_0);
+ UpdateUnionRoomMemberFacing(taskData[0], taskData[1], data->field_0);
data->state = 4;
}
break;
@@ -3221,7 +3220,7 @@ static u8 HandlePlayerListUpdate(void)
return 4;
}
}
- for (j = 0; j < 8; j++)
+ for (j = 0; j < ARRAY_COUNT(data->field_0->arr); j++)
{
if (data->field_0->arr[j].groupScheduledAnim != UNION_ROOM_SPAWN_NONE)
{
@@ -3350,29 +3349,21 @@ static void Task_ListenForPartnersWithCompatibleSerialNos(u8 taskId)
}
}
-static bool32 GetGnameWonderFlagByLinkGroup(struct GFtgtGname *gname, s16 linkGroup)
+static bool32 HasWonderCardOrNewsByLinkGroup(struct GFtgtGname *gname, s16 linkGroup)
{
if (linkGroup == LINK_GROUP_WONDER_CARD)
{
if (!gname->unk_00.hasCard)
- {
return FALSE;
- }
else
- {
return TRUE;
- }
}
else if (linkGroup == LINK_GROUP_WONDER_NEWS)
{
if (!gname->unk_00.hasNews)
- {
return FALSE;
- }
else
- {
return TRUE;
- }
}
else
{
@@ -3389,7 +3380,7 @@ static void Task_ListenForPartnersWithSerial7F7D(u8 taskId)
{
if (LinkRfu_GetNameIfSerial7F7D(&ptr[0]->arr[i].gname_uname.gname, ptr[0]->arr[i].gname_uname.playerName, i))
{
- GetGnameWonderFlagByLinkGroup(&ptr[0]->arr[i].gname_uname.gname, gTasks[taskId].data[2]);
+ HasWonderCardOrNewsByLinkGroup(&ptr[0]->arr[i].gname_uname.gname, gTasks[taskId].data[2]);
}
ptr[0]->arr[i].active = AreGnameUnameDifferent(&ptr[0]->arr[i].gname_uname, &sWirelessGnameUnamePair_Dummy);
}
@@ -3980,7 +3971,7 @@ static void TradeBoardListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y)
else
{
j = 0;
- for (i = 0; i < 8; i++)
+ for (i = 0; i < (int)ARRAY_COUNT(data->field_0->arr); i++)
{
if (data->field_0->arr[i].groupScheduledAnim == UNION_ROOM_SPAWN_IN && data->field_0->arr[i].gname_uname.gname.species != SPECIES_NONE)
{