mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
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:
+5
-6
@@ -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
@@ -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
@@ -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
|
||||
};
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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",),
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user