summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <engineer124engineer124@gmail.com>2022-05-23 17:27:11 +1000
committerengineer124 <engineer124engineer124@gmail.com>2022-05-23 17:27:11 +1000
commita4f17618c74022dabd93ef719eccb997e408a36a (patch)
tree40967ea343d224d9200da2ca7676c806ebc705fc /src/code
parent991cb44133bd9322148130e260d76ecd36f7d645 (diff)
Magic docs (sync with OoT)
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_actor.c2
-rw-r--r--src/code/z_kaleido_setup.c4
-rw-r--r--src/code/z_parameter.c229
-rw-r--r--src/code/z_sram_NES.c4
4 files changed, 117 insertions, 122 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 56e121b33..cbfc1ecd2 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -2217,7 +2217,7 @@ s32 func_800B90AC(GlobalContext* globalCtx, Actor* actor, CollisionPoly* polygon
void Actor_DisableLens(GlobalContext* globalCtx) {
if (globalCtx->actorCtx.lensActive) {
globalCtx->actorCtx.lensActive = false;
- Magic_ResetBar(&globalCtx->state);
+ Magic_Reset(&globalCtx->state);
}
}
diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c
index 330395fe7..78f05903d 100644
--- a/src/code/z_kaleido_setup.c
+++ b/src/code/z_kaleido_setup.c
@@ -73,8 +73,8 @@ void KaleidoSetup_Update(GlobalContext* globalCtx) {
if ((globalCtx->sceneLoadFlag == 0) && (globalCtx->transitionMode == 0)) {
if ((gSaveContext.save.cutscene < 0xFFF0) && (gSaveContext.nextCutsceneIndex < 0xFFF0)) {
if (!Play_InCsMode(globalCtx) || ((msgCtx->msgMode != 0) && (msgCtx->currentTextId == 0xFF))) {
- if ((globalCtx->unk_1887C < 2) && (gSaveContext.magicBarAction != MAGIC_BAR_ACTION_GROW_WIDE) &&
- (gSaveContext.magicBarAction != MAGIC_BAR_ACTION_FILL)) {
+ if ((globalCtx->unk_1887C < 2) && (gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY) &&
+ (gSaveContext.magicState != MAGIC_STATE_FILL)) {
if (!(gSaveContext.eventInf[1] & 0x80) && !(player->stateFlags1 & 0x20)) {
if (!(globalCtx->actorCtx.unk5 & 2) && !(globalCtx->actorCtx.unk5 & 4)) {
if ((globalCtx->actorCtx.unk268 == 0) &&
diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c
index a43417b91..03c7c7209 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -3162,17 +3162,16 @@ void Inventory_ChangeAmmo(s16 item, s16 ammoChange) {
}
void Magic_Add(GlobalContext* globalCtx, s16 magicToAdd) {
- if (((void)0, gSaveContext.save.playerData.magic) < ((void)0, gSaveContext.magicCapacityDrawn)) {
+ if (((void)0, gSaveContext.save.playerData.magic) < ((void)0, gSaveContext.magicCapacity)) {
gSaveContext.magicToAdd += magicToAdd;
gSaveContext.isMagicRequested = true;
}
}
-void Magic_ResetBar(GameState* gamestate) {
- if ((gSaveContext.magicBarAction != MAGIC_BAR_ACTION_GROW_WIDE) &&
- (gSaveContext.magicBarAction != MAGIC_BAR_ACTION_FILL)) {
+void Magic_Reset(GameState* gamestate) {
+ if ((gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY) && (gSaveContext.magicState != MAGIC_STATE_FILL)) {
sMagicBarOutlinePrimRed = sMagicBarOutlinePrimGreen = sMagicBarOutlinePrimBlue = 255;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_IDLE;
+ gSaveContext.magicState = MAGIC_STATE_IDLE;
}
}
@@ -3184,7 +3183,7 @@ s32 Magic_Consume(GlobalContext* globalCtx, s16 magicToConsume, s16 consumeType)
}
if ((gSaveContext.save.playerData.magic - magicToConsume) < 0) {
- if (gSaveContext.magicCapacityDrawn != 0) {
+ if (gSaveContext.magicCapacity != 0) {
play_sound(NA_SE_SY_ERROR);
}
return false;
@@ -3193,16 +3192,16 @@ s32 Magic_Consume(GlobalContext* globalCtx, s16 magicToConsume, s16 consumeType)
switch (consumeType) {
case MAGIC_BAR_CONSUME_NOW: // Deku Bubble
case MAGIC_BAR_CONSUME_NOW_ALT:
- if ((gSaveContext.magicBarAction == MAGIC_BAR_ACTION_IDLE) ||
- (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME)) {
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME) {
+ if ((gSaveContext.magicState == MAGIC_STATE_IDLE) ||
+ (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) {
+ if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) {
globalCtx->actorCtx.lensActive = false;
}
if (gSaveContext.save.weekEventReg[14] & 8) {
magicToConsume = 0;
}
gSaveContext.magicToConsume = magicToConsume;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_CONSUME_SETUP;
+ gSaveContext.magicState = MAGIC_STATE_CONSUME_SETUP;
return true;
} else {
play_sound(NA_SE_SY_ERROR);
@@ -3210,16 +3209,16 @@ s32 Magic_Consume(GlobalContext* globalCtx, s16 magicToConsume, s16 consumeType)
}
case MAGIC_BAR_CONSUME_WAIT_NO_PREVIEW:
- if ((gSaveContext.magicBarAction == MAGIC_BAR_ACTION_IDLE) ||
- (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME)) {
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME) {
+ if ((gSaveContext.magicState == MAGIC_STATE_IDLE) ||
+ (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) {
+ if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) {
globalCtx->actorCtx.lensActive = false;
}
if (gSaveContext.save.weekEventReg[14] & 8) {
magicToConsume = 0;
}
gSaveContext.magicToConsume = magicToConsume;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_BORDER_CHANGE_3;
+ gSaveContext.magicState = MAGIC_STATE_METER_FLASH_3;
return true;
} else {
play_sound(NA_SE_SY_ERROR);
@@ -3227,28 +3226,28 @@ s32 Magic_Consume(GlobalContext* globalCtx, s16 magicToConsume, s16 consumeType)
}
case MAGIC_BAR_CONSUME_LENS: // Lens
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_IDLE) {
+ if (gSaveContext.magicState == MAGIC_STATE_IDLE) {
if (gSaveContext.save.playerData.magic != 0) {
interfaceCtx->magicConsumptionTimer = 80;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_LENS_CONSUME;
+ gSaveContext.magicState = MAGIC_STATE_CONSUME_LENS;
return true;
} else {
return false;
}
- } else if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME) {
+ } else if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) {
return true;
} else {
return false;
}
case MAGIC_BAR_CONSUME_WAIT_PREVIEW: // Spin Attack
- if ((gSaveContext.magicBarAction == MAGIC_BAR_ACTION_IDLE) ||
- (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME)) {
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME) {
+ if ((gSaveContext.magicState == MAGIC_STATE_IDLE) ||
+ (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) {
+ if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) {
globalCtx->actorCtx.lensActive = false;
}
gSaveContext.magicToConsume = magicToConsume;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_BORDER_CHANGE_2;
+ gSaveContext.magicState = MAGIC_STATE_METER_FLASH_2;
return true;
} else {
play_sound(NA_SE_SY_ERROR);
@@ -3258,32 +3257,32 @@ s32 Magic_Consume(GlobalContext* globalCtx, s16 magicToConsume, s16 consumeType)
case MAGIC_BAR_CONSUME_GORON_ZORA: // Zora Shock, Goron Spike Roll
if (gSaveContext.save.playerData.magic != 0) {
interfaceCtx->magicConsumptionTimer = 10;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_CONSUME_GORON_ZORA_SETUP;
+ gSaveContext.magicState = MAGIC_STATE_CONSUME_GORON_ZORA_SETUP;
return true;
} else {
return false;
}
case MAGIC_BAR_CONSUME_GIANTS_MASK: // Giants Mask
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_IDLE) {
+ if (gSaveContext.magicState == MAGIC_STATE_IDLE) {
if (gSaveContext.save.playerData.magic != 0) {
interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANT;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_CONSUME_GIANTS_MASK;
+ gSaveContext.magicState = MAGIC_STATE_CONSUME_GIANTS_MASK;
return true;
} else {
return false;
}
}
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_CONSUME_GIANTS_MASK) {
+ if (gSaveContext.magicState == MAGIC_STATE_CONSUME_GIANTS_MASK) {
return true;
} else {
return false;
}
case MAGIC_BAR_CONSUME_DEITY_BEAM: // Fierce Deity Beam
- if ((gSaveContext.magicBarAction == MAGIC_BAR_ACTION_IDLE) ||
- (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME)) {
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_LENS_CONSUME) {
+ if ((gSaveContext.magicState == MAGIC_STATE_IDLE) ||
+ (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) {
+ if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) {
globalCtx->actorCtx.lensActive = false;
}
if (gSaveContext.save.weekEventReg[14] & 8) {
@@ -3301,13 +3300,13 @@ s32 Magic_Consume(GlobalContext* globalCtx, s16 magicToConsume, s16 consumeType)
}
}
-void Magic_UpdateAdd(void) {
+void Magic_UpdateAddRequest(void) {
if (gSaveContext.isMagicRequested) {
gSaveContext.save.playerData.magic += 4;
play_sound(NA_SE_SY_GAUGE_UP - SFX_FLAG);
- if (((void)0, gSaveContext.save.playerData.magic) >= ((void)0, gSaveContext.magicCapacityDrawn)) {
- gSaveContext.save.playerData.magic = gSaveContext.magicCapacityDrawn;
+ if (((void)0, gSaveContext.save.playerData.magic) >= ((void)0, gSaveContext.magicCapacity)) {
+ gSaveContext.save.playerData.magic = gSaveContext.magicCapacity;
gSaveContext.magicToAdd = 0;
gSaveContext.isMagicRequested = false;
} else {
@@ -3326,7 +3325,7 @@ s16 sMagicBorderColors[][3] = {
};
s16 sMagicBorderIndices[] = { 0, 1, 1, 0 };
s16 sMagicBorderColorTimerIndex[] = { 2, 1, 2, 1 };
-void Magic_UpdateBarBorderColor(void) {
+void Magic_UpdateMeterBorderColor(void) {
s16 borderChangeR;
s16 borderChangeG;
s16 borderChangeB;
@@ -3369,121 +3368,119 @@ void Magic_UpdateBarBorderColor(void) {
}
}
-void Magic_UpdateBar(GlobalContext* globalCtx) {
+void Magic_Update(GlobalContext* globalCtx) {
MessageContext* msgCtx = &globalCtx->msgCtx;
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
- s16 magicCapacity;
+ s16 magicCapacityTarget;
if (gSaveContext.save.weekEventReg[14] & 8) {
- Magic_UpdateBarBorderColor();
+ Magic_UpdateMeterBorderColor();
}
- switch (gSaveContext.magicBarAction) {
- case MAGIC_BAR_ACTION_GROW_WIDE:
- magicCapacity = gSaveContext.save.playerData.magicLevel * MAGIC_HALF_BAR;
- if (gSaveContext.magicCapacityDrawn != magicCapacity) {
- if (gSaveContext.magicCapacityDrawn < magicCapacity) {
- gSaveContext.magicCapacityDrawn += 0x10;
- if (gSaveContext.magicCapacityDrawn > magicCapacity) {
- gSaveContext.magicCapacityDrawn = magicCapacity;
+ switch (gSaveContext.magicState) {
+ case MAGIC_STATE_STEP_CAPACITY:
+ magicCapacityTarget = gSaveContext.save.playerData.magicLevel * MAGIC_NORMAL_METER;
+ if (gSaveContext.magicCapacity != magicCapacityTarget) {
+ if (gSaveContext.magicCapacity < magicCapacityTarget) {
+ gSaveContext.magicCapacity += 0x10;
+ if (gSaveContext.magicCapacity > magicCapacityTarget) {
+ gSaveContext.magicCapacity = magicCapacityTarget;
}
} else {
- gSaveContext.magicCapacityDrawn -= 0x10;
- if (gSaveContext.magicCapacityDrawn <= magicCapacity) {
- gSaveContext.magicCapacityDrawn = magicCapacity;
+ gSaveContext.magicCapacity -= 0x10;
+ if (gSaveContext.magicCapacity <= magicCapacityTarget) {
+ gSaveContext.magicCapacity = magicCapacityTarget;
}
}
} else {
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_FILL;
+ gSaveContext.magicState = MAGIC_STATE_FILL;
}
break;
- case MAGIC_BAR_ACTION_FILL:
+ case MAGIC_STATE_FILL:
gSaveContext.save.playerData.magic += 0x10;
if ((gSaveContext.gameMode == 0) && (gSaveContext.sceneSetupIndex < 4)) {
play_sound(NA_SE_SY_GAUGE_UP - SFX_FLAG);
}
- if (((void)0, gSaveContext.save.playerData.magic) >= ((void)0, gSaveContext.magicCapacity)) {
- gSaveContext.save.playerData.magic = gSaveContext.magicCapacity;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_IDLE;
+ if (((void)0, gSaveContext.save.playerData.magic) >= ((void)0, gSaveContext.magicFillTarget)) {
+ gSaveContext.save.playerData.magic = gSaveContext.magicFillTarget;
+ gSaveContext.magicState = MAGIC_STATE_IDLE;
}
break;
- case MAGIC_BAR_ACTION_CONSUME_SETUP:
+ case MAGIC_STATE_CONSUME_SETUP:
sMagicBorderRatio = 2;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_CONSUME;
+ gSaveContext.magicState = MAGIC_STATE_CONSUME;
break;
- case MAGIC_BAR_ACTION_CONSUME:
+ case MAGIC_STATE_CONSUME:
if (!(gSaveContext.save.weekEventReg[14] & 8)) {
gSaveContext.save.playerData.magic =
((void)0, gSaveContext.save.playerData.magic) - ((void)0, gSaveContext.magicToConsume);
if (gSaveContext.save.playerData.magic <= 0) {
gSaveContext.save.playerData.magic = 0;
}
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_BORDER_CHANGE_1;
+ gSaveContext.magicState = MAGIC_STATE_METER_FLASH_1;
sMagicBarOutlinePrimRed = sMagicBarOutlinePrimGreen = sMagicBarOutlinePrimBlue = 255;
}
// fallthrough
- case MAGIC_BAR_ACTION_BORDER_CHANGE_1:
- case MAGIC_BAR_ACTION_BORDER_CHANGE_2:
- case MAGIC_BAR_ACTION_BORDER_CHANGE_3:
+ case MAGIC_STATE_METER_FLASH_1:
+ case MAGIC_STATE_METER_FLASH_2:
+ case MAGIC_STATE_METER_FLASH_3:
if (!(gSaveContext.save.weekEventReg[14] & 8)) {
- Magic_UpdateBarBorderColor();
+ Magic_UpdateMeterBorderColor();
}
break;
- case MAGIC_BAR_ACTION_RESTORE_IDLE:
+ case MAGIC_STATE_RESET:
sMagicBarOutlinePrimRed = sMagicBarOutlinePrimGreen = sMagicBarOutlinePrimBlue = 255;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_IDLE;
+ gSaveContext.magicState = MAGIC_STATE_IDLE;
break;
- case MAGIC_BAR_ACTION_LENS_CONSUME:
+ case MAGIC_STATE_CONSUME_LENS:
if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && (msgCtx->msgMode == 0) &&
(globalCtx->gameOverCtx.state == 0) && (globalCtx->sceneLoadFlag == 0) &&
- (globalCtx->transitionMode == 0)) {
- if (!Play_InCsMode(globalCtx)) {
- if ((gSaveContext.save.playerData.magic == 0) ||
- ((func_801242DC(globalCtx) >= 2) && (func_801242DC(globalCtx) < 5)) ||
- ((BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) != ITEM_LENS) &&
- (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) != ITEM_LENS) &&
- (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) != ITEM_LENS)) ||
- !globalCtx->actorCtx.lensActive) {
- globalCtx->actorCtx.lensActive = false;
- play_sound(NA_SE_SY_GLASSMODE_OFF);
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_IDLE;
- sMagicBarOutlinePrimRed = sMagicBarOutlinePrimGreen = sMagicBarOutlinePrimBlue = 255;
- break;
- }
+ (globalCtx->transitionMode == 0) && !Play_InCsMode(globalCtx)) {
+
+ if ((gSaveContext.save.playerData.magic == 0) ||
+ ((func_801242DC(globalCtx) >= 2) && (func_801242DC(globalCtx) < 5)) ||
+ ((BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) != ITEM_LENS) &&
+ (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) != ITEM_LENS) &&
+ (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) != ITEM_LENS)) ||
+ !globalCtx->actorCtx.lensActive) {
+ globalCtx->actorCtx.lensActive = false;
+ play_sound(NA_SE_SY_GLASSMODE_OFF);
+ gSaveContext.magicState = MAGIC_STATE_IDLE;
+ sMagicBarOutlinePrimRed = sMagicBarOutlinePrimGreen = sMagicBarOutlinePrimBlue = 255;
+ break;
+ }
- interfaceCtx->magicConsumptionTimer--;
- if (interfaceCtx->magicConsumptionTimer == 0) {
- if (!(gSaveContext.save.weekEventReg[14] & 8)) {
- gSaveContext.save.playerData.magic--;
- }
- interfaceCtx->magicConsumptionTimer = 80;
+ interfaceCtx->magicConsumptionTimer--;
+ if (interfaceCtx->magicConsumptionTimer == 0) {
+ if (!(gSaveContext.save.weekEventReg[14] & 8)) {
+ gSaveContext.save.playerData.magic--;
}
+ interfaceCtx->magicConsumptionTimer = 80;
}
}
if (!(gSaveContext.save.weekEventReg[14] & 8)) {
- Magic_UpdateBarBorderColor();
+ Magic_UpdateMeterBorderColor();
}
break;
- case MAGIC_BAR_ACTION_CONSUME_GORON_ZORA_SETUP:
+ case MAGIC_STATE_CONSUME_GORON_ZORA_SETUP:
if (!(gSaveContext.save.weekEventReg[14] & 8)) {
gSaveContext.save.playerData.magic -= 2;
}
if (gSaveContext.save.playerData.magic <= 0) {
gSaveContext.save.playerData.magic = 0;
}
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_CONSUME_GORON_ZORA;
+ gSaveContext.magicState = MAGIC_STATE_CONSUME_GORON_ZORA;
// fallthrough
-
- case MAGIC_BAR_ACTION_CONSUME_GORON_ZORA:
+ case MAGIC_STATE_CONSUME_GORON_ZORA:
if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && (msgCtx->msgMode == 0) &&
(globalCtx->gameOverCtx.state == 0) && (globalCtx->sceneLoadFlag == 0) &&
(globalCtx->transitionMode == 0)) {
@@ -3501,11 +3498,11 @@ void Magic_UpdateBar(GlobalContext* globalCtx) {
}
}
if (!(gSaveContext.save.weekEventReg[14] & 8)) {
- Magic_UpdateBarBorderColor();
+ Magic_UpdateMeterBorderColor();
}
break;
- case MAGIC_BAR_ACTION_CONSUME_GIANTS_MASK:
+ case MAGIC_STATE_CONSUME_GIANTS_MASK:
if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0) && (msgCtx->msgMode == 0) &&
(globalCtx->gameOverCtx.state == 0) && (globalCtx->sceneLoadFlag == 0) &&
(globalCtx->transitionMode == 0)) {
@@ -3523,17 +3520,17 @@ void Magic_UpdateBar(GlobalContext* globalCtx) {
}
}
if (!(gSaveContext.save.weekEventReg[14] & 8)) {
- Magic_UpdateBarBorderColor();
+ Magic_UpdateMeterBorderColor();
}
break;
default:
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_IDLE;
+ gSaveContext.magicState = MAGIC_STATE_IDLE;
break;
}
}
-void Magic_DrawBar(GlobalContext* globalCtx) {
+void Magic_DrawMeter(GlobalContext* globalCtx) {
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
s16 magicBarY;
@@ -3550,16 +3547,16 @@ void Magic_DrawBar(GlobalContext* globalCtx) {
gDPSetEnvColor(OVERLAY_DISP++, 100, 50, 50, 255);
- OVERLAY_DISP = func_8010CFBC(OVERLAY_DISP, gMagicBarEndTex, 8, 16, 18, magicBarY, 8, 16, 1 << 10, 1 << 10,
+ OVERLAY_DISP = func_8010CFBC(OVERLAY_DISP, gMagicMeterEndTex, 8, 16, 18, magicBarY, 8, 16, 1 << 10, 1 << 10,
sMagicBarOutlinePrimRed, sMagicBarOutlinePrimGreen, sMagicBarOutlinePrimBlue,
interfaceCtx->magicAlpha);
OVERLAY_DISP =
- func_8010CFBC(OVERLAY_DISP, gMagicBarMidTex, 24, 16, 26, magicBarY,
- ((void)0, gSaveContext.magicCapacityDrawn), 16, 1 << 10, 1 << 10, sMagicBarOutlinePrimRed,
- sMagicBarOutlinePrimGreen, sMagicBarOutlinePrimBlue, interfaceCtx->magicAlpha);
+ func_8010CFBC(OVERLAY_DISP, gMagicMeterMidTex, 24, 16, 26, magicBarY, ((void)0, gSaveContext.magicCapacity),
+ 16, 1 << 10, 1 << 10, sMagicBarOutlinePrimRed, sMagicBarOutlinePrimGreen,
+ sMagicBarOutlinePrimBlue, interfaceCtx->magicAlpha);
OVERLAY_DISP =
- func_8010D480(OVERLAY_DISP, gMagicBarEndTex, 8, 16, ((void)0, gSaveContext.magicCapacityDrawn) + 26,
- magicBarY, 8, 16, 1 << 10, 1 << 10, sMagicBarOutlinePrimRed, sMagicBarOutlinePrimGreen,
+ func_8010D480(OVERLAY_DISP, gMagicMeterEndTex, 8, 16, ((void)0, gSaveContext.magicCapacity) + 26, magicBarY,
+ 8, 16, 1 << 10, 1 << 10, sMagicBarOutlinePrimRed, sMagicBarOutlinePrimGreen,
sMagicBarOutlinePrimBlue, interfaceCtx->magicAlpha, 3, 0x100);
gDPPipeSync(OVERLAY_DISP++);
@@ -3567,16 +3564,16 @@ void Magic_DrawBar(GlobalContext* globalCtx) {
ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, PRIMITIVE);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
- if (gSaveContext.magicBarAction == MAGIC_BAR_ACTION_BORDER_CHANGE_2) {
- // Yellow part of the bar indicating the amount of magic to be subtracted
+ if (gSaveContext.magicState == MAGIC_STATE_METER_FLASH_2) {
+ // Yellow part of the meter indicating the amount of magic to be subtracted
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 250, 250, 0, interfaceCtx->magicAlpha);
- gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicBarFillTex, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
+ gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicMeterFillTex, G_IM_FMT_I, 16, 16, 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);
gSPTextureRectangle(OVERLAY_DISP++, 104, (magicBarY + 3) << 2,
(((void)0, gSaveContext.save.playerData.magic) + 26) << 2, (magicBarY + 10) << 2,
G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
- // Fill the rest of the bar with the normal magic color
+ // Fill the rest of the meter with the normal magic color
gDPPipeSync(OVERLAY_DISP++);
if (gSaveContext.save.weekEventReg[14] & 8) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 200, interfaceCtx->magicAlpha);
@@ -3589,14 +3586,14 @@ void Magic_DrawBar(GlobalContext* globalCtx) {
((((void)0, gSaveContext.save.playerData.magic) - ((void)0, gSaveContext.magicToConsume)) + 26) << 2,
(magicBarY + 10) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
} else {
- // Fill the whole bar with the normal magic color
+ // Fill the whole meter with the normal magic color
if (gSaveContext.save.weekEventReg[14] & 8) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 200, interfaceCtx->magicAlpha);
} else {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 200, 0, interfaceCtx->magicAlpha);
}
- gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicBarFillTex, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
+ gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicMeterFillTex, G_IM_FMT_I, 16, 16, 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);
gSPTextureRectangle(OVERLAY_DISP++, 104, (magicBarY + 3) << 2,
(((void)0, gSaveContext.save.playerData.magic) + 26) << 2, (magicBarY + 10) << 2,
@@ -6031,7 +6028,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
1 << 10);
}
- Magic_DrawBar(globalCtx);
+ Magic_DrawMeter(globalCtx);
func_8010A54C(globalCtx);
if ((SREG(94) != 2) && (SREG(94) != 3)) {
@@ -6523,7 +6520,7 @@ void Interface_Update(GlobalContext* globalCtx) {
gSaveContext.save.playerData.isMagicAcquired = true;
}
gSaveContext.save.playerData.isDoubleMagicAcquired = true;
- gSaveContext.save.playerData.magic = MAGIC_FULL_BAR;
+ gSaveContext.save.playerData.magic = MAGIC_DOUBLE_METER;
gSaveContext.save.playerData.magicLevel = 0;
XREG(4) = 0;
} else if (XREG(4) == -1) {
@@ -6531,23 +6528,21 @@ void Interface_Update(GlobalContext* globalCtx) {
gSaveContext.save.playerData.isMagicAcquired = true;
}
gSaveContext.save.playerData.isDoubleMagicAcquired = false;
- gSaveContext.save.playerData.magic = MAGIC_HALF_BAR;
+ gSaveContext.save.playerData.magic = MAGIC_NORMAL_METER;
gSaveContext.save.playerData.magicLevel = 0;
XREG(4) = 0;
}
- if (gSaveContext.save.playerData.isMagicAcquired) {
- if (gSaveContext.save.playerData.magicLevel == 0) {
- gSaveContext.save.playerData.magicLevel = gSaveContext.save.playerData.isDoubleMagicAcquired + 1;
- gSaveContext.magicCapacity = gSaveContext.save.playerData.magic;
- gSaveContext.save.playerData.magic = 0;
- gSaveContext.magicBarAction = MAGIC_BAR_ACTION_GROW_WIDE;
- BUTTON_ITEM_EQUIP(PLAYER_FORM_DEKU, EQUIP_SLOT_B) = ITEM_NUT;
- }
+ if ((gSaveContext.save.playerData.isMagicAcquired) && (gSaveContext.save.playerData.magicLevel == 0)) {
+ gSaveContext.save.playerData.magicLevel = gSaveContext.save.playerData.isDoubleMagicAcquired + 1;
+ gSaveContext.magicFillTarget = gSaveContext.save.playerData.magic;
+ gSaveContext.save.playerData.magic = 0;
+ gSaveContext.magicState = MAGIC_STATE_STEP_CAPACITY;
+ BUTTON_ITEM_EQUIP(PLAYER_FORM_DEKU, EQUIP_SLOT_B) = ITEM_NUT;
}
- Magic_UpdateBar(globalCtx);
- Magic_UpdateAdd();
+ Magic_Update(globalCtx);
+ Magic_UpdateAddRequest();
}
if (gSaveContext.unk_3DD0[5] == 0) {
diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c
index 8ba19a473..335e865e6 100644
--- a/src/code/z_sram_NES.c
+++ b/src/code/z_sram_NES.c
@@ -576,7 +576,7 @@ SavePlayerData sSaveDefaultPlayerData = {
0x30, // healthCapacity
0x30, // health
0, // magicLevel
- MAGIC_HALF_BAR, // magic
+ MAGIC_NORMAL_METER, // magic
0, // rupees
0, // swordHealth
0, // tatlTimer
@@ -674,7 +674,7 @@ SavePlayerData sSaveDebugPlayerData = {
0x80, // healthCapacity
0x80, // health
0, // magicLevel
- MAGIC_HALF_BAR, // magic
+ MAGIC_NORMAL_METER, // magic
50, // rupees
100, // swordHealth
0, // tatlTimer