mirror of
https://github.com/SMGCommunity/Petari.git
synced 2025-02-21 14:40:36 +00:00
ExterminationChecker.o
at 85%
This commit is contained in:
parent
ef6232a654
commit
93fa2a71b4
@ -1842,25 +1842,25 @@ clone__Q22MR63FunctorV0M<P18ElectricRailMoving,M18ElectricRailMovingFPCvPv_v
|
||||
__dt__18ElectricRailMovingFv,ElectricRailMoving.o,MapObj.a,false
|
||||
createLiveActor<16SkeletalFishBaby>__34@unnamed@ExterminationChecker_cpp@FPCc_P9LiveActor,ExterminationChecker.o,MapObj.a,false
|
||||
createLiveActor<8Meramera>__34@unnamed@ExterminationChecker_cpp@FPCc_P9LiveActor,ExterminationChecker.o,MapObj.a,false
|
||||
__ct__20ExterminationCheckerFPCc,ExterminationChecker.o,MapObj.a,false
|
||||
__ct__20ExterminationCheckerFPCc,ExterminationChecker.o,MapObj.a,true
|
||||
init__20ExterminationCheckerFRC12JMapInfoIter,ExterminationChecker.o,MapObj.a,false
|
||||
control__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,false
|
||||
exeWatching__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,false
|
||||
exeTryStartDemoAppear__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,false
|
||||
exeAppearStar__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,false
|
||||
exeAppearKeySwitch__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,false
|
||||
createExterminationPowerStar__2MRFPCc,ExterminationChecker.o,MapObj.a,false
|
||||
createExterminationKeySwitch__2MRFPCc,ExterminationChecker.o,MapObj.a,false
|
||||
__dt__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,false
|
||||
__sinit_\ExterminationChecker_cpp,ExterminationChecker.o,MapObj.a,false
|
||||
__ct__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingFv,ExterminationChecker.o,MapObj.a,false
|
||||
__ct__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearFv,ExterminationChecker.o,MapObj.a,false
|
||||
__ct__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarFv,ExterminationChecker.o,MapObj.a,false
|
||||
__ct__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchFv,ExterminationChecker.o,MapObj.a,false
|
||||
execute__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchCFP5Spine,ExterminationChecker.o,MapObj.a,false
|
||||
execute__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarCFP5Spine,ExterminationChecker.o,MapObj.a,false
|
||||
execute__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearCFP5Spine,ExterminationChecker.o,MapObj.a,false
|
||||
execute__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingCFP5Spine,ExterminationChecker.o,MapObj.a,false
|
||||
control__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,true
|
||||
exeWatching__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,true
|
||||
exeTryStartDemoAppear__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,true
|
||||
exeAppearStar__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,true
|
||||
exeAppearKeySwitch__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,true
|
||||
createExterminationPowerStar__2MRFPCc,ExterminationChecker.o,MapObj.a,true
|
||||
createExterminationKeySwitch__2MRFPCc,ExterminationChecker.o,MapObj.a,true
|
||||
__dt__20ExterminationCheckerFv,ExterminationChecker.o,MapObj.a,true
|
||||
__sinit_\ExterminationChecker_cpp,ExterminationChecker.o,MapObj.a,true
|
||||
__ct__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingFv,ExterminationChecker.o,MapObj.a,true
|
||||
__ct__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearFv,ExterminationChecker.o,MapObj.a,true
|
||||
__ct__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarFv,ExterminationChecker.o,MapObj.a,true
|
||||
__ct__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchFv,ExterminationChecker.o,MapObj.a,true
|
||||
execute__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchCFP5Spine,ExterminationChecker.o,MapObj.a,true
|
||||
execute__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarCFP5Spine,ExterminationChecker.o,MapObj.a,true
|
||||
execute__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearCFP5Spine,ExterminationChecker.o,MapObj.a,true
|
||||
execute__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingCFP5Spine,ExterminationChecker.o,MapObj.a,true
|
||||
__ct__14FallDownBridgeFPCc,FallDownBridge.o,MapObj.a,false
|
||||
init__14FallDownBridgeFRC12JMapInfoIter,FallDownBridge.o,MapObj.a,false
|
||||
control__14FallDownBridgeFv,FallDownBridge.o,MapObj.a,false
|
||||
|
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"label": "Game",
|
||||
"message": "13.646%",
|
||||
"message": "13.671%",
|
||||
"color": "blue"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"label": "MapObj",
|
||||
"message": "27.504%",
|
||||
"message": "27.64%",
|
||||
"color": "tan"
|
||||
}
|
@ -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.01936376210235% |
|
||||
| [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) | 27.504706237194355% |
|
||||
| [MapObj](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj.md) | 27.64043307782712% |
|
||||
| [NameObj](https://github.com/shibbo/Petari/blob/master/docs/lib/NameObj.md) | 32.076605977327375% |
|
||||
| [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% |
|
||||
|
@ -101,7 +101,7 @@
|
||||
| [ElectricRail.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/ElectricRail.md) | 0.0% | 0 / 48 | 0.0% | :x:
|
||||
| [ElectricRailHolder.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/ElectricRailHolder.md) | 0.0% | 0 / 17 | 0.0% | :x:
|
||||
| [ElectricRailMoving.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/ElectricRailMoving.md) | 0.0% | 0 / 44 | 0.0% | :x:
|
||||
| [ExterminationChecker.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/ExterminationChecker.md) | 0.0% | 0 / 21 | 0.0% | :x:
|
||||
| [ExterminationChecker.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/ExterminationChecker.md) | 64.28571428571429% | 18 / 21 | 85.71428571428571% | :eight_pointed_black_star:
|
||||
| [FallDownBridge.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/FallDownBridge.md) | 0.0% | 0 / 11 | 0.0% | :x:
|
||||
| [FallingSmallRock.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/FallingSmallRock.md) | 0.0% | 0 / 11 | 0.0% | :x:
|
||||
| [FallOutFieldDraw.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/FallOutFieldDraw.md) | 0.0% | 0 / 13 | 0.0% | :x:
|
||||
|
@ -5,28 +5,28 @@
|
||||
| :white_check_mark: | Function is completed.
|
||||
|
||||
|
||||
# 0 / 21 Completed -- (0.0%)
|
||||
# 18 / 21 Completed -- (85.71428571428571%)
|
||||
# ExterminationChecker.o
|
||||
| Symbol | Decompiled? |
|
||||
| ------------- | ------------- |
|
||||
| `createLiveActor<16SkeletalFishBaby>__34@unnamed@ExterminationChecker_cpp@FPCc_P9LiveActor` | :x: |
|
||||
| `createLiveActor<8Meramera>__34@unnamed@ExterminationChecker_cpp@FPCc_P9LiveActor` | :x: |
|
||||
| `__ct__20ExterminationCheckerFPCc` | :x: |
|
||||
| `__ct__20ExterminationCheckerFPCc` | :white_check_mark: |
|
||||
| `init__20ExterminationCheckerFRC12JMapInfoIter` | :x: |
|
||||
| `control__20ExterminationCheckerFv` | :x: |
|
||||
| `exeWatching__20ExterminationCheckerFv` | :x: |
|
||||
| `exeTryStartDemoAppear__20ExterminationCheckerFv` | :x: |
|
||||
| `exeAppearStar__20ExterminationCheckerFv` | :x: |
|
||||
| `exeAppearKeySwitch__20ExterminationCheckerFv` | :x: |
|
||||
| `createExterminationPowerStar__2MRFPCc` | :x: |
|
||||
| `createExterminationKeySwitch__2MRFPCc` | :x: |
|
||||
| `__dt__20ExterminationCheckerFv` | :x: |
|
||||
| `__sinit_\ExterminationChecker_cpp` | :x: |
|
||||
| `__ct__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingFv` | :x: |
|
||||
| `__ct__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearFv` | :x: |
|
||||
| `__ct__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarFv` | :x: |
|
||||
| `__ct__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchFv` | :x: |
|
||||
| `execute__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchCFP5Spine` | :x: |
|
||||
| `execute__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarCFP5Spine` | :x: |
|
||||
| `execute__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearCFP5Spine` | :x: |
|
||||
| `execute__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingCFP5Spine` | :x: |
|
||||
| `control__20ExterminationCheckerFv` | :white_check_mark: |
|
||||
| `exeWatching__20ExterminationCheckerFv` | :white_check_mark: |
|
||||
| `exeTryStartDemoAppear__20ExterminationCheckerFv` | :white_check_mark: |
|
||||
| `exeAppearStar__20ExterminationCheckerFv` | :white_check_mark: |
|
||||
| `exeAppearKeySwitch__20ExterminationCheckerFv` | :white_check_mark: |
|
||||
| `createExterminationPowerStar__2MRFPCc` | :white_check_mark: |
|
||||
| `createExterminationKeySwitch__2MRFPCc` | :white_check_mark: |
|
||||
| `__dt__20ExterminationCheckerFv` | :white_check_mark: |
|
||||
| `__sinit_\ExterminationChecker_cpp` | :white_check_mark: |
|
||||
| `__ct__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingFv` | :white_check_mark: |
|
||||
| `__ct__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearFv` | :white_check_mark: |
|
||||
| `__ct__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarFv` | :white_check_mark: |
|
||||
| `__ct__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchFv` | :white_check_mark: |
|
||||
| `execute__Q223NrvExterminationChecker38ExterminationCheckerNrvAppearKeySwitchCFP5Spine` | :white_check_mark: |
|
||||
| `execute__Q223NrvExterminationChecker33ExterminationCheckerNrvAppearStarCFP5Spine` | :white_check_mark: |
|
||||
| `execute__Q223NrvExterminationChecker41ExterminationCheckerNrvTryStartDemoAppearCFP5Spine` | :white_check_mark: |
|
||||
| `execute__Q223NrvExterminationChecker31ExterminationCheckerNrvWatchingCFP5Spine` | :white_check_mark: |
|
||||
|
37
include/Game/MapObj/ExterminationChecker.hpp
Normal file
37
include/Game/MapObj/ExterminationChecker.hpp
Normal file
@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/LiveActor/LiveActor.hpp"
|
||||
|
||||
class KeySwitch;
|
||||
|
||||
class ExterminationChecker : public LiveActor {
|
||||
public:
|
||||
ExterminationChecker(const char *);
|
||||
|
||||
virtual ~ExterminationChecker();
|
||||
virtual void init(const JMapInfoIter &);
|
||||
virtual void control();
|
||||
|
||||
void exeWatching();
|
||||
void exeTryStartDemoAppear();
|
||||
void exeAppearStar();
|
||||
void exeAppearKeySwitch();
|
||||
|
||||
LiveActorGroup* mGroup; // _8C
|
||||
KeySwitch* mKeySwitch; // _90
|
||||
TVec3f mKeySwitchPos; // _94
|
||||
u8 _A0;
|
||||
u8 _A1;
|
||||
};
|
||||
|
||||
namespace NrvExterminationChecker {
|
||||
NERVE_DECL(ExterminationCheckerNrvWatching, ExterminationChecker, ExterminationChecker::exeWatching);
|
||||
NERVE_DECL(ExterminationCheckerNrvTryStartDemoAppear, ExterminationChecker, ExterminationChecker::exeTryStartDemoAppear);
|
||||
NERVE_DECL(ExterminationCheckerNrvAppearStar, ExterminationChecker, ExterminationChecker::exeAppearStar);
|
||||
NERVE_DECL(ExterminationCheckerNrvAppearKeySwitch, ExterminationChecker, ExterminationChecker::exeAppearKeySwitch);
|
||||
};
|
||||
|
||||
namespace MR {
|
||||
NameObj* createExterminationPowerStar(const char *);
|
||||
NameObj* createExterminationKeySwitch(const char *);
|
||||
}
|
96
source/Game/MapObj/ExterminationChecker.cpp
Normal file
96
source/Game/MapObj/ExterminationChecker.cpp
Normal file
@ -0,0 +1,96 @@
|
||||
#include "Game/MapObj/ExterminationChecker.hpp"
|
||||
#include "Game/MapObj/KeySwitch.hpp"
|
||||
#include "Game/LiveActor/LiveActorGroup.hpp"
|
||||
|
||||
ExterminationChecker::ExterminationChecker(const char *pName) : LiveActor(pName) {
|
||||
mGroup = nullptr;
|
||||
mKeySwitch = nullptr;
|
||||
mKeySwitchPos.x = 0.0f;
|
||||
mKeySwitchPos.y = 0.0f;
|
||||
mKeySwitchPos.z = 0.0f;
|
||||
_A0 = 1;
|
||||
_A1 = 0;
|
||||
}
|
||||
|
||||
// ExterminationChecker::init
|
||||
|
||||
void ExterminationChecker::control() {
|
||||
|
||||
}
|
||||
|
||||
void ExterminationChecker::exeWatching() {
|
||||
for (s32 i = 0; i < mGroup->mObjectCount; i++) {
|
||||
LiveActor* cur = mGroup->getActor(i);
|
||||
if (!MR::isDead(cur)) {
|
||||
mKeySwitchPos.setInline(mGroup->getActor(i)->mPosition);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (_A0) {
|
||||
setNerve(&NrvExterminationChecker::ExterminationCheckerNrvTryStartDemoAppear::sInstance);
|
||||
}
|
||||
|
||||
if (_A1) {
|
||||
setNerve(&NrvExterminationChecker::ExterminationCheckerNrvAppearKeySwitch::sInstance);
|
||||
}
|
||||
}
|
||||
|
||||
void ExterminationChecker::exeTryStartDemoAppear() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
MR::stopStageBGM(10);
|
||||
}
|
||||
|
||||
if (MR::isGreaterStep(this, 5)) {
|
||||
if (MR::tryStartDemo(this, "全滅スター出現")) {
|
||||
setNerve(&NrvExterminationChecker::ExterminationCheckerNrvAppearStar::sInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ExterminationChecker::exeAppearStar() {
|
||||
if (MR::isStep(this, 0)) {
|
||||
MR::startSystemSE("SE_SY_TOTAL_COMPLETE", -1, -1);
|
||||
}
|
||||
|
||||
if (MR::isStep(this, 120)) {
|
||||
MR::endDemo(this, "全滅スター出現");
|
||||
MR::startAfterBossBGM();
|
||||
MR::requestAppearPowerStar(this);
|
||||
kill();
|
||||
}
|
||||
}
|
||||
|
||||
void ExterminationChecker::exeAppearKeySwitch() {
|
||||
if (MR::isStep(this, 30)) {
|
||||
mKeySwitch->appearKeySwitch(mKeySwitchPos);
|
||||
kill();
|
||||
}
|
||||
}
|
||||
|
||||
namespace MR {
|
||||
NameObj* createExterminationPowerStar(const char *pName) {
|
||||
ExterminationChecker* checker = new ExterminationChecker(pName);
|
||||
checker->_A0 = 1;
|
||||
checker->_A1 = 0;
|
||||
return checker;
|
||||
}
|
||||
|
||||
NameObj* createExterminationKeySwitch(const char *pName) {
|
||||
ExterminationChecker* checker = new ExterminationChecker(pName);
|
||||
checker->_A0 = 0;
|
||||
checker->_A1 = 1;
|
||||
return checker;
|
||||
}
|
||||
};
|
||||
|
||||
ExterminationChecker::~ExterminationChecker() {
|
||||
|
||||
}
|
||||
|
||||
namespace NrvExterminationChecker {
|
||||
INIT_NERVE(ExterminationCheckerNrvWatching);
|
||||
INIT_NERVE(ExterminationCheckerNrvTryStartDemoAppear);
|
||||
INIT_NERVE(ExterminationCheckerNrvAppearStar);
|
||||
INIT_NERVE(ExterminationCheckerNrvAppearKeySwitch);
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user