mirror of
https://github.com/zeldaret/oot
synced 2026-08-24 07:20:28 -04:00
[cc0 oot] z_memory_utils (#2783)
* [cc0 oot] z_memory_utils * format * doc * MemCopy: The memory regions must not overlap.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
void* MemCpy(void* dest, const void* src, s32 len);
|
||||
void* MemSet(void* dest, s32 val, s32 len);
|
||||
void* MemCopy(void* dest, void* src, s32 size);
|
||||
void* MemSet(void* dest, s32 val, s32 size);
|
||||
|
||||
#endif
|
||||
|
||||
+23
-23
@@ -1820,10 +1820,10 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
s32 csFrameCount;
|
||||
s16 j;
|
||||
|
||||
MemCpy(&totalEntries, script, sizeof(totalEntries));
|
||||
MemCopy(&totalEntries, script, sizeof(totalEntries));
|
||||
script += sizeof(totalEntries);
|
||||
|
||||
MemCpy(&csFrameCount, script, sizeof(csFrameCount));
|
||||
MemCopy(&csFrameCount, script, sizeof(csFrameCount));
|
||||
script += sizeof(csFrameCount);
|
||||
|
||||
if ((csCtx->curFrame > csFrameCount) && (csCtx->state != CS_STATE_RUN_UNSTOPPABLE)) {
|
||||
@@ -1839,7 +1839,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
#endif
|
||||
|
||||
for (i = 0; i < totalEntries; i++) {
|
||||
MemCpy(&cmdType, script, sizeof(cmdType));
|
||||
MemCopy(&cmdType, script, sizeof(cmdType));
|
||||
script += sizeof(cmdType);
|
||||
|
||||
if (cmdType == CS_CMD_END_OF_SCRIPT) {
|
||||
@@ -1848,7 +1848,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
|
||||
switch (cmdType) {
|
||||
case CS_CMD_MISC:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1858,7 +1858,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_LIGHT_SETTING:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1868,7 +1868,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_START_SEQ:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1878,7 +1878,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_STOP_SEQ:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1888,7 +1888,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_FADE_OUT_SEQ:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1898,7 +1898,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_RUMBLE_CONTROLLER:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1908,7 +1908,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_TIME:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1918,7 +1918,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_PLAYER_CUE:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1951,7 +1951,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_0_15:
|
||||
case CS_CMD_ACTOR_CUE_0_16:
|
||||
case CS_CMD_ACTOR_CUE_0_17:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -1984,7 +1984,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_1_15:
|
||||
case CS_CMD_ACTOR_CUE_1_16:
|
||||
case CS_CMD_ACTOR_CUE_1_17:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2013,7 +2013,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_2_11:
|
||||
case CS_CMD_ACTOR_CUE_2_12:
|
||||
case CS_CMD_ACTOR_CUE_2_13:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2041,7 +2041,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_3_10:
|
||||
case CS_CMD_ACTOR_CUE_3_11:
|
||||
case CS_CMD_ACTOR_CUE_3_12:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2065,7 +2065,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_4_6:
|
||||
case CS_CMD_ACTOR_CUE_4_7:
|
||||
case CS_CMD_ACTOR_CUE_4_8:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2087,7 +2087,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_5_4:
|
||||
case CS_CMD_ACTOR_CUE_5_5:
|
||||
case CS_CMD_ACTOR_CUE_5_6:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2110,7 +2110,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_6_5:
|
||||
case CS_CMD_ACTOR_CUE_6_6:
|
||||
case CS_CMD_ACTOR_CUE_6_7:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2132,7 +2132,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
case CS_CMD_ACTOR_CUE_7_4:
|
||||
case CS_CMD_ACTOR_CUE_7_5:
|
||||
case CS_CMD_ACTOR_CUE_7_6:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2148,7 +2148,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_ACTOR_CUE_8_0:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2164,7 +2164,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_ACTOR_CUE_9_0:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2210,7 +2210,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
case CS_CMD_TEXT:
|
||||
MemCpy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
MemCopy(&cmdEntries, script, sizeof(cmdEntries));
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
@@ -2231,7 +2231,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
||||
break;
|
||||
|
||||
default:
|
||||
MemCpy(&cmdEntries, script, 4);
|
||||
MemCopy(&cmdEntries, script, 4);
|
||||
script += sizeof(cmdEntries);
|
||||
|
||||
for (j = 0; j < cmdEntries; j++) {
|
||||
|
||||
+14
-30
@@ -1,47 +1,31 @@
|
||||
#include "ultra64.h"
|
||||
#include "memory_utils.h"
|
||||
|
||||
/**
|
||||
* memcpy: copies `len` bytes from memory starting at `src` to memory starting at `dest`. Expects the memory
|
||||
* specified by `src` and `dest` to not overlap.
|
||||
*
|
||||
* @see libultra also has a memcpy().
|
||||
*
|
||||
* @param dest address of start of buffer writing to
|
||||
* @param src address of start of buffer to read from
|
||||
* @param len number of bytes to copy. (`s32` rather than the standard `size_t`)
|
||||
*
|
||||
* @return dest
|
||||
* Copy `size` bytes from `src` to `dest`.
|
||||
* The memory regions must not overlap.
|
||||
*/
|
||||
void* MemCpy(void* dest, const void* src, s32 len) {
|
||||
u8* d = dest;
|
||||
const u8* s = src;
|
||||
void* MemCopy(void* dest, void* src, s32 size) {
|
||||
u8* destu = (u8*)dest;
|
||||
u8* srcu = (u8*)src;
|
||||
|
||||
while (len > 0) {
|
||||
*d++ = *s++;
|
||||
len--;
|
||||
while (size > 0) {
|
||||
*destu++ = *srcu++;
|
||||
size--;
|
||||
}
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* memset: sets `len` bytes to `val` starting at address `dest`.
|
||||
*
|
||||
* @see There are two other memsets in this codebase, Lib_MemSet(), memset().
|
||||
* This one is unused.
|
||||
*
|
||||
* @param dest address to start at
|
||||
* @param val value to write (`s32`, but interpreted as `u8`)
|
||||
* @param len number of bytes to write. (`s32` rather than the standard `size_t`)
|
||||
*
|
||||
* @return dest
|
||||
* Set `size` bytes starting at `dest` to value `val`.
|
||||
*/
|
||||
void* MemSet(void* dest, s32 val, s32 len) {
|
||||
u8* d = dest;
|
||||
s32 s = len;
|
||||
void* MemSet(void* dest, s32 val, s32 size) {
|
||||
u8* destu = (u8*)dest;
|
||||
s32 s = size;
|
||||
|
||||
while (s > 0) {
|
||||
*d++ = val;
|
||||
*destu++ = val;
|
||||
s--;
|
||||
}
|
||||
|
||||
|
||||
@@ -3686,8 +3686,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
|
||||
T("録音終了!!!!!!!!!録音終了\n", "Recording complete!!!!!!!!! Recording Complete\n"));
|
||||
PRINTF_COLOR_YELLOW();
|
||||
PRINTF("\n====================================================================\n");
|
||||
MemCpy(gSaveContext.save.info.scarecrowLongSong, gScarecrowLongSongPtr,
|
||||
sizeof(gSaveContext.save.info.scarecrowLongSong));
|
||||
MemCopy(gSaveContext.save.info.scarecrowLongSong, gScarecrowLongSongPtr,
|
||||
sizeof(gSaveContext.save.info.scarecrowLongSong));
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.save.info.scarecrowLongSong); i++) {
|
||||
PRINTF("%d, ", gSaveContext.save.info.scarecrowLongSong[i]);
|
||||
}
|
||||
@@ -3750,8 +3750,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
|
||||
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
|
||||
PRINTF_COLOR_YELLOW();
|
||||
PRINTF("\n====================================================================\n");
|
||||
MemCpy(gSaveContext.save.info.scarecrowSpawnSong, gScarecrowSpawnSongPtr,
|
||||
sizeof(gSaveContext.save.info.scarecrowSpawnSong));
|
||||
MemCopy(gSaveContext.save.info.scarecrowSpawnSong, gScarecrowSpawnSongPtr,
|
||||
sizeof(gSaveContext.save.info.scarecrowSpawnSong));
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.save.info.scarecrowSpawnSong); i++) {
|
||||
PRINTF("%d, ", gSaveContext.save.info.scarecrowSpawnSong[i]);
|
||||
}
|
||||
|
||||
+67
-66
@@ -445,7 +445,7 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
||||
i = gSramSlotOffsets[gSaveContext.fileNum];
|
||||
PRINTF(T("ぽいんと=%x(%d)\n", "Point=%x(%d)\n"), i, gSaveContext.fileNum);
|
||||
|
||||
MemCpy(&gSaveContext, sramCtx->readBuff + i, sizeof(Save));
|
||||
MemCopy(&gSaveContext, sramCtx->readBuff + i, sizeof(Save));
|
||||
|
||||
PRINTF_COLOR_YELLOW();
|
||||
PRINTF("SCENE_DATA_ID = %d SceneNo = %d\n", gSaveContext.save.info.playerData.savedSceneId,
|
||||
@@ -533,8 +533,8 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
||||
PRINTF_COLOR_BLUE();
|
||||
PRINTF("\n====================================================================\n");
|
||||
|
||||
MemCpy(gScarecrowLongSongPtr, gSaveContext.save.info.scarecrowLongSong,
|
||||
sizeof(gSaveContext.save.info.scarecrowLongSong));
|
||||
MemCopy(gScarecrowLongSongPtr, gSaveContext.save.info.scarecrowLongSong,
|
||||
sizeof(gSaveContext.save.info.scarecrowLongSong));
|
||||
|
||||
ptr = (u8*)gScarecrowLongSongPtr;
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.save.info.scarecrowLongSong); i++, ptr++) {
|
||||
@@ -549,8 +549,8 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
||||
PRINTF_COLOR_GREEN();
|
||||
PRINTF("\n====================================================================\n");
|
||||
|
||||
MemCpy(gScarecrowSpawnSongPtr, gSaveContext.save.info.scarecrowSpawnSong,
|
||||
sizeof(gSaveContext.save.info.scarecrowSpawnSong));
|
||||
MemCopy(gScarecrowSpawnSongPtr, gSaveContext.save.info.scarecrowSpawnSong,
|
||||
sizeof(gSaveContext.save.info.scarecrowSpawnSong));
|
||||
|
||||
ptr = gScarecrowSpawnSongPtr;
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.save.info.scarecrowSpawnSong); i++, ptr++) {
|
||||
@@ -677,7 +677,7 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
|
||||
offset = gSramSlotOffsets[slotNum];
|
||||
PRINTF(T("ぽいんと=%x(%d) SAVE_MAX=%d\n", "Point=%x(%d) SAVE_MAX=%d\n"), offset, gSaveContext.fileNum,
|
||||
sizeof(Save));
|
||||
MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||
MemCopy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||
|
||||
oldChecksum = gSaveContext.save.info.checksum.value;
|
||||
gSaveContext.save.info.checksum.value = 0;
|
||||
@@ -702,7 +702,7 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
|
||||
// checksum didnt match, try backup save
|
||||
PRINTF("ERROR!!! = %x(%d)\n", gSramSlotOffsets[slotNum], slotNum);
|
||||
offset = gSramSlotOffsets[slotNum + 3];
|
||||
MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||
MemCopy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||
|
||||
oldChecksum = gSaveContext.save.info.checksum.value;
|
||||
gSaveContext.save.info.checksum.value = 0;
|
||||
@@ -801,37 +801,37 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
|
||||
PRINTF("SAVECT=%x, NAME=%x, LIFE=%x, ITEM=%x, 64DD=%x, HEART=%x\n", DEATHS, NAME, HEALTH_CAP, QUEST, N64DD,
|
||||
DEFENSE);
|
||||
|
||||
MemCpy(&fileSelect->deaths[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCpy(&fileSelect->deaths[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCpy(&fileSelect->deaths[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCopy(&fileSelect->deaths[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCopy(&fileSelect->deaths[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCopy(&fileSelect->deaths[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
|
||||
MemCpy(&fileSelect->fileNames[0], sramCtx->readBuff + SLOT_OFFSET(0) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||
MemCpy(&fileSelect->fileNames[1], sramCtx->readBuff + SLOT_OFFSET(1) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||
MemCpy(&fileSelect->fileNames[2], sramCtx->readBuff + SLOT_OFFSET(2) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||
MemCopy(&fileSelect->fileNames[0], sramCtx->readBuff + SLOT_OFFSET(0) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||
MemCopy(&fileSelect->fileNames[1], sramCtx->readBuff + SLOT_OFFSET(1) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||
MemCopy(&fileSelect->fileNames[2], sramCtx->readBuff + SLOT_OFFSET(2) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||
|
||||
MemCpy(&fileSelect->healthCapacities[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCpy(&fileSelect->healthCapacities[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCpy(&fileSelect->healthCapacities[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCopy(&fileSelect->healthCapacities[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCopy(&fileSelect->healthCapacities[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCopy(&fileSelect->healthCapacities[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
|
||||
MemCpy(&fileSelect->questItems[0], sramCtx->readBuff + SLOT_OFFSET(0) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||
MemCpy(&fileSelect->questItems[1], sramCtx->readBuff + SLOT_OFFSET(1) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||
MemCpy(&fileSelect->questItems[2], sramCtx->readBuff + SLOT_OFFSET(2) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||
MemCopy(&fileSelect->questItems[0], sramCtx->readBuff + SLOT_OFFSET(0) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||
MemCopy(&fileSelect->questItems[1], sramCtx->readBuff + SLOT_OFFSET(1) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||
MemCopy(&fileSelect->questItems[2], sramCtx->readBuff + SLOT_OFFSET(2) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||
|
||||
MemCpy(&fileSelect->n64ddFlags[0], sramCtx->readBuff + SLOT_OFFSET(0) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCpy(&fileSelect->n64ddFlags[1], sramCtx->readBuff + SLOT_OFFSET(1) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCpy(&fileSelect->n64ddFlags[2], sramCtx->readBuff + SLOT_OFFSET(2) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCopy(&fileSelect->n64ddFlags[0], sramCtx->readBuff + SLOT_OFFSET(0) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCopy(&fileSelect->n64ddFlags[1], sramCtx->readBuff + SLOT_OFFSET(1) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCopy(&fileSelect->n64ddFlags[2], sramCtx->readBuff + SLOT_OFFSET(2) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||
|
||||
MemCpy(&fileSelect->defense[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
MemCpy(&fileSelect->defense[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
MemCpy(&fileSelect->defense[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
MemCopy(&fileSelect->defense[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
MemCopy(&fileSelect->defense[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
MemCopy(&fileSelect->defense[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
|
||||
#if OOT_PAL
|
||||
MemCpy(&fileSelect->health[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH, sizeof(fileSelect->health[0]));
|
||||
MemCpy(&fileSelect->health[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH, sizeof(fileSelect->health[0]));
|
||||
MemCpy(&fileSelect->health[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH, sizeof(fileSelect->health[0]));
|
||||
MemCopy(&fileSelect->health[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH, sizeof(fileSelect->health[0]));
|
||||
MemCopy(&fileSelect->health[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH, sizeof(fileSelect->health[0]));
|
||||
MemCopy(&fileSelect->health[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH, sizeof(fileSelect->health[0]));
|
||||
#endif
|
||||
|
||||
PRINTF("f_64dd=%d, %d, %d\n", fileSelect->n64ddFlags[0], fileSelect->n64ddFlags[1], fileSelect->n64ddFlags[2]);
|
||||
@@ -910,11 +910,11 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||
|
||||
offset = gSramSlotOffsets[gSaveContext.fileNum];
|
||||
PRINTF("I=%x no=%d\n", offset, gSaveContext.fileNum);
|
||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
MemCopy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
|
||||
offset = gSramSlotOffsets[gSaveContext.fileNum + 3];
|
||||
PRINTF("I=%x no=%d\n", offset, gSaveContext.fileNum + 3);
|
||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
MemCopy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
|
||||
SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE);
|
||||
|
||||
@@ -924,18 +924,19 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||
|
||||
j = gSramSlotOffsets[gSaveContext.fileNum];
|
||||
|
||||
MemCpy(&fileSelect->deaths[gSaveContext.fileNum], sramCtx->readBuff + j + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCpy(&fileSelect->fileNames[gSaveContext.fileNum], sramCtx->readBuff + j + NAME,
|
||||
sizeof(fileSelect->fileNames[0]));
|
||||
MemCpy(&fileSelect->healthCapacities[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCpy(&fileSelect->questItems[gSaveContext.fileNum], sramCtx->readBuff + j + QUEST,
|
||||
sizeof(fileSelect->questItems[0]));
|
||||
MemCpy(&fileSelect->n64ddFlags[gSaveContext.fileNum], sramCtx->readBuff + j + N64DD,
|
||||
sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCpy(&fileSelect->defense[gSaveContext.fileNum], sramCtx->readBuff + j + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||
MemCopy(&fileSelect->deaths[gSaveContext.fileNum], sramCtx->readBuff + j + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||
MemCopy(&fileSelect->fileNames[gSaveContext.fileNum], sramCtx->readBuff + j + NAME,
|
||||
sizeof(fileSelect->fileNames[0]));
|
||||
MemCopy(&fileSelect->healthCapacities[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCopy(&fileSelect->questItems[gSaveContext.fileNum], sramCtx->readBuff + j + QUEST,
|
||||
sizeof(fileSelect->questItems[0]));
|
||||
MemCopy(&fileSelect->n64ddFlags[gSaveContext.fileNum], sramCtx->readBuff + j + N64DD,
|
||||
sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCopy(&fileSelect->defense[gSaveContext.fileNum], sramCtx->readBuff + j + DEFENSE,
|
||||
sizeof(fileSelect->defense[0]));
|
||||
#if OOT_PAL
|
||||
MemCpy(&fileSelect->health[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH, sizeof(fileSelect->health[0]));
|
||||
MemCopy(&fileSelect->health[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH, sizeof(fileSelect->health[0]));
|
||||
#endif
|
||||
|
||||
PRINTF("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]);
|
||||
@@ -951,14 +952,14 @@ void Sram_EraseSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||
Sram_InitNewSave();
|
||||
|
||||
offset = gSramSlotOffsets[fileSelect->selectedFileIndex];
|
||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
MemCopy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE);
|
||||
|
||||
MemCpy(&fileSelect->n64ddFlags[fileSelect->selectedFileIndex], sramCtx->readBuff + offset + N64DD,
|
||||
sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCopy(&fileSelect->n64ddFlags[fileSelect->selectedFileIndex], sramCtx->readBuff + offset + N64DD,
|
||||
sizeof(fileSelect->n64ddFlags[0]));
|
||||
|
||||
offset = gSramSlotOffsets[fileSelect->selectedFileIndex + 3];
|
||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
MemCopy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE);
|
||||
|
||||
PRINTF(T("CLEAR終了\n", "CLEAR END\n"));
|
||||
@@ -972,33 +973,33 @@ void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||
gSramSlotOffsets[fileSelect->copyDestFileIndex]);
|
||||
|
||||
offset = gSramSlotOffsets[fileSelect->selectedFileIndex];
|
||||
MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||
MemCopy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||
|
||||
offset = gSramSlotOffsets[fileSelect->copyDestFileIndex];
|
||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
MemCopy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
|
||||
offset = gSramSlotOffsets[fileSelect->copyDestFileIndex + 3];
|
||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
MemCopy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||
|
||||
SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE);
|
||||
|
||||
offset = gSramSlotOffsets[fileSelect->copyDestFileIndex];
|
||||
|
||||
MemCpy(&fileSelect->deaths[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEATHS,
|
||||
sizeof(fileSelect->deaths[0]));
|
||||
MemCpy(&fileSelect->fileNames[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + NAME,
|
||||
sizeof(fileSelect->fileNames[0]));
|
||||
MemCpy(&fileSelect->healthCapacities[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCpy(&fileSelect->questItems[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + QUEST,
|
||||
sizeof(fileSelect->questItems[0]));
|
||||
MemCpy(&fileSelect->n64ddFlags[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + N64DD,
|
||||
sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCpy(&fileSelect->defense[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEFENSE,
|
||||
sizeof(fileSelect->defense[0]));
|
||||
MemCopy(&fileSelect->deaths[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEATHS,
|
||||
sizeof(fileSelect->deaths[0]));
|
||||
MemCopy(&fileSelect->fileNames[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + NAME,
|
||||
sizeof(fileSelect->fileNames[0]));
|
||||
MemCopy(&fileSelect->healthCapacities[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + HEALTH_CAP,
|
||||
sizeof(fileSelect->healthCapacities[0]));
|
||||
MemCopy(&fileSelect->questItems[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + QUEST,
|
||||
sizeof(fileSelect->questItems[0]));
|
||||
MemCopy(&fileSelect->n64ddFlags[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + N64DD,
|
||||
sizeof(fileSelect->n64ddFlags[0]));
|
||||
MemCopy(&fileSelect->defense[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEFENSE,
|
||||
sizeof(fileSelect->defense[0]));
|
||||
#if OOT_PAL
|
||||
MemCpy(&fileSelect->health[fileSelect->copyDestFileIndex], (sramCtx->readBuff + offset) + HEALTH,
|
||||
sizeof(fileSelect->health[0]));
|
||||
MemCopy(&fileSelect->health[fileSelect->copyDestFileIndex], (sramCtx->readBuff + offset) + HEALTH,
|
||||
sizeof(fileSelect->health[0]));
|
||||
#endif
|
||||
|
||||
PRINTF("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]);
|
||||
@@ -1026,7 +1027,7 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) {
|
||||
gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE];
|
||||
#endif
|
||||
|
||||
MemCpy(sramCtx->readBuff, sSramDefaultHeader, sizeof(sSramDefaultHeader));
|
||||
MemCopy(sramCtx->readBuff, sSramDefaultHeader, sizeof(sSramDefaultHeader));
|
||||
|
||||
#if PLATFORM_GC && OOT_PAL
|
||||
sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language;
|
||||
|
||||
@@ -543,7 +543,7 @@ void FileSelect_UpdateMainMenu(GameState* thisx) {
|
||||
this->newFileNameCharCount = 0;
|
||||
this->nameEntryBoxPosX = 120;
|
||||
this->nameEntryBoxAlpha = 0;
|
||||
MemCpy(&this->fileNames[this->buttonIndex][0], &emptyName, sizeof(emptyName));
|
||||
MemCopy(&this->fileNames[this->buttonIndex][0], &emptyName, sizeof(emptyName));
|
||||
} else if (this->n64ddFlags[this->buttonIndex] == this->n64ddFlag) {
|
||||
SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
|
||||
this->actionTimer = 8;
|
||||
|
||||
Reference in New Issue
Block a user