mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-04-28 04:51:40 +00:00
modify gOverrideEeprom
This commit is contained in:
parent
e7f06691a5
commit
1a44cf7053
4 changed files with 15 additions and 33 deletions
|
|
@ -34,6 +34,7 @@
|
|||
#include "game/first_person_cam.h"
|
||||
#include "game/envfx_snow.h"
|
||||
#include "game/mario.h"
|
||||
#include "game/save_file.h"
|
||||
#include "engine/math_util.h"
|
||||
#include "engine/lighting_engine.h"
|
||||
#include "src/audio/load.h"
|
||||
|
|
@ -169,8 +170,8 @@ bool network_init(enum NetworkType inNetworkType, bool reconnecting) {
|
|||
dynos_behavior_hook_all_custom_behaviors();
|
||||
|
||||
network_player_connected(NPT_LOCAL, 0, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id());
|
||||
extern u8* gOverrideEeprom;
|
||||
gOverrideEeprom = NULL;
|
||||
extern u8* gOverrideEeprom[NUM_SAVE_FILES];
|
||||
memset(gOverrideEeprom, 0, sizeof(gOverrideEeprom));
|
||||
|
||||
if (gCurrLevelNum != (s16)gLevelValues.entryLevel) {
|
||||
extern s16 gChangeLevelTransition;
|
||||
|
|
@ -705,8 +706,8 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup, bool reconnect
|
|||
dynos_model_clear_pool(MODEL_POOL_SESSION);
|
||||
|
||||
// reset other stuff
|
||||
extern u8* gOverrideEeprom;
|
||||
gOverrideEeprom = NULL;
|
||||
extern u8* gOverrideEeprom[NUM_SAVE_FILES];
|
||||
memset(gOverrideEeprom, 0, sizeof(gOverrideEeprom));
|
||||
extern u8 gOverrideFreezeCamera;
|
||||
gOverrideFreezeCamera = false;
|
||||
gDjuiHudLockMouse = false;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "game/save_file.h"
|
||||
#include "pc/debuglog.h"
|
||||
|
||||
extern u8* gOverrideEeprom;
|
||||
extern u8* gOverrideEeprom[NUM_SAVE_FILES];
|
||||
static u8 eeprom[NUM_SAVE_FILES][EEPROM_SIZE] = { 0 };
|
||||
static int filledEepromData = 0;
|
||||
static int chunks = (NUM_SAVE_FILES * EEPROM_SIZE + (PACKET_LENGTH - 8) - 1) / (PACKET_LENGTH - 8);
|
||||
|
|
@ -86,6 +86,9 @@ void network_receive_download_save(struct Packet* p) {
|
|||
}
|
||||
|
||||
if (filledEepromData == NUM_SAVE_FILES * EEPROM_SIZE) {
|
||||
for (int i = 0; i < NUM_SAVE_FILES; i++) {
|
||||
gOverrideEeprom[i] = eeprom[i];
|
||||
}
|
||||
filledEepromData = 0;
|
||||
network_send_join_request();
|
||||
} else if (filledEepromData > NUM_SAVE_FILES * EEPROM_SIZE) {
|
||||
|
|
|
|||
|
|
@ -27,10 +27,7 @@
|
|||
#include "pc/configfile.h"
|
||||
#include "pc/lua/utils/smlua_misc_utils.h"
|
||||
|
||||
extern u8* gOverrideEeprom;
|
||||
static u8 eeprom[EEPROM_SIZE] = { 0 };
|
||||
|
||||
static u8 sJoinRequestPlayerModel;
|
||||
static u8 sJoinRequestPlayerModel;
|
||||
static struct PlayerPalette sJoinRequestPlayerPalette;
|
||||
static char sJoinRequestPlayerName[MAX_CONFIG_STRING];
|
||||
static char sJoinRequestDiscordId[64];
|
||||
|
|
@ -40,7 +37,6 @@ void network_send_join_request(void) {
|
|||
SOFT_ASSERT(gNetworkType == NT_CLIENT);
|
||||
|
||||
gNetworkSentJoin = true;
|
||||
gOverrideEeprom = eeprom;
|
||||
|
||||
struct Packet p = { 0 };
|
||||
packet_init(&p, PACKET_JOIN_REQUEST, true, PLMT_NONE);
|
||||
|
|
@ -99,15 +95,6 @@ void network_send_join(struct Packet* joinRequestPacket) {
|
|||
|
||||
// do connection event
|
||||
network_player_connected(NPT_CLIENT, globalIndex, sJoinRequestPlayerModel, &sJoinRequestPlayerPalette, sJoinRequestPlayerName, sJoinRequestDiscordId);
|
||||
|
||||
char filePath[256];
|
||||
save_file_get_dir(gCurrSaveFileNum - 1, filePath, 256, NULL);
|
||||
fs_file_t* fp = fs_open(filePath);
|
||||
if (fp != NULL) {
|
||||
fs_read(fp, eeprom, EEPROM_SIZE);
|
||||
fs_close(fp);
|
||||
}
|
||||
|
||||
char version[MAX_VERSION_LENGTH] = { 0 };
|
||||
snprintf(version, MAX_VERSION_LENGTH, "%s", get_version());
|
||||
LOG_INFO("sending version: %s", version);
|
||||
|
|
@ -128,7 +115,6 @@ void network_send_join(struct Packet* joinRequestPacket) {
|
|||
packet_write(&p, &gServerSettings.maxPlayers, sizeof(u8));
|
||||
packet_write(&p, &gServerSettings.pauseAnywhere, sizeof(u8));
|
||||
packet_write(&p, &gServerSettings.pvpType, sizeof(u8));
|
||||
packet_write(&p, eeprom, sizeof(u8) * EEPROM_SIZE);
|
||||
|
||||
network_send_to(globalIndex, &p);
|
||||
LOG_INFO("sending join packet");
|
||||
|
|
@ -142,8 +128,6 @@ void network_receive_join(struct Packet* p) {
|
|||
LOG_INFO("received join packet");
|
||||
gCurrentlyJoining = true;
|
||||
|
||||
gOverrideEeprom = eeprom;
|
||||
|
||||
char version[MAX_VERSION_LENGTH] = { 0 };
|
||||
snprintf(version, MAX_VERSION_LENGTH, "%s", get_version());
|
||||
LOG_INFO("client has version: %s", version);
|
||||
|
|
@ -181,7 +165,6 @@ void network_receive_join(struct Packet* p) {
|
|||
packet_read(p, &gServerSettings.maxPlayers, sizeof(u8));
|
||||
packet_read(p, &gServerSettings.pauseAnywhere, sizeof(u8));
|
||||
packet_read(p, &gServerSettings.pvpType, sizeof(u8));
|
||||
packet_read(p, eeprom, sizeof(u8) * EEPROM_SIZE);
|
||||
|
||||
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());
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#include "fs/fs.h"
|
||||
#include "game/save_file.h"
|
||||
|
||||
u8* gOverrideEeprom = NULL;
|
||||
u8* gOverrideEeprom[NUM_SAVE_FILES] = { NULL };
|
||||
|
||||
extern OSMgrArgs piMgrArgs;
|
||||
|
||||
|
|
@ -126,11 +126,6 @@ s32 osEepromProbe(UNUSED OSMesgQueue *mq) {
|
|||
}
|
||||
|
||||
s32 osEepromLongReadLegacy(UNUSED OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes) {
|
||||
if (gOverrideEeprom != NULL) {
|
||||
memcpy(buffer, gOverrideEeprom + address * 8, nbytes);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 content[512];
|
||||
s32 ret = -1;
|
||||
|
||||
|
|
@ -148,8 +143,8 @@ s32 osEepromLongReadLegacy(UNUSED OSMesgQueue *mq, u8 address, u8 *buffer, int n
|
|||
}
|
||||
|
||||
s32 osEepromLongRead(UNUSED OSMesgQueue *mq, u8 fileIndex, u8 address, u8 *buffer, int nbytes) {
|
||||
if (gOverrideEeprom != NULL) {
|
||||
memcpy(buffer, gOverrideEeprom + address * 8, nbytes);
|
||||
if (gOverrideEeprom[fileIndex] != NULL) {
|
||||
memcpy(buffer, gOverrideEeprom[fileIndex] + address * 8, nbytes);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -172,8 +167,8 @@ s32 osEepromLongRead(UNUSED OSMesgQueue *mq, u8 fileIndex, u8 address, u8 *buffe
|
|||
}
|
||||
|
||||
s32 osEepromLongWrite(UNUSED OSMesgQueue *mq, u8 fileIndex, u8 address, u8 *buffer, int nbytes) {
|
||||
if (gOverrideEeprom != NULL) {
|
||||
memcpy(gOverrideEeprom + address * 8, buffer, nbytes);
|
||||
if (gOverrideEeprom[fileIndex] != NULL) {
|
||||
memcpy(gOverrideEeprom[fileIndex] + address * 8, buffer, nbytes);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue