1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-23 15:55:47 +00:00

figure out equipVtx

This commit is contained in:
Dragorn421 2022-10-31 19:59:16 +01:00
parent ae89ec3044
commit f0a2b4f74a
No known key found for this signature in database
GPG key ID: 32B53D2D16FC4118
4 changed files with 160 additions and 55 deletions

View file

@ -750,6 +750,7 @@ typedef enum {
#define PAUSE_EQUIP_PLAYER_WIDTH 64
#define PAUSE_EQUIP_PLAYER_HEIGHT 112
#define PAUSE_EQUIP_PLAYER_FRAG_HEIGHT (TMEM_SIZE / (PAUSE_EQUIP_PLAYER_WIDTH * G_IM_SIZ_16b_BYTES))
#define PAUSE_EQUIP_BUFFER_SIZE sizeof(u16[PAUSE_EQUIP_PLAYER_HEIGHT][PAUSE_EQUIP_PLAYER_WIDTH])
#define PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE 0x5000

View file

@ -2,11 +2,31 @@
#include "assets/textures/icon_item_static/icon_item_static.h"
#include "assets/textures/parameter_static/parameter_static.h"
static u8 sChildUpgrades[] = { UPG_BULLET_BAG, UPG_BOMB_BAG, UPG_STRENGTH, UPG_SCALE };
static u8 sAdultUpgrades[] = { UPG_QUIVER, UPG_BOMB_BAG, UPG_STRENGTH, UPG_SCALE };
static u8 sChildUpgrades[] = {
UPG_BULLET_BAG, // QUAD_EQUIP_UPG_BULLETBAG_QUIVER
UPG_BOMB_BAG, // QUAD_EQUIP_UPG_BOMB_BAG
UPG_STRENGTH, // QUAD_EQUIP_UPG_STRENGTH
UPG_SCALE, // QUAD_EQUIP_UPG_SCALE
};
static u8 sAdultUpgrades[] = {
UPG_QUIVER, // QUAD_EQUIP_UPG_BULLETBAG_QUIVER
UPG_BOMB_BAG, // QUAD_EQUIP_UPG_BOMB_BAG
UPG_STRENGTH, // QUAD_EQUIP_UPG_STRENGTH
UPG_SCALE, // QUAD_EQUIP_UPG_SCALE
};
static u8 sChildUpgradeItemBases[] = { ITEM_BULLET_BAG_30, ITEM_BOMB_BAG_20, ITEM_BRACELET, ITEM_SCALE_SILVER };
static u8 sAdultUpgradeItemBases[] = { ITEM_QUIVER_30, ITEM_BOMB_BAG_20, ITEM_BRACELET, ITEM_SCALE_SILVER };
static u8 sChildUpgradeItemBases[] = {
ITEM_BULLET_BAG_30, // QUAD_EQUIP_UPG_BULLETBAG_QUIVER
ITEM_BOMB_BAG_20, // QUAD_EQUIP_UPG_BOMB_BAG
ITEM_BRACELET, // QUAD_EQUIP_UPG_STRENGTH
ITEM_SCALE_SILVER, // QUAD_EQUIP_UPG_SCALE
};
static u8 sAdultUpgradeItemBases[] = {
ITEM_QUIVER_30, // QUAD_EQUIP_UPG_BULLETBAG_QUIVER
ITEM_BOMB_BAG_20, // QUAD_EQUIP_UPG_BOMB_BAG
ITEM_BRACELET, // QUAD_EQUIP_UPG_STRENGTH
ITEM_SCALE_SILVER, // QUAD_EQUIP_UPG_SCALE
};
static u8 sUpgradeItemOffsets[] = { 0x00, 0x03, 0x06, 0x09 };
@ -35,15 +55,15 @@ void KaleidoScope_DrawEquipmentImage(PlayState* play, void* source, u32 width, u
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
curTexture = source;
remainingSize = width * height * 2;
textureHeight = 4096 / (width * 2);
textureSize = width * textureHeight * 2;
remainingSize = width * height * G_IM_SIZ_16b_BYTES;
textureHeight = TMEM_SIZE / (width * G_IM_SIZ_16b_BYTES);
textureSize = width * textureHeight * G_IM_SIZ_16b_BYTES;
textureCount = remainingSize / textureSize;
if ((remainingSize % textureSize) != 0) {
textureCount += 1;
}
vtxIndex = 80;
vtxIndex = QUAD_EQUIP_PLAYER_FIRST * 4;
gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, textureHeight, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@ -64,7 +84,7 @@ void KaleidoScope_DrawEquipmentImage(PlayState* play, void* source, u32 width, u
if ((remainingSize - textureSize) < 0) {
if (remainingSize > 0) {
textureHeight = remainingSize / (s32)(width * 2);
textureHeight = remainingSize / (s32)(width * G_IM_SIZ_16b_BYTES);
remainingSize -= textureSize;
gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, textureHeight, 0,
@ -141,7 +161,9 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, ZREG(39), ZREG(40), ZREG(41), pauseCtx->alpha);
gDPSetEnvColor(POLY_OPA_DISP++, ZREG(43), ZREG(44), ZREG(45), 0);
for (i = 0, j = 64; i < 4; i++, j += 4) {
// Draw QUAD_EQUIP_SELECTED_SWORD, QUAD_EQUIP_SELECTED_SHIELD, QUAD_EQUIP_SELECTED_TUNIC, QUAD_EQUIP_SELECTED_BOOTS
for (i = 0, j = QUAD_EQUIP_SELECTED_SWORD * 4; i < EQUIP_TYPE_MAX; i++, j += 4) {
if (CUR_EQUIP_VALUE(i) != 0) {
gDPPipeSync(POLY_OPA_DISP++);
gSPVertex(POLY_OPA_DISP++, &pauseCtx->equipVtx[j], 4, 0);
@ -424,7 +446,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
}
if ((pauseCtx->cursorY[PAUSE_EQUIP] == 0) && (pauseCtx->cursorX[PAUSE_EQUIP] == 3)) {
if (gSaveContext.bgsFlag != 0) {
if (gSaveContext.bgsFlag) {
cursorItem = ITEM_HEART_PIECE_2;
} else if (CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE)) {
cursorItem = ITEM_SWORD_KNIFE;
@ -475,14 +497,14 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
gSaveContext.infTable[INFTABLE_1DX_INDEX] = 0;
gSaveContext.equips.buttonItems[0] = cursorItem;
if ((pauseCtx->cursorX[PAUSE_EQUIP] == 3) && (gSaveContext.bgsFlag != 0)) {
if ((pauseCtx->cursorX[PAUSE_EQUIP] == 3) && gSaveContext.bgsFlag) {
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_BGS;
gSaveContext.swordHealth = 8;
} else {
if (gSaveContext.equips.buttonItems[0] == ITEM_HEART_PIECE_2) {
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_BGS;
}
if ((gSaveContext.equips.buttonItems[0] == ITEM_SWORD_BGS) && (gSaveContext.bgsFlag == 0) &&
if ((gSaveContext.equips.buttonItems[0] == ITEM_SWORD_BGS) && !gSaveContext.bgsFlag &&
CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE)) {
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_KNIFE;
}
@ -515,8 +537,16 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
}
}
for (rowStart = 0, i = 0, point = 4; i < 4; i++, rowStart += 4, point += 16) {
// for each row (one row per equip type)
// point = QUAD_EQUIP_SWORD_KOKIRI, QUAD_EQUIP_SHIELD_DEKU, QUAD_EQUIP_TUNIC_KOKIRI, QUAD_EQUIP_BOOTS_KOKIRI
for (rowStart = 0, i = 0, point = QUAD_EQUIP_SWORD_KOKIRI * 4; i < EQUIP_TYPE_MAX;
i++, rowStart += 4, point += 4 * 4) {
// for each equip column
// j = QUAD_EQUIP_SWORD_KOKIRI, QUAD_EQUIP_SWORD_MASTER, QUAD_EQUIP_SWORD_BIGGORON
// j = QUAD_EQUIP_SHIELD_DEKU, QUAD_EQUIP_SHIELD_HYLIAN, QUAD_EQUIP_SHIELD_MIRROR
// j = QUAD_EQUIP_TUNIC_KOKIRI, QUAD_EQUIP_TUNIC_GORON, QUAD_EQUIP_TUNIC_ZORA
// j = QUAD_EQUIP_BOOTS_KOKIRI, QUAD_EQUIP_BOOTS_IRON, QUAD_EQUIP_BOOTS_HOVER
for (k = 0, temp = rowStart + 1, bit = rowStart, j = point; k < 3; k++, bit++, j += 4, temp++) {
if ((gBitFlags[bit] & gSaveContext.inventory.equipment) && (pauseCtx->cursorSpecialPos == 0)) {
@ -541,8 +571,12 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
for (rowStart = 0, j = 0, temp = 0, i = 0; i < 4; i++, rowStart += 4, j += 16) {
gSPVertex(POLY_OPA_DISP++, &pauseCtx->equipVtx[j], 16, 0);
// for each row
for (rowStart = 0, j = 0, temp = 0, i = 0; i < 4; i++, rowStart += 4, j += 4 * 4) {
gSPVertex(POLY_OPA_DISP++, &pauseCtx->equipVtx[j], 4 * 4, 0);
// Draw upgrade `i`
// QUAD_EQUIP_UPG_BULLETBAG_QUIVER, QUAD_EQUIP_UPG_BOMB_BAG, QUAD_EQUIP_UPG_STRENGTH, QUAD_EQUIP_UPG_SCALE
if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
point = CUR_UPG_VALUE(sChildUpgrades[i]);
@ -553,6 +587,8 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
}
} else {
if ((i == 0) && (CUR_UPG_VALUE(sAdultUpgrades[i]) == 0)) {
// Show bullet bag instead of quiver if player has no quiver
//! @bug This assumes adult always has bullet bag
KaleidoScope_DrawQuadTextureRGBA32(
play->state.gfxCtx, gItemIcons[sChildUpgradeItemBases[i] + CUR_UPG_VALUE(sChildUpgrades[i]) - 1],
32, 32, 0);
@ -563,11 +599,18 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
}
}
// Draw owned equips of type `i`
// QUAD_EQUIP_SWORD_KOKIRI, QUAD_EQUIP_SWORD_MASTER, QUAD_EQUIP_SWORD_BIGGORON
// QUAD_EQUIP_SHIELD_DEKU, QUAD_EQUIP_SHIELD_HYLIAN, QUAD_EQUIP_SHIELD_MIRROR
// QUAD_EQUIP_TUNIC_KOKIRI, QUAD_EQUIP_TUNIC_GORON, QUAD_EQUIP_TUNIC_ZORA
// QUAD_EQUIP_BOOTS_KOKIRI, QUAD_EQUIP_BOOTS_IRON, QUAD_EQUIP_BOOTS_HOVER
for (k = 0, bit = rowStart, point = 4; k < 3; k++, point += 4, temp++, bit++) {
if (((u32)i == 0) && (k == 2) && (gSaveContext.bgsFlag != 0)) {
if (((u32)i == EQUIP_TYPE_SWORD) && (k == EQUIP_INV_SWORD_BGS) && gSaveContext.bgsFlag) {
KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gBiggoronSwordIconTex, 32, 32, point);
} else if ((i == 0) && (k == 2) && (gBitFlags[bit + 1] & gSaveContext.inventory.equipment)) {
} else if ((i == EQUIP_TYPE_SWORD) && (k == EQUIP_INV_SWORD_BGS) &&
(gBitFlags[bit + 1] & gSaveContext.inventory.equipment)) {
KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gBrokenGiantsKnifeIconTex, 32, 32, point);
} else if (gBitFlags[bit] & gSaveContext.inventory.equipment) {
KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gItemIcons[ITEM_SWORD_KOKIRI + temp], 32, 32,

View file

@ -53,6 +53,41 @@ typedef enum {
/* 47 */ QUAD_QUEST_MAX
} QuestQuad;
typedef enum {
// Grid of upgrades and equips, left column is upgrades, others are equips, with one row per equip type
// Row 0
/* 0 */ QUAD_EQUIP_UPG_BULLETBAG_QUIVER,
/* 1 */ QUAD_EQUIP_SWORD_KOKIRI,
/* 2 */ QUAD_EQUIP_SWORD_MASTER,
/* 3 */ QUAD_EQUIP_SWORD_BIGGORON,
// Row 1
/* 4 */ QUAD_EQUIP_UPG_BOMB_BAG,
/* 5 */ QUAD_EQUIP_SHIELD_DEKU,
/* 6 */ QUAD_EQUIP_SHIELD_HYLIAN,
/* 7 */ QUAD_EQUIP_SHIELD_MIRROR,
// Row 2
/* 8 */ QUAD_EQUIP_UPG_STRENGTH,
/* 9 */ QUAD_EQUIP_TUNIC_KOKIRI,
/* 10 */ QUAD_EQUIP_TUNIC_GORON,
/* 11 */ QUAD_EQUIP_TUNIC_ZORA,
// Row 3
/* 12 */ QUAD_EQUIP_UPG_SCALE,
/* 13 */ QUAD_EQUIP_BOOTS_KOKIRI,
/* 14 */ QUAD_EQUIP_BOOTS_IRON,
/* 15 */ QUAD_EQUIP_BOOTS_HOVER,
// Markers indicating the currently selected equip
/* 16 */ QUAD_EQUIP_SELECTED_SWORD,
/* 17 */ QUAD_EQUIP_SELECTED_SHIELD,
/* 18 */ QUAD_EQUIP_SELECTED_TUNIC,
/* 19 */ QUAD_EQUIP_SELECTED_BOOTS,
// Player prerender
/* 20 */ QUAD_EQUIP_PLAYER_FIRST,
/* 23 */ QUAD_EQUIP_PLAYER_LAST =
QUAD_EQUIP_PLAYER_FIRST + (((PAUSE_EQUIP_PLAYER_HEIGHT - 1) / PAUSE_EQUIP_PLAYER_FRAG_HEIGHT) + 1) - 1,
// 24..27 are unused, probably meant for player prerender
/* 28 */ QUAD_EQUIP_MAX = QUAD_EQUIP_PLAYER_LAST + 4 + 1
} EquipQuad;
void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx);
s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point);
void KaleidoScope_DrawDebugEditor(PlayState* play);

View file

@ -476,30 +476,34 @@ u8 gSlotAgeReqs[] = {
// Not sure EQUIP_TYPE_MAX is really EQUIP_TYPE_MAX
u8 gEquipAgeReqs[EQUIP_TYPE_MAX][4] = {
// EQUIP_TYPE_SWORD
{
AGE_REQ_ADULT,
AGE_REQ_CHILD,
AGE_REQ_ADULT,
AGE_REQ_ADULT,
}, // EQUIP_TYPE_SWORD
AGE_REQ_ADULT, // EQUIP_VALUE_SWORD_NONE
AGE_REQ_CHILD, // EQUIP_VALUE_SWORD_KOKIRI
AGE_REQ_ADULT, // EQUIP_VALUE_SWORD_MASTER
AGE_REQ_ADULT, // EQUIP_VALUE_SWORD_BGS
},
// EQUIP_TYPE_SHIELD
{
AGE_REQ_NONE,
AGE_REQ_CHILD,
AGE_REQ_NONE,
AGE_REQ_ADULT,
}, // EQUIP_TYPE_SHIELD
AGE_REQ_NONE, // EQUIP_VALUE_SHIELD_NONE
AGE_REQ_CHILD, // EQUIP_VALUE_SHIELD_DEKU
AGE_REQ_NONE, // EQUIP_VALUE_SHIELD_HYLIAN
AGE_REQ_ADULT, // EQUIP_VALUE_SHIELD_MIRROR
},
// EQUIP_TYPE_TUNIC
{
AGE_REQ_ADULT,
AGE_REQ_NONE,
AGE_REQ_ADULT,
AGE_REQ_ADULT,
}, // EQUIP_TYPE_TUNIC
AGE_REQ_ADULT, // EQUIP_VALUE_TUNIC_NONE
AGE_REQ_NONE, // EQUIP_VALUE_TUNIC_KOKIRI
AGE_REQ_ADULT, // EQUIP_VALUE_TUNIC_GORON
AGE_REQ_ADULT, // EQUIP_VALUE_TUNIC_ZORA
},
// EQUIP_TYPE_BOOTS
{
AGE_REQ_NONE,
AGE_REQ_NONE,
AGE_REQ_ADULT,
AGE_REQ_ADULT,
}, // EQUIP_TYPE_BOOTS
AGE_REQ_NONE, // EQUIP_VALUE_BOOTS_NONE
AGE_REQ_NONE, // EQUIP_VALUE_BOOTS_KOKIRI
AGE_REQ_ADULT, // EQUIP_VALUE_BOOTS_IRON
AGE_REQ_ADULT, // EQUIP_VALUE_BOOTS_HOVER
},
};
u8 gItemAgeReqs[] = {
@ -2314,9 +2318,14 @@ s16 func_80823A0C_makeVertices_(PlayState* play, Vtx* vtx, s16 usage_arg2, s16 a
static s16 D_8082B11C[] = { 0, 4, 8, 12, 24, 32, 56 }; // itemVtx
static s16 D_8082B12C_x_equipVtx_[] = { -114, 12, 44, 76 };
static s16 sEquipColumnsX[] = { -114, 12, 44, 76 };
static u8 D_8082B134[] = { 1, 5, 9, 13 }; // equipVtx
static u8 sEquipQuadsFirstByEquipType_[EQUIP_TYPE_MAX] = {
QUAD_EQUIP_SWORD_KOKIRI, // EQUIP_TYPE_SWORD
QUAD_EQUIP_SHIELD_DEKU, // EQUIP_TYPE_SHIELD
QUAD_EQUIP_TUNIC_KOKIRI, // EQUIP_TYPE_TUNIC
QUAD_EQUIP_BOOTS_KOKIRI, // EQUIP_TYPE_BOOTS
};
static s16 sQuestQuadsX[] = {
74, // QUEST_MEDALLION_FOREST
@ -2707,11 +2716,18 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
}
}
pauseCtx->equipVtx = Graph_Alloc(gfxCtx, 112 * sizeof(Vtx));
pauseCtx->equipVtx = Graph_Alloc(gfxCtx, (QUAD_EQUIP_MAX * 4) * sizeof(Vtx));
for (k = 0, i = 0, vtx_y = 58; i < 4; i++, vtx_y -= 32) {
// QUAD_EQUIP_UPG_BULLETBAG_QUIVER, QUAD_EQUIP_SWORD_KOKIRI, QUAD_EQUIP_SWORD_MASTER, QUAD_EQUIP_SWORD_BIGGORON,
// QUAD_EQUIP_UPG_BOMB_BAG, QUAD_EQUIP_SHIELD_DEKU, QUAD_EQUIP_SHIELD_HYLIAN, QUAD_EQUIP_SHIELD_MIRROR,
// QUAD_EQUIP_UPG_STRENGTH, QUAD_EQUIP_TUNIC_KOKIRI, QUAD_EQUIP_TUNIC_GORON, QUAD_EQUIP_TUNIC_ZORA,
// QUAD_EQUIP_UPG_SCALE, QUAD_EQUIP_BOOTS_KOKIRI, QUAD_EQUIP_BOOTS_IRON, QUAD_EQUIP_BOOTS_HOVER
// for each row
for (k = 0, i = 0, vtx_y = 58; i < EQUIP_TYPE_MAX; i++, vtx_y -= 32) {
// for each column
for (j = 0; j < 4; j++, k += 4) {
pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = D_8082B12C_x_equipVtx_[j] + 2;
pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = sEquipColumnsX[j] + 2;
pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] =
pauseCtx->equipVtx[k + 0].v.ob[0] + 28;
@ -2745,9 +2761,11 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
}
}
for (j = 0; j < 4; j++, k += 4) {
// QUAD_EQUIP_SELECTED_SWORD, QUAD_EQUIP_SELECTED_SHIELD, QUAD_EQUIP_SELECTED_TUNIC, QUAD_EQUIP_SELECTED_BOOTS
for (j = 0; j < EQUIP_TYPE_MAX; j++, k += 4) {
if (CUR_EQUIP_VALUE(j) != 0) {
i = (CUR_EQUIP_VALUE(j) + D_8082B134[j] - 1) * 4;
i = (CUR_EQUIP_VALUE(j) - 1 + sEquipQuadsFirstByEquipType_[j]) * 4;
pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = pauseCtx->equipVtx[i].v.ob[0] - 2;
@ -2783,16 +2801,20 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
}
}
vtx_x_ = 112;
// QUAD_EQUIP_PLAYER_FIRST to TODO
vtx_x_ = PAUSE_EQUIP_PLAYER_HEIGHT;
vtx_y = 50;
while (true) {
pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = -64;
pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] = pauseCtx->equipVtx[k + 0].v.ob[0] + 64;
pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] =
pauseCtx->equipVtx[k + 0].v.ob[0] + PAUSE_EQUIP_PLAYER_WIDTH;
pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] = vtx_y + pauseCtx->offsetY;
pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] = pauseCtx->equipVtx[k + 0].v.ob[1] - 32;
pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] =
pauseCtx->equipVtx[k + 0].v.ob[1] - PAUSE_EQUIP_PLAYER_FRAG_HEIGHT;
pauseCtx->equipVtx[k + 0].v.ob[2] = pauseCtx->equipVtx[k + 1].v.ob[2] = pauseCtx->equipVtx[k + 2].v.ob[2] =
pauseCtx->equipVtx[k + 3].v.ob[2] = 0;
@ -2803,9 +2825,10 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->equipVtx[k + 0].v.tc[0] = pauseCtx->equipVtx[k + 0].v.tc[1] = pauseCtx->equipVtx[k + 1].v.tc[1] =
pauseCtx->equipVtx[k + 2].v.tc[0] = 0;
pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 3].v.tc[0] = 64 * (1 << 5);
pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 3].v.tc[0] = PAUSE_EQUIP_PLAYER_WIDTH * (1 << 5);
pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[1] = 32 * (1 << 5);
pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[1] =
PAUSE_EQUIP_PLAYER_FRAG_HEIGHT * (1 << 5);
pauseCtx->equipVtx[k + 0].v.cn[0] = pauseCtx->equipVtx[k + 1].v.cn[0] = pauseCtx->equipVtx[k + 2].v.cn[0] =
pauseCtx->equipVtx[k + 3].v.cn[0] = pauseCtx->equipVtx[k + 0].v.cn[1] = pauseCtx->equipVtx[k + 1].v.cn[1] =
@ -2816,13 +2839,16 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->equipVtx[k + 0].v.cn[3] = pauseCtx->equipVtx[k + 1].v.cn[3] = pauseCtx->equipVtx[k + 2].v.cn[3] =
pauseCtx->equipVtx[k + 3].v.cn[3] = pauseCtx->alpha;
vtx_x_ -= 32;
vtx_y -= 32;
vtx_x_ -= PAUSE_EQUIP_PLAYER_FRAG_HEIGHT;
vtx_y -= PAUSE_EQUIP_PLAYER_FRAG_HEIGHT;
if (vtx_x_ < 0) {
pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] =
pauseCtx->equipVtx[k + 0].v.ob[1] - 16;
pauseCtx->equipVtx[k + 0].v.ob[1] - (PAUSE_EQUIP_PLAYER_HEIGHT % PAUSE_EQUIP_PLAYER_FRAG_HEIGHT);
pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[1] =
(PAUSE_EQUIP_PLAYER_HEIGHT % PAUSE_EQUIP_PLAYER_FRAG_HEIGHT) * (1 << 5);
pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[1] = 16 * (1 << 5);
break;
}
@ -3598,7 +3624,7 @@ void KaleidoScope_Update(PlayState* play) {
if (i == ITEM_FROG) {
pauseCtx->tradeQuestLocation = 3;
}
if ((i == ITEM_CLAIM_CHECK) && (gSaveContext.bgsFlag == 0)) {
if ((i == ITEM_CLAIM_CHECK) && !gSaveContext.bgsFlag) {
pauseCtx->tradeQuestLocation = 7;
}
}