z_kaleido_mask.c Ok and Documented (Pause Menu Mask Page) (#1093)

* import mask docs

* cleanup

* some PR

* fix merge from master

* fix merge

* move cursor result
This commit is contained in:
engineer124
2022-10-01 01:51:49 +01:00
committed by GitHub
parent 15b9f83bd8
commit b080fb3700
11 changed files with 930 additions and 165 deletions
+5 -6
View File
@@ -440,13 +440,12 @@ typedef struct {
/* 0x220 */ f32 unk_220;
/* 0x224 */ u16 alpha;
/* 0x226 */ s16 offsetY;
/* 0x228 */ s32 unk_228;
/* 0x22C */ s32 unk_22C;
/* 0x230 */ s32 stickRelX;
/* 0x234 */ s32 stickRelY;
/* 0x228 */ UNK_TYPE1 unk_228[0x8];
/* 0x230 */ s32 stickAdjX;
/* 0x234 */ s32 stickAdjY;
/* 0x238 */ s16 cursorPoint[5];
/* 0x242 */ s16 cursorX[5];
/* 0x24C */ s16 cursorY[5];
/* 0x242 */ s16 cursorXIndex[5];
/* 0x24C */ s16 cursorYIndex[5];
/* 0x256 */ s16 unk_256;
/* 0x258 */ s16 cursorSpecialPos;
/* 0x25A */ s16 pageSwitchTimer;
+1 -1
View File
@@ -368,7 +368,7 @@ typedef struct SaveContext {
/* 0x3F64 */ f32 screenScale; // "framescale_scale"
/* 0x3F68 */ CycleSceneFlags cycleSceneFlags[120]; // Scene flags that are temporarily stored over the duration of a single 3-day cycle
/* 0x48C8 */ u16 dungeonIndex; // "scene_id_mix"
/* 0x48CA */ u8 maskMaskBit[27]; // "mask_mask_bit", masks given away on the Moon
/* 0x48CA */ u8 masksGivenOnMoon[27]; // bit-packed, masks given away on the Moon. "mask_mask_bit"
} SaveContext; // size = 0x48C8
typedef enum ButtonStatus {
+4 -4
View File
@@ -1,6 +1,6 @@
/**
* File: flg_set.c
* Description: Event Editor, used to view and edit weekEventReg, eventInf and maskMaskBit flags.
* Description: Event Editor, used to view and edit weekEventReg, eventInf and masksGivenOnMoon flags.
* Controls:
* + Left and Right: select different flags/bits in array element
* + Up and Down: select array element (byte) 1 up/down
@@ -123,9 +123,9 @@ static FlagSetEntry sFlagEntries[] = {
{ &gSaveContext.eventInf[6], "event_inf[6]" },
{ &gSaveContext.eventInf[7], "event_inf[7]" },
{ &gSaveContext.maskMaskBit[0], "mask_mask_bit[0]" },
{ &gSaveContext.maskMaskBit[1], "mask_mask_bit[1]" },
{ &gSaveContext.maskMaskBit[2], "mask_mask_bit[2]" },
{ &gSaveContext.masksGivenOnMoon[0], "mask_mask_bit[0]" },
{ &gSaveContext.masksGivenOnMoon[1], "mask_mask_bit[1]" },
{ &gSaveContext.masksGivenOnMoon[2], "mask_mask_bit[2]" },
{ NULL, NULL }, // used in the code to detect array end
};
+2 -2
View File
@@ -292,8 +292,8 @@ void Sram_SaveEndOfCycle(PlayState* play) {
gSaveContext.cycleSceneFlags[i].collectible = 0;
}
for (i = 0; i < ARRAY_COUNT(gSaveContext.maskMaskBit); i++) {
gSaveContext.maskMaskBit[i] = 0;
for (i = 0; i < ARRAY_COUNT(gSaveContext.masksGivenOnMoon); i++) {
gSaveContext.masksGivenOnMoon[i] = 0;
}
if (gSaveContext.save.weekEventReg[84] & 0x20) {
+16 -16
View File
@@ -272,7 +272,7 @@ s32 func_80968E38(s32 arg0) {
s32 i;
s32 count;
u8 mask;
u8* maskMaskBit = gSaveContext.maskMaskBit;
u8* masksGivenOnMoon = gSaveContext.masksGivenOnMoon;
if (((arg0 < 0) || (arg0 >= 9))) {
return 0;
@@ -282,21 +282,21 @@ s32 func_80968E38(s32 arg0) {
arg0 *= 3;
for (mask = 1, i = 0; i < 8; i++, mask <<= 1) {
if (maskMaskBit[arg0] & mask) {
if (masksGivenOnMoon[arg0] & mask) {
count++;
}
}
arg0++;
for (mask = 1, i = 0; i < 8; i++, mask <<= 1) {
if (maskMaskBit[arg0] & mask) {
if (masksGivenOnMoon[arg0] & mask) {
count++;
}
}
arg0++;
for (mask = 1, i = 0; i < 5; i++, mask <<= 1) {
if (maskMaskBit[arg0] & mask) {
if (masksGivenOnMoon[arg0] & mask) {
count++;
}
}
@@ -373,15 +373,15 @@ s32 EnJs_GetRemainingMasks(void) {
}
void EnJs_TakeMask(s32 actionParams, s32 childType) {
u8* maskMaskBit = gSaveContext.maskMaskBit;
u8* masksGivenOnMoon = gSaveContext.masksGivenOnMoon;
s32 temp = 0;
if ((childType >= 0) && (childType < 9)) {
actionParams -= PLAYER_AP_MASK_TRUTH;
childType *= 3;
if (actionParams < 8) {
maskMaskBit[childType] |= 1 << actionParams;
maskMaskBit[temp] |= 1 << actionParams;
masksGivenOnMoon[childType] |= 1 << actionParams;
masksGivenOnMoon[temp] |= 1 << actionParams;
return;
}
@@ -389,8 +389,8 @@ void EnJs_TakeMask(s32 actionParams, s32 childType) {
childType++;
temp++;
if (actionParams < 8) {
maskMaskBit[childType] |= 1 << actionParams;
maskMaskBit[temp] |= 1 << actionParams;
masksGivenOnMoon[childType] |= 1 << actionParams;
masksGivenOnMoon[temp] |= 1 << actionParams;
return;
}
@@ -398,8 +398,8 @@ void EnJs_TakeMask(s32 actionParams, s32 childType) {
childType++;
temp++;
if (actionParams < 6) {
maskMaskBit[childType] |= 1 << actionParams;
maskMaskBit[temp] |= 1 << actionParams;
masksGivenOnMoon[childType] |= 1 << actionParams;
masksGivenOnMoon[temp] |= 1 << actionParams;
}
}
}
@@ -457,15 +457,15 @@ s32 func_8096933C(s32 arg0) {
}
void func_80969400(s32 arg0) {
u8* maskMaskBit = gSaveContext.maskMaskBit;
u8* temp_v0 = &gSaveContext.maskMaskBit[arg0 * 3];
u8* masksGivenOnMoon = gSaveContext.masksGivenOnMoon;
u8* temp_v0 = &gSaveContext.masksGivenOnMoon[arg0 * 3];
if ((arg0 >= 0) && (arg0 < 9)) {
maskMaskBit[0] &= ~temp_v0[0];
maskMaskBit[1] &= ~temp_v0[1];
masksGivenOnMoon[0] &= ~temp_v0[0];
masksGivenOnMoon[1] &= ~temp_v0[1];
temp_v0[2] &= 0xF;
maskMaskBit[2] &= ~temp_v0[2];
masksGivenOnMoon[2] &= ~temp_v0[2];
temp_v0[0] = 0;
temp_v0[1] = 0;
@@ -663,8 +663,8 @@ void KaleidoScope_UpdateInventoryEditor(PlayState* play) {
s16 value;
s32 dBtnInput = input->cur.button & (BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT);
pauseCtx->stickRelX = input->rel.stick_x;
pauseCtx->stickRelY = input->rel.stick_y;
pauseCtx->stickAdjX = input->rel.stick_x;
pauseCtx->stickAdjY = input->rel.stick_y;
// Handles navigating the menu to different sections with the D-Pad
// When the same direction is held, registers the input periodically based on a timer
@@ -7,13 +7,6 @@
#include "z_kaleido_scope.h"
#include "interface/parameter_static/parameter_static.h"
typedef enum {
/* 0 */ EQUIP_STATE_MAGIC_ARROW_GROW_ORB,
/* 1 */ EQUIP_STATE_MAGIC_ARROW_MOVE_TO_BOW_SLOT,
/* 2 */ EQUIP_STATE_MAGIC_ARROW_HOVER_OVER_BOW_SLOT,
/* 3 */ EQUIP_STATE_MOVE_TO_C_BTN
} EquipState;
s16 sEquipState = EQUIP_STATE_MAGIC_ARROW_GROW_ORB;
// Timer to hold magic arrow icon over magic arrow slot before moving when equipping.
@@ -355,8 +348,8 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
u16 cursorSlot;
u8 magicArrowIndex;
s16 cursorPoint;
s16 cursorX;
s16 cursorY;
s16 cursorXIndex;
s16 cursorYIndex;
s16 oldCursorPoint;
s16 moveCursorResult;
s16 pad2;
@@ -366,7 +359,7 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
if ((pauseCtx->state == 6) && (pauseCtx->unk_200 == 0) && (pauseCtx->pageIndex == PAUSE_ITEM) &&
!pauseCtx->itemDescriptionOn) {
moveCursorResult = 0;
moveCursorResult = PAUSE_CURSOR_RESULT_NONE;
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM];
cursorItem = pauseCtx->cursorItem[PAUSE_ITEM];
@@ -376,87 +369,87 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
// cursor is currently on a slot
pauseCtx->cursorColorSet = 2;
if (ABS_ALT(pauseCtx->stickRelX) > 30) {
if (ABS_ALT(pauseCtx->stickAdjX) > 30) {
cursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM];
cursorX = pauseCtx->cursorX[PAUSE_ITEM];
cursorY = pauseCtx->cursorY[PAUSE_ITEM];
cursorXIndex = pauseCtx->cursorXIndex[PAUSE_ITEM];
cursorYIndex = pauseCtx->cursorYIndex[PAUSE_ITEM];
// Search for slot to move to
while (moveCursorResult == 0) {
if (pauseCtx->stickRelX < -30) {
while (moveCursorResult == PAUSE_CURSOR_RESULT_NONE) {
if (pauseCtx->stickAdjX < -30) {
// move cursor left
pauseCtx->unk_298 = 4.0f;
if (pauseCtx->cursorX[PAUSE_ITEM] != 0) {
pauseCtx->cursorX[PAUSE_ITEM]--;
if (pauseCtx->cursorXIndex[PAUSE_ITEM] != 0) {
pauseCtx->cursorXIndex[PAUSE_ITEM]--;
pauseCtx->cursorPoint[PAUSE_ITEM]--;
moveCursorResult = 1;
moveCursorResult = PAUSE_CURSOR_RESULT_SLOT;
} else {
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
pauseCtx->cursorY[PAUSE_ITEM]++;
pauseCtx->cursorXIndex[PAUSE_ITEM] = cursorXIndex;
pauseCtx->cursorYIndex[PAUSE_ITEM]++;
if (pauseCtx->cursorY[PAUSE_ITEM] >= 4) {
pauseCtx->cursorY[PAUSE_ITEM] = 0;
if (pauseCtx->cursorYIndex[PAUSE_ITEM] >= 4) {
pauseCtx->cursorYIndex[PAUSE_ITEM] = 0;
}
pauseCtx->cursorPoint[PAUSE_ITEM] =
pauseCtx->cursorX[PAUSE_ITEM] + (pauseCtx->cursorY[PAUSE_ITEM] * 6);
pauseCtx->cursorXIndex[PAUSE_ITEM] + (pauseCtx->cursorYIndex[PAUSE_ITEM] * 6);
if (pauseCtx->cursorPoint[PAUSE_ITEM] >= 24) {
pauseCtx->cursorPoint[PAUSE_ITEM] = pauseCtx->cursorX[PAUSE_ITEM];
pauseCtx->cursorPoint[PAUSE_ITEM] = pauseCtx->cursorXIndex[PAUSE_ITEM];
}
if (cursorY == pauseCtx->cursorY[PAUSE_ITEM]) {
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
if (cursorYIndex == pauseCtx->cursorYIndex[PAUSE_ITEM]) {
pauseCtx->cursorXIndex[PAUSE_ITEM] = cursorXIndex;
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT);
moveCursorResult = 2;
moveCursorResult = PAUSE_CURSOR_RESULT_SPECIAL_POS;
}
}
} else if (pauseCtx->stickRelX > 30) {
} else if (pauseCtx->stickAdjX > 30) {
// move cursor right
pauseCtx->unk_298 = 4.0f;
if (pauseCtx->cursorX[PAUSE_ITEM] <= 4) {
pauseCtx->cursorX[PAUSE_ITEM]++;
if (pauseCtx->cursorXIndex[PAUSE_ITEM] <= 4) {
pauseCtx->cursorXIndex[PAUSE_ITEM]++;
pauseCtx->cursorPoint[PAUSE_ITEM]++;
moveCursorResult = 1;
moveCursorResult = PAUSE_CURSOR_RESULT_SLOT;
} else {
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
pauseCtx->cursorY[PAUSE_ITEM]++;
pauseCtx->cursorXIndex[PAUSE_ITEM] = cursorXIndex;
pauseCtx->cursorYIndex[PAUSE_ITEM]++;
if (pauseCtx->cursorY[PAUSE_ITEM] >= 4) {
pauseCtx->cursorY[PAUSE_ITEM] = 0;
if (pauseCtx->cursorYIndex[PAUSE_ITEM] >= 4) {
pauseCtx->cursorYIndex[PAUSE_ITEM] = 0;
}
pauseCtx->cursorPoint[PAUSE_ITEM] =
pauseCtx->cursorX[PAUSE_ITEM] + (pauseCtx->cursorY[PAUSE_ITEM] * 6);
pauseCtx->cursorXIndex[PAUSE_ITEM] + (pauseCtx->cursorYIndex[PAUSE_ITEM] * 6);
if (pauseCtx->cursorPoint[PAUSE_ITEM] >= 24) {
pauseCtx->cursorPoint[PAUSE_ITEM] = pauseCtx->cursorX[PAUSE_ITEM];
pauseCtx->cursorPoint[PAUSE_ITEM] = pauseCtx->cursorXIndex[PAUSE_ITEM];
}
if (cursorY == pauseCtx->cursorY[PAUSE_ITEM]) {
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
if (cursorYIndex == pauseCtx->cursorYIndex[PAUSE_ITEM]) {
pauseCtx->cursorXIndex[PAUSE_ITEM] = cursorXIndex;
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT);
moveCursorResult = 2;
moveCursorResult = PAUSE_CURSOR_RESULT_SPECIAL_POS;
}
}
}
}
if (moveCursorResult == 1) {
if (moveCursorResult == PAUSE_CURSOR_RESULT_SLOT) {
cursorItem = gSaveContext.save.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]];
}
}
} else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) {
if (pauseCtx->stickRelX > 30) {
if (pauseCtx->stickAdjX > 30) {
func_80821A04(play);
cursorY = 0;
cursorX = 0;
cursorYIndex = 0;
cursorXIndex = 0;
cursorPoint = 0; // top row, left column (SLOT_OCARINA)
// Search for slot to move to
@@ -464,24 +457,24 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
// Check if current cursor has an item in its slot
if (gSaveContext.save.inventory.items[cursorPoint] != ITEM_NONE) {
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
pauseCtx->cursorY[PAUSE_ITEM] = cursorY;
moveCursorResult = 1;
pauseCtx->cursorXIndex[PAUSE_ITEM] = cursorXIndex;
pauseCtx->cursorYIndex[PAUSE_ITEM] = cursorYIndex;
moveCursorResult = PAUSE_CURSOR_RESULT_SLOT;
break;
}
// move 1 row down and retry
cursorY++;
cursorYIndex++;
cursorPoint += 6;
if (cursorY < 4) {
if (cursorYIndex < 4) {
continue;
}
// move 1 column right and retry
cursorY = 0;
cursorPoint = cursorX + 1;
cursorX = cursorPoint;
if (cursorX < 6) {
cursorYIndex = 0;
cursorPoint = cursorXIndex + 1;
cursorXIndex = cursorPoint;
if (cursorXIndex < 6) {
continue;
}
@@ -491,35 +484,35 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
}
}
} else { // PAUSE_CURSOR_PAGE_RIGHT
if (pauseCtx->stickRelX < -30) {
if (pauseCtx->stickAdjX < -30) {
func_80821A04(play);
cursorX = 5;
cursorXIndex = 5;
cursorPoint = 5; // top row, right columne (SLOT_TRADE_DEED)
cursorY = 0;
cursorYIndex = 0;
// Search for slot to move to
while (true) {
// Check if current cursor has an item in its slot
if (gSaveContext.save.inventory.items[cursorPoint] != ITEM_NONE) {
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
pauseCtx->cursorY[PAUSE_ITEM] = cursorY;
moveCursorResult = 1;
pauseCtx->cursorXIndex[PAUSE_ITEM] = cursorXIndex;
pauseCtx->cursorYIndex[PAUSE_ITEM] = cursorYIndex;
moveCursorResult = PAUSE_CURSOR_RESULT_SLOT;
break;
}
// move 1 row down and retry
cursorY++;
cursorYIndex++;
cursorPoint += 6;
if (cursorY < 4) {
if (cursorYIndex < 4) {
continue;
}
// move 1 column left and retry
cursorY = 0;
cursorPoint = cursorX - 1;
cursorX = cursorPoint;
if (cursorX >= 0) {
cursorYIndex = 0;
cursorPoint = cursorXIndex - 1;
cursorXIndex = cursorPoint;
if (cursorXIndex >= 0) {
continue;
}
@@ -532,35 +525,35 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
if (pauseCtx->cursorSpecialPos == 0) {
// move cursor up/down
if (ABS_ALT(pauseCtx->stickRelY) > 30) {
moveCursorResult = 0;
if (ABS_ALT(pauseCtx->stickAdjY) > 30) {
moveCursorResult = PAUSE_CURSOR_RESULT_NONE;
cursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM];
cursorY = pauseCtx->cursorY[PAUSE_ITEM];
cursorYIndex = pauseCtx->cursorYIndex[PAUSE_ITEM];
while (moveCursorResult == 0) {
if (pauseCtx->stickRelY > 30) {
while (moveCursorResult == PAUSE_CURSOR_RESULT_NONE) {
if (pauseCtx->stickAdjY > 30) {
// move cursor up
moveCursorResult = 2;
if (pauseCtx->cursorY[PAUSE_ITEM] != 0) {
pauseCtx->cursorY[PAUSE_ITEM]--;
moveCursorResult = PAUSE_CURSOR_RESULT_SPECIAL_POS;
if (pauseCtx->cursorYIndex[PAUSE_ITEM] != 0) {
pauseCtx->cursorYIndex[PAUSE_ITEM]--;
pauseCtx->unk_298 = 4.0f;
pauseCtx->cursorPoint[PAUSE_ITEM] -= 6;
moveCursorResult = 1;
moveCursorResult = PAUSE_CURSOR_RESULT_SLOT;
} else {
pauseCtx->cursorY[PAUSE_ITEM] = cursorY;
pauseCtx->cursorYIndex[PAUSE_ITEM] = cursorYIndex;
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
}
} else if (pauseCtx->stickRelY < -30) {
} else if (pauseCtx->stickAdjY < -30) {
// move cursor down
moveCursorResult = 2;
if (pauseCtx->cursorY[PAUSE_ITEM] < 3) {
pauseCtx->cursorY[PAUSE_ITEM]++;
moveCursorResult = PAUSE_CURSOR_RESULT_SPECIAL_POS;
if (pauseCtx->cursorYIndex[PAUSE_ITEM] < 3) {
pauseCtx->cursorYIndex[PAUSE_ITEM]++;
pauseCtx->unk_298 = 4.0f;
pauseCtx->cursorPoint[PAUSE_ITEM] += 6;
moveCursorResult = 1;
moveCursorResult = PAUSE_CURSOR_RESULT_SLOT;
} else {
pauseCtx->cursorY[PAUSE_ITEM] = cursorY;
pauseCtx->cursorYIndex[PAUSE_ITEM] = cursorYIndex;
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
}
}
@@ -570,9 +563,9 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
cursorSlot = pauseCtx->cursorPoint[PAUSE_ITEM];
pauseCtx->cursorColorSet = 2;
if (moveCursorResult == 1) {
if (moveCursorResult == PAUSE_CURSOR_RESULT_SLOT) {
cursorItem = gSaveContext.save.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]];
} else if (moveCursorResult != 2) {
} else if (moveCursorResult != PAUSE_CURSOR_RESULT_SPECIAL_POS) {
cursorItem = gSaveContext.save.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]];
}
@@ -683,7 +676,7 @@ void KaleidoScope_UpdateItemCursor(PlayState* play) {
(msgCtx->msgLength == 0)) {
// Give description on item through a message box
pauseCtx->itemDescriptionOn = true;
if (pauseCtx->cursorY[PAUSE_ITEM] < 2) {
if (pauseCtx->cursorYIndex[PAUSE_ITEM] < 2) {
func_801514B0(play, 0x1700 + pauseCtx->cursorItem[PAUSE_ITEM], 3);
} else {
func_801514B0(play, 0x1700 + pauseCtx->cursorItem[PAUSE_ITEM], 1);
File diff suppressed because it is too large Load Diff
@@ -22,6 +22,13 @@ typedef enum {
/* 2 */ PAUSE_EQUIP_C_RIGHT
} PauseEquipCButton;
typedef enum {
/* 0 */ EQUIP_STATE_MAGIC_ARROW_GROW_ORB,
/* 1 */ EQUIP_STATE_MAGIC_ARROW_MOVE_TO_BOW_SLOT,
/* 2 */ EQUIP_STATE_MAGIC_ARROW_HOVER_OVER_BOW_SLOT,
/* 3 */ EQUIP_STATE_MOVE_TO_C_BTN
} EquipState;
typedef enum {
/* 0 */ DEBUG_EDITOR_NONE,
/* 1 */ DEBUG_EDITOR_INVENTORY_INIT,
@@ -29,6 +36,16 @@ typedef enum {
/* 3 */ DEBUG_EDITOR_EVENTS
} DebugEditor;
// To be used for Item-Page cursor and Mask-Page cursor
typedef enum {
/* 0 */ PAUSE_CURSOR_RESULT_NONE,
/* 1 */ PAUSE_CURSOR_RESULT_SLOT,
/* 2 */ PAUSE_CURSOR_RESULT_SPECIAL_POS
} PauseMoveCursorResult;
#define NUM_ITEM_SLOTS 24
#define NUM_MASK_SLOTS 24
#define PAUSE_PROMPT_YES 0
#define PAUSE_PROMPT_NO 4
@@ -43,6 +60,11 @@ void KaleidoScope_DrawItemSelect(PlayState* play);
void KaleidoScope_UpdateItemCursor(PlayState* play);
void KaleidoScope_UpdateItemEquip(PlayState* play);
// Mask
void KaleidoScope_DrawMaskSelect(PlayState* play);
void KaleidoScope_UpdateMaskCursor(PlayState* play);
void KaleidoScope_UpdateMaskEquip(PlayState* play);
// Debug
void KaleidoScope_DrawInventoryEditor(PlayState* play);
void KaleidoScope_UpdateInventoryEditor(PlayState* play);
+3 -3
View File
@@ -4214,9 +4214,9 @@
0x8081E118:("func_8081E118",),
0x8081E7D8:("func_8081E7D8",),
0x8081FB1C:("func_8081FB1C",),
0x8081FF80:("func_8081FF80",),
0x808204AC:("func_808204AC",),
0x80820FA4:("func_80820FA4",),
0x8081FF80:("KaleidoScope_DrawMaskSelect",),
0x808204AC:("KaleidoScope_UpdateMaskCursor",),
0x80820FA4:("KaleidoScope_UpdateMaskEquip",),
0x80821730:("KaleidoScope_UpdatePrompt",),
0x80821900:("func_80821900",),
0x8082192C:("func_8082192C",),
+9 -9
View File
@@ -4725,15 +4725,15 @@
0x8082B5CC:("D_8082B5CC","UNK_TYPE1","",0x1),
0x8082B5E0:("D_8082B5E0","UNK_TYPE1","",0x1),
0x8082B5F4:("D_8082B5F4","UNK_TYPE2","",0x2),
0x8082B600:("D_8082B600","UNK_TYPE2","",0x2),
0x8082B604:("D_8082B604","UNK_TYPE2","",0x2),
0x8082B608:("D_8082B608","UNK_TYPE2","",0x2),
0x8082B60C:("D_8082B60C","UNK_TYPE1","",0x1),
0x8082B684:("D_8082B684","UNK_TYPE2","",0x2),
0x8082B6CC:("D_8082B6CC","UNK_TYPE1","",0x1),
0x8082B6D4:("D_8082B6D4","UNK_TYPE1","",0x1),
0x8082B6DC:("D_8082B6DC","UNK_TYPE1","",0x1),
0x8082B6E4:("D_8082B6E4","UNK_TYPE2","",0x2),
0x8082B600:("sMaskEquipState","UNK_TYPE2","",0x2),
0x8082B604:("sMaskEquipMagicArrowSlotHoldTimer","UNK_TYPE2","",0x2),
0x8082B608:("sMaskEquipAnimTimer","UNK_TYPE2","",0x2),
0x8082B60C:("gMaskPlayerFormSlotRestrictions","UNK_TYPE1","",0x1),
0x8082B684:("sMasksGivenOnMoonBits","UNK_TYPE2","",0x2),
0x8082B6CC:("sMaskPlayerFormItems","UNK_TYPE1","",0x1),
0x8082B6D4:("sMaskCButtonPosX","UNK_TYPE1","",0x1),
0x8082B6DC:("sMaskCButtonPosY","UNK_TYPE1","",0x1),
0x8082B6E4:("sMaskEquipMagicArrowBowSlotHoldTimer","UNK_TYPE2","",0x2),
0x8082B6F0:("sPromptAlphaTargets","UNK_TYPE1","",0x1),
0x8082B6F4:("sPromptAlphaTargetIndex","UNK_TYPE2","",0x2),
0x8082B6F8:("sPromptAlphaTimer","UNK_TYPE2","",0x2),