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:
parent
ae89ec3044
commit
f0a2b4f74a
4 changed files with 160 additions and 55 deletions
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue