diff --git a/examples/send-presence/send-presence.c b/examples/send-presence/send-presence.c index a23b25d..11abe84 100644 --- a/examples/send-presence/send-presence.c +++ b/examples/send-presence/send-presence.c @@ -57,11 +57,11 @@ static void updateDiscordPresence() DiscordButton buttons[] = { {.label = "Test", .url = "https://example.com"}, {.label = "Test 2", .url = "https://discord.gg/fortnite"}, + {0, 0}, }; if (SendButtons) { discordPresence.buttons = buttons; - discordPresence.numButtons = sizeof(buttons) / sizeof(DiscordButton); } Discord_UpdatePresence(&discordPresence); diff --git a/include/discord_rpc.h b/include/discord_rpc.h index 5cd9018..c66995f 100644 --- a/include/discord_rpc.h +++ b/include/discord_rpc.h @@ -45,7 +45,6 @@ typedef struct DiscordRichPresence { const char* joinSecret; /* max 128 bytes */ const char* spectateSecret; /* max 128 bytes */ int8_t instance; - uint8_t numButtons; const DiscordButton* buttons; } DiscordRichPresence; diff --git a/src/serialization.cpp b/src/serialization.cpp index 3de83d3..5784a44 100644 --- a/src/serialization.cpp +++ b/src/serialization.cpp @@ -164,16 +164,14 @@ size_t JsonWriteRichPresenceObj(char* dest, writer.Key("instance"); writer.Bool(presence->instance != 0); - if (presence->buttons && presence->numButtons > 0) { - const auto btns = presence->buttons; + if (presence->buttons) { WriteArray buttons(writer, "buttons"); - for (uint8_t i = 0; i < presence->numButtons; i++) { - + for (uint8_t i = 0; true; i++) { const DiscordButton& btn = presence->buttons[i]; if (!btn.label || !btn.label[0]) - continue; + break; WriteObject button(writer); WriteKey(writer, "url");