new hide & seek players list

Cherry picked this from the original commit and did the romfs change for all languages (not just for `USen`).

All players are shown now with an icon indicating their gamemode role.

I also changed the approach on how to change the font.
Instead of changing existing characters I added completely new characters to the font (in all languages).
That way the game icons don't appear unintended elsewhere in the game.
It's also possible to do it for all languages now (`%`, &`, and `©` aren't available in all languages).

Sadly I couldn't get UTF-32 characters to work (e.g. to use unicode codes for emojis that fit the icon).
So I had to limit myself to UTF-16 and chose the private use area of unicode:
- 0xE000 for a penguin icon (why not? :D)
- 0xE001 for the hider icon (formerly `%`)
- 0xE002 for the seeker icon (formerly `&`)
- 0xE003 for the sardine icon (formerly `©`)
- 0xE004 for the sardines can icon (formerly `@`)

I included the sardines icons already, because in the future I might create separate PRs to get these gamemodes into the main mod.

The font changes are inside `romfs/LocalizedData/${lang}/LayoutData/FontData.szs`.

The update in the `romfs/LayoutData/HideAndSeekIcon.szs` changes the title for the players list from `Teammates` to `Players`.
It also adds a shadow to the font of the list to increase readability.

f8eef7fb97
2a0d0e7724

(cherry picked from commit f8eef7fb97)
(cherry picked from commit 2a0d0e7724)

Co-authored-by: Robin C. Ladiges <rcl.git@blackpinguin.de>
This commit is contained in:
Amethyst-szs 2022-11-03 11:58:07 -07:00 committed by Robin C. Ladiges
parent ad79fe1732
commit d600412e73
No known key found for this signature in database
GPG key ID: B494D3DF92661B99
15 changed files with 18 additions and 7 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -86,13 +86,24 @@ void HideAndSeekIcon::exeWait() {
char playerNameBuf[0x100] = {0}; // max of 16 player names if player name size is 0x10 char playerNameBuf[0x100] = {0}; // max of 16 player names if player name size is 0x10
sead::BufferedSafeStringBase<char> playerList = sead::BufferedSafeStringBase<char> playerList = sead::BufferedSafeStringBase<char>(playerNameBuf, 0x200);
sead::BufferedSafeStringBase<char>(playerNameBuf, 0x200);
for (size_t i = 0; i < playerCount; i++) { // Add your own name to the list at the top
playerList.appendWithFormat("%s %s\n", mInfo->mIsPlayerIt ? "\uE002" : "\uE001", Client::instance()->getClientName());
// Add all seekers to the list
for (int i = 0; i < playerCount; i++) {
PuppetInfo* curPuppet = Client::getPuppetInfo(i); PuppetInfo* curPuppet = Client::getPuppetInfo(i);
if (curPuppet && curPuppet->isConnected && (curPuppet->isIt == mInfo->mIsPlayerIt)) { if (curPuppet && curPuppet->isConnected && curPuppet->isIt) {
playerList.appendWithFormat("%s\n", curPuppet->puppetName); playerList.appendWithFormat("\uE002 %s\n", curPuppet->puppetName);
}
}
// Add all hiders to the list
for (int i = 0; i < playerCount; i++) {
PuppetInfo* curPuppet = Client::getPuppetInfo(i);
if (curPuppet && curPuppet->isConnected && !curPuppet->isIt) {
playerList.appendWithFormat("\uE001 %s\n", curPuppet->puppetName);
} }
} }