jak-project/game/external/discord.h
Hat Kid d8cca2bf83
game: refactor discord code and improve jak 2 support (#2714)
The Discord RPC code has been cleaned up and split up between game
versions.

For Jak 2, the Discord integration now shows large images for all levels
(with corresponding day and nighttime variants if required) and small
images for time of day and various states like being on the jetboard,
driving a zoomer, playing as Daxter, etc.

TODO:
- [x] mission specific images and detection
- [x] detect side missions properly
- [x] `onin-game` detection


![image](https://github.com/open-goal/jak-project/assets/6624576/35ec273f-404c-4475-a7c7-06121a17b1a5)

![image](https://github.com/open-goal/jak-project/assets/6624576/8456f5e2-4f96-4c72-ae9e-d930d76c93af)

![image](https://github.com/open-goal/jak-project/assets/6624576/9a17a0ec-c9bd-40fa-8556-f139712d8f07)

---------

Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
2023-06-17 05:16:40 +01:00

29 lines
984 B
C++

#pragma once
#include <algorithm>
#include <cstring>
#include <map>
#include <string>
#include "common/versions/versions.h"
#include "third-party/discord-rpc/include/discord_rpc.h"
extern int gDiscordRpcEnabled;
extern int64_t gStartTime;
void init_discord_rpc();
void set_discord_rpc(int state);
std::string get_time_of_day(float time);
const char* get_full_level_name(const std::map<std::string, std::string>& level_names,
const std::map<std::string, std::string>& level_name_remap,
const char* level_name);
bool indoors(std::vector<std::string> indoor_levels, const char* level_name);
void handleDiscordReady(const DiscordUser* user);
void handleDiscordDisconnected(int errcode, const char* message);
void handleDiscordError(int errcode, const char* message);
void handleDiscordJoin(const char* secret);
void handleDiscordJoinRequest(const DiscordUser* request);
void handleDiscordSpectate(const char* secret);