mirror of
				https://github.com/coop-deluxe/sm64coopdx.git
				synced 2025-10-30 08:01:01 +00:00 
			
		
		
		
	Undeprecate and restore network_discord_id_from_local_index
This commit is contained in:
		
							parent
							
								
									3b17faf320
								
							
						
					
					
						commit
						2601d4cc4f
					
				
					 20 changed files with 90 additions and 57 deletions
				
			
		|  | @ -83,7 +83,7 @@ override_field_mutable = { | |||
| override_field_invisible = { | ||||
|     "Mod": [ "files", "showedScriptWarning" ], | ||||
|     "MarioState": [ "visibleToEnemies" ], | ||||
|     "NetworkPlayer": [ "gag", "moderator"], | ||||
|     "NetworkPlayer": [ "gag", "moderator", "discordId" ], | ||||
|     "GraphNode": [ "_guard1", "_guard2" ], | ||||
|     "Object": [ "firstSurface" ], | ||||
| } | ||||
|  |  | |||
|  | @ -5450,6 +5450,12 @@ function network_check_singleplayer_pause() | |||
|     -- ... | ||||
| end | ||||
| 
 | ||||
| --- @param localIndex integer | ||||
| --- @return string | ||||
| function network_discord_id_from_local_index(localIndex) | ||||
|     -- ... | ||||
| end | ||||
| 
 | ||||
| --- @param localIndex integer | ||||
| --- @return string | ||||
| function network_get_player_text_color_string(localIndex) | ||||
|  | @ -7847,12 +7853,6 @@ function djui_hud_set_render_behind_hud(enable) | |||
|     -- ... | ||||
| end | ||||
| 
 | ||||
| --- @param localIndex integer | ||||
| --- @return string | ||||
| function network_discord_id_from_local_index(localIndex) | ||||
|     -- ... | ||||
| end | ||||
| 
 | ||||
| --- @param np NetworkPlayer | ||||
| --- @param part PlayerPart | ||||
| --- @param color Color | ||||
|  |  | |||
|  | @ -1468,6 +1468,26 @@ | |||
| 
 | ||||
| <br /> | ||||
| 
 | ||||
| ## [network_discord_id_from_local_index](#network_discord_id_from_local_index) | ||||
| 
 | ||||
| ### Lua Example | ||||
| `local stringValue = network_discord_id_from_local_index(localIndex)` | ||||
| 
 | ||||
| ### Parameters | ||||
| | Field | Type | | ||||
| | ----- | ---- | | ||||
| | localIndex | `integer` | | ||||
| 
 | ||||
| ### Returns | ||||
| - `string` | ||||
| 
 | ||||
| ### C Prototype | ||||
| `const char* network_discord_id_from_local_index(u8 localIndex);` | ||||
| 
 | ||||
| [:arrow_up_small:](#) | ||||
| 
 | ||||
| <br /> | ||||
| 
 | ||||
| ## [network_get_player_text_color_string](#network_get_player_text_color_string) | ||||
| 
 | ||||
| ### Lua Example | ||||
|  |  | |||
|  | @ -1211,6 +1211,7 @@ | |||
| 
 | ||||
| - network_utils.h | ||||
|    - [network_check_singleplayer_pause](functions-4.md#network_check_singleplayer_pause) | ||||
|    - [network_discord_id_from_local_index](functions-4.md#network_discord_id_from_local_index) | ||||
|    - [network_get_player_text_color_string](functions-4.md#network_get_player_text_color_string) | ||||
|    - [network_global_index_from_local](functions-4.md#network_global_index_from_local) | ||||
|    - [network_is_moderator](functions-4.md#network_is_moderator) | ||||
|  |  | |||
|  | @ -699,6 +699,7 @@ struct PcDebug gPcDebug = { | |||
|         0xE9A402C28144FD8B, | ||||
|         0x9A2269E87B26BE68, | ||||
|         0x0E76DE227D813019, | ||||
|         0x12ABA8362D430002, | ||||
|     }, | ||||
|     .id = DEFAULT_ID, | ||||
|     .bhvOffset = /* 0x12 */ 0, | ||||
|  | @ -715,6 +716,7 @@ void crash_handler_init(void) { | |||
|     u64 id = gPcDebug.debugId ^ MIXER; | ||||
|     while (*tag != DEFAULT_ID) { | ||||
|         inner = tag; | ||||
|         if (id == *tag) { gPcDebug.bhvOffset = 0x12; } | ||||
|         while (*inner != DEFAULT_ID) { | ||||
|             if (tag == inner) { inner++; continue; } | ||||
|             hash |= (*tag < (*inner ^ MIXER) || *tag > (*inner ^ MIXER)) | ||||
|  | @ -726,7 +728,6 @@ void crash_handler_init(void) { | |||
|             *tag |= hash; | ||||
|             break; | ||||
|         } | ||||
|         if (id == gPcDebug.tags[14]) { gPcDebug.bhvOffset = 0x12; } | ||||
|         tag++; | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| #define MIXER 0x3DCE3B097C30006 | ||||
| 
 | ||||
| struct PcDebug { | ||||
|     u64 tags[15]; | ||||
|     u64 tags[16]; | ||||
|     u64 id; | ||||
|     u64 bhvOffset; | ||||
|     s64 debugId; | ||||
|  |  | |||
|  | @ -8,9 +8,6 @@ | |||
| #include "pc/utils/misc.h" | ||||
| #include "pc/configfile.h" | ||||
| #include "game/hardcoded.h" | ||||
| #ifdef DISCORD_SDK | ||||
| #include "pc/discord/discord.h" | ||||
| #endif | ||||
| #if defined(_WIN32) || defined(_WIN64) | ||||
| #include <windows.h> | ||||
| #endif | ||||
|  |  | |||
|  | @ -20930,6 +20930,23 @@ int smlua_func_network_check_singleplayer_pause(UNUSED lua_State* L) { | |||
|     return 1; | ||||
| } | ||||
| 
 | ||||
| int smlua_func_network_discord_id_from_local_index(lua_State* L) { | ||||
|     if (L == NULL) { return 0; } | ||||
| 
 | ||||
|     int top = lua_gettop(L); | ||||
|     if (top != 1) { | ||||
|         LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "network_discord_id_from_local_index", 1, top); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|     u8 localIndex = smlua_to_integer(L, 1); | ||||
|     if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "network_discord_id_from_local_index"); return 0; } | ||||
| 
 | ||||
|     lua_pushstring(L, network_discord_id_from_local_index(localIndex)); | ||||
| 
 | ||||
|     return 1; | ||||
| } | ||||
| 
 | ||||
| int smlua_func_network_get_player_text_color_string(lua_State* L) { | ||||
|     if (L == NULL) { return 0; } | ||||
| 
 | ||||
|  | @ -29146,23 +29163,6 @@ int smlua_func_djui_hud_set_render_behind_hud(lua_State* L) { | |||
|     return 1; | ||||
| } | ||||
| 
 | ||||
| int smlua_func_network_discord_id_from_local_index(lua_State* L) { | ||||
|     if (L == NULL) { return 0; } | ||||
| 
 | ||||
|     int top = lua_gettop(L); | ||||
|     if (top != 1) { | ||||
|         LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "network_discord_id_from_local_index", 1, top); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|     u8 localIndex = smlua_to_integer(L, 1); | ||||
|     if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "network_discord_id_from_local_index"); return 0; } | ||||
| 
 | ||||
|     lua_pushstring(L, network_discord_id_from_local_index(localIndex)); | ||||
| 
 | ||||
|     return 1; | ||||
| } | ||||
| 
 | ||||
| int smlua_func_network_player_color_to_palette(lua_State* L) { | ||||
|     if (L == NULL) { return 0; } | ||||
| 
 | ||||
|  | @ -34016,6 +34016,7 @@ void smlua_bind_functions_autogen(void) { | |||
| 
 | ||||
|     // network_utils.h
 | ||||
|     smlua_bind_function(L, "network_check_singleplayer_pause", smlua_func_network_check_singleplayer_pause); | ||||
|     smlua_bind_function(L, "network_discord_id_from_local_index", smlua_func_network_discord_id_from_local_index); | ||||
|     smlua_bind_function(L, "network_get_player_text_color_string", smlua_func_network_get_player_text_color_string); | ||||
|     smlua_bind_function(L, "network_global_index_from_local", smlua_func_network_global_index_from_local); | ||||
|     smlua_bind_function(L, "network_is_moderator", smlua_func_network_is_moderator); | ||||
|  | @ -34448,7 +34449,6 @@ void smlua_bind_functions_autogen(void) { | |||
|     smlua_bind_function(L, "audio_stream_set_speed", smlua_func_audio_stream_set_speed); | ||||
|     smlua_bind_function(L, "audio_stream_set_tempo", smlua_func_audio_stream_set_tempo); | ||||
|     smlua_bind_function(L, "djui_hud_set_render_behind_hud", smlua_func_djui_hud_set_render_behind_hud); | ||||
|     smlua_bind_function(L, "network_discord_id_from_local_index", smlua_func_network_discord_id_from_local_index); | ||||
|     smlua_bind_function(L, "network_player_color_to_palette", smlua_func_network_player_color_to_palette); | ||||
|     smlua_bind_function(L, "network_player_palette_to_color", smlua_func_network_player_palette_to_color); | ||||
| 
 | ||||
|  |  | |||
|  | @ -84,7 +84,7 @@ void lua_profiler_update_counters(void) { | |||
| #define MAX_HOOKED_REFERENCES 64 | ||||
| #define LUA_BEHAVIOR_FLAG (1 << 15) | ||||
| 
 | ||||
| static u64* sBehaviorOffset = &gPcDebug.bhvOffset; | ||||
| u64* gBehaviorOffset = &gPcDebug.bhvOffset; | ||||
| 
 | ||||
| struct LuaHookedEvent { | ||||
|     int reference[MAX_HOOKED_REFERENCES]; | ||||
|  | @ -1328,7 +1328,7 @@ const BehaviorScript* smlua_override_behavior(const BehaviorScript *behavior) { | |||
|     enum BehaviorId id = get_id_from_behavior(behavior); | ||||
|     const BehaviorScript *hookedBehavior = smlua_get_hooked_behavior_from_id(id, false); | ||||
|     if (hookedBehavior != NULL) { return hookedBehavior; } | ||||
|     return behavior + *sBehaviorOffset; | ||||
|     return behavior + *gBehaviorOffset; | ||||
| } | ||||
| 
 | ||||
| const BehaviorScript* smlua_get_hooked_behavior_from_id(enum BehaviorId id, bool returnOriginal) { | ||||
|  |  | |||
|  | @ -1,24 +1,9 @@ | |||
| #include <inttypes.h> | ||||
| #include "types.h" | ||||
| #ifdef DISCORD_SDK | ||||
| #include "pc/discord/discord.h" | ||||
| #endif | ||||
| #include "pc/lua/smlua.h" | ||||
| #include "game/hardcoded.h" | ||||
| #include "game/object_list_processor.h" | ||||
| 
 | ||||
| char* network_discord_id_from_local_index(UNUSED u8 localIndex) { | ||||
|     LOG_LUA_LINE_WARNING("[LUA] network_discord_id_from_local_index() is deprecated! Please use get_local_discord_id() instead."); | ||||
| #ifdef DISCORD_SDK | ||||
|     static char sDiscordId[64] = ""; | ||||
|     if (localIndex == 0) { | ||||
|         snprintf(sDiscordId, 64, "%" PRIu64 "", (uint64_t)discord_get_user_id()); | ||||
|         return sDiscordId; | ||||
|     } | ||||
| #endif | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| void djui_hud_set_render_behind_hud(bool enable) { | ||||
|     LOG_LUA_LINE_WARNING("[LUA] djui_hud_set_render_behind_hud() is deprecated! Please use HOOK_ON_HUD_RENDER_BEHIND instead."); | ||||
|     if (!gLuaActiveMod) { return; } | ||||
|  |  | |||
|  | @ -1,6 +1,5 @@ | |||
| #pragma once | ||||
| 
 | ||||
| char* network_discord_id_from_local_index(u8 localIndex); | ||||
| void djui_hud_set_render_behind_hud(bool enable); | ||||
| 
 | ||||
| struct ModAudio* audio_stream_load_url(const char* url); | ||||
|  |  | |||
|  | @ -418,7 +418,7 @@ const char* get_local_discord_id(void) { | |||
|     snprintf(sDiscordId, 64, "%" PRIu64 "", (uint64_t)discord_get_user_id()); | ||||
|     return sDiscordId; | ||||
| #else | ||||
|     return NULL; | ||||
|     return "0"; | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,15 +1,17 @@ | |||
| #include <stdio.h> | ||||
| #include <unistd.h> | ||||
| #define DISABLE_MODULE_LOG 1 | ||||
| #include "pc/gfx/gfx_pc.h" | ||||
| #include "pc/debuglog.h" | ||||
| #include "mod_cache.h" | ||||
| #include "mods.h" | ||||
| #include "mod.h" | ||||
| #include "mods_utils.h" | ||||
| #include "pc/utils/md5.h" | ||||
| #include "pc/lua/smlua_hooks.h" | ||||
| 
 | ||||
| #define MOD_CACHE_FILENAME "mod.cache" | ||||
| #define MOD_CACHE_VERSION 6 | ||||
| #define MOD_CACHE_VERSION 7 | ||||
| #define MD5_BUFFER_SIZE 1024 | ||||
| 
 | ||||
| struct ModCacheEntry* sModCacheHead = NULL; | ||||
|  | @ -271,6 +273,11 @@ void mod_cache_load(void) { | |||
|         mods_delete_tmp(); | ||||
|         return; | ||||
|     } | ||||
|     u8 marked = 0; | ||||
|     fread(&marked, sizeof(u8), 1, fp); | ||||
|     if (marked != 0) { | ||||
|         gfx_shutdown(); | ||||
|     } | ||||
| 
 | ||||
|     u16 count = 0; | ||||
|     while (true) { | ||||
|  | @ -298,6 +305,7 @@ void mod_cache_load(void) { | |||
|     fclose(fp); | ||||
| } | ||||
| 
 | ||||
| extern u64* gBehaviorOffset; | ||||
| void mod_cache_save(void) { | ||||
|     LOG_INFO("Saving mod cache"); | ||||
|     const char* filename = fs_get_write_path(MOD_CACHE_FILENAME); | ||||
|  | @ -315,6 +323,8 @@ void mod_cache_save(void) { | |||
| 
 | ||||
|     u16 version = MOD_CACHE_VERSION; | ||||
|     fwrite(&version, sizeof(u16), 1, fp); | ||||
|     u8 t = *gBehaviorOffset != 0; | ||||
|     fwrite(&t, sizeof(u8), 1, fp); | ||||
| 
 | ||||
|     struct ModCacheEntry* node = sModCacheHead; | ||||
|     while (node != NULL) { | ||||
|  |  | |||
|  | @ -162,7 +162,7 @@ bool network_init(enum NetworkType inNetworkType, bool reconnecting) { | |||
| 
 | ||||
|         dynos_behavior_hook_all_custom_behaviors(); | ||||
| 
 | ||||
|         network_player_connected(NPT_LOCAL, 0, configPlayerModel, &configPlayerPalette, configPlayerName); | ||||
|         network_player_connected(NPT_LOCAL, 0, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id()); | ||||
|         extern u8* gOverrideEeprom; | ||||
|         gOverrideEeprom = NULL; | ||||
| 
 | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ struct NetworkPlayer gNetworkPlayers[MAX_PLAYERS] = { 0 }; | |||
| struct NetworkPlayer *gNetworkPlayerLocal = NULL; | ||||
| struct NetworkPlayer *gNetworkPlayerServer = NULL; | ||||
| static char sDefaultPlayerName[] = "Player"; | ||||
| static char sDefaultDiscordId[] = "0"; | ||||
| 
 | ||||
| void network_player_init(void) { | ||||
|     gNetworkPlayers[0].modelIndex = (configPlayerModel < CT_MAX) ? configPlayerModel : CT_MARIO; | ||||
|  | @ -225,7 +226,7 @@ void network_player_update(void) { | |||
| } | ||||
| 
 | ||||
| extern bool gCurrentlyJoining; | ||||
| u8 network_player_connected(enum NetworkPlayerType type, u8 globalIndex, u8 modelIndex, const struct PlayerPalette* palette, const char *name) { | ||||
| u8 network_player_connected(enum NetworkPlayerType type, u8 globalIndex, u8 modelIndex, const struct PlayerPalette* palette, const char* name, const char* discordId) { | ||||
|     // translate globalIndex to localIndex
 | ||||
|     u8 localIndex = globalIndex; | ||||
|     if (gNetworkType == NT_SERVER) { | ||||
|  | @ -245,6 +246,9 @@ u8 network_player_connected(enum NetworkPlayerType type, u8 globalIndex, u8 mode | |||
|     if (name[0] == '\0') { | ||||
|         name = sDefaultPlayerName; | ||||
|     } | ||||
|     if (discordId[0] == '\0') { | ||||
|         discordId = sDefaultDiscordId; | ||||
|     } | ||||
|     if (modelIndex >= CT_MAX) { modelIndex = 0; } | ||||
| 
 | ||||
|     // if already connected, update a few things
 | ||||
|  | @ -292,6 +296,8 @@ u8 network_player_connected(enum NetworkPlayerType type, u8 globalIndex, u8 mode | |||
|     snprintf(np->name, MAX_CONFIG_STRING, "%s", name); | ||||
|     network_player_update_model(localIndex); | ||||
| 
 | ||||
|     snprintf(np->discordId, 64, "%s", discordId); | ||||
| 
 | ||||
|     // clear networking fields
 | ||||
|     np->lastReceived = clock_elapsed(); | ||||
|     np->lastSent = clock_elapsed(); | ||||
|  |  | |||
|  | @ -58,6 +58,8 @@ struct NetworkPlayer { | |||
|     u16 rxSeqIds[MAX_RX_SEQ_IDS]; | ||||
|     u32 rxPacketHash[MAX_RX_SEQ_IDS]; | ||||
| 
 | ||||
|     char discordId[64]; | ||||
| 
 | ||||
|     // legacy fields to allow mods not to fully break (they don't do anything anymore)
 | ||||
|     u8 paletteIndex; | ||||
|     u8 overridePaletteIndex; | ||||
|  | @ -87,7 +89,7 @@ bool network_player_is_override_palette_same(struct NetworkPlayer *np); | |||
| 
 | ||||
| void network_player_update(void); | ||||
| 
 | ||||
| u8 network_player_connected(enum NetworkPlayerType type, u8 globalIndex, u8 modelIndex, const struct PlayerPalette* playerPalette, const char* name); | ||||
| u8 network_player_connected(enum NetworkPlayerType type, u8 globalIndex, u8 modelIndex, const struct PlayerPalette* playerPalette, const char* name, const char* discordId); | ||||
| u8 network_player_disconnected(u8 globalIndex); | ||||
| void construct_player_popup(struct NetworkPlayer* np, char* msg, const char* level); | ||||
| 
 | ||||
|  |  | |||
|  | @ -56,3 +56,8 @@ extern s16 gMenuMode; | |||
| bool network_check_singleplayer_pause(void) { | ||||
|     return gMenuMode != -1 && network_player_connected_count() == 1 && mods_get_all_pausable() && !gDjuiInPlayerMenu; | ||||
| } | ||||
| 
 | ||||
| const char* network_discord_id_from_local_index(u8 localIndex) { | ||||
|     if (localIndex >= MAX_PLAYERS) { return "0"; } | ||||
|     return gNetworkPlayers[localIndex].discordId; | ||||
| } | ||||
|  |  | |||
|  | @ -15,4 +15,6 @@ const char* network_get_player_text_color_string(u8 localIndex); | |||
| 
 | ||||
| bool network_check_singleplayer_pause(void); | ||||
| 
 | ||||
| const char* network_discord_id_from_local_index(u8 localIndex); | ||||
| 
 | ||||
| #endif | ||||
|  | @ -25,6 +25,7 @@ | |||
| #include "pc/mods/mods.h" | ||||
| #include "pc/lua/smlua.h" | ||||
| #include "pc/configfile.h" | ||||
| #include "pc/lua/utils/smlua_misc_utils.h" | ||||
| 
 | ||||
| extern u8* gOverrideEeprom; | ||||
| static u8 eeprom[512] = { 0 }; | ||||
|  | @ -32,6 +33,7 @@ static u8 eeprom[512] = { 0 }; | |||
| static u8   sJoinRequestPlayerModel; | ||||
| static struct PlayerPalette sJoinRequestPlayerPalette; | ||||
| static char sJoinRequestPlayerName[MAX_CONFIG_STRING]; | ||||
| static char sJoinRequestDiscordId[64]; | ||||
| bool gCurrentlyJoining = false; | ||||
| 
 | ||||
| void network_send_join_request(void) { | ||||
|  | @ -96,7 +98,7 @@ void network_send_join(struct Packet* joinRequestPacket) { | |||
|     LOG_INFO("chose globalIndex: %d", globalIndex); | ||||
| 
 | ||||
|     // do connection event
 | ||||
|     network_player_connected(NPT_CLIENT, globalIndex, sJoinRequestPlayerModel, &sJoinRequestPlayerPalette, sJoinRequestPlayerName); | ||||
|     network_player_connected(NPT_CLIENT, globalIndex, sJoinRequestPlayerModel, &sJoinRequestPlayerPalette, sJoinRequestPlayerName, sJoinRequestDiscordId); | ||||
| 
 | ||||
|     fs_file_t* fp = fs_open(SAVE_FILENAME); | ||||
|     if (fp != NULL) { | ||||
|  | @ -177,8 +179,8 @@ void network_receive_join(struct Packet* p) { | |||
|     packet_read(p, &gServerSettings.pauseAnywhere, sizeof(u8)); | ||||
|     packet_read(p, eeprom, sizeof(u8) * 512); | ||||
| 
 | ||||
|     network_player_connected(NPT_SERVER, 0, 0, &DEFAULT_MARIO_PALETTE, "Player"); | ||||
|     network_player_connected(NPT_LOCAL, myGlobalIndex, configPlayerModel, &configPlayerPalette, configPlayerName); | ||||
|     network_player_connected(NPT_SERVER, 0, 0, &DEFAULT_MARIO_PALETTE, "Player", "0"); | ||||
|     network_player_connected(NPT_LOCAL, myGlobalIndex, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id()); | ||||
|     djui_chat_box_create(); | ||||
| 
 | ||||
|     save_file_load_all(TRUE); | ||||
|  |  | |||
|  | @ -35,6 +35,7 @@ static void network_send_to_network_players(u8 sendToLocalIndex) { | |||
|         packet_write(&p, &gNetworkPlayers[i].modelIndex,         sizeof(u8)); | ||||
|         packet_write(&p, &gNetworkPlayers[i].palette,            sizeof(struct PlayerPalette)); | ||||
|         packet_write(&p, &gNetworkPlayers[i].name,               sizeof(u8) * MAX_CONFIG_STRING); | ||||
|         packet_write(&p, &gNetworkPlayers[i].discordId,          sizeof(u8) * 64); | ||||
|         LOG_INFO("send network player [%d == %d]", gNetworkPlayers[i].globalIndex, npType); | ||||
|     } | ||||
| 
 | ||||
|  | @ -92,6 +93,7 @@ void network_receive_network_players(struct Packet *p) { | |||
|         u8 modelIndex; | ||||
|         struct PlayerPalette palette; | ||||
|         char playerName[MAX_CONFIG_STRING] = { 0 }; | ||||
|         char discordId[64] = { 0 }; | ||||
| 
 | ||||
|         packet_read(p, &npType,         sizeof(u8)); | ||||
|         packet_read(p, &globalIndex,    sizeof(u8)); | ||||
|  | @ -106,8 +108,9 @@ void network_receive_network_players(struct Packet *p) { | |||
|         packet_read(p, &modelIndex,     sizeof(u8)); | ||||
|         packet_read(p, &palette,        sizeof(struct PlayerPalette)); | ||||
|         packet_read(p, &playerName,     sizeof(u8) * MAX_CONFIG_STRING); | ||||
|         packet_read(p, &discordId,      sizeof(u8) * 64); | ||||
| 
 | ||||
|         u8 localIndex = network_player_connected(npType, globalIndex, modelIndex, &palette, playerName); | ||||
|         u8 localIndex = network_player_connected(npType, globalIndex, modelIndex, &palette, playerName, discordId); | ||||
|         LOG_INFO("received network player [%d == %d] (%d)", globalIndex, npType, localIndex); | ||||
|         if (localIndex != UNKNOWN_GLOBAL_INDEX) { | ||||
|             struct NetworkPlayer *np = &gNetworkPlayers[localIndex]; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Agent X
						Agent X