copy homebuttonLib from oot-vc (#2960)

* initial copy of hbm from sdk_2009-12-11

* some more nw4hbm cleanup

* nw4hbm db mostly done

* nw4hbm snd copied from oot-vc

* nw4hbm ut copied

* nw4hbm lyt copied

* nw4hbm copied, mostly matching usa 1.0

* setup nw4hbm debug define

* fix HBMDataInfo struct

* add rvl sdk card lib
This commit is contained in:
TakaRikka
2025-12-16 06:55:07 -08:00
committed by GitHub
parent 57188e25f5
commit 08f0789ae7
235 changed files with 32438 additions and 320 deletions
@@ -0,0 +1,68 @@
#include "HBMFrameController.h"
namespace homebutton {
void FrameController::init(int anm_type, f32 max_frame, f32 min_frame, f32 delta) {
mAnmType = anm_type;
mMaxFrame = max_frame;
mMinFrame = min_frame;
mDelta = delta;
mState = ANIM_STATE_STOP;
mbAlternateBack = false;
initFrame();
}
void FrameController::initFrame() {
mFrame = mAnmType == ANIM_TYPE_BACKWARD ? mMaxFrame : mMinFrame;
}
void FrameController::calc() {
if (mState != ANIM_STATE_PLAY) {
return;
}
switch (mAnmType) {
case ANIM_TYPE_FORWARD:
if ((mFrame += mDelta) >= getLastFrame()) {
mFrame = getLastFrame();
stop();
}
break;
case ANIM_TYPE_BACKWARD:
if ((mFrame -= mDelta) <= mMinFrame) {
mFrame = mMinFrame;
stop();
}
break;
case ANIM_TYPE_LOOP:
if ((mFrame += mDelta) >= mMaxFrame) {
mFrame -= mMaxFrame - mMinFrame;
}
break;
case ANIM_TYPE_ALTERNATE:
if (!mbAlternateBack) {
if ((mFrame += mDelta) >= getLastFrame()) {
mFrame = getLastFrame();
mbAlternateBack = true;
}
} else {
if ((mFrame -= mDelta) <= mMinFrame) {
mFrame = mMinFrame;
mbAlternateBack = false;
}
}
break;
}
}
} // namespace homebutton