Skip to content

Commit 4f5c2ec

Browse files
committed
sa1: unused level select match Task_CreateMultiplayer
1 parent 5b42f97 commit 4f5c2ec

2 files changed

Lines changed: 18 additions & 175 deletions

File tree

sa1/asm/non_matching/game/shared/stage/unused_lvl_select__Task_CreateMultiplayer.inc

Lines changed: 0 additions & 145 deletions
This file was deleted.

sa1/src/game/shared/menus/unused_level_select.c

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -141,54 +141,42 @@ void Task_Poll(void)
141141
}
142142

143143
#if (GAME == GAME_SA1)
144-
// (95.38%) https://decomp.me/scratch/JguNX
145-
NONMATCH("asm/non_matching/game/shared/stage/unused_lvl_select__Task_CreateMultiplayer.inc", void Task_CreateMultiplayer(void))
144+
void Task_CreateMultiplayer(void)
146145
{
147146
LevelSelect *levelSelect = TASK_DATA(gCurTask);
147+
union MultiSioData *send, *send_recv;
148+
bool32 parent;
148149
u32 i;
149150

150-
if (IS_MULTI_PLAYER) {
151-
for (i = 0; i < 4 && GetBit(gMultiplayerConnections, i); i++) {
152-
if (!(gMultiSioStatusFlags & (1 << i))) {
153-
if (++gMultiplayerMissingHeartbeats[i] > 180) {
154-
TasksDestroyAll();
151+
LINK_HEARTBEAT();
155152

156-
PAUSE_BACKGROUNDS_QUEUE();
157-
gBgSpritesCount = 0;
158-
PAUSE_GRAPHICS_QUEUE();
159-
160-
LinkCommunicationError();
161-
return;
162-
}
163-
} else {
164-
gMultiplayerMissingHeartbeats[i] = 0;
165-
}
166-
}
167-
}
168-
// _0800E2CE
169-
170-
if (gMultiSioRecv->pat0.unk0 == 82) {
171-
levelSelect->levelId = gMultiSioRecv->pat0.unk2;
153+
send_recv = gMultiSioRecv;
154+
if (send_recv->pat0.unk0 == 82) {
155+
levelSelect->levelId = send_recv->pat0.unk2;
172156
gCurTask->main = Task_CreateSelectedTask;
173157
return;
174158
}
175159

176-
gMultiSioSend.pat0.unk0 = 81;
177-
gMultiSioSend.pat0.unk2 = levelSelect->levelId;
160+
send_recv = &gMultiSioSend;
161+
send_recv->pat0.unk0 = 81;
162+
send_recv->pat0.unk2 = levelSelect->levelId;
178163

179-
if (gMultiSioStatusFlags & MULTI_SIO_PARENT) {
164+
parent = gMultiSioStatusFlags & MULTI_SIO_PARENT;
165+
send = &gMultiSioSend;
166+
if (parent) {
180167
u8 j;
168+
181169
for (j = 0; j < 4; j++) {
182-
if (GetBit(gMultiplayerConnections, j)) {
183-
if (gMultiSioRecv[j].pat0.unk0 != 81) {
170+
if (CONNECTION_REGISTERED(j)) {
171+
send_recv = &gMultiSioRecv[j];
172+
if (send_recv->pat0.unk0 != 81) {
184173
return;
185174
}
186175
}
187176
}
188-
gMultiSioSend.pat0.unk0 = 82;
177+
send->pat0.unk0 = 82;
189178
}
190179
}
191-
END_NONMATCH
192180

193181
void Task_CreateSelectedTask(void)
194182
{

0 commit comments

Comments
 (0)