mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-14 20:05:02 +00:00
Mempak doc (#1382)
* Mempak doc * Format * Suggested changes * Further changes
This commit is contained in:
parent
6451fbc24f
commit
acc077a24c
6 changed files with 204 additions and 101 deletions
|
@ -1,4 +1,3 @@
|
|||
#include "ultra64.h"
|
||||
#include "global.h"
|
||||
|
||||
#define DBCAM_CONTROLLER_PORT 2
|
||||
|
@ -1507,15 +1506,15 @@ static s32 sAllocSize;
|
|||
|
||||
s32 DbCamera_GetFirstAvailableLetter(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sLetters); i++) {
|
||||
switch (sLetters[i]) {
|
||||
case 'O':
|
||||
break;
|
||||
default:
|
||||
return 'A' + i;
|
||||
return MEMPAK_INDEX_TO_LETTER(i);
|
||||
}
|
||||
}
|
||||
|
||||
return '?';
|
||||
}
|
||||
|
||||
|
@ -1653,7 +1652,7 @@ s32 DbCamera_SaveCallback(char* c) {
|
|||
freeSize = Mempak_GetFreeBytes(DBCAM_CONTROLLER_PORT);
|
||||
|
||||
if ((u32)sAllocSize < (freeSize + ret)) {
|
||||
if (!Mempak_Alloc(DBCAM_CONTROLLER_PORT, c, sAllocSize)) {
|
||||
if (!Mempak_CreateFile(DBCAM_CONTROLLER_PORT, c, sAllocSize)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1867,7 +1866,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
}
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
D_8012CEE0[41][9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
|
||||
func_8006376C(0xA, 7, 5, D_8012CEE0[41]);
|
||||
func_8006376C(0x10, 7, 5, D_8012CF60[dbCamera->sub.demoCtrlActionIdx]);
|
||||
func_8006376C(0x14, 7, 5, D_8012CF88[0]);
|
||||
|
@ -1891,7 +1890,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
dbCamera->sub.demoCtrlMenu++;
|
||||
} else {
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
D_8012CF84[9] = sCurFileIdx + 'A';
|
||||
D_8012CF84[9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
|
||||
func_8006376C(0xD, 7, 5, D_8012CF88[-1]); // todo: find something better
|
||||
func_8006376C(0x12, 7, 5, D_8012CF80);
|
||||
func_8006376C(0xD, 9, dbCamera->sub.demoCtrlToggleSwitch ? 1 : 6, "PRESS B BUTTON");
|
||||
|
@ -1909,7 +1908,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
case DEMO_CTRL_MENU(ACTION_SAVE, MENU_CALLBACK):
|
||||
case DEMO_CTRL_MENU(ACTION_LOAD, MENU_CALLBACK):
|
||||
case DEMO_CTRL_MENU(ACTION_CLEAR, MENU_CALLBACK): {
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
D_8012CEE0[41][9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
|
||||
func_8006376C(0xC, 7, 5, D_8012CEE0[41]);
|
||||
func_8006376C(0x12, 7, 5, D_8012CF60[dbCamera->sub.demoCtrlActionIdx]);
|
||||
func_8006376C(0x16, 7, 5, D_8012CF9C[0]);
|
||||
|
@ -1927,7 +1926,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
case DEMO_CTRL_MENU(ACTION_LOAD, MENU_SUCCESS):
|
||||
case DEMO_CTRL_MENU(ACTION_CLEAR, MENU_SUCCESS): {
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
D_8012CEE0[41][9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
|
||||
func_8006376C(0xD, 7, 5, D_8012CEE0[41]);
|
||||
func_8006376C(0x13, 7, 5, D_8012CF60[dbCamera->sub.demoCtrlMenu / 100]);
|
||||
func_8006376C(0x17, 7, 5, D_8012CFA4);
|
||||
|
@ -1950,7 +1949,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
case DEMO_CTRL_MENU(ACTION_LOAD, MENU_ERROR):
|
||||
case DEMO_CTRL_MENU(ACTION_CLEAR, MENU_ERROR): {
|
||||
dbCamera->sub.demoCtrlToggleSwitch ^= 1;
|
||||
D_8012CEE0[41][9] = sCurFileIdx + 'A';
|
||||
D_8012CEE0[41][9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
|
||||
func_8006376C(0xD, 7, 5, D_8012CEE0[(dbCamera->sub.demoCtrlMenu / 100) + 32]);
|
||||
func_8006376C(0x11, 7, 5, D_8012CFAC);
|
||||
func_8006376C(0x17, 7, 5, D_8012CFA4);
|
||||
|
@ -1971,11 +1970,12 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
|
||||
default: {
|
||||
if (Mempak_Init(DBCAM_CONTROLLER_PORT)) {
|
||||
sMempakFiles = Mempak_FindFile(DBCAM_CONTROLLER_PORT, 'A', 'E');
|
||||
sMempakFiles = Mempak_FindFiles(DBCAM_CONTROLLER_PORT, 'A', 'E');
|
||||
dbCamera->sub.demoCtrlMenu = DEMO_CTRL_MENU(ACTION_E, MENU_CALLBACK);
|
||||
DbCamera_CalcMempakAllocSize();
|
||||
if ((1 << sCurFileIdx) & sMempakFiles) {
|
||||
sMempakFilesize = Mempak_GetFileSize(DBCAM_CONTROLLER_PORT, sCurFileIdx + 'A');
|
||||
sMempakFilesize =
|
||||
Mempak_GetFileSize(DBCAM_CONTROLLER_PORT, MEMPAK_INDEX_TO_LETTER(sCurFileIdx));
|
||||
dbCamera->sub.demoCtrlActionIdx = ACTION_LOAD;
|
||||
} else {
|
||||
sMempakFilesize = 0;
|
||||
|
@ -1984,7 +1984,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
block_1:
|
||||
idx2 = 1;
|
||||
for (i = 0; i < 5; i++) {
|
||||
sp74[i * 2 + 1] = (sMempakFiles & idx2) ? i + 'A' : '?';
|
||||
sp74[i * 2 + 1] = (sMempakFiles & idx2) ? MEMPAK_INDEX_TO_LETTER(i) : '?';
|
||||
sp74[i * 2 + 0] = '-';
|
||||
|
||||
idx2 <<= 1;
|
||||
|
@ -2002,7 +2002,8 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
}
|
||||
|
||||
if ((1 << sCurFileIdx) & sMempakFiles) {
|
||||
sMempakFilesize = Mempak_GetFileSize(DBCAM_CONTROLLER_PORT, sCurFileIdx + 'A');
|
||||
sMempakFilesize =
|
||||
Mempak_GetFileSize(DBCAM_CONTROLLER_PORT, MEMPAK_INDEX_TO_LETTER(sCurFileIdx));
|
||||
dbCamera->sub.demoCtrlActionIdx = ACTION_LOAD;
|
||||
} else {
|
||||
sMempakFilesize = 0;
|
||||
|
@ -2019,7 +2020,8 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
|
|||
}
|
||||
|
||||
if ((1 << sCurFileIdx) & sMempakFiles) {
|
||||
sMempakFilesize = Mempak_GetFileSize(DBCAM_CONTROLLER_PORT, sCurFileIdx + 'A');
|
||||
sMempakFilesize =
|
||||
Mempak_GetFileSize(DBCAM_CONTROLLER_PORT, MEMPAK_INDEX_TO_LETTER(sCurFileIdx));
|
||||
dbCamera->sub.demoCtrlActionIdx = ACTION_LOAD;
|
||||
} else {
|
||||
sMempakFilesize = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue