mirror of
https://github.com/zeldaret/ss
synced 2026-07-28 07:08:38 -04:00
d_lyt_meter_drink with regswaps in one function (#83)
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
#include "d/lyt/meter/d_lyt_meter_drink.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
|
||||
STATE_DEFINE(dLytMeterDrinkParts_c, Invisible);
|
||||
STATE_DEFINE(dLytMeterDrinkParts_c, In);
|
||||
STATE_DEFINE(dLytMeterDrinkParts_c, Visible);
|
||||
@@ -10,3 +16,539 @@ STATE_DEFINE(dLytMeterDrink_c, In);
|
||||
STATE_DEFINE(dLytMeterDrink_c, Wait);
|
||||
STATE_DEFINE(dLytMeterDrink_c, Move);
|
||||
STATE_DEFINE(dLytMeterDrink_c, Out);
|
||||
|
||||
void dLytMeterDrinkParts_c::initializeState_Invisible() {
|
||||
if (field_0x51) {
|
||||
if (mAnmGroups[2]->isFlag2()) {
|
||||
mAnmGroups[2]->setAnimEnable(false);
|
||||
}
|
||||
if (!mAnmGroups[0]->isFlag2()) {
|
||||
mAnmGroups[0]->setAnimEnable(true);
|
||||
}
|
||||
mAnmGroups[0]->setFrame(0.0f);
|
||||
field_0x48 = 6;
|
||||
mDrinkType = TYPE_NONE;
|
||||
field_0x51 = 0;
|
||||
}
|
||||
}
|
||||
void dLytMeterDrinkParts_c::executeState_Invisible() {
|
||||
if (mAnmGroups[0]->isFlag2()) {
|
||||
mAnmGroups[0]->setAnimEnable(false);
|
||||
}
|
||||
if (field_0x50) {
|
||||
mStateMgr.changeState(StateID_In);
|
||||
}
|
||||
}
|
||||
void dLytMeterDrinkParts_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMeterDrinkParts_c::initializeState_In() {
|
||||
if (field_0x51) {
|
||||
if (mAnmGroups[2]->isFlag2()) {
|
||||
mAnmGroups[2]->setAnimEnable(false);
|
||||
}
|
||||
mAnmGroups[0]->setToEnd();
|
||||
field_0x51 = 0;
|
||||
} else {
|
||||
mAnmGroups[0]->setFrame(0.0f);
|
||||
}
|
||||
mAnmGroups[0]->setAnimEnable(true);
|
||||
}
|
||||
void dLytMeterDrinkParts_c::executeState_In() {
|
||||
if (mAnmGroups[0]->isEndReached()) {
|
||||
mAnmGroups[0]->setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Visible);
|
||||
}
|
||||
|
||||
if (mAnmGroups[0]->isFlag2()) {
|
||||
mAnmGroups[0]->play();
|
||||
}
|
||||
}
|
||||
void dLytMeterDrinkParts_c::finalizeState_In() {}
|
||||
|
||||
void dLytMeterDrinkParts_c::initializeState_Visible() {
|
||||
if (field_0x51) {
|
||||
if (mAnmGroups[2]->isFlag2()) {
|
||||
mAnmGroups[2]->setAnimEnable(false);
|
||||
}
|
||||
mAnmGroups[0]->setAnimEnable(true);
|
||||
mAnmGroups[0]->setToEnd();
|
||||
field_0x51 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void dLytMeterDrinkParts_c::executeState_Visible() {
|
||||
if (mAnmGroups[0]->isFlag2()) {
|
||||
mAnmGroups[0]->setAnimEnable(false);
|
||||
}
|
||||
|
||||
if (field_0x48 != getDrinkFrame(mDrinkType)) {
|
||||
mStateMgr.changeState(StateID_Out);
|
||||
}
|
||||
}
|
||||
void dLytMeterDrinkParts_c::finalizeState_Visible() {}
|
||||
|
||||
void dLytMeterDrinkParts_c::initializeState_Out() {
|
||||
if (field_0x51) {
|
||||
if (mAnmGroups[0]->isFlag2()) {
|
||||
mAnmGroups[0]->setAnimEnable(false);
|
||||
}
|
||||
mAnmGroups[2]->setToEnd();
|
||||
field_0x51 = 0;
|
||||
} else {
|
||||
mAnmGroups[2]->setFrame(0.0f);
|
||||
}
|
||||
|
||||
mAnmGroups[2]->setAnimEnable(true);
|
||||
}
|
||||
void dLytMeterDrinkParts_c::executeState_Out() {
|
||||
if (mAnmGroups[2]->isEndReached()) {
|
||||
mAnmGroups[2]->setAnimEnable(false);
|
||||
field_0x48 = 6;
|
||||
mDrinkType = TYPE_NONE;
|
||||
field_0x50 = 0;
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
if (mAnmGroups[2]->isFlag2()) {
|
||||
mAnmGroups[2]->play();
|
||||
}
|
||||
}
|
||||
void dLytMeterDrinkParts_c::finalizeState_Out() {}
|
||||
|
||||
void dLytMeterDrinkParts_c::init() {
|
||||
field_0x50 = 0;
|
||||
field_0x51 = 0;
|
||||
field_0x48 = 6;
|
||||
mDrinkType = TYPE_NONE;
|
||||
mAnmGroups[1]->setAnimEnable(true);
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
|
||||
void dLytMeterDrinkParts_c::execute() {
|
||||
mStateMgr.executeState();
|
||||
if (field_0x48 != 6) {
|
||||
mAnmGroups[1]->setFrame(field_0x48);
|
||||
}
|
||||
}
|
||||
|
||||
dLytMeterDrinkParts_c::DrinkFrame_e dLytMeterDrinkParts_c::getDrinkFrame(dLytMeterDrinkParts_c::DrinkType_e type
|
||||
) const {
|
||||
if (type == TYPE_STAMINA) {
|
||||
if (FileManager::sInstance->getStaminaPotionPlusTimer()) {
|
||||
return FRAME_STAMINA_PLUS;
|
||||
}
|
||||
if (FileManager::sInstance->getStaminaPotionTimer()) {
|
||||
return FRAME_STAMINA;
|
||||
}
|
||||
}
|
||||
if (type == TYPE_AIR) {
|
||||
if (FileManager::sInstance->getAirPotionPlusTimer()) {
|
||||
return FRAME_AIR_PLUS;
|
||||
}
|
||||
if (FileManager::sInstance->getAirPotionTimer()) {
|
||||
return FRAME_AIR;
|
||||
}
|
||||
}
|
||||
if (type == TYPE_GUARDIAN) {
|
||||
if (FileManager::sInstance->getGuardianPotionPlusTimer()) {
|
||||
return FRAME_GUARDIAN_PLUS;
|
||||
}
|
||||
if (FileManager::sInstance->getGuardianPotionTimer()) {
|
||||
return FRAME_GUARDIAN;
|
||||
}
|
||||
}
|
||||
return FRAME_NONE;
|
||||
}
|
||||
|
||||
bool dLytMeterDrinkParts_c::isDrinkAboutToExpire() const {
|
||||
if (field_0x48 == FRAME_STAMINA_PLUS) {
|
||||
return FileManager::sInstance->getStaminaPotionPlusTimer() < 600;
|
||||
} else if (field_0x48 == FRAME_STAMINA) {
|
||||
return FileManager::sInstance->getStaminaPotionTimer() < 600;
|
||||
} else if (field_0x48 == FRAME_AIR_PLUS) {
|
||||
return FileManager::sInstance->getAirPotionPlusTimer() < 600;
|
||||
} else if (field_0x48 == FRAME_AIR) {
|
||||
return FileManager::sInstance->getAirPotionTimer() < 600;
|
||||
} else if (field_0x48 == FRAME_GUARDIAN_PLUS) {
|
||||
return FileManager::sInstance->getGuardianPotionPlusTimer() < 600;
|
||||
} else if (field_0x48 == FRAME_GUARDIAN) {
|
||||
return FileManager::sInstance->getGuardianPotionTimer() < 600;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void dLytMeterDrinkParts_c::copy(dLytMeterDrinkParts_c *other, dLytMeterDrinkParts_c *third) {
|
||||
field_0x50 = other->field_0x50;
|
||||
field_0x51 = 1;
|
||||
field_0x48 = other->field_0x48;
|
||||
mDrinkType = other->mDrinkType;
|
||||
mStateMgr.changeState(*other->mStateMgr.getStateID());
|
||||
if (third == nullptr) {
|
||||
other->field_0x50 = 0;
|
||||
other->field_0x51 = 1;
|
||||
other->field_0x48 = FRAME_NONE;
|
||||
other->mDrinkType = TYPE_NONE;
|
||||
other->mStateMgr.changeState(StateID_Invisible);
|
||||
} else {
|
||||
other->field_0x50 = third->field_0x50;
|
||||
other->field_0x51 = 1;
|
||||
other->field_0x48 = third->field_0x48;
|
||||
other->mDrinkType = third->mDrinkType;
|
||||
other->mStateMgr.changeState(*third->mStateMgr.getStateID());
|
||||
|
||||
third->field_0x50 = 0;
|
||||
third->field_0x51 = 1;
|
||||
third->field_0x48 = FRAME_NONE;
|
||||
third->mDrinkType = TYPE_NONE;
|
||||
third->mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
}
|
||||
|
||||
static const char *sPanes[] = {
|
||||
"N_drink_00",
|
||||
"N_drink_01",
|
||||
"N_drink_02",
|
||||
};
|
||||
|
||||
static const d2d::LytBrlanMapping brlanMap[] = {
|
||||
{ "drink_00_demoIn.brlan", "G_demoInOut_00"},
|
||||
{ "drink_00_in.brlan", "G_inOut_00"},
|
||||
{ "drink_00_in.brlan", "G_inOut_01"},
|
||||
{ "drink_00_in.brlan", "G_inOut_02"},
|
||||
{ "drink_00_drink.brlan", "G_drink_00"},
|
||||
{ "drink_00_drink.brlan", "G_drink_01"},
|
||||
{ "drink_00_drink.brlan", "G_drink_02"},
|
||||
{ "drink_00_loop.brlan", "G_loop_00"},
|
||||
{ "drink_00_loop.brlan", "G_loop_01"},
|
||||
{ "drink_00_loop.brlan", "G_loop_02"},
|
||||
{"drink_00_caution.brlan", "G_caution_00"},
|
||||
{"drink_00_caution.brlan", "G_caution_01"},
|
||||
{"drink_00_caution.brlan", "G_caution_02"},
|
||||
{ "drink_00_move.brlan", "G_move_00"},
|
||||
{ "drink_00_move.brlan", "G_move_01"},
|
||||
{ "drink_00_move.brlan", "G_move_02"},
|
||||
{ "drink_00_out.brlan", "G_inOut_00"},
|
||||
{ "drink_00_out.brlan", "G_inOut_01"},
|
||||
{ "drink_00_out.brlan", "G_inOut_02"},
|
||||
{"drink_00_demoOut.brlan", "G_demoInOut_00"},
|
||||
};
|
||||
|
||||
#define LYT_METER_DRINK_OFFSET_ANIM_LOOP 7
|
||||
#define LYT_METER_DRINK_OFFSET_ANIM_CAUTION 10
|
||||
#define LYT_METER_DRINK_OFFSET_ANIM_MOVE 13
|
||||
|
||||
#define LYT_METER_DRINK_ANIM_DEMO_OUT 19
|
||||
|
||||
void dLytMeterDrink_c::initializeState_Invisible() {}
|
||||
void dLytMeterDrink_c::executeState_Invisible() {
|
||||
if (field_0x6F4) {
|
||||
mStateMgr.changeState(StateID_In);
|
||||
}
|
||||
}
|
||||
void dLytMeterDrink_c::finalizeState_Invisible() {}
|
||||
|
||||
void dLytMeterDrink_c::initializeState_In() {
|
||||
mAnmGroups[0].setAnimEnable(true);
|
||||
mAnmGroups[0].setFrame(0.0f);
|
||||
}
|
||||
void dLytMeterDrink_c::executeState_In() {
|
||||
if (mAnmGroups[0].isEndReached()) {
|
||||
mAnmGroups[0].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
if (mAnmGroups[0].isFlag2()) {
|
||||
mAnmGroups[0].play();
|
||||
}
|
||||
}
|
||||
void dLytMeterDrink_c::finalizeState_In() {}
|
||||
|
||||
void dLytMeterDrink_c::initializeState_Wait() {
|
||||
field_0x6F0 = -1;
|
||||
}
|
||||
void dLytMeterDrink_c::executeState_Wait() {
|
||||
int i5 = -1;
|
||||
int i7 = -1;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
int a = getPartForDrinkType((dLytMeterDrinkParts_c::DrinkType_e)i);
|
||||
if (fn_800E5C40(i) != 0 && a == 3) {
|
||||
i5 = i;
|
||||
}
|
||||
if (field_0x6F5[i] == 1 && mParts[i].field_0x50 == 0) {
|
||||
i7 = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (i5 >= 0) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mParts[i].field_0x50 == 0 && i7 != i) {
|
||||
mParts[i].field_0x50 = 1;
|
||||
mParts[i].field_0x51 = 0;
|
||||
mParts[i].field_0x48 = mParts[i].getDrinkFrame((dLytMeterDrinkParts_c::DrinkType_e)i5);
|
||||
mParts[i].mDrinkType = (dLytMeterDrinkParts_c::DrinkType_e)i5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (i7) {
|
||||
case 0:
|
||||
if (mParts[1].field_0x50 != 0) {
|
||||
field_0x6F0 = i7;
|
||||
mStateMgr.changeState(StateID_Move);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (mParts[2].field_0x50 != 0) {
|
||||
field_0x6F0 = i7;
|
||||
mStateMgr.changeState(StateID_Move);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (field_0x6F4 == 0) {
|
||||
mStateMgr.changeState(StateID_Out);
|
||||
}
|
||||
}
|
||||
void dLytMeterDrink_c::finalizeState_Wait() {}
|
||||
|
||||
void dLytMeterDrink_c::initializeState_Move() {
|
||||
for (int i = field_0x6F0; i < 3; i++) {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].setAnimEnable(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].setFrame(0.0f);
|
||||
}
|
||||
}
|
||||
void dLytMeterDrink_c::executeState_Move() {
|
||||
bool needsCopy = false;
|
||||
for (int i = field_0x6F0; i < 3; i++) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].isEndReached()) {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].setFrame(0.0f);
|
||||
needsCopy = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (needsCopy) {
|
||||
if (field_0x6F0 == 0) {
|
||||
if (mParts[1].field_0x50) {
|
||||
mParts[0].copy(&mParts[1], &mParts[2]);
|
||||
}
|
||||
} else if (field_0x6F0 == 1 && mParts[2].field_0x50) {
|
||||
mParts[1].copy(&mParts[2], nullptr);
|
||||
}
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].isFlag2()) {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].setAnimEnable(false);
|
||||
}
|
||||
}
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].isFlag2()) {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_MOVE + i].play();
|
||||
}
|
||||
}
|
||||
}
|
||||
void dLytMeterDrink_c::finalizeState_Move() {}
|
||||
|
||||
void dLytMeterDrink_c::initializeState_Out() {
|
||||
mAnmGroups[LYT_METER_DRINK_ANIM_DEMO_OUT].setAnimEnable(true);
|
||||
mAnmGroups[LYT_METER_DRINK_ANIM_DEMO_OUT].setFrame(0.0f);
|
||||
}
|
||||
void dLytMeterDrink_c::executeState_Out() {
|
||||
if (mAnmGroups[LYT_METER_DRINK_ANIM_DEMO_OUT].isEndReached()) {
|
||||
mAnmGroups[LYT_METER_DRINK_ANIM_DEMO_OUT].setAnimEnable(false);
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
}
|
||||
if (mAnmGroups[LYT_METER_DRINK_ANIM_DEMO_OUT].isFlag2()) {
|
||||
mAnmGroups[LYT_METER_DRINK_ANIM_DEMO_OUT].play();
|
||||
}
|
||||
}
|
||||
void dLytMeterDrink_c::finalizeState_Out() {}
|
||||
|
||||
bool dLytMeterDrink_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("drink_00.brlyt", nullptr);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mpPartPanes[i] = mLyt.findPane(sPanes[i]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
mAnmGroups[i].init(brlanMap[i].mFile, resAcc, mLyt.getLayout(), brlanMap[i].mName);
|
||||
mAnmGroups[i].setDirection(false);
|
||||
mAnmGroups[i].setAnimEnable(false);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mParts[i].mAnmGroups[0] = &mAnmGroups[1 + i];
|
||||
mParts[i].mAnmGroups[1] = &mAnmGroups[4 + i];
|
||||
mParts[i].mAnmGroups[2] = &mAnmGroups[16 + i];
|
||||
mParts[i].init();
|
||||
field_0x6F5[i] = mParts[i].field_0x50;
|
||||
}
|
||||
|
||||
mpPane = mLyt.getLayout()->GetRootPane();
|
||||
|
||||
field_0x6F0 = -1;
|
||||
field_0x6F4 = 0;
|
||||
field_0x6E0.z = 0.0f;
|
||||
field_0x6E0.y = 0.0f;
|
||||
field_0x6E0.x = 0.0f;
|
||||
mpPane->SetTranslate(field_0x6E0);
|
||||
|
||||
mAnmGroups[0].setFrame(0.0f);
|
||||
mAnmGroups[0].setAnimEnable(true);
|
||||
mLyt.calc();
|
||||
mAnmGroups[0].setAnimEnable(false);
|
||||
|
||||
mStateMgr.changeState(StateID_Invisible);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterDrink_c::execute() {
|
||||
mStateMgr.executeState();
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x6F5[i] = mParts[i].field_0x50;
|
||||
mParts[i].execute();
|
||||
}
|
||||
|
||||
executeInternal();
|
||||
mpPane->SetTranslate(field_0x6E0);
|
||||
mLyt.calc();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterDrink_c::remove() {
|
||||
for (int i = 0; i < 20; i++) {
|
||||
mAnmGroups[i].unbind();
|
||||
mAnmGroups[i].afterUnbind();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool dLytMeterDrink_c::draw() {
|
||||
mLyt.addToDrawList();
|
||||
return true;
|
||||
}
|
||||
|
||||
int dLytMeterDrink_c::getPartForDrinkType(dLytMeterDrinkParts_c::DrinkType_e ty) const {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (ty == mParts[i].mDrinkType) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
|
||||
bool dLytMeterDrink_c::fn_800E5C40(int i) {
|
||||
if ((i == 0 || i == 3) && (FileManager::sInstance->getStaminaPotionTimer() != 0 ||
|
||||
FileManager::sInstance->getStaminaPotionPlusTimer() != 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((i == 1 || i == 3) &&
|
||||
(FileManager::sInstance->getAirPotionTimer() != 0 || FileManager::sInstance->getAirPotionPlusTimer() != 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((i == 2 || i == 3) && (FileManager::sInstance->getGuardianPotionTimer() != 0 ||
|
||||
FileManager::sInstance->getGuardianPotionPlusTimer() != 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void dLytMeterDrink_c::executeInternal() {
|
||||
bool bHasNotSoonExpiringDrink = false;
|
||||
bool bHasSoonExpiringDrink = false;
|
||||
bool drinksLast[3];
|
||||
|
||||
f32 frameLoop = 0.0f;
|
||||
f32 frameCaution = 0.0f;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (!mParts[i].isDrinkAboutToExpire()) {
|
||||
drinksLast[i] = true;
|
||||
bHasNotSoonExpiringDrink = true;
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].isFlag2()) {
|
||||
frameLoop = mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].getNextFrame();
|
||||
}
|
||||
} else {
|
||||
drinksLast[i] = false;
|
||||
bHasSoonExpiringDrink = true;
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].isFlag2()) {
|
||||
frameCaution = mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].getNextFrame();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bHasNotSoonExpiringDrink) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (drinksLast[i] == true) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].isFlag2()) {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].play();
|
||||
} else {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].setAnimEnable(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].setFrame(frameLoop);
|
||||
}
|
||||
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].isFlag2()) {
|
||||
bool oldVisible = mpPartPanes[i]->IsVisible();
|
||||
mpPartPanes[i]->SetVisible(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].setFrame(0.0f);
|
||||
mLyt.calc();
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].setAnimEnable(false);
|
||||
mpPartPanes[i]->SetVisible(oldVisible);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].isFlag2()) {
|
||||
bool oldVisible = mpPartPanes[i]->IsVisible();
|
||||
mpPartPanes[i]->SetVisible(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].setFrame(0.0f);
|
||||
mLyt.calc();
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].setAnimEnable(false);
|
||||
mpPartPanes[i]->SetVisible(oldVisible);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bHasSoonExpiringDrink) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (drinksLast[i] == false) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].isFlag2()) {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].play();
|
||||
} else {
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].setAnimEnable(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].setFrame(frameCaution);
|
||||
}
|
||||
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].isFlag2()) {
|
||||
bool oldVisible = mpPartPanes[i]->IsVisible();
|
||||
mpPartPanes[i]->SetVisible(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].setFrame(0.0f);
|
||||
mLyt.calc();
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_LOOP + i].setAnimEnable(false);
|
||||
mpPartPanes[i]->SetVisible(oldVisible);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].isFlag2()) {
|
||||
bool oldVisible = mpPartPanes[i]->IsVisible();
|
||||
mpPartPanes[i]->SetVisible(true);
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].setFrame(0.0f);
|
||||
mLyt.calc();
|
||||
mAnmGroups[LYT_METER_DRINK_OFFSET_ANIM_CAUTION + i].setAnimEnable(false);
|
||||
mpPartPanes[i]->SetVisible(oldVisible);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,18 +171,18 @@ u16 *FileManager::getStoryFlagsMut() {
|
||||
/* 8000B670 */ void FileManager::setShieldPouchSlot(u8 slot) {}
|
||||
/* 8000B6A0 */ u8 FileManager::getShieldPouchSlot() {}
|
||||
|
||||
/* 8000B6F0 */ void FileManager::setAirPotionTimer(s16 time) {}
|
||||
/* 8000B720 */ s16 FileManager::getAirPotionTimer() {}
|
||||
/* 8000B770 */ void FileManager::setAirPotionPlusTimer(s16 time) {}
|
||||
/* 8000B7A0 */ s16 FileManager::getAirPotionPlusTimer() {}
|
||||
/* 8000B7F0 */ void FileManager::setStaminaPotionTimer(s16 time) {}
|
||||
/* 8000B820 */ s16 FileManager::getStaminaPotionTimer() {}
|
||||
/* 8000B870 */ void FileManager::setStaminaPotionPlusTimer(s16 time) {}
|
||||
/* 8000B8A0 */ s16 FileManager::getStaminaPotionPlusTimer() {}
|
||||
/* 8000B8F0 */ void FileManager::setGuardianPotionTimer(s16 time) {}
|
||||
/* 8000B920 */ s16 FileManager::getGuardianPotionTimer() {}
|
||||
/* 8000B970 */ void FileManager::setGuardianPotionPlusTimer(s16 time) {}
|
||||
/* 8000B9A0 */ s16 FileManager::getGuardianPotionPlusTimer() {}
|
||||
/* 8000B6F0 */ void FileManager::setAirPotionTimer(u16 time) {}
|
||||
/* 8000B720 */ u16 FileManager::getAirPotionTimer() {}
|
||||
/* 8000B770 */ void FileManager::setAirPotionPlusTimer(u16 time) {}
|
||||
/* 8000B7A0 */ u16 FileManager::getAirPotionPlusTimer() {}
|
||||
/* 8000B7F0 */ void FileManager::setStaminaPotionTimer(u16 time) {}
|
||||
/* 8000B820 */ u16 FileManager::getStaminaPotionTimer() {}
|
||||
/* 8000B870 */ void FileManager::setStaminaPotionPlusTimer(u16 time) {}
|
||||
/* 8000B8A0 */ u16 FileManager::getStaminaPotionPlusTimer() {}
|
||||
/* 8000B8F0 */ void FileManager::setGuardianPotionTimer(u16 time) {}
|
||||
/* 8000B920 */ u16 FileManager::getGuardianPotionTimer() {}
|
||||
/* 8000B970 */ void FileManager::setGuardianPotionPlusTimer(u16 time) {}
|
||||
/* 8000B9A0 */ u16 FileManager::getGuardianPotionPlusTimer() {}
|
||||
|
||||
/* 8000B9F0 */ void FileManager::setDowsingSlotIdx(u8 idx) {}
|
||||
/* 8000BA20 */ u8 FileManager::getDowsingSlotIdx() {}
|
||||
|
||||
Reference in New Issue
Block a user