mirror of
https://github.com/SMGCommunity/Petari.git
synced 2025-02-18 13:09:19 +00:00
PicketSwitch 100%
+ small edit on Jiraira.hpp
This commit is contained in:
parent
dc86f99802
commit
9e59caaee8
@ -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,M12PhantomTorchFPCvPv_v>CFv,PhantomTorch.o,MapObj.a,false
|
||||
clone__Q22MR51FunctorV0M<P12PhantomTorch,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,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"label": "Game",
|
||||
"message": "14.36%",
|
||||
"message": "14.388%",
|
||||
"color": "blue"
|
||||
}
|
@ -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% |
|
||||
|
@ -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:
|
||||
|
@ -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: |
|
||||
|
@ -6,6 +6,7 @@ class Jiraira : public LiveActor {
|
||||
public:
|
||||
Jiraira(const char *);
|
||||
|
||||
virtual ~Jiraira();
|
||||
virtual void appear();
|
||||
virtual void kill();
|
||||
virtual void control();
|
||||
|
27
include/Game/MapObj/PicketSwitch.hpp
Normal file
27
include/Game/MapObj/PicketSwitch.hpp
Normal 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);
|
||||
};
|
85
source/Game/MapObj/PicketSwitch.cpp
Normal file
85
source/Game/MapObj/PicketSwitch.cpp
Normal 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();
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user