PicketSwitch 100% + small edit on Jiraira.hpp

This commit is contained in:
Gabbo 2024-04-22 22:23:20 +02:00
parent dc86f99802
commit 9e59caaee8
8 changed files with 155 additions and 42 deletions

View File

@ -537,7 +537,7 @@ executeOnEnd__Q211NrvBanekiti19BanekitiNrvDPDSwoonCFP5Spine,Banekiti.o,MapObj.a,
execute__Q211NrvBanekiti19BanekitiNrvDPDSwoonCFP5Spine,Banekiti.o,MapObj.a,false
execute__Q211NrvBanekiti16BanekitiNrvRepelCFP5Spine,Banekiti.o,MapObj.a,false
execute__Q211NrvBanekiti15BanekitiNrvWaitCFP5Spine,Banekiti.o,MapObj.a,false
__ct__18BattleShipElevatorFPCc,BattleShipElevator.o,MapObj.a,false
__ct__18BattleShipElevatorFPCc,BattleShipElevator.o,MapObj.a,true
init__18BattleShipElevatorFRC12JMapInfoIter,BattleShipElevator.o,MapObj.a,false
exeMove__18BattleShipElevatorFv,BattleShipElevator.o,MapObj.a,false
control__18BattleShipElevatorFv,BattleShipElevator.o,MapObj.a,false
@ -3595,19 +3595,19 @@ Functor<12PhantomTorch>__2MRFP12PhantomTorchM12PhantomTorchFPCvPv_v_Q22MR51Funct
__cl__Q22MR51FunctorV0M<P12PhantomTorch&#44;M12PhantomTorchFPCvPv_v>CFv,PhantomTorch.o,MapObj.a,false
clone__Q22MR51FunctorV0M<P12PhantomTorch&#44;M12PhantomTorchFPCvPv_v>CFP7JKRHeap,PhantomTorch.o,MapObj.a,false
__dt__12PhantomTorchFv,PhantomTorch.o,MapObj.a,false
__ct__12PicketSwitchFPCc,PicketSwitch.o,MapObj.a,false
init__12PicketSwitchFRC12JMapInfoIter,PicketSwitch.o,MapObj.a,false
exeFirstDrop__12PicketSwitchFv,PicketSwitch.o,MapObj.a,false
exeLastDrop__12PicketSwitchFv,PicketSwitch.o,MapObj.a,false
receiveMsgPlayerAttack__12PicketSwitchFUlP9HitSensorP9HitSensor,PicketSwitch.o,MapObj.a,false
__dt__12PicketSwitchFv,PicketSwitch.o,MapObj.a,false
__sinit_\PicketSwitch_cpp,PicketSwitch.o,MapObj.a,false
__ct__Q215NrvPicketSwitch19PicketSwitchNrvWaitFv,PicketSwitch.o,MapObj.a,false
__ct__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropFv,PicketSwitch.o,MapObj.a,false
__ct__Q215NrvPicketSwitch23PicketSwitchNrvLastDropFv,PicketSwitch.o,MapObj.a,false
execute__Q215NrvPicketSwitch23PicketSwitchNrvLastDropCFP5Spine,PicketSwitch.o,MapObj.a,false
execute__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropCFP5Spine,PicketSwitch.o,MapObj.a,false
execute__Q215NrvPicketSwitch19PicketSwitchNrvWaitCFP5Spine,PicketSwitch.o,MapObj.a,false
__ct__12PicketSwitchFPCc,PicketSwitch.o,MapObj.a,true
init__12PicketSwitchFRC12JMapInfoIter,PicketSwitch.o,MapObj.a,true
exeFirstDrop__12PicketSwitchFv,PicketSwitch.o,MapObj.a,true
exeLastDrop__12PicketSwitchFv,PicketSwitch.o,MapObj.a,true
receiveMsgPlayerAttack__12PicketSwitchFUlP9HitSensorP9HitSensor,PicketSwitch.o,MapObj.a,true
__dt__12PicketSwitchFv,PicketSwitch.o,MapObj.a,true
__sinit_\PicketSwitch_cpp,PicketSwitch.o,MapObj.a,true
__ct__Q215NrvPicketSwitch19PicketSwitchNrvWaitFv,PicketSwitch.o,MapObj.a,true
__ct__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropFv,PicketSwitch.o,MapObj.a,true
__ct__Q215NrvPicketSwitch23PicketSwitchNrvLastDropFv,PicketSwitch.o,MapObj.a,true
execute__Q215NrvPicketSwitch23PicketSwitchNrvLastDropCFP5Spine,PicketSwitch.o,MapObj.a,true
execute__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropCFP5Spine,PicketSwitch.o,MapObj.a,true
execute__Q215NrvPicketSwitch19PicketSwitchNrvWaitCFP5Spine,PicketSwitch.o,MapObj.a,true
__ct__10PlantGroupFPCc,PlantGroup.o,MapObj.a,false
init__10PlantGroupFRC12JMapInfoIter,PlantGroup.o,MapObj.a,false
makeActorAppeared__10PlantGroupFv,PlantGroup.o,MapObj.a,false

1 Symbol Name Object File Library Archive Matching
537 execute__Q211NrvBanekiti19BanekitiNrvDPDSwoonCFP5Spine Banekiti.o MapObj.a false
538 execute__Q211NrvBanekiti16BanekitiNrvRepelCFP5Spine Banekiti.o MapObj.a false
539 execute__Q211NrvBanekiti15BanekitiNrvWaitCFP5Spine Banekiti.o MapObj.a false
540 __ct__18BattleShipElevatorFPCc BattleShipElevator.o MapObj.a false true
541 init__18BattleShipElevatorFRC12JMapInfoIter BattleShipElevator.o MapObj.a false
542 exeMove__18BattleShipElevatorFv BattleShipElevator.o MapObj.a false
543 control__18BattleShipElevatorFv BattleShipElevator.o MapObj.a false
3595 __cl__Q22MR51FunctorV0M<P12PhantomTorch&#44;M12PhantomTorchFPCvPv_v>CFv PhantomTorch.o MapObj.a false
3596 clone__Q22MR51FunctorV0M<P12PhantomTorch&#44;M12PhantomTorchFPCvPv_v>CFP7JKRHeap PhantomTorch.o MapObj.a false
3597 __dt__12PhantomTorchFv PhantomTorch.o MapObj.a false
3598 __ct__12PicketSwitchFPCc PicketSwitch.o MapObj.a false true
3599 init__12PicketSwitchFRC12JMapInfoIter PicketSwitch.o MapObj.a false true
3600 exeFirstDrop__12PicketSwitchFv PicketSwitch.o MapObj.a false true
3601 exeLastDrop__12PicketSwitchFv PicketSwitch.o MapObj.a false true
3602 receiveMsgPlayerAttack__12PicketSwitchFUlP9HitSensorP9HitSensor PicketSwitch.o MapObj.a false true
3603 __dt__12PicketSwitchFv PicketSwitch.o MapObj.a false true
3604 __sinit_\PicketSwitch_cpp PicketSwitch.o MapObj.a false true
3605 __ct__Q215NrvPicketSwitch19PicketSwitchNrvWaitFv PicketSwitch.o MapObj.a false true
3606 __ct__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropFv PicketSwitch.o MapObj.a false true
3607 __ct__Q215NrvPicketSwitch23PicketSwitchNrvLastDropFv PicketSwitch.o MapObj.a false true
3608 execute__Q215NrvPicketSwitch23PicketSwitchNrvLastDropCFP5Spine PicketSwitch.o MapObj.a false true
3609 execute__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropCFP5Spine PicketSwitch.o MapObj.a false true
3610 execute__Q215NrvPicketSwitch19PicketSwitchNrvWaitCFP5Spine PicketSwitch.o MapObj.a false true
3611 __ct__10PlantGroupFPCc PlantGroup.o MapObj.a false
3612 init__10PlantGroupFRC12JMapInfoIter PlantGroup.o MapObj.a false
3613 makeActorAppeared__10PlantGroupFv PlantGroup.o MapObj.a false

View File

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

View File

@ -12,7 +12,7 @@
| [Gravity](https://github.com/shibbo/Petari/blob/master/docs/lib/Gravity.md) | 73.07927450580803% |
| [LiveActor](https://github.com/shibbo/Petari/blob/master/docs/lib/LiveActor.md) | 42.577224527431994% |
| [Map](https://github.com/shibbo/Petari/blob/master/docs/lib/Map.md) | 17.65918333240488% |
| [MapObj](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj.md) | 31.0133230714828% |
| [MapObj](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj.md) | 31.162570593557916% |
| [NameObj](https://github.com/shibbo/Petari/blob/master/docs/lib/NameObj.md) | 33.210237031947784% |
| [NPC](https://github.com/shibbo/Petari/blob/master/docs/lib/NPC.md) | 2.155878467635403% |
| [NWC24](https://github.com/shibbo/Petari/blob/master/docs/lib/NWC24.md) | 0.0% |

View File

@ -34,7 +34,7 @@
| [BallOpener.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BallOpener.md) | 56.747404844290664% | 15 / 17 | 88.23529411764706% | :eight_pointed_black_star:
| [BallRail.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BallRail.md) | 100.0% | 19 / 19 | 100.0% | :white_check_mark:
| [Banekiti.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/Banekiti.md) | 0.0% | 0 / 19 | 0.0% | :x:
| [BattleShipElevator.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BattleShipElevator.md) | 0.0% | 0 / 13 | 0.0% | :x:
| [BattleShipElevator.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BattleShipElevator.md) | 7.462686567164178% | 1 / 13 | 7.6923076923076925% | :eight_pointed_black_star:
| [BeamGoRoundPlanet.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BeamGoRoundPlanet.md) | 0.0% | 0 / 16 | 0.0% | :x:
| [BeeFlowerHover.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BeeFlowerHover.md) | 82.1311475409836% | 20 / 21 | 95.23809523809523% | :eight_pointed_black_star:
| [BenefitItemInvincible.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/BenefitItemInvincible.md) | 62.95454545454545% | 10 / 12 | 83.33333333333334% | :eight_pointed_black_star:
@ -189,7 +189,7 @@
| [PhantomShipBridge.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PhantomShipBridge.md) | 0.0% | 0 / 19 | 0.0% | :x:
| [PhantomShipHandle.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PhantomShipHandle.md) | 0.0% | 0 / 6 | 0.0% | :x:
| [PhantomTorch.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PhantomTorch.md) | 0.0% | 0 / 24 | 0.0% | :x:
| [PicketSwitch.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PicketSwitch.md) | 0.0% | 0 / 13 | 0.0% | :x:
| [PicketSwitch.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PicketSwitch.md) | 100.0% | 13 / 13 | 100.0% | :white_check_mark:
| [PlantGroup.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PlantGroup.md) | 0.0% | 0 / 38 | 0.0% | :x:
| [PlantPoint.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PlantPoint.md) | 0.0% | 0 / 2 | 0.0% | :x:
| [PlantRailInfo.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/PlantRailInfo.md) | 0.0% | 0 / 3 | 0.0% | :x:

View File

@ -1,24 +1,24 @@
# PicketSwitch.o
| Symbol | Meaning
| ------------- | -------------
| :x: | Function has not yet been started or is not matching.
| :white_check_mark: | Function is completed.
# 0 / 13 Completed -- (0.0%)
# PicketSwitch.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `__ct__12PicketSwitchFPCc` | :x: |
| `init__12PicketSwitchFRC12JMapInfoIter` | :x: |
| `exeFirstDrop__12PicketSwitchFv` | :x: |
| `exeLastDrop__12PicketSwitchFv` | :x: |
| `receiveMsgPlayerAttack__12PicketSwitchFUlP9HitSensorP9HitSensor` | :x: |
| `__dt__12PicketSwitchFv` | :x: |
| `__sinit_\PicketSwitch_cpp` | :x: |
| `__ct__Q215NrvPicketSwitch19PicketSwitchNrvWaitFv` | :x: |
| `__ct__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropFv` | :x: |
| `__ct__Q215NrvPicketSwitch23PicketSwitchNrvLastDropFv` | :x: |
| `execute__Q215NrvPicketSwitch23PicketSwitchNrvLastDropCFP5Spine` | :x: |
| `execute__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropCFP5Spine` | :x: |
| `execute__Q215NrvPicketSwitch19PicketSwitchNrvWaitCFP5Spine` | :x: |
# PicketSwitch.o
| Symbol | Meaning
| ------------- | -------------
| :x: | Function has not yet been started or is not matching.
| :white_check_mark: | Function is completed.
# 13 / 13 Completed -- (100.0%)
# PicketSwitch.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `__ct__12PicketSwitchFPCc` | :white_check_mark: |
| `init__12PicketSwitchFRC12JMapInfoIter` | :white_check_mark: |
| `exeFirstDrop__12PicketSwitchFv` | :white_check_mark: |
| `exeLastDrop__12PicketSwitchFv` | :white_check_mark: |
| `receiveMsgPlayerAttack__12PicketSwitchFUlP9HitSensorP9HitSensor` | :white_check_mark: |
| `__dt__12PicketSwitchFv` | :white_check_mark: |
| `__sinit_\PicketSwitch_cpp` | :white_check_mark: |
| `__ct__Q215NrvPicketSwitch19PicketSwitchNrvWaitFv` | :white_check_mark: |
| `__ct__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropFv` | :white_check_mark: |
| `__ct__Q215NrvPicketSwitch23PicketSwitchNrvLastDropFv` | :white_check_mark: |
| `execute__Q215NrvPicketSwitch23PicketSwitchNrvLastDropCFP5Spine` | :white_check_mark: |
| `execute__Q215NrvPicketSwitch24PicketSwitchNrvFirstDropCFP5Spine` | :white_check_mark: |
| `execute__Q215NrvPicketSwitch19PicketSwitchNrvWaitCFP5Spine` | :white_check_mark: |

View File

@ -6,6 +6,7 @@ class Jiraira : public LiveActor {
public:
Jiraira(const char *);
virtual ~Jiraira();
virtual void appear();
virtual void kill();
virtual void control();

View File

@ -0,0 +1,27 @@
#pragma once
#include "Game/LiveActor/LiveActor.hpp"
class PicketSwitch : public LiveActor {
public:
PicketSwitch(const char *);
virtual ~PicketSwitch();
virtual void init(const JMapInfoIter &);
virtual bool receiveMsgPlayerAttack(u32 msg, HitSensor *pSender, HitSensor *pReceiver);
inline void exeWait() {
if (MR::isFirstStep(this)) {
MR::startBrk(this, "Second");
MR::setBrkFrameAndStop(this, 0.0f);
}
}
void exeFirstDrop();
void exeLastDrop();
};
namespace NrvPicketSwitch {
NERVE(PicketSwitchNrvWait);
NERVE(PicketSwitchNrvFirstDrop);
NERVE(PicketSwitchNrvLastDrop);
};

View File

@ -0,0 +1,85 @@
#include "Game/MapObj/PicketSwitch.hpp"
PicketSwitch::PicketSwitch(const char *pName) : LiveActor(pName) {
}
void PicketSwitch::init(const JMapInfoIter &rIter) {
MR::initDefaultPos(this, rIter);
MR::needStageSwitchWriteA(this, rIter);
const char* pName;
MR::getObjectName(&pName, rIter);
initModelManagerWithAnm(pName, nullptr, false);
MR::connectToSceneMapObjDecorationStrongLight(this);
initHitSensor(1);
MR::addBodyMessageSensor(this, 79);
MR::initCollisionPartsAutoEqualScale(this, pName, getSensor(0), MR::getJointMtx(this, "Picket"));
initEffectKeeper(0, nullptr, false);
initSound(4, false);
initNerve(&NrvPicketSwitch::PicketSwitchNrvWait::sInstance);
makeActorAppeared();
}
void PicketSwitch::exeFirstDrop() {
if (MR::isFirstStep(this)) {
MR::startBck(this, "First", nullptr);
MR::tryRumblePadStrong(this, 0);
MR::startSound(this, "SE_OJ_PICKET_SWITCH_DROP", -1, -1);
}
}
void PicketSwitch::exeLastDrop() {
if (MR::isFirstStep(this)) {
MR::startBck(this, "Second", nullptr);
MR::startBrk(this, "Second");
MR::tryRumblePadVeryStrong(this, 0);
MR::startSound(this, "SE_OJ_PICKET_SWITCH_DROP", -1, -1);
MR::startSound(this, "SE_OJ_PICKET_SWITCH_ON", -1, -1);
}
if (MR::isBckStopped(this)) {
MR::onSwitchA(this);
MR::invalidateHitSensors(this);
}
}
bool PicketSwitch::receiveMsgPlayerAttack(u32 msg, HitSensor *pSender, HitSensor *pReceiver) {
if (MR::isMsgPlayerHipDropFloor(msg)) {
if (pReceiver->isType(79)) {
if (isNerve(&NrvPicketSwitch::PicketSwitchNrvWait::sInstance)) {
setNerve(&NrvPicketSwitch::PicketSwitchNrvLastDrop::sInstance);
return true;
}
if ((isNerve(&NrvPicketSwitch::PicketSwitchNrvFirstDrop::sInstance))) {
if (MR::isBckStopped(this)) {
setNerve(&NrvPicketSwitch::PicketSwitchNrvLastDrop::sInstance);
return true;
}
}
return false;
}
}
return false;
}
namespace NrvPicketSwitch {
INIT_NERVE(PicketSwitchNrvWait);
INIT_NERVE(PicketSwitchNrvFirstDrop);
INIT_NERVE(PicketSwitchNrvLastDrop);
void PicketSwitchNrvWait::execute(Spine *pSpine) const {
PicketSwitch *pActor = (PicketSwitch*)pSpine->mExecutor;
pActor->exeWait();
}
void PicketSwitchNrvFirstDrop::execute(Spine *pSpine) const {
PicketSwitch *pActor = (PicketSwitch*)pSpine->mExecutor;
pActor->exeFirstDrop();
}
void PicketSwitchNrvLastDrop::execute(Spine *pSpine) const {
PicketSwitch *pActor = (PicketSwitch*)pSpine->mExecutor;
pActor->exeLastDrop();
}
};