mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-23 15:55:47 +00:00
itemVtx quads and item page logics docs
This commit is contained in:
parent
8c871e74ff
commit
32bde43959
3 changed files with 268 additions and 100 deletions
|
@ -2,21 +2,58 @@
|
|||
#include "assets/textures/parameter_static/parameter_static.h"
|
||||
|
||||
u8 gAmmoItems[] = {
|
||||
ITEM_STICK, ITEM_NUT, ITEM_BOMB, ITEM_BOW, ITEM_NONE, ITEM_NONE, ITEM_SLINGSHOT, ITEM_NONE,
|
||||
ITEM_BOMBCHU, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_BEAN, ITEM_NONE,
|
||||
ITEM_STICK, // SLOT_STICK
|
||||
ITEM_NUT, // SLOT_NUT
|
||||
ITEM_BOMB, // SLOT_BOMB
|
||||
ITEM_BOW, // SLOT_BOW
|
||||
ITEM_NONE, // SLOT_ARROW_FIRE
|
||||
ITEM_NONE, // SLOT_DINS_FIRE
|
||||
ITEM_SLINGSHOT, // SLOT_SLINGSHOT
|
||||
ITEM_NONE, // SLOT_OCARINA
|
||||
ITEM_BOMBCHU, // SLOT_BOMBCHU
|
||||
ITEM_NONE, // SLOT_HOOKSHOT
|
||||
ITEM_NONE, // SLOT_ARROW_ICE
|
||||
ITEM_NONE, // SLOT_FARORES_WIND
|
||||
ITEM_NONE, // SLOT_BOOMERANG
|
||||
ITEM_NONE, // SLOT_LENS
|
||||
ITEM_BEAN, // SLOT_BEAN
|
||||
ITEM_NONE,
|
||||
};
|
||||
|
||||
static s16 sEquipState = 0;
|
||||
typedef enum {
|
||||
/* 0 */ ITEM_EQUIP_STATE_0,
|
||||
/* 1 */ ITEM_EQUIP_STATE_1,
|
||||
/* 2 */ ITEM_EQUIP_STATE_2,
|
||||
/* 3 */ ITEM_EQUIP_STATE_3
|
||||
} ItemEquipState;
|
||||
|
||||
static s16 sEquipState = ITEM_EQUIP_STATE_0;
|
||||
static s16 sEquipAnimTimer = 0;
|
||||
static s16 sEquipMoveTimer = 10;
|
||||
|
||||
static s16 sAmmoVtxOffset[] = {
|
||||
0, 2, 4, 6, 99, 99, 8, 99, 99, 10, 99, 99, 99, 99, 99, 99, 12,
|
||||
QUAD_ITEM_AMMO_STICK_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_STICK
|
||||
QUAD_ITEM_AMMO_NUT_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_NUT
|
||||
QUAD_ITEM_AMMO_BOMB_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_BOMB
|
||||
QUAD_ITEM_AMMO_BOW_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_BOW
|
||||
99, // (ITEM_ARROW_FIRE)
|
||||
99, // (ITEM_DINS_FIRE)
|
||||
QUAD_ITEM_AMMO_SLINGSHOT_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_SLINGSHOT
|
||||
99, // (ITEM_OCARINA_FAIRY)
|
||||
99, // (ITEM_OCARINA_TIME)
|
||||
QUAD_ITEM_AMMO_BOMBCHU_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_BOMBCHU
|
||||
99, // (ITEM_HOOKSHOT)
|
||||
99, // (ITEM_LONGSHOT)
|
||||
99, // (ITEM_ARROW_ICE)
|
||||
99, // (ITEM_FARORES_WIND)
|
||||
99, // (ITEM_BOOMERANG)
|
||||
99, // (ITEM_LENS)
|
||||
QUAD_ITEM_AMMO_BEAN_TENS - QUAD_ITEM_AMMO_FIRST, // ITEM_BEAN
|
||||
};
|
||||
|
||||
void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx, s16 item) {
|
||||
s16 ammo;
|
||||
s16 i;
|
||||
s16 ammoTens;
|
||||
|
||||
OPEN_DISPS(gfxCtx, "../z_kaleido_item.c", 69);
|
||||
|
||||
|
@ -41,23 +78,23 @@ void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx,
|
|||
}
|
||||
}
|
||||
|
||||
for (i = 0; ammo >= 10; i++) {
|
||||
for (ammoTens = 0; ammo >= 10; ammoTens++) {
|
||||
ammo -= 10;
|
||||
}
|
||||
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
|
||||
if (i != 0) {
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->itemVtx[(sAmmoVtxOffset[item] + 27) * 4], 4, 0);
|
||||
if (ammoTens != 0) {
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->itemVtx[(QUAD_ITEM_AMMO_FIRST + sAmmoVtxOffset[item] + 0) * 4], 4, 0);
|
||||
|
||||
gDPLoadTextureBlock(POLY_OPA_DISP++, ((u8*)gAmmoDigit0Tex + (8 * 8 * i)), G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gDPLoadTextureBlock(POLY_OPA_DISP++, ((u8*)gAmmoDigit0Tex + (8 * 8 * ammoTens)), G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8,
|
||||
0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
|
||||
}
|
||||
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->itemVtx[(sAmmoVtxOffset[item] + 28) * 4], 4, 0);
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->itemVtx[(QUAD_ITEM_AMMO_FIRST + sAmmoVtxOffset[item] + 1) * 4], 4, 0);
|
||||
|
||||
gDPLoadTextureBlock(POLY_OPA_DISP++, ((u8*)gAmmoDigit0Tex + (8 * 8 * ammo)), G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
|
@ -137,29 +174,36 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
if (gSaveContext.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]]) {}
|
||||
|
||||
while (moveCursorResult == 0) {
|
||||
// input says move left
|
||||
if (pauseCtx->stickAdjX < -30) {
|
||||
// if not left-most
|
||||
if (pauseCtx->cursorX[PAUSE_ITEM] != 0) {
|
||||
// move left
|
||||
pauseCtx->cursorX[PAUSE_ITEM] -= 1;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] -= 1;
|
||||
|
||||
// if there's an item there, stop there
|
||||
if (gSaveContext.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) {
|
||||
moveCursorResult = 1;
|
||||
}
|
||||
} else {
|
||||
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
|
||||
pauseCtx->cursorY[PAUSE_ITEM] += 1;
|
||||
// move the cursor to its initial horizontal position and try find an item on the next line
|
||||
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] >= 4) {
|
||||
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
|
||||
|
||||
pauseCtx->cursorY[PAUSE_ITEM] += 1;
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] >= ITEM_GRID_ROWS) {
|
||||
pauseCtx->cursorY[PAUSE_ITEM] = 0;
|
||||
}
|
||||
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] =
|
||||
pauseCtx->cursorX[PAUSE_ITEM] + (pauseCtx->cursorY[PAUSE_ITEM] * 6);
|
||||
pauseCtx->cursorX[PAUSE_ITEM] + (pauseCtx->cursorY[PAUSE_ITEM] * ITEM_GRID_COLS);
|
||||
|
||||
if (pauseCtx->cursorPoint[PAUSE_ITEM] >= 24) {
|
||||
if (pauseCtx->cursorPoint[PAUSE_ITEM] >= (ITEM_GRID_ROWS * ITEM_GRID_COLS)) {
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] = pauseCtx->cursorX[PAUSE_ITEM];
|
||||
}
|
||||
|
||||
// there is no item to the left of the initial position, on any line
|
||||
if (cursorY == pauseCtx->cursorY[PAUSE_ITEM]) {
|
||||
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] = cursorPoint;
|
||||
|
@ -170,7 +214,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
}
|
||||
}
|
||||
} else if (pauseCtx->stickAdjX > 30) {
|
||||
if (pauseCtx->cursorX[PAUSE_ITEM] < 5) {
|
||||
if (pauseCtx->cursorX[PAUSE_ITEM] < (ITEM_GRID_COLS - 1)) {
|
||||
pauseCtx->cursorX[PAUSE_ITEM] += 1;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] += 1;
|
||||
|
||||
|
@ -181,14 +225,14 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
pauseCtx->cursorX[PAUSE_ITEM] = cursorX;
|
||||
pauseCtx->cursorY[PAUSE_ITEM] += 1;
|
||||
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] >= 4) {
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] >= ITEM_GRID_ROWS) {
|
||||
pauseCtx->cursorY[PAUSE_ITEM] = 0;
|
||||
}
|
||||
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] =
|
||||
pauseCtx->cursorX[PAUSE_ITEM] + (pauseCtx->cursorY[PAUSE_ITEM] * 6);
|
||||
pauseCtx->cursorX[PAUSE_ITEM] + (pauseCtx->cursorY[PAUSE_ITEM] * ITEM_GRID_COLS);
|
||||
|
||||
if (pauseCtx->cursorPoint[PAUSE_ITEM] >= 24) {
|
||||
if (pauseCtx->cursorPoint[PAUSE_ITEM] >= (ITEM_GRID_ROWS * ITEM_GRID_COLS)) {
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] = pauseCtx->cursorX[PAUSE_ITEM];
|
||||
}
|
||||
|
||||
|
@ -230,16 +274,16 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
break;
|
||||
}
|
||||
|
||||
cursorY = cursorY + 1;
|
||||
cursorPoint = cursorPoint + 6;
|
||||
if (cursorY < 4) {
|
||||
cursorY += 1;
|
||||
cursorPoint += ITEM_GRID_COLS;
|
||||
if (cursorY < ITEM_GRID_ROWS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
cursorY = 0;
|
||||
cursorPoint = cursorX + 1;
|
||||
cursorX = cursorPoint;
|
||||
if (cursorX < 6) {
|
||||
if (cursorX < ITEM_GRID_COLS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -255,7 +299,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
|
||||
cursorPoint = cursorX = 5;
|
||||
cursorPoint = cursorX = ITEM_GRID_COLS - 1;
|
||||
cursorY = 0;
|
||||
while (true) {
|
||||
if (gSaveContext.inventory.items[cursorPoint] != ITEM_NONE) {
|
||||
|
@ -266,9 +310,9 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
break;
|
||||
}
|
||||
|
||||
cursorY = cursorY + 1;
|
||||
cursorPoint = cursorPoint + 6;
|
||||
if (cursorY < 4) {
|
||||
cursorY += 1;
|
||||
cursorPoint += ITEM_GRID_COLS;
|
||||
if (cursorY < ITEM_GRID_ROWS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -296,7 +340,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
if (pauseCtx->stickAdjY > 30) {
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] != 0) {
|
||||
pauseCtx->cursorY[PAUSE_ITEM] -= 1;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] -= 6;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] -= ITEM_GRID_COLS;
|
||||
|
||||
if (gSaveContext.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) {
|
||||
moveCursorResult = 1;
|
||||
|
@ -308,9 +352,9 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
moveCursorResult = 2;
|
||||
}
|
||||
} else if (pauseCtx->stickAdjY < -30) {
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] < 3) {
|
||||
if (pauseCtx->cursorY[PAUSE_ITEM] < (ITEM_GRID_ROWS - 1)) {
|
||||
pauseCtx->cursorY[PAUSE_ITEM] += 1;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] += 6;
|
||||
pauseCtx->cursorPoint[PAUSE_ITEM] += ITEM_GRID_COLS;
|
||||
|
||||
if (gSaveContext.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]] != ITEM_NONE) {
|
||||
moveCursorResult = 1;
|
||||
|
@ -371,11 +415,13 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
pauseCtx->equipAnimY = pauseCtx->itemVtx[index].v.ob[1] * 10;
|
||||
pauseCtx->equipAnimAlpha = 255;
|
||||
sEquipAnimTimer = 0;
|
||||
sEquipState = 3;
|
||||
sEquipState = ITEM_EQUIP_STATE_3;
|
||||
sEquipMoveTimer = 10;
|
||||
|
||||
if ((pauseCtx->equipTargetItem == ITEM_ARROW_FIRE) ||
|
||||
(pauseCtx->equipTargetItem == ITEM_ARROW_ICE) ||
|
||||
(pauseCtx->equipTargetItem == ITEM_ARROW_LIGHT)) {
|
||||
|
||||
index = 0;
|
||||
if (pauseCtx->equipTargetItem == ITEM_ARROW_ICE) {
|
||||
index = 1;
|
||||
|
@ -387,7 +433,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultReverb);
|
||||
pauseCtx->equipTargetItem = 0xBF + index;
|
||||
sEquipState = 0;
|
||||
sEquipState = ITEM_EQUIP_STATE_0;
|
||||
pauseCtx->equipAnimAlpha = 0;
|
||||
sEquipMoveTimer = 6;
|
||||
} else {
|
||||
|
@ -427,7 +473,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0);
|
||||
|
||||
for (i = 0, j = 24 * 4; i < 3; i++, j += 4) {
|
||||
for (i = 0, j = QUAD_ITEM_GRID_SELECTED_C_LEFT * 4; i < 3; i++, j += 4) {
|
||||
if (gSaveContext.equips.buttonItems[i + 1] != ITEM_NONE) {
|
||||
gSPVertex(POLY_OPA_DISP++, &pauseCtx->itemVtx[j], 4, 0);
|
||||
POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, gEquippedItemOutlineTex, 32, 32, 0);
|
||||
|
@ -437,41 +483,47 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
|
||||
for (i = j = 0; i < 24; i++, j += 4) {
|
||||
for (i = j = 0; i < (ITEM_GRID_ROWS * ITEM_GRID_COLS); i++, j += 4) {
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
|
||||
|
||||
if (gSaveContext.inventory.items[i] != ITEM_NONE) {
|
||||
if ((pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) && (pauseCtx->pageIndex == PAUSE_ITEM) &&
|
||||
(pauseCtx->cursorSpecialPos == 0)) {
|
||||
if (CHECK_AGE_REQ_SLOT(i)) {
|
||||
if ((sEquipState == 2) && (i == 3)) {
|
||||
if ((sEquipState == ITEM_EQUIP_STATE_2) && (i == SLOT_BOW)) {
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, magicArrowEffectsR[pauseCtx->equipTargetItem - 0xBF],
|
||||
magicArrowEffectsG[pauseCtx->equipTargetItem - 0xBF],
|
||||
magicArrowEffectsB[pauseCtx->equipTargetItem - 0xBF], pauseCtx->alpha);
|
||||
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] = pauseCtx->itemVtx[j + 2].v.ob[0] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] - 2;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] - ITEM_GRID_QUAD_ENLARGE_OFFSET;
|
||||
|
||||
pauseCtx->itemVtx[j + 1].v.ob[0] = pauseCtx->itemVtx[j + 3].v.ob[0] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] + 32;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] +
|
||||
(ITEM_GRID_QUAD_WIDTH + (ITEM_GRID_QUAD_ENLARGE_OFFSET * 2));
|
||||
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] = pauseCtx->itemVtx[j + 1].v.ob[1] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] + 2;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] + ITEM_GRID_QUAD_ENLARGE_OFFSET;
|
||||
|
||||
pauseCtx->itemVtx[j + 2].v.ob[1] = pauseCtx->itemVtx[j + 3].v.ob[1] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] - 32;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] -
|
||||
(ITEM_GRID_QUAD_HEIGHT + (ITEM_GRID_QUAD_ENLARGE_OFFSET * 2));
|
||||
} else if (i == cursorSlot) {
|
||||
// enlarge item under the cursor
|
||||
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] = pauseCtx->itemVtx[j + 2].v.ob[0] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] - 2;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] - ITEM_GRID_QUAD_ENLARGE_OFFSET;
|
||||
|
||||
pauseCtx->itemVtx[j + 1].v.ob[0] = pauseCtx->itemVtx[j + 3].v.ob[0] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] + 32;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[0] +
|
||||
(ITEM_GRID_QUAD_WIDTH + (ITEM_GRID_QUAD_ENLARGE_OFFSET * 2));
|
||||
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] = pauseCtx->itemVtx[j + 1].v.ob[1] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] + 2;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] + ITEM_GRID_QUAD_ENLARGE_OFFSET;
|
||||
|
||||
pauseCtx->itemVtx[j + 2].v.ob[1] = pauseCtx->itemVtx[j + 3].v.ob[1] =
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] - 32;
|
||||
pauseCtx->itemVtx[j + 0].v.ob[1] -
|
||||
(ITEM_GRID_QUAD_HEIGHT + (ITEM_GRID_QUAD_ENLARGE_OFFSET * 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -499,44 +551,45 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
|||
CLOSE_DISPS(play->state.gfxCtx, "../z_kaleido_item.c", 516);
|
||||
}
|
||||
|
||||
// C-left, C-down, C-right
|
||||
static s16 sCButtonPosX[] = { 660, 900, 1140 };
|
||||
static s16 sCButtonPosY[] = { 1100, 920, 1100 };
|
||||
|
||||
void KaleidoScope_UpdateItemEquip(PlayState* play) {
|
||||
static s16 D_8082A488 = 0;
|
||||
static s16 sItemEquipState2Timer_8082A488 = 0;
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
Vtx* bowItemVtx;
|
||||
u16 offsetX;
|
||||
u16 offsetY;
|
||||
|
||||
if (sEquipState == 0) {
|
||||
pauseCtx->equipAnimAlpha += 14;
|
||||
if (sEquipState == ITEM_EQUIP_STATE_0) {
|
||||
pauseCtx->equipAnimAlpha += 255 / 18;
|
||||
if (pauseCtx->equipAnimAlpha > 255) {
|
||||
pauseCtx->equipAnimAlpha = 254;
|
||||
sEquipState++;
|
||||
sEquipState++; // ITEM_EQUIP_STATE_1
|
||||
}
|
||||
sEquipAnimTimer = 5;
|
||||
return;
|
||||
}
|
||||
|
||||
if (sEquipState == 2) {
|
||||
D_8082A488--;
|
||||
if (sEquipState == ITEM_EQUIP_STATE_2) {
|
||||
sItemEquipState2Timer_8082A488--;
|
||||
|
||||
if (D_8082A488 == 0) {
|
||||
if (sItemEquipState2Timer_8082A488 == 0) {
|
||||
pauseCtx->equipTargetItem -= 0xBF - ITEM_BOW_ARROW_FIRE;
|
||||
pauseCtx->equipTargetSlot = SLOT_BOW;
|
||||
sEquipMoveTimer = 6;
|
||||
WREG(90) = 320;
|
||||
WREG(87) = WREG(91);
|
||||
sEquipState++;
|
||||
sEquipState++; // ITEM_EQUIP_STATE_3
|
||||
Audio_PlaySfxGeneral(NA_SE_SY_SYNTH_MAGIC_ARROW, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (sEquipState == 1) {
|
||||
bowItemVtx = &pauseCtx->itemVtx[12];
|
||||
if (sEquipState == ITEM_EQUIP_STATE_1) {
|
||||
bowItemVtx = &pauseCtx->itemVtx[SLOT_BOW * 4];
|
||||
offsetX = ABS(pauseCtx->equipAnimX - bowItemVtx->v.ob[0] * 10) / sEquipMoveTimer;
|
||||
offsetY = ABS(pauseCtx->equipAnimY - bowItemVtx->v.ob[1] * 10) / sEquipMoveTimer;
|
||||
} else {
|
||||
|
@ -557,14 +610,14 @@ void KaleidoScope_UpdateItemEquip(PlayState* play) {
|
|||
WREG(90) -= WREG(87) / sEquipMoveTimer;
|
||||
WREG(87) -= WREG(87) / sEquipMoveTimer;
|
||||
|
||||
if (sEquipState == 1) {
|
||||
if (pauseCtx->equipAnimX >= (pauseCtx->itemVtx[12].v.ob[0] * 10)) {
|
||||
if (sEquipState == ITEM_EQUIP_STATE_1) {
|
||||
if (pauseCtx->equipAnimX >= (pauseCtx->itemVtx[SLOT_BOW * 4].v.ob[0] * 10)) {
|
||||
pauseCtx->equipAnimX -= offsetX;
|
||||
} else {
|
||||
pauseCtx->equipAnimX += offsetX;
|
||||
}
|
||||
|
||||
if (pauseCtx->equipAnimY >= (pauseCtx->itemVtx[12].v.ob[1] * 10)) {
|
||||
if (pauseCtx->equipAnimY >= (pauseCtx->itemVtx[SLOT_BOW * 4].v.ob[1] * 10)) {
|
||||
pauseCtx->equipAnimY -= offsetY;
|
||||
} else {
|
||||
pauseCtx->equipAnimY += offsetY;
|
||||
|
@ -586,9 +639,9 @@ void KaleidoScope_UpdateItemEquip(PlayState* play) {
|
|||
sEquipMoveTimer--;
|
||||
|
||||
if (sEquipMoveTimer == 0) {
|
||||
if (sEquipState == 1) {
|
||||
sEquipState++;
|
||||
D_8082A488 = 4;
|
||||
if (sEquipState == ITEM_EQUIP_STATE_1) {
|
||||
sEquipState++; // ITEM_EQUIP_STATE_2
|
||||
sItemEquipState2Timer_8082A488 = 4;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,6 +65,20 @@ typedef enum {
|
|||
#define EQUIP_CURSOR_X_UPG 0
|
||||
#define EQUIP_CURSOR_Y_BULLETBAG_QUIVER 0
|
||||
|
||||
|
||||
#define EQUIP_GRID_CELL_WIDTH 32
|
||||
#define EQUIP_GRID_CELL_HEIGHT 32
|
||||
#define EQUIP_GRID_QUAD_MARGIN 2
|
||||
#define EQUIP_GRID_QUAD_WIDTH (EQUIP_GRID_CELL_WIDTH - (2 * EQUIP_GRID_QUAD_MARGIN))
|
||||
#define EQUIP_GRID_QUAD_HEIGHT (EQUIP_GRID_CELL_HEIGHT - (2 * EQUIP_GRID_QUAD_MARGIN))
|
||||
#define EQUIP_GRID_QUAD_TEX_SIZE 32 // both width and height
|
||||
|
||||
#define EQUIP_GRID_SELECTED_QUAD_MARGIN (-2)
|
||||
#define EQUIP_GRID_SELECTED_QUAD_WIDTH (EQUIP_GRID_QUAD_WIDTH - (2 * EQUIP_GRID_SELECTED_QUAD_MARGIN))
|
||||
#define EQUIP_GRID_SELECTED_QUAD_HEIGHT (EQUIP_GRID_QUAD_HEIGHT - (2 * EQUIP_GRID_SELECTED_QUAD_MARGIN))
|
||||
#define EQUIP_GRID_SELECTED_QUAD_TEX_SIZE 32 // both width and height
|
||||
|
||||
|
||||
typedef enum {
|
||||
// Grid of upgrades and equips, left column is upgrades, others are equips, with one row per equip type
|
||||
// Row 0
|
||||
|
@ -132,6 +146,63 @@ typedef enum {
|
|||
/* 46 */ QUAD_MAP_WORLD_IMAGE_LAST = QUAD_MAP_WORLD_IMAGE_FIRST + WORLD_MAP_IMAGE_FRAG_NUM - 1
|
||||
} MapQuad;
|
||||
|
||||
#define ITEM_GRID_ROWS 4
|
||||
#define ITEM_GRID_COLS 6
|
||||
#define ITEM_GRID_CELL_WIDTH 32
|
||||
#define ITEM_GRID_CELL_HEIGHT 32
|
||||
#define ITEM_GRID_QUAD_MARGIN 2
|
||||
#define ITEM_GRID_QUAD_WIDTH (ITEM_GRID_CELL_WIDTH - (2 * ITEM_GRID_QUAD_MARGIN))
|
||||
#define ITEM_GRID_QUAD_HEIGHT (ITEM_GRID_CELL_HEIGHT - (2 * ITEM_GRID_QUAD_MARGIN))
|
||||
#define ITEM_GRID_QUAD_TEX_SIZE 32 // both width and height
|
||||
#define ITEM_GRID_QUAD_ENLARGE_OFFSET 2
|
||||
|
||||
#define ITEM_GRID_SELECTED_QUAD_MARGIN (-2)
|
||||
#define ITEM_GRID_SELECTED_QUAD_WIDTH (ITEM_GRID_QUAD_WIDTH - (2 * ITEM_GRID_SELECTED_QUAD_MARGIN))
|
||||
#define ITEM_GRID_SELECTED_QUAD_HEIGHT (ITEM_GRID_QUAD_HEIGHT - (2 * ITEM_GRID_SELECTED_QUAD_MARGIN))
|
||||
#define ITEM_GRID_SELECTED_QUAD_TEX_SIZE 32 // both width and height
|
||||
|
||||
#define ITEM_AMMO_DIGIT_QUAD_WIDTH 8
|
||||
#define ITEM_AMMO_DIGIT_QUAD_HEIGHT 8
|
||||
#define ITEM_AMMO_DIGIT_QUAD_TEX_SIZE 8
|
||||
|
||||
// Relative to the corresponding QUAD_ITEM_GRID_ quad
|
||||
#define ITEM_AMMO_TENS_QUAD_OFFSET_X 0
|
||||
#define ITEM_AMMO_TENS_QUAD_OFFSET_Y 22
|
||||
|
||||
// Relative to the ammo tens digit
|
||||
#define ITEM_AMMO_UNITS_QUAD_OFFSET_X 6
|
||||
#define ITEM_AMMO_UNITS_QUAD_OFFSET_Y 0
|
||||
|
||||
typedef enum {
|
||||
// 0..23 are the ITEM_GRID_ROWS*ITEM_GRID_COLS item grid
|
||||
// The values follow the `InventorySlot` enum
|
||||
/* 0 */ QUAD_ITEM_GRID_FIRST,
|
||||
/* 23 */ QUAD_ITEM_GRID_LAST = ITEM_GRID_ROWS * ITEM_GRID_COLS - 1,
|
||||
// Markers indicating the currently equipped items
|
||||
/* 24 */ QUAD_ITEM_GRID_SELECTED_C_LEFT,
|
||||
/* 25 */ QUAD_ITEM_GRID_SELECTED_C_DOWN,
|
||||
/* 26 */ QUAD_ITEM_GRID_SELECTED_C_RIGHT,
|
||||
// Digits for showing ammo count
|
||||
/* 27 */ QUAD_ITEM_AMMO_FIRST,
|
||||
/* 27 */ QUAD_ITEM_AMMO_STICK_TENS = QUAD_ITEM_AMMO_FIRST,
|
||||
/* 28 */ QUAD_ITEM_AMMO_STICK_UNITS,
|
||||
/* 29 */ QUAD_ITEM_AMMO_NUT_TENS,
|
||||
/* 30 */ QUAD_ITEM_AMMO_NUT_UNITS,
|
||||
/* 31 */ QUAD_ITEM_AMMO_BOMB_TENS,
|
||||
/* 32 */ QUAD_ITEM_AMMO_BOMB_UNITS,
|
||||
/* 33 */ QUAD_ITEM_AMMO_BOW_TENS,
|
||||
/* 34 */ QUAD_ITEM_AMMO_BOW_UNITS,
|
||||
/* 35 */ QUAD_ITEM_AMMO_SLINGSHOT_TENS,
|
||||
/* 36 */ QUAD_ITEM_AMMO_SLINGSHOT_UNITS,
|
||||
/* 37 */ QUAD_ITEM_AMMO_BOMBCHU_TENS,
|
||||
/* 38 */ QUAD_ITEM_AMMO_BOMBCHU_UNITS,
|
||||
/* 39 */ QUAD_ITEM_AMMO_BEAN_TENS,
|
||||
/* 40 */ QUAD_ITEM_AMMO_BEAN_UNITS,
|
||||
/* 41 */ QUAD_ITEM_AMMO_MAX,
|
||||
/* 40 */ QUAD_ITEM_AMMO_LAST = QUAD_ITEM_AMMO_MAX - 1,
|
||||
/* 41 */ QUAD_ITEM_MAX
|
||||
} ItemQuad;
|
||||
|
||||
void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx);
|
||||
s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point);
|
||||
void KaleidoScope_DrawDebugEditor(PlayState* play);
|
||||
|
|
|
@ -2494,7 +2494,15 @@ s16 KaleidoScope_InitPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 nu
|
|||
return bufI;
|
||||
}
|
||||
|
||||
static s16 D_8082B11C[] = { 0, 4, 8, 12, 24, 32, 56 }; // itemVtx
|
||||
static s16 sItemVtxQuadsWithAmmo[] = {
|
||||
SLOT_STICK * 4, // QUAD_ITEM_AMMO_STICK_
|
||||
SLOT_NUT * 4, // QUAD_ITEM_AMMO_NUT_
|
||||
SLOT_BOMB * 4, // QUAD_ITEM_AMMO_BOMB_
|
||||
SLOT_BOW * 4, // QUAD_ITEM_AMMO_BOW_
|
||||
SLOT_SLINGSHOT * 4, // QUAD_ITEM_AMMO_SLINGSHOT_
|
||||
SLOT_BOMBCHU * 4, // QUAD_ITEM_AMMO_BOMBCHU_
|
||||
SLOT_BEAN * 4, // QUAD_ITEM_AMMO_BEAN_
|
||||
};
|
||||
|
||||
static s16 sEquipColumnsX[] = { -114, 12, 44, 76 };
|
||||
|
||||
|
@ -2767,19 +2775,24 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->cursorVtx[17].v.tc[0] = pauseCtx->cursorVtx[18].v.tc[1] = pauseCtx->cursorVtx[19].v.tc[0] =
|
||||
pauseCtx->cursorVtx[19].v.tc[1] = 32 * (1 << 5);
|
||||
|
||||
pauseCtx->itemVtx = Graph_Alloc(gfxCtx, ((4 * 6 + 3 + 7 * 2) * 4) * sizeof(Vtx));
|
||||
pauseCtx->itemVtx = Graph_Alloc(gfxCtx, (QUAD_ITEM_MAX * 4) * sizeof(Vtx));
|
||||
|
||||
for (k = 0, i = 0, vtx_y = 58; k < 4; k++, vtx_y -= 32) {
|
||||
for (vtx_x_ = -96, j = 0; j < 6; j++, i += 4, vtx_x_ += 32) {
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = vtx_x_ + 2;
|
||||
// QUAD_ITEM_GRID_FIRST..QUAD_ITEM_GRID_LAST
|
||||
|
||||
for (k = 0, i = 0, vtx_y = (ITEM_GRID_ROWS * ITEM_GRID_CELL_HEIGHT) / 2 - 6; k < ITEM_GRID_ROWS;
|
||||
k++, vtx_y -= ITEM_GRID_CELL_HEIGHT) {
|
||||
for (vtx_x_ = 0 - (ITEM_GRID_COLS * ITEM_GRID_CELL_WIDTH) / 2, j = 0; j < ITEM_GRID_COLS;
|
||||
j++, i += 4, vtx_x_ += ITEM_GRID_CELL_WIDTH) {
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = vtx_x_ + ITEM_GRID_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] + 0x1C;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] + ITEM_GRID_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = vtx_y + pauseCtx->offsetY - 2;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] =
|
||||
vtx_y + pauseCtx->offsetY - ITEM_GRID_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] - 0x1C;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] - ITEM_GRID_QUAD_HEIGHT;
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[2] = pauseCtx->itemVtx[i + 1].v.ob[2] = pauseCtx->itemVtx[i + 2].v.ob[2] =
|
||||
pauseCtx->itemVtx[i + 3].v.ob[2] = 0;
|
||||
|
@ -2791,7 +2804,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->itemVtx[i + 2].v.tc[0] = 0;
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.tc[0] = pauseCtx->itemVtx[i + 2].v.tc[1] = pauseCtx->itemVtx[i + 3].v.tc[0] =
|
||||
pauseCtx->itemVtx[i + 3].v.tc[1] = 32 * (1 << 5);
|
||||
pauseCtx->itemVtx[i + 3].v.tc[1] = ITEM_GRID_QUAD_TEX_SIZE * (1 << 5);
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.cn[0] = pauseCtx->itemVtx[i + 1].v.cn[0] = pauseCtx->itemVtx[i + 2].v.cn[0] =
|
||||
pauseCtx->itemVtx[i + 3].v.cn[0] = pauseCtx->itemVtx[i + 0].v.cn[1] = pauseCtx->itemVtx[i + 1].v.cn[1] =
|
||||
|
@ -2804,17 +2817,23 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
// QUAD_ITEM_GRID_SELECTED_C_LEFT, QUAD_ITEM_GRID_SELECTED_C_DOWN, QUAD_ITEM_GRID_SELECTED_C_RIGHT
|
||||
|
||||
for (j = 1; j < 4; j++, i += 4) {
|
||||
if (gSaveContext.equips.cButtonSlots[j - 1] != ITEM_NONE) {
|
||||
k = gSaveContext.equips.cButtonSlots[j - 1] * 4;
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = pauseCtx->itemVtx[k].v.ob[0] - 2;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] =
|
||||
pauseCtx->itemVtx[k].v.ob[0] + ITEM_GRID_SELECTED_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 32;
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] + ITEM_GRID_SELECTED_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = pauseCtx->itemVtx[k].v.ob[1] + 2;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] =
|
||||
pauseCtx->itemVtx[k].v.ob[1] - ITEM_GRID_SELECTED_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1] - 32;
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] - ITEM_GRID_SELECTED_QUAD_HEIGHT;
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[2] = pauseCtx->itemVtx[i + 1].v.ob[2] = pauseCtx->itemVtx[i + 2].v.ob[2] =
|
||||
pauseCtx->itemVtx[i + 3].v.ob[2] = 0;
|
||||
|
@ -2826,7 +2845,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->itemVtx[i + 2].v.tc[0] = 0;
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.tc[0] = pauseCtx->itemVtx[i + 2].v.tc[1] = pauseCtx->itemVtx[i + 3].v.tc[0] =
|
||||
pauseCtx->itemVtx[i + 3].v.tc[1] = 32 * (1 << 5);
|
||||
pauseCtx->itemVtx[i + 3].v.tc[1] = ITEM_GRID_SELECTED_QUAD_TEX_SIZE * (1 << 5);
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.cn[0] = pauseCtx->itemVtx[i + 1].v.cn[0] = pauseCtx->itemVtx[i + 2].v.cn[0] =
|
||||
pauseCtx->itemVtx[i + 3].v.cn[0] = pauseCtx->itemVtx[i + 0].v.cn[1] = pauseCtx->itemVtx[i + 1].v.cn[1] =
|
||||
|
@ -2837,34 +2856,54 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->itemVtx[i + 0].v.cn[3] = pauseCtx->itemVtx[i + 1].v.cn[3] = pauseCtx->itemVtx[i + 2].v.cn[3] =
|
||||
pauseCtx->itemVtx[i + 3].v.cn[3] = pauseCtx->alpha;
|
||||
} else {
|
||||
// No item equipped on the C button, put the quad out of view
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = -300;
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 32;
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] + ITEM_GRID_SELECTED_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = 300;
|
||||
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1] - 32;
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] - ITEM_GRID_SELECTED_QUAD_HEIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = (4 * 6 + 3) * 4, j = 0; j < 7; j++) {
|
||||
k = D_8082B11C[j];
|
||||
// QUAD_ITEM_AMMO_*
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] = pauseCtx->itemVtx[k].v.ob[0];
|
||||
for (i = QUAD_ITEM_AMMO_FIRST * 4, j = 0; j < 7; j++) {
|
||||
k = sItemVtxQuadsWithAmmo[j];
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 8;
|
||||
// tens
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] = pauseCtx->itemVtx[k].v.ob[1] - 22;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] = pauseCtx->itemVtx[i + 2].v.ob[0] =
|
||||
pauseCtx->itemVtx[k].v.ob[0] + ITEM_AMMO_TENS_QUAD_OFFSET_X;
|
||||
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1] - 8;
|
||||
pauseCtx->itemVtx[i + 1].v.ob[0] = pauseCtx->itemVtx[i + 3].v.ob[0] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] + ITEM_AMMO_DIGIT_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->itemVtx[i + 4].v.ob[0] = pauseCtx->itemVtx[i + 6].v.ob[0] = pauseCtx->itemVtx[i + 0].v.ob[0] + 6;
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] = pauseCtx->itemVtx[i + 1].v.ob[1] =
|
||||
pauseCtx->itemVtx[k].v.ob[1] - ITEM_AMMO_TENS_QUAD_OFFSET_Y;
|
||||
|
||||
pauseCtx->itemVtx[i + 5].v.ob[0] = pauseCtx->itemVtx[i + 7].v.ob[0] = pauseCtx->itemVtx[i + 4].v.ob[0] + 8;
|
||||
pauseCtx->itemVtx[i + 2].v.ob[1] = pauseCtx->itemVtx[i + 3].v.ob[1] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] - ITEM_AMMO_DIGIT_QUAD_HEIGHT;
|
||||
|
||||
pauseCtx->itemVtx[i + 4].v.ob[1] = pauseCtx->itemVtx[i + 5].v.ob[1] = pauseCtx->itemVtx[i + 0].v.ob[1];
|
||||
// units
|
||||
|
||||
pauseCtx->itemVtx[i + 6].v.ob[1] = pauseCtx->itemVtx[i + 7].v.ob[1] = pauseCtx->itemVtx[i + 4].v.ob[1] - 8;
|
||||
pauseCtx->itemVtx[i + 4].v.ob[0] = pauseCtx->itemVtx[i + 6].v.ob[0] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[0] + ITEM_AMMO_UNITS_QUAD_OFFSET_X;
|
||||
|
||||
pauseCtx->itemVtx[i + 5].v.ob[0] = pauseCtx->itemVtx[i + 7].v.ob[0] =
|
||||
pauseCtx->itemVtx[i + 4].v.ob[0] + ITEM_AMMO_DIGIT_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->itemVtx[i + 4].v.ob[1] = pauseCtx->itemVtx[i + 5].v.ob[1] =
|
||||
pauseCtx->itemVtx[i + 0].v.ob[1] - ITEM_AMMO_UNITS_QUAD_OFFSET_Y;
|
||||
|
||||
pauseCtx->itemVtx[i + 6].v.ob[1] = pauseCtx->itemVtx[i + 7].v.ob[1] =
|
||||
pauseCtx->itemVtx[i + 4].v.ob[1] - ITEM_AMMO_DIGIT_QUAD_HEIGHT;
|
||||
|
||||
// tens, units
|
||||
|
||||
for (k = 0; k < 2; k++, i += 4) {
|
||||
pauseCtx->itemVtx[i + 0].v.ob[2] = pauseCtx->itemVtx[i + 1].v.ob[2] = pauseCtx->itemVtx[i + 2].v.ob[2] =
|
||||
|
@ -2877,7 +2916,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->itemVtx[i + 2].v.tc[0] = 0;
|
||||
|
||||
pauseCtx->itemVtx[i + 1].v.tc[0] = pauseCtx->itemVtx[i + 2].v.tc[1] = pauseCtx->itemVtx[i + 3].v.tc[0] =
|
||||
pauseCtx->itemVtx[i + 3].v.tc[1] = 8 * (1 << 5);
|
||||
pauseCtx->itemVtx[i + 3].v.tc[1] = ITEM_AMMO_DIGIT_QUAD_TEX_SIZE * (1 << 5);
|
||||
|
||||
pauseCtx->itemVtx[i + 0].v.cn[0] = pauseCtx->itemVtx[i + 1].v.cn[0] = pauseCtx->itemVtx[i + 2].v.cn[0] =
|
||||
pauseCtx->itemVtx[i + 3].v.cn[0] = pauseCtx->itemVtx[i + 0].v.cn[1] = pauseCtx->itemVtx[i + 1].v.cn[1] =
|
||||
|
@ -2898,18 +2937,21 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
// 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 (k = 0, i = 0, vtx_y = (EQUIP_TYPE_MAX * EQUIP_GRID_CELL_HEIGHT) / 2 - 6; i < EQUIP_TYPE_MAX;
|
||||
i++, vtx_y -= EQUIP_GRID_CELL_HEIGHT) {
|
||||
// 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] = sEquipColumnsX[j] + 2;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] =
|
||||
sEquipColumnsX[j] + EQUIP_GRID_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] =
|
||||
pauseCtx->equipVtx[k + 0].v.ob[0] + 28;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[0] + EQUIP_GRID_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] = vtx_y + pauseCtx->offsetY - 2;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] =
|
||||
vtx_y + pauseCtx->offsetY - EQUIP_GRID_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] =
|
||||
pauseCtx->equipVtx[k + 0].v.ob[1] - 28;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[1] - EQUIP_GRID_QUAD_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;
|
||||
|
@ -2921,7 +2963,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->equipVtx[k + 2].v.tc[0] = 0;
|
||||
|
||||
pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[0] =
|
||||
pauseCtx->equipVtx[k + 3].v.tc[1] = 32 * (1 << 5);
|
||||
pauseCtx->equipVtx[k + 3].v.tc[1] = EQUIP_GRID_QUAD_TEX_SIZE * (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] =
|
||||
|
@ -2941,15 +2983,17 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
if (CUR_EQUIP_VALUE(j) != 0) {
|
||||
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;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] =
|
||||
pauseCtx->equipVtx[i].v.ob[0] + EQUIP_GRID_SELECTED_QUAD_MARGIN;
|
||||
|
||||
pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] =
|
||||
pauseCtx->equipVtx[k + 0].v.ob[0] + 32;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[0] + EQUIP_GRID_SELECTED_QUAD_WIDTH;
|
||||
|
||||
pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] = pauseCtx->equipVtx[i].v.ob[1] + 2;
|
||||
pauseCtx->equipVtx[k + 0].v.ob[1] = pauseCtx->equipVtx[k + 1].v.ob[1] =
|
||||
pauseCtx->equipVtx[i].v.ob[1] - EQUIP_GRID_SELECTED_QUAD_MARGIN;
|
||||
|
||||
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 + 0].v.ob[1] - EQUIP_GRID_SELECTED_QUAD_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;
|
||||
|
@ -2961,7 +3005,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
pauseCtx->equipVtx[k + 2].v.tc[0] = 0;
|
||||
|
||||
pauseCtx->equipVtx[k + 1].v.tc[0] = pauseCtx->equipVtx[k + 2].v.tc[1] = pauseCtx->equipVtx[k + 3].v.tc[0] =
|
||||
pauseCtx->equipVtx[k + 3].v.tc[1] = 32 * (1 << 5);
|
||||
pauseCtx->equipVtx[k + 3].v.tc[1] = EQUIP_GRID_SELECTED_QUAD_TEX_SIZE * (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] =
|
||||
|
@ -2975,7 +3019,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
// QUAD_EQUIP_PLAYER_FIRST to TODO
|
||||
// QUAD_EQUIP_PLAYER_FIRST..QUAD_EQUIP_PLAYER_LAST
|
||||
|
||||
vtx_x_ = PAUSE_EQUIP_PLAYER_HEIGHT;
|
||||
vtx_y = 50;
|
||||
|
|
Loading…
Add table
Reference in a new issue