EarthenPipe.o at 98%

This commit is contained in:
shibbo 2024-03-05 12:37:30 -05:00
parent 4f8a18a176
commit ef6232a654
15 changed files with 632 additions and 105 deletions

View File

@ -1654,56 +1654,56 @@ updateTriangle__19DynamicCollisionObjFv,DynamicCollisionObj.o,MapObj.a,false
updateCollisionHeader__19DynamicCollisionObjFv,DynamicCollisionObj.o,MapObj.a,false
__ct__Q29JGeometry8TVec2<f>FRCQ29JGeometry8TVec2<f>,DynamicCollisionObj.o,MapObj.a,false
createCollision__19DynamicCollisionObjFv,DynamicCollisionObj.o,MapObj.a,false
__ct__11EarthenPipeFPCc,EarthenPipe.o,MapObj.a,false
init__11EarthenPipeFRC12JMapInfoIter,EarthenPipe.o,MapObj.a,false
makeActorAppeared__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
tryShowUp__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
tryHideDown__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
isNerveShowUp__11EarthenPipeCFv,EarthenPipe.o,MapObj.a,false
exeWait__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exeReady__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exePlayerIn__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exeTargetPipeShowUp__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exePlayerOut__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exeInvalid__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exeShowUp__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
exeHideDown__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
control__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
__ct__11EarthenPipeFPCc,EarthenPipe.o,MapObj.a,true
init__11EarthenPipeFRC12JMapInfoIter,EarthenPipe.o,MapObj.a,true
makeActorAppeared__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
tryShowUp__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
tryHideDown__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
isNerveShowUp__11EarthenPipeCFv,EarthenPipe.o,MapObj.a,true
exeWait__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exeReady__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exePlayerIn__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exeTargetPipeShowUp__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exePlayerOut__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exeInvalid__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exeShowUp__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
exeHideDown__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
control__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
receiveOtherMsg__11EarthenPipeFUlP9HitSensorP9HitSensor,EarthenPipe.o,MapObj.a,false
calcTrans__11EarthenPipeFf,EarthenPipe.o,MapObj.a,false
processBgmPlayerIn__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
processBgmPlayerOut__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
calcTrans__11EarthenPipeFf,EarthenPipe.o,MapObj.a,true
processBgmPlayerIn__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
processBgmPlayerOut__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
__ct__19EarthenPipeMediatorFv,EarthenPipe.o,MapObj.a,true
entry__19EarthenPipeMediatorFP11EarthenPipeRC12JMapInfoIter,EarthenPipe.o,MapObj.a,true
__dt__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
__dt__19EarthenPipeMediatorFv,EarthenPipe.o,MapObj.a,false
__sinit_\EarthenPipe_cpp,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe18EarthenPipeNrvWaitFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe19EarthenPipeNrvReadyFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe21EarthenPipeNrvInvalidFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe18EarthenPipeNrvHideFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe18EarthenPipeNrvShowFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe20EarthenPipeNrvShowUpFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownFv,EarthenPipe.o,MapObj.a,false
__ct__Q214NrvEarthenPipe22EarthenPipeNrvHideDownFv,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe22EarthenPipeNrvHideDownCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe20EarthenPipeNrvShowUpCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe18EarthenPipeNrvShowCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe18EarthenPipeNrvHideCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe21EarthenPipeNrvInvalidCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe19EarthenPipeNrvReadyCFP5Spine,EarthenPipe.o,MapObj.a,false
execute__Q214NrvEarthenPipe18EarthenPipeNrvWaitCFP5Spine,EarthenPipe.o,MapObj.a,false
getBaseMtx__11EarthenPipeCFv,EarthenPipe.o,MapObj.a,false
calcAnim__11EarthenPipeFv,EarthenPipe.o,MapObj.a,false
__dt__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
__dt__19EarthenPipeMediatorFv,EarthenPipe.o,MapObj.a,true
__sinit_\EarthenPipe_cpp,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe18EarthenPipeNrvWaitFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe19EarthenPipeNrvReadyFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe21EarthenPipeNrvInvalidFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe18EarthenPipeNrvHideFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe18EarthenPipeNrvShowFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe20EarthenPipeNrvShowUpFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownFv,EarthenPipe.o,MapObj.a,true
__ct__Q214NrvEarthenPipe22EarthenPipeNrvHideDownFv,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe22EarthenPipeNrvHideDownCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe20EarthenPipeNrvShowUpCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe18EarthenPipeNrvShowCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe18EarthenPipeNrvHideCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe21EarthenPipeNrvInvalidCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe19EarthenPipeNrvReadyCFP5Spine,EarthenPipe.o,MapObj.a,true
execute__Q214NrvEarthenPipe18EarthenPipeNrvWaitCFP5Spine,EarthenPipe.o,MapObj.a,true
getBaseMtx__11EarthenPipeCFv,EarthenPipe.o,MapObj.a,true
calcAnim__11EarthenPipeFv,EarthenPipe.o,MapObj.a,true
__ct__Q212ElectricBall4BallFv,ElectricBall.o,MapObj.a,false
init__Q212ElectricBall4BallFP9LiveActor,ElectricBall.o,MapObj.a,false
updatePosition__Q212ElectricBall4BallFRCQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>,ElectricBall.o,MapObj.a,false

1 Symbol Name Object File Library Archive Matching
1654 updateCollisionHeader__19DynamicCollisionObjFv DynamicCollisionObj.o MapObj.a false
1655 __ct__Q29JGeometry8TVec2<f>FRCQ29JGeometry8TVec2<f> DynamicCollisionObj.o MapObj.a false
1656 createCollision__19DynamicCollisionObjFv DynamicCollisionObj.o MapObj.a false
1657 __ct__11EarthenPipeFPCc EarthenPipe.o MapObj.a false true
1658 init__11EarthenPipeFRC12JMapInfoIter EarthenPipe.o MapObj.a false true
1659 makeActorAppeared__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1660 tryShowUp__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1661 tryHideDown__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1662 isNerveShowUp__11EarthenPipeCFv EarthenPipe.o MapObj.a false true
1663 exeWait__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1664 exeReady__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1665 exePlayerIn__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1666 exeTargetPipeShowUp__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1667 exePlayerOut__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1668 exeInvalid__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1669 exeShowUp__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1670 exeHideDown__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1671 control__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1672 receiveOtherMsg__11EarthenPipeFUlP9HitSensorP9HitSensor EarthenPipe.o MapObj.a false
1673 calcTrans__11EarthenPipeFf EarthenPipe.o MapObj.a false true
1674 processBgmPlayerIn__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1675 processBgmPlayerOut__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1676 __ct__19EarthenPipeMediatorFv EarthenPipe.o MapObj.a true
1677 entry__19EarthenPipeMediatorFP11EarthenPipeRC12JMapInfoIter EarthenPipe.o MapObj.a true
1678 __dt__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1679 __dt__19EarthenPipeMediatorFv EarthenPipe.o MapObj.a false true
1680 __sinit_\EarthenPipe_cpp EarthenPipe.o MapObj.a false true
1681 __ct__Q214NrvEarthenPipe18EarthenPipeNrvWaitFv EarthenPipe.o MapObj.a false true
1682 __ct__Q214NrvEarthenPipe19EarthenPipeNrvReadyFv EarthenPipe.o MapObj.a false true
1683 __ct__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInFv EarthenPipe.o MapObj.a false true
1684 __ct__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpFv EarthenPipe.o MapObj.a false true
1685 __ct__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutFv EarthenPipe.o MapObj.a false true
1686 __ct__Q214NrvEarthenPipe21EarthenPipeNrvInvalidFv EarthenPipe.o MapObj.a false true
1687 __ct__Q214NrvEarthenPipe18EarthenPipeNrvHideFv EarthenPipe.o MapObj.a false true
1688 __ct__Q214NrvEarthenPipe18EarthenPipeNrvShowFv EarthenPipe.o MapObj.a false true
1689 __ct__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpFv EarthenPipe.o MapObj.a false true
1690 __ct__Q214NrvEarthenPipe20EarthenPipeNrvShowUpFv EarthenPipe.o MapObj.a false true
1691 __ct__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownFv EarthenPipe.o MapObj.a false true
1692 __ct__Q214NrvEarthenPipe22EarthenPipeNrvHideDownFv EarthenPipe.o MapObj.a false true
1693 execute__Q214NrvEarthenPipe22EarthenPipeNrvHideDownCFP5Spine EarthenPipe.o MapObj.a false true
1694 execute__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownCFP5Spine EarthenPipe.o MapObj.a false true
1695 execute__Q214NrvEarthenPipe20EarthenPipeNrvShowUpCFP5Spine EarthenPipe.o MapObj.a false true
1696 execute__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpCFP5Spine EarthenPipe.o MapObj.a false true
1697 execute__Q214NrvEarthenPipe18EarthenPipeNrvShowCFP5Spine EarthenPipe.o MapObj.a false true
1698 execute__Q214NrvEarthenPipe18EarthenPipeNrvHideCFP5Spine EarthenPipe.o MapObj.a false true
1699 execute__Q214NrvEarthenPipe21EarthenPipeNrvInvalidCFP5Spine EarthenPipe.o MapObj.a false true
1700 execute__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutCFP5Spine EarthenPipe.o MapObj.a false true
1701 execute__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpCFP5Spine EarthenPipe.o MapObj.a false true
1702 execute__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInCFP5Spine EarthenPipe.o MapObj.a false true
1703 execute__Q214NrvEarthenPipe19EarthenPipeNrvReadyCFP5Spine EarthenPipe.o MapObj.a false true
1704 execute__Q214NrvEarthenPipe18EarthenPipeNrvWaitCFP5Spine EarthenPipe.o MapObj.a false true
1705 getBaseMtx__11EarthenPipeCFv EarthenPipe.o MapObj.a false true
1706 calcAnim__11EarthenPipeFv EarthenPipe.o MapObj.a false true
1707 __ct__Q212ElectricBall4BallFv ElectricBall.o MapObj.a false
1708 init__Q212ElectricBall4BallFP9LiveActor ElectricBall.o MapObj.a false
1709 updatePosition__Q212ElectricBall4BallFRCQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>> ElectricBall.o MapObj.a false

View File

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

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "MapObj",
"message": "26.839%",
"message": "27.504%",
"color": "tan"
}

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.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) | 26.83907268926354% |
| [MapObj](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj.md) | 27.504706237194355% |
| [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% |

View File

@ -96,7 +96,7 @@
| [DriftWood.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/DriftWood.md) | 0.0% | 0 / 18 | 0.0% | :x:
| [DummyDisplayModel.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/DummyDisplayModel.md) | 0.0% | 0 / 16 | 0.0% | :x:
| [DynamicCollisionObj.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/DynamicCollisionObj.md) | 14.285714285714285% | 3 / 7 | 42.857142857142854% | :eight_pointed_black_star:
| [EarthenPipe.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/EarthenPipe.md) | 5.599472990777339% | 2 / 50 | 4.0% | :eight_pointed_black_star:
| [EarthenPipe.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/EarthenPipe.md) | 89.9209486166008% | 49 / 50 | 98.0% | :eight_pointed_black_star:
| [ElectricBall.o](https://github.com/shibbo/Petari/blob/master/docs/lib/MapObj/ElectricBall.md) | 0.0% | 0 / 27 | 0.0% | :x:
| [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:

View File

@ -5,57 +5,57 @@
| :white_check_mark: | Function is completed.
# 2 / 50 Completed -- (4.0%)
# 49 / 50 Completed -- (98.0%)
# EarthenPipe.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `__ct__11EarthenPipeFPCc` | :x: |
| `init__11EarthenPipeFRC12JMapInfoIter` | :x: |
| `makeActorAppeared__11EarthenPipeFv` | :x: |
| `tryShowUp__11EarthenPipeFv` | :x: |
| `tryHideDown__11EarthenPipeFv` | :x: |
| `isNerveShowUp__11EarthenPipeCFv` | :x: |
| `exeWait__11EarthenPipeFv` | :x: |
| `exeReady__11EarthenPipeFv` | :x: |
| `exePlayerIn__11EarthenPipeFv` | :x: |
| `exeTargetPipeShowUp__11EarthenPipeFv` | :x: |
| `exePlayerOut__11EarthenPipeFv` | :x: |
| `exeInvalid__11EarthenPipeFv` | :x: |
| `exeShowUp__11EarthenPipeFv` | :x: |
| `exeHideDown__11EarthenPipeFv` | :x: |
| `control__11EarthenPipeFv` | :x: |
| `__ct__11EarthenPipeFPCc` | :white_check_mark: |
| `init__11EarthenPipeFRC12JMapInfoIter` | :white_check_mark: |
| `makeActorAppeared__11EarthenPipeFv` | :white_check_mark: |
| `tryShowUp__11EarthenPipeFv` | :white_check_mark: |
| `tryHideDown__11EarthenPipeFv` | :white_check_mark: |
| `isNerveShowUp__11EarthenPipeCFv` | :white_check_mark: |
| `exeWait__11EarthenPipeFv` | :white_check_mark: |
| `exeReady__11EarthenPipeFv` | :white_check_mark: |
| `exePlayerIn__11EarthenPipeFv` | :white_check_mark: |
| `exeTargetPipeShowUp__11EarthenPipeFv` | :white_check_mark: |
| `exePlayerOut__11EarthenPipeFv` | :white_check_mark: |
| `exeInvalid__11EarthenPipeFv` | :white_check_mark: |
| `exeShowUp__11EarthenPipeFv` | :white_check_mark: |
| `exeHideDown__11EarthenPipeFv` | :white_check_mark: |
| `control__11EarthenPipeFv` | :white_check_mark: |
| `receiveOtherMsg__11EarthenPipeFUlP9HitSensorP9HitSensor` | :x: |
| `calcTrans__11EarthenPipeFf` | :x: |
| `processBgmPlayerIn__11EarthenPipeFv` | :x: |
| `processBgmPlayerOut__11EarthenPipeFv` | :x: |
| `calcTrans__11EarthenPipeFf` | :white_check_mark: |
| `processBgmPlayerIn__11EarthenPipeFv` | :white_check_mark: |
| `processBgmPlayerOut__11EarthenPipeFv` | :white_check_mark: |
| `__ct__19EarthenPipeMediatorFv` | :white_check_mark: |
| `entry__19EarthenPipeMediatorFP11EarthenPipeRC12JMapInfoIter` | :white_check_mark: |
| `__dt__11EarthenPipeFv` | :x: |
| `__dt__19EarthenPipeMediatorFv` | :x: |
| `__sinit_\EarthenPipe_cpp` | :x: |
| `__ct__Q214NrvEarthenPipe18EarthenPipeNrvWaitFv` | :x: |
| `__ct__Q214NrvEarthenPipe19EarthenPipeNrvReadyFv` | :x: |
| `__ct__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInFv` | :x: |
| `__ct__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpFv` | :x: |
| `__ct__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutFv` | :x: |
| `__ct__Q214NrvEarthenPipe21EarthenPipeNrvInvalidFv` | :x: |
| `__ct__Q214NrvEarthenPipe18EarthenPipeNrvHideFv` | :x: |
| `__ct__Q214NrvEarthenPipe18EarthenPipeNrvShowFv` | :x: |
| `__ct__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpFv` | :x: |
| `__ct__Q214NrvEarthenPipe20EarthenPipeNrvShowUpFv` | :x: |
| `__ct__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownFv` | :x: |
| `__ct__Q214NrvEarthenPipe22EarthenPipeNrvHideDownFv` | :x: |
| `execute__Q214NrvEarthenPipe22EarthenPipeNrvHideDownCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe20EarthenPipeNrvShowUpCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe18EarthenPipeNrvShowCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe18EarthenPipeNrvHideCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe21EarthenPipeNrvInvalidCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe19EarthenPipeNrvReadyCFP5Spine` | :x: |
| `execute__Q214NrvEarthenPipe18EarthenPipeNrvWaitCFP5Spine` | :x: |
| `getBaseMtx__11EarthenPipeCFv` | :x: |
| `calcAnim__11EarthenPipeFv` | :x: |
| `__dt__11EarthenPipeFv` | :white_check_mark: |
| `__dt__19EarthenPipeMediatorFv` | :white_check_mark: |
| `__sinit_\EarthenPipe_cpp` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe18EarthenPipeNrvWaitFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe19EarthenPipeNrvReadyFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe21EarthenPipeNrvInvalidFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe18EarthenPipeNrvHideFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe18EarthenPipeNrvShowFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe20EarthenPipeNrvShowUpFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownFv` | :white_check_mark: |
| `__ct__Q214NrvEarthenPipe22EarthenPipeNrvHideDownFv` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe22EarthenPipeNrvHideDownCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe28EarthenPipeNrvWaitToHideDownCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe20EarthenPipeNrvShowUpCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe26EarthenPipeNrvWaitToShowUpCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe18EarthenPipeNrvShowCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe18EarthenPipeNrvHideCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe21EarthenPipeNrvInvalidCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe23EarthenPipeNrvPlayerOutCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe30EarthenPipeNrvTargetPipeShowUpCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe22EarthenPipeNrvPlayerInCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe19EarthenPipeNrvReadyCFP5Spine` | :white_check_mark: |
| `execute__Q214NrvEarthenPipe18EarthenPipeNrvWaitCFP5Spine` | :white_check_mark: |
| `getBaseMtx__11EarthenPipeCFv` | :white_check_mark: |
| `calcAnim__11EarthenPipeFv` | :white_check_mark: |

View File

@ -1,5 +1,7 @@
#pragma once
#include <revolution.h>
class AudBgm {
public:
virtual void init() = 0;

View File

@ -1,6 +1,7 @@
#pragma once
#include "Game/AudioLib/AudBgm.hpp"
#include <revolution.h>
// temp
class AudBgmMgr {

View File

@ -12,19 +12,21 @@ public:
virtual void init(const JMapInfoIter &);
virtual void calcAnim();
virtual void makeActorAppeared();
virtual MtxPtr getBaseMtx();
virtual MtxPtr getBaseMtx() const;
virtual void control();
virtual bool receiveOtherMsg(u32, HitSensor *, HitSensor *);
bool tryShowUp();
bool tryHideDown();
bool isNerveShowUp();
bool isNerveShowUp() const;
void exeWait();
void exeReady();
void exePlayerIn();
void exeTargetPipeShowUp();
void exePlayerOut();
void exeInvalid();
inline void exeWaitToHideDown();
inline void exeWaitToShowUp();
void exeShowUp();
void exeHideDown();
void calcTrans(f32);
@ -43,7 +45,7 @@ public:
MtxPtr mTopJointMtx; // _B4
MtxPtr mBottomJointMtx; // _B8
TPos3f _BC;
u32 _EC;
LiveActor* mHostActor; // _EC
TPos3f _F0;
TMtx34f _120;
TMtx34f _150;
@ -61,7 +63,7 @@ public:
bool _19D;
bool _19E;
bool _19F;
ActorCameraInfo** mCameraInfo; // _1A0
ActorCameraInfo* mCameraInfo; // _1A0
};
class EarthenPipeMediator : public NameObj {
@ -80,4 +82,19 @@ public:
s32 mNumEntries; // _C
Entry* mPipeEntries; // _10
};
};
namespace NrvEarthenPipe {
NERVE_DECL(EarthenPipeNrvHideDown, EarthenPipe, EarthenPipe::exeHideDown);
NERVE_DECL(EarthenPipeNrvWaitToHideDown, EarthenPipe, EarthenPipe::exeWaitToHideDown);
NERVE_DECL(EarthenPipeNrvShowUp, EarthenPipe, EarthenPipe::exeShowUp);
NERVE_DECL(EarthenPipeNrvWaitToShowUp, EarthenPipe, EarthenPipe::exeWaitToShowUp);
NERVE_DECL_NULL(EarthenPipeNrvShow);
NERVE_DECL_NULL(EarthenPipeNrvHide);
NERVE_DECL(EarthenPipeNrvInvalid, EarthenPipe, EarthenPipe::exeInvalid);
NERVE_DECL(EarthenPipeNrvPlayerOut, EarthenPipe, EarthenPipe::exePlayerOut);
NERVE_DECL(EarthenPipeNrvTargetPipeShowUp, EarthenPipe, EarthenPipe::exeTargetPipeShowUp);
NERVE_DECL(EarthenPipeNrvPlayerIn, EarthenPipe, EarthenPipe::exePlayerIn);
NERVE_DECL(EarthenPipeNrvReady, EarthenPipe, EarthenPipe::exeReady);
NERVE_DECL(EarthenPipeNrvWait, EarthenPipe, EarthenPipe::exeWait);
};

View File

@ -36,6 +36,7 @@
#define SceneObj_NameObjExecuteHolder 0x58
#define SceneObj_QuakeEffectGenerator 0x5B
#define SceneObj_HeatHazeDirector 0x5D
#define SceneObj_EarthenPipeMediator 0x61
#define SceneObj_SkeletalFishBabyRailHolder 0x67
#define SceneObj_SkeletalFishRailHolder 0x68
#define SceneObj_FirePressureBulletHolder 0x6A

View File

@ -14,6 +14,7 @@ namespace MR {
void startActorCameraTargetOther(const LiveActor *, const ActorCameraInfo *, const CameraTargetArg &, s32);
void startMultiActorCameraNoTarget(const LiveActor *, const ActorCameraInfo *, const char *, s32);
void startMultiActorCameraTargetSelf(const LiveActor *, const ActorCameraInfo *, const char *, s32);
bool initActorCamera(const LiveActor *, const JMapInfoIter &, ActorCameraInfo **);

View File

@ -95,6 +95,8 @@ namespace MR {
bool tryGetItem(HitSensor *, HitSensor *);
TVec3f* getSensorPos(const HitSensor *);
bool isValidHitSensor(LiveActor *, const char *);
void validateHitSensors(LiveActor *);
void invalidateHitSensors(LiveActor *);

View File

@ -59,6 +59,9 @@ namespace MR {
bool isValidCalcViewAndEntry(const LiveActor *);
bool isValidDraw(const LiveActor *);
bool isValidCollisionParts(LiveActor *);
void setCollisionMtx(LiveActor *);
void invalidateClipping(LiveActor *);
bool isClipped(const LiveActor *);
@ -256,6 +259,7 @@ namespace MR {
ModelObj* createModelObjIndirectMapObj(const char *, const char *, MtxPtr);
ModelObj* createModelObjNoSilhouettedMapObj(const char *, const char *, MtxPtr);
ModelObj* createModelObjNpc(const char *, const char *, MtxPtr);
PartsModel* createPartsModelMapObj(LiveActor *, const char *, const char *, MtxPtr);
void sendMsgToGroupMember(u32, LiveActor *, HitSensor *, const char *);

View File

@ -93,9 +93,18 @@ namespace MR {
void endBindAndPlayerJumpWithRollLanding(LiveActor *, const TVec3f &, u32);
void endBindAndPLayerForceWeakGravityJumpInputOff(LiveActor *, const TVec3f &);
void startBckPlayer(const char *, s32);
void setPlayerFrontVec(const TVec3f &, s32);
void hidePlayer();
bool isPlayerSwimming();
void startBckPlayer(const char *, const char *);
bool isBckStoppedPlayer();
f64 getBckFrameMaxPlayer();
};

View File

@ -1,4 +1,450 @@
#include "Game/MapObj/EarthenPipe.hpp"
#include "Game/AudioLib/AudWrap.hpp"
#include "Game/GameAudio/AudStageBgmTable.hpp"
EarthenPipe::EarthenPipe(const char *pName) : LiveActor(pName) {
_8C.x = 0.0f;
_8C.y = 0.0f;
_8C.z = 0.0f;
_98.x = 0.0f;
_98.y = 1.0f;
_98.z = 0.0f;
_A4 = 100.0f;
mIsIgnoreGravity = false;
mPipeMode = 0;
_B0 = 0;
mTopJointMtx = nullptr;
mBottomJointMtx = nullptr;
mHostActor = nullptr;
_180 = 0.0f;
mHorizExitForce = 5.0f;
mVertExitForce = 20.0f;
mMusicChangeIdx = -1;
mMusicState = -1;
_194 = 0;
mPipeStreamModel = nullptr;
_19C = 0;
mCameraInfo = nullptr;
_F0.identity();
_120.identity();
_150.identity();
_BC.identity();
}
void EarthenPipe::init(const JMapInfoIter &rIter) {
MR::createSceneObj(SceneObj_EarthenPipeMediator);
MR::getSceneObj<EarthenPipeMediator*>(SceneObj_EarthenPipeMediator)->entry(this, rIter);
MR::initDefaultPos(this, rIter);
MR::getJMapInfoArg0NoInit(rIter, &mHorizExitForce);
MR::getJMapInfoArg1NoInit(rIter, &mVertExitForce);
MR::getJMapInfoArg2NoInit(rIter, &mPipeMode);
MR::getJMapInfoArg4NoInit(rIter, &mMusicChangeIdx);
MR::getJMapInfoArg5NoInit(rIter, &mMusicState);
MR::getJMapInfoArg6NoInit(rIter, &mIsIgnoreGravity);
s32 arg7 = 0;
MR::getJMapInfoArg7NoInit(rIter, &arg7);
bool isWaterPipe = false;
if (MR::isObjectName(rIter, "EarthenPipeInWater")) {
isWaterPipe = true;
}
_8C.set(mPosition);
MR::calcGravity(this);
initModelManagerWithAnm("EarthenPipe", nullptr, false);
mTopJointMtx = MR::getJointMtx(this, "Top");
mBottomJointMtx = MR::getJointMtx(this, "Bottom");
MR::startBrk(this, "EarthenPipe");
MR::setBrkFrameAndStop(this, arg7);
TPos3f v25;
v25.identity();
MR::makeMtxTR(v25.toMtxPtr(), this);
TVec3f v23;
v23.set(v25.mMtx[0][2], v25.mMtx[1][2], v25.mMtx[2][2]);
if (mIsIgnoreGravity) {
f32 z = v25.mMtx[2][1];
f32 y = v25.mMtx[1][1];
f32 x = v25.mMtx[0][1];
_98.set(x, y, z);
}
else {
_98.set(mGravity);
f32 _x = _98.x;
f32 mult = -1.0f;
f32 x = _x * mult;
f32 y = _98.y * mult;
f32 z = _98.z * mult;
_98.x = x;
_98.y = y;
_98.z = z;
}
TPos3f v24;
v24.identity();
MR::makeMtxUpFrontPos(&v24, _98, v23, _8C);
PSMTXCopy(v24.toMtxPtr(), mTopJointMtx);
JMath::gekko_ps_copy12(&_BC, &v24);
TVec3f v22(_8C);
TVec3f v21(_98);
v21.scale(50.0f);
v22.subtract(v21);
v24.mMtx[0][3] = v22.x;
v24.mMtx[1][3] = v22.y;
v24.mMtx[2][3] = v22.z;
PSMTXCopy(v24.toMtxPtr(), mBottomJointMtx);
MR::setBaseTRMtx(this, mTopJointMtx);
MR::connectToSceneMapObjNoCalcAnimStrongLight(this);
if (isWaterPipe) {
initHitSensor(3);
}
else {
initHitSensor(1);
}
MR::addHitSensorBinder(this, "binder", 8, 70.0f, TVec3f(0.0f, -50.0f, 0.0f));
if (isWaterPipe) {
MR::addHitSensorBinder(this, "BinderWaterUpper", 8, 200.0f, TVec3f(0.0f, 180.0f, 0.0f));
MR::addHitSensorBinder(this, "BinderWaterLower", 8, 80.0f, TVec3f(0.0f, 50.0f, 0.0f));
}
if (mPipeMode == 3) {
MR::initCollisionParts(this, "EarthenPipeS", getSensor("binder"), mTopJointMtx);
}
else {
MR::initCollisionParts(this, "EarthenPipe", getSensor("binder"), mTopJointMtx);
}
f32 v14 = (100.0f * mScale.y);
mScale.y = 1.0f;
_A4 = v14;
calcTrans(1.0f);
initEffectKeeper(0, nullptr, false);
MR::setEffectHostMtx(this, "LavaAppear", _BC.mMtx);
MR::setEffectHostMtx(this, "LavaVanish", _BC.mMtx);
initSound(4, false);
MR::initMultiActorCamera(this, rIter, &mCameraInfo, "出現");
initNerve(&NrvEarthenPipe::EarthenPipeNrvWait::sInstance);
if ((mPipeMode - 1) <= 1u) {
MR::invalidateCollisionParts(this);
calcTrans(0.0f);
MR::invalidateHitSensors(this);
MR::hideModel(this);
setNerve(&NrvEarthenPipe::EarthenPipeNrvHide::sInstance);
}
if (isWaterPipe) {
mPipeStreamModel = MR::createPartsModelMapObj(this, "土管水流", "EarthenPipeStream", nullptr);
MR::setClippingTypeSphere(mPipeStreamModel, 500.0f);
MR::tryStartAllAnim(mPipeStreamModel, "EarthenPipeStream");
mPipeStreamModel->appear();
_19C = 1;
}
else {
_19C = 0;
}
MR::useStageSwitchReadA(this, rIter);
MR::useStageSwitchWriteB(this, rIter);
MR::useStageSwitchSleep(this, rIter);
if (MR::tryRegisterDemoCast(this, rIter)) {
if (mPipeStreamModel != nullptr) {
MR::registerDemoSimpleCastAll(mPipeStreamModel);
}
}
else if (MR::isEqualStageName("HeavensDoorGalaxy")) {
MR::registerDemoSimpleCastAll(this);
}
makeActorAppeared();
}
void EarthenPipe::makeActorAppeared() {
LiveActor::makeActorAppeared();
if (isNerve(&NrvEarthenPipe::EarthenPipeNrvHide::sInstance)) {
MR::invalidateCollisionParts(this);
}
}
bool EarthenPipe::tryShowUp() {
MR::invalidateClipping(this);
MR::startMultiActorCameraTargetSelf(this, mCameraInfo, "出現", -1);
if (mPipeMode != 1 && mPipeMode != 2) {
return false;
}
setNerve(&NrvEarthenPipe::EarthenPipeNrvWaitToShowUp::sInstance);
return true;
}
bool EarthenPipe::tryHideDown() {
MR::validateClipping(this);
MR::endMultiActorCamera(this, mCameraInfo, "出現", true, -1);
if (!mPipeMode || (mPipeMode - 3) <= 1u) {
setNerve(&NrvEarthenPipe::EarthenPipeNrvInvalid::sInstance);
return false;
}
else {
if (mPipeMode == 2) {
mPipeMode = 0;
setNerve(&NrvEarthenPipe::EarthenPipeNrvInvalid::sInstance);
return false;
}
else {
setNerve(&NrvEarthenPipe::EarthenPipeNrvWaitToHideDown::sInstance);
return true;
}
}
}
bool EarthenPipe::isNerveShowUp() const {
bool ret;
if (isNerve(&NrvEarthenPipe::EarthenPipeNrvShowUp::sInstance) || isNerve(&NrvEarthenPipe::EarthenPipeNrvShowUp::sInstance)) {
ret = true;
}
else {
ret = false;
}
return ret;
}
void EarthenPipe::exeWait() {
if (MR::isValidSwitchA(this)) {
if (MR::isOnSwitchA(this)) {
if (!MR::isValidHitSensor(this, "binder")) {
MR::validateHitSensors(this);
if (mPipeStreamModel != nullptr) {
mPipeStreamModel->appear();
MR::startAction(mPipeStreamModel, "Appear");
_19C = 1;
}
}
}
else if (MR::isValidHitSensor(this, "binder")) {
MR::invalidateHitSensors(this);
if (mPipeStreamModel != nullptr) {
mPipeStreamModel->kill();
}
_19C = 0;
}
}
}
void EarthenPipe::exeReady() {
if (MR::isFirstStep(this)) {
MR::startBckPlayer("EarthenPipeReady", (const char*)0);
}
MR::blendMtx(_120.mMtx, _150.mMtx, MR::calcNerveRate(this, MR::getBckFrameMaxPlayer()), _F0.mMtx);
if (MR::isBckStoppedPlayer()) {
if (!MR::isPlayerDead()) {
setNerve(&NrvEarthenPipe::EarthenPipeNrvPlayerIn::sInstance);
}
}
}
void EarthenPipe::exePlayerIn() {
if (MR::isFirstStep(this)) {
MR::startBckPlayer("EarthenPipeIn", (const char*)0);
MR::startSystemSE("SE_DM_DOKAN_WARP", -1, -1);
processBgmPlayerIn();
}
if (MR::isBckStopped(mHostActor) && !MR::isPlayerDead()) {
JMath::gekko_ps_copy12(&_F0, _B0->getBaseMtx());
if (_B0->tryShowUp()) {
setNerve(&NrvEarthenPipe::EarthenPipeNrvTargetPipeShowUp::sInstance);
}
else {
setNerve(&NrvEarthenPipe::EarthenPipeNrvPlayerOut::sInstance);
}
}
}
void EarthenPipe::exeTargetPipeShowUp() {
if (MR::isFirstStep(this)) {
MR::hidePlayer();
}
if (!_B0->isNerveShowUp()) {
JMath::gekko_ps_copy12(&_F0, _B0->getBaseMtx());
MR::showPlayer();
setNerve(&NrvEarthenPipe::EarthenPipeNrvPlayerOut::sInstance);
}
}
void EarthenPipe::exePlayerOut() {
if (MR::isFirstStep(this)) {
MR::startBckPlayer("EarthenPipeOut", (const char*)nullptr);
MR::startSystemSE("SE_DM_DOKAN_WARP", -1, -1);
processBgmPlayerOut();
}
if (MR::isBckStopped(mHostActor)) {
MtxPtr baseMtx = _B0->getBaseMtx();
TVec3f v6((baseMtx)[0][2], (baseMtx)[1][2], (baseMtx)[2][2]);
TVec3f v5((baseMtx)[0][1], (baseMtx)[1][1], (baseMtx)[2][1]);
v6.scale(_B0->mHorizExitForce);
v5.scale(_B0->mVertExitForce);
TVec3f v4(v5);
if (!MR::isInWater(_B0->mPosition)) {
v4.add(v6);
}
MR::startSound(mHostActor, "SE_PM_JUMP_M", -1, -1);
MR::startSound(mHostActor, "SE_PV_JUMP_JOY", -1, -1);
MR::startBckPlayer("EarthenPipeJump", (const char*)nullptr);
MR::endBindAndPLayerForceWeakGravityJumpInputOff(this, v4);
mHostActor = nullptr;
_B0->tryHideDown();
if (!_194) {
if (MR::isValidSwitchB(this)) {
MR::onSwitchB(this);
}
}
setNerve(&NrvEarthenPipe::EarthenPipeNrvPlayerOut::sInstance);
}
}
inline bool isNear(const LiveActor *actor) {
return !(MR::isNearPlayer(actor, 100.0f));
}
void EarthenPipe::exeInvalid() {
bool near;
if (MR::isGreaterStep(this, 0x1E) && MR::isOnGroundPlayer()
|| mPipeMode == 4 && isNear(this)
|| MR::isPlayerSwimming() && isNear(this)) {
MR::validateClipping(this);
MR::validateHitSensors(this);
setNerve(&NrvEarthenPipe::EarthenPipeNrvWait::sInstance);
}
}
void EarthenPipe::exeShowUp() {
if (MR::isFirstStep(this)) {
MR::showModel(this);
MR::validateCollisionParts(this);
MR::emitEffect(this, "LavaAppear");
MR::startSystemSE("SE_SY_ITEM_APPEAR", -1, -1);
}
f32 easeIn = MR::getEaseInValue(getNerveStep() / 35.0f, 0.0f, 1.0f, 1.0f);
calcTrans(easeIn);
if (MR::isLessStep(this, 30)) {
MR::startLevelSound(this, "SE_OJ_LV_PIPE_APPEAR_MAGMA", -1, -1, -1);
}
if (MR::isStep(this, 30)) {
MR::deleteEffect(this, "LavaAppear");
setNerve(&NrvEarthenPipe::EarthenPipeNrvShow::sInstance);
}
}
void EarthenPipe::exeHideDown() {
if (MR::isFirstStep(this)) {
MR::emitEffect(this, "LavaVanish");
}
f32 easeIn = MR::getEaseInValue((15 - getNerveStep()) / 15.0f, 0.0f, 1.0f, 1.0f);
calcTrans(easeIn);
if (MR::isLessStep(this, 15)) {
MR::startLevelSound(this, "SE_OJ_LV_PIPE_VANISH_MAGMA", -1, -1, -1);
}
if (MR::isStep(this, 15)) {
MR::hideModel(this);
MR::invalidateCollisionParts(this);
MR::validateClipping(this);
MR::deleteEffect(this, "LavaVanish");
setNerve(&NrvEarthenPipe::EarthenPipeNrvHide::sInstance);
}
}
void EarthenPipe::control() {
MR::updateMaterial(this);
if (_19C) {
MR::startLevelSound(this, "SE_OJ_LV_PIPE_IN_WATER", -1, -1, -1);
}
}
// bool EarthenPipe::receiveOtherMsg(u32 msg, HitSensor *, HitSensor *) { }
void EarthenPipe::calcTrans(f32 a1) {
mPosition.set(_98);
mPosition.scale(a1 * _A4);
mPosition.add(_8C);
(mTopJointMtx)[0][3] = mPosition.x;
(mTopJointMtx)[1][3] = mPosition.y;
(mTopJointMtx)[2][3] = mPosition.z;
calcAndSetBaseMtx();
if (MR::isValidCollisionParts(this)) {
MR::setCollisionMtx(this);
}
}
void EarthenPipe::processBgmPlayerIn() {
s32 idx = _B0->mMusicChangeIdx;
if (idx >= 0) {
u32 bgmId = AudStageBgmTable::getBgmId(MR::getCurrentStageName(), idx);
if (bgmId != -1 ) {
s32 cur = AudWrap::getBgmMgr()->_10;
if (cur != bgmId) {
MR::stopStageBGM(60);
return;
}
s32 state = _B0->mMusicState;
if (state >= 0) {
s32 bgmState = AudStageBgmTable::getBgmState(MR::getCurrentStageName(), state);
if (bgmState >= 0) {
AudBgm* bgm = AudWrap::getStageBgm();
if (bgm != nullptr) {
bgm->changeTrackMuteState(bgmState, 240);
}
}
}
}
}
}
void EarthenPipe::processBgmPlayerOut() {
s32 idx = _B0->mMusicChangeIdx;
if (idx >= 0) {
u32 bgmId = AudStageBgmTable::getBgmId(MR::getCurrentStageName(), idx);
if (bgmId != -1) {
s32 cur = AudWrap::getBgmMgr()->_10;
if (cur == bgmId && MR::isPlayingStageBgm()) {
return;
}
AudWrap::startStageBgm(bgmId, false);
s32 state = _B0->mMusicState;
if (state >= 0) {
s32 bgmState = AudStageBgmTable::getBgmState(MR::getCurrentStageName(), state);
if (bgmState >= 0) {
AudBgm* bgm = AudWrap::getStageBgm();
if (bgm != nullptr) {
bgm->changeTrackMuteState(bgmState, 0);
}
}
}
}
}
}
EarthenPipeMediator::EarthenPipeMediator() : NameObj("土管仲介者") {
mNumEntries = 0;
@ -31,4 +477,48 @@ void EarthenPipeMediator::entry(EarthenPipe *pPipe, const JMapInfoIter &rIter) {
entry->_0 = pPipe;
entry->mPipeID = pipeID;
mNumEntries++;
}
}
EarthenPipe::~EarthenPipe() {
}
EarthenPipeMediator::~EarthenPipeMediator() {
}
namespace NrvEarthenPipe {
INIT_NERVE(EarthenPipeNrvHideDown);
INIT_NERVE(EarthenPipeNrvWaitToHideDown);
INIT_NERVE(EarthenPipeNrvShowUp);
INIT_NERVE(EarthenPipeNrvWaitToShowUp);
INIT_NERVE(EarthenPipeNrvShow);
INIT_NERVE(EarthenPipeNrvHide);
INIT_NERVE(EarthenPipeNrvInvalid);
INIT_NERVE(EarthenPipeNrvPlayerOut);
INIT_NERVE(EarthenPipeNrvTargetPipeShowUp);
INIT_NERVE(EarthenPipeNrvPlayerIn);
INIT_NERVE(EarthenPipeNrvReady);
INIT_NERVE(EarthenPipeNrvWait);
};
void EarthenPipe::exeWaitToHideDown() {
if (MR::isStep(this, 0x28)) {
setNerve(&NrvEarthenPipe::EarthenPipeNrvHideDown::sInstance);
}
}
void EarthenPipe::exeWaitToShowUp() {
if (MR::isStep(this, 0x14)) {
setNerve(&NrvEarthenPipe::EarthenPipeNrvShowUp::sInstance);
}
}
MtxPtr EarthenPipe::getBaseMtx() const {
return mTopJointMtx;
}
void EarthenPipe::calcAnim() {
}