pull in project-slippi/Ishiiruka/commit/740064ce37023974a62bcb517310fb381f189c0d

This commit is contained in:
Nikhil Narayana 2022-05-30 00:52:48 -07:00
commit eb0d6be17c

View file

@ -1873,6 +1873,16 @@ void CEXISlippi::startFindMatch(u8* payload)
return; return;
} }
} }
else if (search.mode == SlippiMatchmaking::OnlinePlayMode::TEAMS)
{
// Some special handling for teams since it is being heavily used for unranked
if (localSelections.characterId >= 26 &&
SConfig::GetInstance().m_melee_version != Melee::Version::MEX)
{
forcedError = "The character you selected is not allowed in this mode";
return;
}
}
#ifndef LOCAL_TESTING #ifndef LOCAL_TESTING
if (!isEnetInitialized) if (!isEnetInitialized)
@ -2300,6 +2310,25 @@ void CEXISlippi::prepareOnlineMatchState()
return; return;
} }
} }
else if (lastSearch.mode == SlippiMatchmaking::OnlinePlayMode::TEAMS)
{
auto isMEX = SConfig::GetInstance().m_melee_version == Melee::Version::MEX;
if (!localCharOk && !isMEX)
{
handleConnectionCleanup();
forcedError = "The character you selected is not allowed in this mode";
prepareOnlineMatchState();
return;
}
if (!remoteCharOk && !isMEX)
{
handleConnectionCleanup();
prepareOnlineMatchState();
return;
}
}
// Set rng offset // Set rng offset
rngOffset = isDecider ? lps.rngOffset : rps[0].rngOffset; rngOffset = isDecider ? lps.rngOffset : rps[0].rngOffset;
@ -2371,9 +2400,10 @@ void CEXISlippi::prepareOnlineMatchState()
} }
// Turn pause off in unranked/ranked, on in other modes // Turn pause off in unranked/ranked, on in other modes
auto pauseAllowed = !SlippiMatchmaking::IsFixedRulesMode(lastSearch.mode) &&
lastSearch.mode != SlippiMatchmaking::OnlinePlayMode::TEAMS;
u8* gameBitField3 = static_cast<u8*>(&onlineMatchBlock[2]); u8* gameBitField3 = static_cast<u8*>(&onlineMatchBlock[2]);
*gameBitField3 = SlippiMatchmaking::IsFixedRulesMode(lastSearch.mode) ? *gameBitField3 | 0x8 : *gameBitField3 = pauseAllowed ? *gameBitField3 & 0xF7 : *gameBitField3 | 0x8;
*gameBitField3 & 0xF7;
//*gameBitField3 = *gameBitField3 | 0x8; //*gameBitField3 = *gameBitField3 | 0x8;
// Group players into left/right side for team splash screen display // Group players into left/right side for team splash screen display