MarioMeter at 100%

This commit is contained in:
Super Hackio 2024-08-14 16:54:37 -07:00
parent fbb9602a91
commit 135a52ec8f
10 changed files with 248 additions and 27 deletions

View File

@ -1462,17 +1462,17 @@ execute__Q222@unnamed@Manual2P_cpp@27Manual2PNrvScrollRightAfterCFP5Spine,Manual
execute__Q222@unnamed@Manual2P_cpp@22Manual2PNrvScrollRightCFP5Spine,Manual2P.o,Screen.a,false
execute__Q222@unnamed@Manual2P_cpp@15Manual2PNrvWaitCFP5Spine,Manual2P.o,Screen.a,false
execute__Q222@unnamed@Manual2P_cpp@17Manual2PNrvAppearCFP5Spine,Manual2P.o,Screen.a,false
__ct__10MarioMeterFPCc,MarioMeter.o,Screen.a,false
initLifeCount__10MarioMeterFl,MarioMeter.o,Screen.a,false
setLifeCount__10MarioMeterFl,MarioMeter.o,Screen.a,false
powerUp__10MarioMeterFv,MarioMeter.o,Screen.a,false
requestForceAppearHPMeter__10MarioMeterFv,MarioMeter.o,Screen.a,false
requestPlayerMoving__10MarioMeterFv,MarioMeter.o,Screen.a,false
requestPlayerStopped__10MarioMeterFv,MarioMeter.o,Screen.a,false
activate__10MarioMeterFv,MarioMeter.o,Screen.a,false
deactivate__10MarioMeterFv,MarioMeter.o,Screen.a,false
__dt__10MarioMeterFv,MarioMeter.o,Screen.a,false
init__10MarioMeterFRC12JMapInfoIter,MarioMeter.o,Screen.a,false
__ct__10MarioMeterFPCc,MarioMeter.o,Screen.a,true
initLifeCount__10MarioMeterFl,MarioMeter.o,Screen.a,true
setLifeCount__10MarioMeterFl,MarioMeter.o,Screen.a,true
powerUp__10MarioMeterFv,MarioMeter.o,Screen.a,true
requestForceAppearHPMeter__10MarioMeterFv,MarioMeter.o,Screen.a,true
requestPlayerMoving__10MarioMeterFv,MarioMeter.o,Screen.a,true
requestPlayerStopped__10MarioMeterFv,MarioMeter.o,Screen.a,true
activate__10MarioMeterFv,MarioMeter.o,Screen.a,true
deactivate__10MarioMeterFv,MarioMeter.o,Screen.a,true
__dt__10MarioMeterFv,MarioMeter.o,Screen.a,true
init__10MarioMeterFRC12JMapInfoIter,MarioMeter.o,Screen.a,true
__ct__13MarioSubMeterFPCc,MarioSubMeter.o,Screen.a,true
setBeeLifeRatio__13MarioSubMeterFf,MarioSubMeter.o,Screen.a,true
setWaterLifeRatio__13MarioSubMeterFf,MarioSubMeter.o,Screen.a,true

1 Symbol Name Object File Library Archive Matching
1462 execute__Q222@unnamed@Manual2P_cpp@22Manual2PNrvScrollRightCFP5Spine Manual2P.o Screen.a false
1463 execute__Q222@unnamed@Manual2P_cpp@15Manual2PNrvWaitCFP5Spine Manual2P.o Screen.a false
1464 execute__Q222@unnamed@Manual2P_cpp@17Manual2PNrvAppearCFP5Spine Manual2P.o Screen.a false
1465 __ct__10MarioMeterFPCc MarioMeter.o Screen.a false true
1466 initLifeCount__10MarioMeterFl MarioMeter.o Screen.a false true
1467 setLifeCount__10MarioMeterFl MarioMeter.o Screen.a false true
1468 powerUp__10MarioMeterFv MarioMeter.o Screen.a false true
1469 requestForceAppearHPMeter__10MarioMeterFv MarioMeter.o Screen.a false true
1470 requestPlayerMoving__10MarioMeterFv MarioMeter.o Screen.a false true
1471 requestPlayerStopped__10MarioMeterFv MarioMeter.o Screen.a false true
1472 activate__10MarioMeterFv MarioMeter.o Screen.a false true
1473 deactivate__10MarioMeterFv MarioMeter.o Screen.a false true
1474 __dt__10MarioMeterFv MarioMeter.o Screen.a false true
1475 init__10MarioMeterFRC12JMapInfoIter MarioMeter.o Screen.a false true
1476 __ct__13MarioSubMeterFPCc MarioSubMeter.o Screen.a true
1477 setBeeLifeRatio__13MarioSubMeterFf MarioSubMeter.o Screen.a true
1478 setWaterLifeRatio__13MarioSubMeterFf MarioSubMeter.o Screen.a true

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "Game",
"message": "15.961%",
"message": "15.977%",
"color": "blue"
}

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "Screen",
"message": "8.187%",
"message": "8.406%",
"color": "yellow"
}

View File

@ -21,7 +21,7 @@
| [RhythmLib](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/RhythmLib.md) | 1.2661566868900025% |
| [Ride](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Ride.md) | 6.181993549748319% |
| [Scene](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene.md) | 17.116530156366345% |
| [Screen](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen.md) | 8.187081008324295% |
| [Screen](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen.md) | 8.406622845419024% |
| [Speaker](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Speaker.md) | 54.75241889584519% |
| [System](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/System.md) | 14.730098411770436% |
| [Util](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Util.md) | 10.090099514848767% |

View File

@ -80,7 +80,7 @@
| [LogoFader.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/LogoFader.md) | 0.0% | 0 / 18 | 0.0% | :x:
| [LuigiLetter.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/LuigiLetter.md) | 0.0% | 0 / 20 | 0.0% | :x:
| [Manual2P.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/Manual2P.md) | 0.0% | 0 / 30 | 0.0% | :x:
| [MarioMeter.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/MarioMeter.md) | 0.0% | 0 / 11 | 0.0% | :x:
| [MarioMeter.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/MarioMeter.md) | 100.0% | 11 / 11 | 100.0% | :white_check_mark:
| [MarioSubMeter.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/MarioSubMeter.md) | 100.0% | 10 / 10 | 100.0% | :white_check_mark:
| [MessageTagSkipTagProcessor.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/MessageTagSkipTagProcessor.md) | 37.5% | 3 / 13 | 23.076923076923077% | :eight_pointed_black_star:
| [MeterLayout.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/MeterLayout.md) | 0.0% | 0 / 53 | 0.0% | :x:

View File

@ -5,18 +5,18 @@
| :white_check_mark: | Function is completed.
# 0 / 11 Completed -- (0.0%)
# 11 / 11 Completed -- (100.0%)
# MarioMeter.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `__ct__10MarioMeterFPCc` | :x: |
| `initLifeCount__10MarioMeterFl` | :x: |
| `setLifeCount__10MarioMeterFl` | :x: |
| `powerUp__10MarioMeterFv` | :x: |
| `requestForceAppearHPMeter__10MarioMeterFv` | :x: |
| `requestPlayerMoving__10MarioMeterFv` | :x: |
| `requestPlayerStopped__10MarioMeterFv` | :x: |
| `activate__10MarioMeterFv` | :x: |
| `deactivate__10MarioMeterFv` | :x: |
| `__dt__10MarioMeterFv` | :x: |
| `init__10MarioMeterFRC12JMapInfoIter` | :x: |
| `__ct__10MarioMeterFPCc` | :white_check_mark: |
| `initLifeCount__10MarioMeterFl` | :white_check_mark: |
| `setLifeCount__10MarioMeterFl` | :white_check_mark: |
| `powerUp__10MarioMeterFv` | :white_check_mark: |
| `requestForceAppearHPMeter__10MarioMeterFv` | :white_check_mark: |
| `requestPlayerMoving__10MarioMeterFv` | :white_check_mark: |
| `requestPlayerStopped__10MarioMeterFv` | :white_check_mark: |
| `activate__10MarioMeterFv` | :white_check_mark: |
| `deactivate__10MarioMeterFv` | :white_check_mark: |
| `__dt__10MarioMeterFv` | :white_check_mark: |
| `init__10MarioMeterFRC12JMapInfoIter` | :white_check_mark: |

View File

@ -0,0 +1,28 @@
#pragma once
#include "Game/NameObj/NameObj.hpp"
class MeterLayout;
class SuddenDeathMeter;
class MarioMeter : public NameObj {
public:
MarioMeter(const char *);
virtual ~MarioMeter();
virtual void init(const JMapInfoIter &rIter);
void initLifeCount(s32);
void setLifeCount(s32);
void powerUp();
void requestForceAppearHPMeter();
void requestPlayerMoving();
void requestPlayerStopped();
void activate();
void deactivate();
MeterLayout *mHitPointMeter; // _C
SuddenDeathMeter* mSuddenDeathMeter; // _10
bool mUseSuddenDeath; // _14
};

View File

@ -0,0 +1,67 @@
#pragma once
#include "Game/LiveActor/Nerve.hpp"
#include "Game/Screen/LayoutActor.hpp"
#include "JSystem/JGeometry/TVec.hpp"
class CountUpPaneRumbler;
class MeterLayout : public LayoutActor {
public:
MeterLayout(const char *, const char *);
virtual ~MeterLayout();
virtual void init(const JMapInfoIter &rIter);
virtual void control();
void requestActive();
void requestDeactivate();
void requestPowerUp();
void requestForceAppear();
void requestPlayerMoving();
void requestPlayerStopped();
void initCount(s32);
void setCount(s32);
void exeAppear();
void exeWaitStart();
void exeWait();
void exePowerUp();
void exeMeterMove();
void exeCounterMove();
void exeRecover();
void exeDamage();
void exeBreakMeter();
void exeZeroMeter();
void exeZeroMeterBreak();
void calcMarioHeadPosition(TVec2f *) const;
void calcPowerUpMeterBasePosition(TVec2f *) const;
void setAnimBase();
void setCountAnimFrame();
void setRecoveryCountAnimFrame();
CountUpPaneRumbler* mCountUpPaneRumbler; // _20
s32 _24; // _24
s32 _28; // _28
TVec2f mFollowPos; // _2C
TVec2f mFollowPosW; // _34
TVec2f _38; // _38
s32 mCount; // _44
f32 _48; // _48
f32 _4C; // _4C
};
namespace NrvMeterLayout {
NERVE_DECL_NULL(MeterLayoutNrvHide);
NERVE_DECL_EXE(MeterLayoutNrvAppear, MeterLayout, Appear);
NERVE_DECL_EXE(MeterLayoutNrvWait, MeterLayout, Wait);
NERVE_DECL_EXE(MeterLayoutNrvWaitStart, MeterLayout, WaitStart);
NERVE_DECL_EXE(MeterLayoutNrvPowerUp, MeterLayout, PowerUp);
NERVE_DECL_EXE(MeterLayoutNrvMeterMove, MeterLayout, MeterMove);
NERVE_DECL_EXE(MeterLayoutNrvCounterMove, MeterLayout, CounterMove);
NERVE_DECL_EXE(MeterLayoutNrvRecover, MeterLayout, Recover);
NERVE_DECL_EXE(MeterLayoutNrvDamage, MeterLayout, Damage);
NERVE_DECL_EXE(MeterLayoutNrvBreakMeter, MeterLayout, BreakMeter);
NERVE_DECL_EXE(MeterLayoutNrvZeroMeter, MeterLayout, ZeroMeter);
NERVE_DECL_EXE(MeterLayoutNrvZeroMeterBreak, MeterLayout, ZeroMeterBreak);
} // namespace NrvMeterLayout

View File

@ -0,0 +1,57 @@
#pragma once
#include "Game/LiveActor/Nerve.hpp"
#include "Game/Screen/LayoutActor.hpp"
#include "JSystem/JGeometry/TVec.hpp"
class CountUpPaneRumbler;
class SuddenDeathMeter : public LayoutActor {
public:
SuddenDeathMeter(const char *, const char *);
virtual ~SuddenDeathMeter();
virtual void init(const JMapInfoIter &rIter);
virtual void control();
void requestActive();
void requestDeactivate();
void requestPowerUp();
void requestForceAppear();
void requestPlayerMoving();
void exeAppear();
void exeWait();
void exePowerUp();
void exeMeterMove();
void exeCounterMove();
void exeBreakMeter();
void exeZeroMeter();
void exeZeroMeterBreak();
void initCount(s32);
void setCount(s32);
void calcMarioHeadPosition(TVec2f *) const;
void calcPowerUpMeterBasePosition(TVec2f *) const;
void setPowerUpMeterPosition(const TVec2f &);
void setAnimBase();
void setCountAnimFrame();
void setRecoveryCountAnimFrame();
CountUpPaneRumbler *mCountUpPaneRumbler; // _20
TVec2f mFollowPosW; // _24
TVec2f _2C; // _2C
s32 mCount; // _34
f32 _38; // _38
f32 _3C; // _3C
};
namespace NrvSuddenDeathMeter {
NERVE_DECL_EXE(SuddenDeathMeterNrvAppear, SuddenDeathMeter, Appear);
NERVE_DECL_EXE(SuddenDeathMeterNrvWait, SuddenDeathMeter, Wait);
NERVE_DECL_EXE(SuddenDeathMeterNrvPowerUp, SuddenDeathMeter, PowerUp);
NERVE_DECL_EXE(SuddenDeathMeterNrvMeterMove, SuddenDeathMeter, MeterMove);
NERVE_DECL_EXE(SuddenDeathMeterNrvCounterMove, SuddenDeathMeter, CounterMove);
NERVE_DECL_EXE(SuddenDeathMeterNrvBreakMeter, SuddenDeathMeter, BreakMeter);
NERVE_DECL_EXE(SuddenDeathMeterNrvZeroMeter, SuddenDeathMeter, ZeroMeter);
NERVE_DECL_EXE(SuddenDeathMeterNrvZeroMeterBreak, SuddenDeathMeter, ZeroMeterBreak);
} // namespace NrvSuddenDeathMeter

View File

@ -0,0 +1,69 @@
#include "Game/Screen/MarioMeter.hpp"
#include "Game/Screen/MeterLayout.hpp"
#include "Game/Screen/SuddenDeathMeter.hpp"
#include "Game/Util/ObjUtil.hpp"
MarioMeter::MarioMeter(const char *pName) : NameObj(pName) {
mHitPointMeter = nullptr;
mSuddenDeathMeter = nullptr;
mUseSuddenDeath = false;
}
void MarioMeter::initLifeCount(s32 life) {
if (life == 1) {
mUseSuddenDeath = true;
mSuddenDeathMeter->initCount(life);
mHitPointMeter->kill();
}
else {
mUseSuddenDeath = false;
mHitPointMeter->initCount(life);
mSuddenDeathMeter->kill();
}
}
void MarioMeter::setLifeCount(s32 life) {
mUseSuddenDeath ? mSuddenDeathMeter->setCount(life) : mHitPointMeter->setCount(life);
}
void MarioMeter::powerUp() {
if (mUseSuddenDeath) {
MR::requestMovementOn(mSuddenDeathMeter);
mSuddenDeathMeter->requestPowerUp();
}
else {
MR::requestMovementOn(mHitPointMeter);
mHitPointMeter->requestPowerUp();
}
}
void MarioMeter::requestForceAppearHPMeter() {
mUseSuddenDeath ? mSuddenDeathMeter->requestForceAppear() : mHitPointMeter->requestForceAppear();
}
void MarioMeter::requestPlayerMoving() {
mUseSuddenDeath ? mSuddenDeathMeter->requestPlayerMoving() : mHitPointMeter->requestPlayerMoving();
}
void MarioMeter::requestPlayerStopped() {
mUseSuddenDeath ? mSuddenDeathMeter->requestPlayerMoving() : mHitPointMeter->requestPlayerStopped();
}
void MarioMeter::activate() {
mUseSuddenDeath ? mSuddenDeathMeter->requestActive() : mHitPointMeter->requestActive();
}
void MarioMeter::deactivate() {
mUseSuddenDeath ? mSuddenDeathMeter->requestDeactivate() : mHitPointMeter->requestDeactivate();
}
MarioMeter::~MarioMeter() {
}
void MarioMeter::init(const JMapInfoIter &rIter) {
mHitPointMeter = new MeterLayout("通常HPメーター", "HitPointMeter");
mHitPointMeter->initWithoutIter();
mSuddenDeathMeter = new SuddenDeathMeter("サドンデスHPメーター", "SuddenDeathMeter");
mSuddenDeathMeter->initWithoutIter();
}