@@ -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
193181void Task_CreateSelectedTask (void )
194182{
0 commit comments