mirror of
https://github.com/SMGCommunity/Petari.git
synced 2024-11-25 06:30:06 +00:00
CrystalCageMoving.o 100%
This commit is contained in:
parent
3d6c8d5ac8
commit
41fb610a9c
@ -1453,42 +1453,42 @@ execute__Q214NrvCrystalCage18CrystalCageNrvWaitCFP5Spine,CrystalCage.o,MapObj.a,
|
||||
__cl__Q22MR49FunctorV0M<P11CrystalCage,M11CrystalCageFPCvPv_v>CFv,CrystalCage.o,MapObj.a,true
|
||||
clone__Q22MR49FunctorV0M<P11CrystalCage,M11CrystalCageFPCvPv_v>CFP7JKRHeap,CrystalCage.o,MapObj.a,true
|
||||
__dt__11CrystalCageFv,CrystalCage.o,MapObj.a,true
|
||||
__ct__17CrystalCageMovingFPCc,CrystalCageMoving.o,MapObj.a,false
|
||||
init__17CrystalCageMovingFRC12JMapInfoIter,CrystalCageMoving.o,MapObj.a,false
|
||||
exeBreakBig__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
exeBreakSmall__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
exeBreakAll__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
exeDemoTicoMove__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
exeDemoTicoStop__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
exeDemoTicoChange__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
kill__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
control__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
receiveOtherMsg__17CrystalCageMovingFUlP9HitSensorP9HitSensor,CrystalCageMoving.o,MapObj.a,false
|
||||
crashMario__17CrystalCageMovingFP9HitSensorP9HitSensor,CrystalCageMoving.o,MapObj.a,false
|
||||
updateHitSensor__17CrystalCageMovingFP9HitSensor,CrystalCageMoving.o,MapObj.a,false
|
||||
connectToScene__17CrystalCageMovingFRC19MapObjActorInitInfo,CrystalCageMoving.o,MapObj.a,false
|
||||
initDummyModel__17CrystalCageMovingFRC12JMapInfoIter,CrystalCageMoving.o,MapObj.a,false
|
||||
startBreakDemo__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
isNerveTypeEnd__17CrystalCageMovingCFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__dt__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__sinit_\CrystalCageMoving_cpp,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopFv,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeFv,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
executeOnEnd__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
execute__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigCFP5Spine,CrystalCageMoving.o,MapObj.a,false
|
||||
__ct__17CrystalCageMovingFPCc,CrystalCageMoving.o,MapObj.a,true
|
||||
init__17CrystalCageMovingFRC12JMapInfoIter,CrystalCageMoving.o,MapObj.a,true
|
||||
exeBreakBig__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
exeBreakSmall__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
exeBreakAll__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
exeDemoTicoMove__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
exeDemoTicoStop__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
exeDemoTicoChange__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
kill__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
control__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
receiveOtherMsg__17CrystalCageMovingFUlP9HitSensorP9HitSensor,CrystalCageMoving.o,MapObj.a,true
|
||||
crashMario__17CrystalCageMovingFP9HitSensorP9HitSensor,CrystalCageMoving.o,MapObj.a,true
|
||||
updateHitSensor__17CrystalCageMovingFP9HitSensor,CrystalCageMoving.o,MapObj.a,true
|
||||
connectToScene__17CrystalCageMovingFRC19MapObjActorInitInfo,CrystalCageMoving.o,MapObj.a,true
|
||||
initDummyModel__17CrystalCageMovingFRC12JMapInfoIter,CrystalCageMoving.o,MapObj.a,true
|
||||
startBreakDemo__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
isNerveTypeEnd__17CrystalCageMovingCFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__dt__17CrystalCageMovingFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__sinit_\CrystalCageMoving_cpp,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopFv,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeFv,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
executeOnEnd__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
execute__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigCFP5Spine,CrystalCageMoving.o,MapObj.a,true
|
||||
__ct__13CrystalSwitchFPCc,CrystalSwitch.o,MapObj.a,false
|
||||
init__13CrystalSwitchFRC12JMapInfoIter,CrystalSwitch.o,MapObj.a,false
|
||||
control__13CrystalSwitchFv,CrystalSwitch.o,MapObj.a,false
|
||||
|
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"label": "MapObj",
|
||||
"message": "9.41923%",
|
||||
"message": "9.80353%",
|
||||
"color": "tan"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"label": "decompiled",
|
||||
"message": "6.432980880956938%",
|
||||
"message": "6.504418704916352%",
|
||||
"color": "blue"
|
||||
}
|
@ -12,7 +12,7 @@
|
||||
| [Gravity](https://github.com/shibbo/Petari/blob/master/docs/lib/Gravity.md) | 56.286937028734464% |
|
||||
| [LiveActor](https://github.com/shibbo/Petari/blob/master/docs/lib/LiveActor.md) | 36.855693868142005% |
|
||||
| [Map](https://github.com/shibbo/Petari/blob/master/docs/lib/Map.md) | 11.757933634152229% |
|
||||
| [MapObj](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj.md) | 9.419234729430363% |
|
||||
| [MapObj](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj.md) | 9.803534098118545% |
|
||||
| [NameObj](https://github.com/shibbo/Petari/blob/master/docs/lib/NameObj.md) | 22.226039161800067% |
|
||||
| [NPC](https://github.com/shibbo/Petari/blob/master/docs/lib/NPC.md) | 0.7591369440774989% |
|
||||
| [Player](https://github.com/shibbo/Petari/blob/master/docs/lib/Player.md) | 0.14184156212575486% |
|
||||
|
@ -78,7 +78,7 @@
|
||||
| CollectCounter.o | 100.0% | 12 / 12 | 100.0% |
|
||||
| CollisionBlocker.o | 100.0% | 7 / 7 | 100.0% |
|
||||
| CrystalCage.o | 92.85042333019756% | 23 / 24 | 95.83333333333334% |
|
||||
| CrystalCageMoving.o | 0.0% | 0 / 36 | 0.0% |
|
||||
| CrystalCageMoving.o | 100.0% | 36 / 36 | 100.0% |
|
||||
| CrystalSwitch.o | 0.0% | 0 / 22 | 0.0% |
|
||||
| CutBushModelObj.o | 100.0% | 5 / 5 | 100.0% |
|
||||
| DashRing.o | 0.0% | 0 / 9 | 0.0% |
|
||||
@ -2162,42 +2162,42 @@
|
||||
# CrystalCageMoving.o
|
||||
| Symbol | Decompiled? |
|
||||
| ------------- | ------------- |
|
||||
| __ct__17CrystalCageMovingFPCc | :x: |
|
||||
| init__17CrystalCageMovingFRC12JMapInfoIter | :x: |
|
||||
| exeBreakBig__17CrystalCageMovingFv | :x: |
|
||||
| exeBreakSmall__17CrystalCageMovingFv | :x: |
|
||||
| exeBreakAll__17CrystalCageMovingFv | :x: |
|
||||
| exeDemoTicoMove__17CrystalCageMovingFv | :x: |
|
||||
| exeDemoTicoStop__17CrystalCageMovingFv | :x: |
|
||||
| exeDemoTicoChange__17CrystalCageMovingFv | :x: |
|
||||
| kill__17CrystalCageMovingFv | :x: |
|
||||
| control__17CrystalCageMovingFv | :x: |
|
||||
| receiveOtherMsg__17CrystalCageMovingFUlP9HitSensorP9HitSensor | :x: |
|
||||
| crashMario__17CrystalCageMovingFP9HitSensorP9HitSensor | :x: |
|
||||
| updateHitSensor__17CrystalCageMovingFP9HitSensor | :x: |
|
||||
| connectToScene__17CrystalCageMovingFRC19MapObjActorInitInfo | :x: |
|
||||
| initDummyModel__17CrystalCageMovingFRC12JMapInfoIter | :x: |
|
||||
| startBreakDemo__17CrystalCageMovingFv | :x: |
|
||||
| isNerveTypeEnd__17CrystalCageMovingCFv | :x: |
|
||||
| __dt__17CrystalCageMovingFv | :x: |
|
||||
| __sinit_\CrystalCageMoving_cpp | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopFv | :x: |
|
||||
| __ct__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeFv | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallCFP5Spine | :x: |
|
||||
| executeOnEnd__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine | :x: |
|
||||
| execute__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigCFP5Spine | :x: |
|
||||
| __ct__17CrystalCageMovingFPCc | :white_check_mark: |
|
||||
| init__17CrystalCageMovingFRC12JMapInfoIter | :white_check_mark: |
|
||||
| exeBreakBig__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| exeBreakSmall__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| exeBreakAll__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| exeDemoTicoMove__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| exeDemoTicoStop__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| exeDemoTicoChange__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| kill__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| control__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| receiveOtherMsg__17CrystalCageMovingFUlP9HitSensorP9HitSensor | :white_check_mark: |
|
||||
| crashMario__17CrystalCageMovingFP9HitSensorP9HitSensor | :white_check_mark: |
|
||||
| updateHitSensor__17CrystalCageMovingFP9HitSensor | :white_check_mark: |
|
||||
| connectToScene__17CrystalCageMovingFRC19MapObjActorInitInfo | :white_check_mark: |
|
||||
| initDummyModel__17CrystalCageMovingFRC12JMapInfoIter | :white_check_mark: |
|
||||
| startBreakDemo__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| isNerveTypeEnd__17CrystalCageMovingCFv | :white_check_mark: |
|
||||
| __dt__17CrystalCageMovingFv | :white_check_mark: |
|
||||
| __sinit_\CrystalCageMoving_cpp | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopFv | :white_check_mark: |
|
||||
| __ct__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeFv | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving34CrystalCageMovingNrvDemoTicoChangeCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoStopCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving32CrystalCageMovingNrvDemoTicoMoveCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakAllCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving30CrystalCageMovingNrvBreakSmallCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving29CrystalCageMovingNrvWaitSmallCFP5Spine | :white_check_mark: |
|
||||
| executeOnEnd__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving28CrystalCageMovingNrvBreakBigCFP5Spine | :white_check_mark: |
|
||||
| execute__Q220NrvCrystalCageMoving27CrystalCageMovingNrvWaitBigCFP5Spine | :white_check_mark: |
|
||||
|
||||
|
||||
# CrystalSwitch.o
|
||||
|
@ -18,5 +18,16 @@ public:\
|
||||
static name sInstance;\
|
||||
};\
|
||||
|
||||
#define NERVE_EXECEND(name)\
|
||||
class name : public Nerve\
|
||||
{\
|
||||
public:\
|
||||
name() NO_INLINE {\
|
||||
};\
|
||||
virtual void execute(Spine *) const;\
|
||||
virtual void executeOnEnd(Spine *) const;\
|
||||
static name sInstance;\
|
||||
};\
|
||||
|
||||
#define INIT_NERVE(name)\
|
||||
name name::sInstance;
|
49
include/Game/MapObj/CrystalCageMoving.h
Normal file
49
include/Game/MapObj/CrystalCageMoving.h
Normal file
@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/MapObj/MapObjActor.h"
|
||||
#include "Game/LiveActor/ModelObj.h"
|
||||
|
||||
namespace {
|
||||
TVec3f sDummyModelOffset;
|
||||
};
|
||||
|
||||
class CrystalCageMoving : public MapObjActor {
|
||||
public:
|
||||
CrystalCageMoving(const char *);
|
||||
|
||||
virtual ~CrystalCageMoving();
|
||||
virtual void init(const JMapInfoIter &);
|
||||
virtual void kill();
|
||||
virtual void control();
|
||||
virtual void updateHitSensor(HitSensor *);
|
||||
virtual bool receiveOtherMsg(u32, HitSensor *, HitSensor *);
|
||||
virtual void connectToScene(const MapObjActorInitInfo &);
|
||||
|
||||
void exeBreakBig();
|
||||
void exeBreakSmall();
|
||||
void exeBreakAll();
|
||||
void exeDemoTicoMove();
|
||||
void exeDemoTicoStop();
|
||||
void exeDemoTicoChange();
|
||||
void crashMario(HitSensor *, HitSensor *);
|
||||
void initDummyModel(const JMapInfoIter &);
|
||||
void startBreakDemo();
|
||||
bool isNerveTypeEnd() const;
|
||||
|
||||
ModelObj* mTicoModel; // _C4
|
||||
TPos3f _C8;
|
||||
ActorCameraInfo* mCameraInfo; // _F8
|
||||
TVec3f _FC;
|
||||
u8 _108;
|
||||
};
|
||||
|
||||
namespace NrvCrystalCageMoving {
|
||||
NERVE(CrystalCageMovingNrvWaitBig);
|
||||
NERVE_EXECEND(CrystalCageMovingNrvBreakBig);
|
||||
NERVE(CrystalCageMovingNrvWaitSmall);
|
||||
NERVE(CrystalCageMovingNrvBreakSmall);
|
||||
NERVE(CrystalCageMovingNrvBreakAll);
|
||||
NERVE(CrystalCageMovingNrvDemoTicoMove);
|
||||
NERVE(CrystalCageMovingNrvDemoTicoStop);
|
||||
NERVE(CrystalCageMovingNrvDemoTicoChange);
|
||||
};
|
@ -13,6 +13,8 @@ namespace MR {
|
||||
void startAnimCameraTargetSelf(const LiveActor *, const ActorCameraInfo *, const char *, s32, f32);
|
||||
void startActorCameraTargetOther(const LiveActor *, const ActorCameraInfo *, const CameraTargetArg &, s32);
|
||||
|
||||
void startActorCameraNoTarget(const LiveActor *, const ActorCameraInfo *, s32);
|
||||
|
||||
void initAnimCamera(const LiveActor *, const ActorCameraInfo *, const char *);
|
||||
|
||||
bool isExistActorCamera(const ActorCameraInfo *);
|
||||
|
@ -24,6 +24,8 @@ namespace MR {
|
||||
|
||||
bool isDemoActive();
|
||||
|
||||
bool isDemoExist(const char *);
|
||||
|
||||
bool isPowerStarGetDemoActive();
|
||||
|
||||
bool tryStartDemo(LiveActor *, const char *);
|
||||
@ -35,4 +37,6 @@ namespace MR {
|
||||
|
||||
void requestStartDemoMarioPuppetableWithoutCinmeaFrame(LiveActor *, const char *, const Nerve *, const Nerve *);
|
||||
void requestStartDemoWithoutCinemaFrame(LiveActor *, const char *, const Nerve *, const Nerve *);
|
||||
|
||||
void requestStartTimeKeepDemo(LiveActor *, const char *, const Nerve *, const Nerve *, const char *);
|
||||
};
|
@ -189,6 +189,7 @@ namespace MR {
|
||||
|
||||
|
||||
void setBrkFrame(const LiveActor *, f32);
|
||||
void setBrkFrameAndStop(const LiveActor *, f32);
|
||||
void setBrkFrameEndAndStop(const LiveActor *);
|
||||
|
||||
void setBckFrameAtRandom(const LiveActor *);
|
||||
|
@ -102,6 +102,7 @@ namespace MR {
|
||||
bool tryRumblePadVeryWeak(const void *, s32);
|
||||
bool tryRumblePadMiddle(const void *, s32);
|
||||
bool tryRumblePadStrong(const void *, s32);
|
||||
bool tryRumblePadVeryStrong(const void *, s32);
|
||||
|
||||
void declareCoin(const NameObj *, s32);
|
||||
void getDeclareRemnantCoinCount(const NameObj *);
|
||||
@ -133,6 +134,7 @@ namespace MR {
|
||||
|
||||
void shakeCameraNormal();
|
||||
void shakeCameraStrong();
|
||||
void shakeCameraVeryStrong();
|
||||
|
||||
bool isInWater(const TVec3f &);
|
||||
|
||||
|
294
source/Game/MapObj/CrystalCageMoving.cpp
Normal file
294
source/Game/MapObj/CrystalCageMoving.cpp
Normal file
@ -0,0 +1,294 @@
|
||||
#include "Game/MapObj/CrystalCageMoving.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
|
||||
CrystalCageMoving::CrystalCageMoving(const char *pName) : MapObjActor(pName) {
|
||||
mTicoModel = NULL;
|
||||
mCameraInfo = NULL;
|
||||
_FC.x = 0.0f;
|
||||
_FC.y = 0.0f;
|
||||
_FC.z = 0.0f;
|
||||
_108 = 0;
|
||||
_C8.identity();
|
||||
}
|
||||
|
||||
void CrystalCageMoving::init(const JMapInfoIter &rIter) {
|
||||
MapObjActor::init(rIter);
|
||||
MapObjActorInitInfo info;
|
||||
info.setupHioNode("地形オブジェ");
|
||||
info.setupDefaultPos();
|
||||
info.setupConnectToScene();
|
||||
info.setupEffect(0);
|
||||
info.setupSound(4);
|
||||
info.setupNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvWaitBig::sInstance);
|
||||
info.setupRailMover();
|
||||
info.setupHitSensorCallBack();
|
||||
|
||||
TVec3f vec;
|
||||
vec.x = 0.0f;
|
||||
vec.y = 0.0f;
|
||||
vec.z = 0.0f;
|
||||
info.setupHitSensorParam(4, 350.0f, vec);
|
||||
initialize(rIter, info);
|
||||
_FC.set<f32>(mPosition);
|
||||
initDummyModel(rIter);
|
||||
MR::initActorCamera(this, rIter, &mCameraInfo);
|
||||
MR::startBck(this, "Wait", NULL);
|
||||
|
||||
if (MR::isDemoExist("脱出スピドラ出現")) {
|
||||
MR::registerDemoActionNerve(this, &NrvCrystalCageMoving::CrystalCageMovingNrvDemoTicoMove::sInstance, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::exeBreakBig() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
MR::startBck(this, "CoreWait", NULL);
|
||||
MR::startActorCameraNoTarget(this, mCameraInfo, -1);
|
||||
MR::setSensorRadius(this, "body", 30.0f);
|
||||
_108 = 1;
|
||||
MR::emitEffect(this, "BreakOutside");
|
||||
MR::startSound(this, "SE_OJ_CRY_CAGE_MV_BREAK_EDG", -1, -1);
|
||||
}
|
||||
|
||||
if (MR::isStep(this, 10)) {
|
||||
setNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvWaitSmall::sInstance);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::exeBreakSmall() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
startBreakDemo();
|
||||
MR::emitEffect(this, "BreakInside");
|
||||
MR::startSound(this, "SE_OJ_CRY_CAGE_MV_BREAK_OUT", -1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::exeBreakAll() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
startBreakDemo();
|
||||
MR::emitEffect(this, "BreakOutside");
|
||||
MR::emitEffect(this, "BreakInside");
|
||||
MR::startSound(this, "SE_OJ_CRY_CAGE_MV_BREAK_ALL", -1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::exeDemoTicoMove() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
MR::startBck(mTicoModel, "Fly", NULL);
|
||||
MR::startSound(mTicoModel, "SE_SM_TICO_SPIN", -1, -1);
|
||||
}
|
||||
|
||||
TVec3f stack_14;
|
||||
stack_14.subInline2(_FC, mPosition);
|
||||
f32 nerveRate = MR::calcNerveRate(this, 0x1E);
|
||||
TVec3f stack_8;
|
||||
JMAVECScaleAdd(stack_14.toCVec(), mPosition.toCVec(), stack_8.toVec(), nerveRate);
|
||||
_C8.setTrans(stack_8);
|
||||
|
||||
if (MR::isStep(this, 0x1E)) {
|
||||
setNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvDemoTicoStop::sInstance);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::exeDemoTicoStop() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
_C8.set(getBaseMtx());
|
||||
_C8.setTrans(_FC);
|
||||
MR::setBckRate(mTicoModel, 1.5f);
|
||||
}
|
||||
|
||||
if (MR::isStep(this, 30)) {
|
||||
setNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvDemoTicoChange::sInstance);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::exeDemoTicoChange() {
|
||||
if (MR::isFirstStep(this)) {
|
||||
MR::startBck(mTicoModel, "Metamorphosis", NULL);
|
||||
MR::startSound(mTicoModel, "SE_SM_TICO_METAMORPHOSE", -1, -1);
|
||||
MR::setBckRate(mTicoModel, 1.5f);
|
||||
}
|
||||
|
||||
if (MR::isBckStopped(mTicoModel)) {
|
||||
kill();
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::kill() {
|
||||
if (mTicoModel) {
|
||||
mTicoModel->kill();
|
||||
}
|
||||
|
||||
MapObjActor::kill();
|
||||
}
|
||||
|
||||
void CrystalCageMoving::control() {
|
||||
if (!isNerveTypeEnd()) {
|
||||
MapObjActor::control();
|
||||
_C8.set(MR::getJointMtx(this, 0));
|
||||
TVec3f trans;
|
||||
PSMTXMultVec(_C8.toMtxPtr(), sDummyModelOffset.toCVec(), trans.toVec());
|
||||
_C8.setTrans(trans);
|
||||
}
|
||||
}
|
||||
|
||||
bool CrystalCageMoving::receiveOtherMsg(u32 msg, HitSensor *a2, HitSensor *a3) {
|
||||
if (isNerveTypeEnd()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (msg == 69) {
|
||||
crashMario(a2, a3);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void CrystalCageMoving::crashMario(HitSensor *a1, HitSensor *a2) {
|
||||
MR::tryRumblePadVeryStrong(this, 0);
|
||||
MR::shakeCameraVeryStrong();
|
||||
|
||||
if (_108) {
|
||||
setNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvBreakSmall::sInstance);
|
||||
}
|
||||
else {
|
||||
f32 sensorDist = PSVECDistance(a2->mPosition.toCVec(), a1->mPosition.toCVec());
|
||||
f32 sensorObjDist = PSVECDistance(mPosition.toCVec(), a1->mPosition.toCVec());
|
||||
|
||||
if (sensorDist < 30.0f && sensorObjDist < 450.0f) {
|
||||
setNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvBreakAll::sInstance);
|
||||
}
|
||||
else {
|
||||
setNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvBreakBig::sInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::updateHitSensor(HitSensor *pSensor) {
|
||||
if (!_108) {
|
||||
pSensor->mPosition.set<f32>(mPosition);
|
||||
}
|
||||
else {
|
||||
f32 radius = pSensor->mRadius;
|
||||
TMtx34f joint_mtx;
|
||||
joint_mtx.set(MR::getJointMtx(this, NULL));
|
||||
TVec3f joint_pos;
|
||||
f32 z = joint_mtx.mMtx[2][1];
|
||||
f32 y = joint_mtx.mMtx[1][1];
|
||||
f32 x = joint_mtx.mMtx[0][1];
|
||||
joint_pos.set<f32>(x, y, z);
|
||||
TVec3f stack_14;
|
||||
JMAVECScaleAdd(joint_pos.toCVec(), mPosition.toCVec(), stack_14.toVec(), (-450.0f + radius));
|
||||
TVec3f stack_8;
|
||||
JMAVECScaleAdd(joint_pos.toCVec(), mPosition.toCVec(), stack_8.toVec(), (450.0f - radius));
|
||||
MR::calcPerpendicFootToLineInside(&pSensor->mPosition, *MR::getPlayerPos(), stack_14, stack_8);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::connectToScene(const MapObjActorInitInfo &rInfo) {
|
||||
if (rInfo.mConnectToScene) {
|
||||
MR::connectToSceneCrystal(this);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::initDummyModel(const JMapInfoIter &rIter) {
|
||||
_C8.set(MR::getJointMtx(this, 0));
|
||||
TVec3f stack_8;
|
||||
PSMTXMultVec(_C8.toMtxPtr(), sDummyModelOffset.toCVec(), stack_8.toVec());
|
||||
_C8.setTrans(stack_8);
|
||||
mTicoModel = new ModelObj("動くクリスタルケージ中身", "Tico", _C8.toMtxPtr(), 0x21, -2, -2, false);
|
||||
mTicoModel->initWithoutIter();
|
||||
ModelObj* tico = mTicoModel;
|
||||
tico->mScale.x = 3.0f;
|
||||
tico->mScale.y = 3.0f;
|
||||
tico->mScale.z = 3.0f;
|
||||
MR::startBrk(mTicoModel, "ColorChange");
|
||||
MR::setBrkFrameAndStop(mTicoModel, 0.0f);
|
||||
|
||||
if (MR::isDemoCast(this, NULL)) {
|
||||
MR::tryRegisterDemoCast(mTicoModel, rIter);
|
||||
}
|
||||
}
|
||||
|
||||
void CrystalCageMoving::startBreakDemo() {
|
||||
MR::startSound(this, "SE_OJ_CRY_CAGE_MV_TICO_APR", -1, -1);
|
||||
MR::requestStartTimeKeepDemo(this, "脱出スピドラ出現", NULL, NULL, "クリスタル破壊");
|
||||
MR::hideModel(this);
|
||||
ModelObj* tico = mTicoModel;
|
||||
tico->mScale.x = 1.0f;
|
||||
tico->mScale.y = 1.0f;
|
||||
tico->mScale.z = 1.0f;
|
||||
}
|
||||
|
||||
bool CrystalCageMoving::isNerveTypeEnd() const {
|
||||
bool ret = false;
|
||||
|
||||
if (isNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvBreakBig::sInstance) ||
|
||||
isNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvBreakSmall::sInstance) ||
|
||||
isNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvBreakAll::sInstance) ||
|
||||
isNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvDemoTicoMove::sInstance) ||
|
||||
isNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvDemoTicoStop::sInstance) ||
|
||||
isNerve(&NrvCrystalCageMoving::CrystalCageMovingNrvDemoTicoChange::sInstance)) {
|
||||
ret = true;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
CrystalCageMoving::~CrystalCageMoving() {
|
||||
|
||||
}
|
||||
|
||||
namespace NrvCrystalCageMoving {
|
||||
INIT_NERVE(CrystalCageMovingNrvWaitBig);
|
||||
INIT_NERVE(CrystalCageMovingNrvBreakBig);
|
||||
INIT_NERVE(CrystalCageMovingNrvWaitSmall);
|
||||
INIT_NERVE(CrystalCageMovingNrvBreakSmall);
|
||||
INIT_NERVE(CrystalCageMovingNrvBreakAll);
|
||||
INIT_NERVE(CrystalCageMovingNrvDemoTicoMove);
|
||||
INIT_NERVE(CrystalCageMovingNrvDemoTicoStop);
|
||||
INIT_NERVE(CrystalCageMovingNrvDemoTicoChange);
|
||||
|
||||
void CrystalCageMovingNrvDemoTicoChange::execute(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
cage->exeDemoTicoChange();
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvDemoTicoStop::execute(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
cage->exeDemoTicoStop();
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvDemoTicoMove::execute(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
cage->exeDemoTicoMove();
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvBreakAll::execute(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
cage->exeBreakAll();
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvBreakSmall::execute(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
cage->exeBreakSmall();
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvWaitSmall::execute(Spine *) const {
|
||||
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvBreakBig::executeOnEnd(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
MR::endActorCamera(cage, cage->mCameraInfo, true, -1);
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvBreakBig::execute(Spine *pSpine) const {
|
||||
CrystalCageMoving* cage = reinterpret_cast<CrystalCageMoving*>(pSpine->mExecutor);
|
||||
cage->exeBreakBig();
|
||||
}
|
||||
|
||||
void CrystalCageMovingNrvWaitBig::execute(Spine *) const {
|
||||
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user