Merge branch 'master' into master

This commit is contained in:
Lord-Giganticus 2024-09-23 09:29:55 -06:00 committed by GitHub
commit 416e6670bf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
48 changed files with 2618 additions and 854 deletions

View File

@ -1,35 +1,71 @@
---
BasedOnStyle: LLVM
AccessModifierOffset: '-4'
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignTrailingComments: 'true'
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakTemplateDeclarations: 'Yes'
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterControlStatement: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Stroustrup
ColumnLimit: '300'
CommentPragmas: '^ (IWYU pragma:|NOLINT)'
ConstructorInitializerIndentWidth: '4'
ContinuationIndentWidth: '4'
IndentWidth: '4'
InsertBraces: 'true'
Language: Cpp
MaxEmptyLinesToKeep: '1'
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
ColumnLimit: 150
CommentPragmas: '^ (IWYU pragma:|NOLINT)'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ForEachMacros: []
IncludeCategories:
- Regex: '^<[Ww]indows\.h>$'
Priority: 1
- Regex: '^<'
Priority: 2
- Regex: '^"'
Priority: 3
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBlockIndentWidth: '4'
PenaltyBreakBeforeFirstCallParameter: '19'
PenaltyBreakComment: '300'
PenaltyBreakFirstLessLess: '120'
PenaltyBreakString: '1000'
PenaltyExcessCharacter: '1000000'
PenaltyReturnTypeOnItsOwnLine: '60'
PointerAlignment: Right
ReflowComments: 'true'
SortIncludes: 'true'
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpacesBeforeTrailingComments: '4'
TabWidth: '4'
UseTab: Never
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 4
UseTab: Never

40
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Build Project
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup Multiarch
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
- name: Install Wine and Dependencies
run: |
sudo apt-get install -y wine32
sudo apt-get install -y xvfb
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10.10'
- name: Download file
run: |
wget https://shibbo.net/smg/baserom.dol
- name: Run setup.py
run: |
python3 setup.py
- name: Run build.py
run: |
python3 build.py

View File

@ -3,7 +3,7 @@ import subprocess
import sys
import os
import shutil
from ninja_syntax import Writer
from ninja import Writer
import pathlib
import hashlib

View File

@ -1513,84 +1513,84 @@ execute__Q215NrvHomingKiller25HomingKillerNrvChaseStartCFP5Spine,HomingKiller.o,
execute__Q215NrvHomingKiller19HomingKillerNrvMoveCFP5Spine,HomingKiller.o,Enemy.a,false
execute__Q215NrvHomingKiller24HomingKillerNrvMoveStartCFP5Spine,HomingKiller.o,Enemy.a,false
execute__Q215NrvHomingKiller21HomingKillerNrvAppearCFP5Spine,HomingKiller.o,Enemy.a,false
__dt__Q22MR46Vector<Q22MR31AssignableArray<P11ThrowingIce>>Fv,IceMerameraKing.o,Enemy.a,false
__ct__15IceMerameraKingFPCc,IceMerameraKing.o,Enemy.a,false
init__15IceMerameraKingFRC12JMapInfoIter,IceMerameraKing.o,Enemy.a,false
initAfterPlacement__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
kill__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
control__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeSearch__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeThrow__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
tearDownThrow__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeExtinguish__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeEscape__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeEscapeJump__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeDamage__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exePreRecover__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeRecover__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exePreAttack__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeAttack__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeAttackAfter__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeAngryDemo__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
exeDeathDemo__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
attackSensor__15IceMerameraKingFP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,false
receiveMsgPlayerAttack__15IceMerameraKingFUlP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,false
receiveOtherMsg__15IceMerameraKingFUlP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,false
addVelocityToInitPos__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
calcAndSetBaseMtx__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
isDeadAllIce__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
isEnableThrow__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
getDeadWeaponAndAppear__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
__dt__Q22MR46Vector<Q22MR31AssignableArray<P11ThrowingIce>>Fv,IceMerameraKing.o,Enemy.a,true
__ct__15IceMerameraKingFPCc,IceMerameraKing.o,Enemy.a,true
init__15IceMerameraKingFRC12JMapInfoIter,IceMerameraKing.o,Enemy.a,major
initAfterPlacement__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,major
kill__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
control__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeSearch__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeThrow__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,minor
tearDownThrow__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeExtinguish__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,minor
exeEscape__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeEscapeJump__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeDamage__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exePreRecover__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeRecover__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exePreAttack__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeAttack__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeAttackAfter__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeAngryDemo__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
exeDeathDemo__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
attackSensor__15IceMerameraKingFP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,true
receiveMsgPlayerAttack__15IceMerameraKingFUlP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,true
receiveOtherMsg__15IceMerameraKingFUlP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,true
addVelocityToInitPos__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
calcAndSetBaseMtx__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
isDeadAllIce__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
isEnableThrow__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
getDeadWeaponAndAppear__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,major
calcJoint__15IceMerameraKingFPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo,IceMerameraKing.o,Enemy.a,false
__ct__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,false
appear__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,false
control__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,false
attackSensor__24IceMerameraKingShockWaveFP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,false
__sinit_\IceMerameraKing_cpp,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing17HostTypeNrvSearchFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing16HostTypeNrvThrowFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing21HostTypeNrvExtinguishFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing17HostTypeNrvEscapeFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing17HostTypeNrvDamageFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing18HostTypeNrvRecoverFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing20HostTypeNrvPreAttackFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing17HostTypeNrvAttackFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitFv,IceMerameraKing.o,Enemy.a,false
__ct__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoFv,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing17HostTypeNrvAttackCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing20HostTypeNrvPreAttackCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing18HostTypeNrvRecoverCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing17HostTypeNrvDamageCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpCFP5Spine,IceMerameraKing.o,Enemy.a,false
executeOnEnd__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing21HostTypeNrvExtinguishCFP5Spine,IceMerameraKing.o,Enemy.a,false
executeOnEnd__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine,IceMerameraKing.o,Enemy.a,false
executeOnEnd__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine,IceMerameraKing.o,Enemy.a,false
executeOnEnd__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine,IceMerameraKing.o,Enemy.a,false
execute__Q218NrvIceMerameraKing17HostTypeNrvSearchCFP5Spine,IceMerameraKing.o,Enemy.a,false
__dt__40JointControlDelegator<15IceMerameraKing>Fv,IceMerameraKing.o,Enemy.a,false
calcJointMatrix__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo,IceMerameraKing.o,Enemy.a,false
calcJointMatrixAfterChild__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo,IceMerameraKing.o,Enemy.a,false
__dt__Q22MR31AssignableArray<P11ThrowingIce>Fv,IceMerameraKing.o,Enemy.a,false
__dt__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,false
__dt__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,false
__ct__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,true
appear__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,true
control__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,true
attackSensor__24IceMerameraKingShockWaveFP9HitSensorP9HitSensor,IceMerameraKing.o,Enemy.a,true
__sinit_\IceMerameraKing_cpp,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing17HostTypeNrvSearchFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing16HostTypeNrvThrowFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing21HostTypeNrvExtinguishFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing17HostTypeNrvEscapeFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing17HostTypeNrvDamageFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing18HostTypeNrvRecoverFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing20HostTypeNrvPreAttackFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing17HostTypeNrvAttackFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitFv,IceMerameraKing.o,Enemy.a,true
__ct__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoFv,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing17HostTypeNrvAttackCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing20HostTypeNrvPreAttackCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing18HostTypeNrvRecoverCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing17HostTypeNrvDamageCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpCFP5Spine,IceMerameraKing.o,Enemy.a,true
executeOnEnd__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing21HostTypeNrvExtinguishCFP5Spine,IceMerameraKing.o,Enemy.a,true
executeOnEnd__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine,IceMerameraKing.o,Enemy.a,true
executeOnEnd__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine,IceMerameraKing.o,Enemy.a,true
executeOnEnd__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine,IceMerameraKing.o,Enemy.a,true
execute__Q218NrvIceMerameraKing17HostTypeNrvSearchCFP5Spine,IceMerameraKing.o,Enemy.a,true
__dt__40JointControlDelegator<15IceMerameraKing>Fv,IceMerameraKing.o,Enemy.a,true
calcJointMatrix__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo,IceMerameraKing.o,Enemy.a,true
calcJointMatrixAfterChild__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo,IceMerameraKing.o,Enemy.a,true
__dt__Q22MR31AssignableArray<P11ThrowingIce>Fv,IceMerameraKing.o,Enemy.a,true
__dt__15IceMerameraKingFv,IceMerameraKing.o,Enemy.a,true
__dt__24IceMerameraKingShockWaveFv,IceMerameraKing.o,Enemy.a,true
__ct__13ItemGeneratorFv,ItemGenerator.o,Enemy.a,false
setTypeNone__13ItemGeneratorFv,ItemGenerator.o,Enemy.a,false
setTypeCoin__13ItemGeneratorFl,ItemGenerator.o,Enemy.a,false

1 Symbol Name Object File Library Archive Matching
1513 execute__Q215NrvHomingKiller19HomingKillerNrvMoveCFP5Spine HomingKiller.o Enemy.a false
1514 execute__Q215NrvHomingKiller24HomingKillerNrvMoveStartCFP5Spine HomingKiller.o Enemy.a false
1515 execute__Q215NrvHomingKiller21HomingKillerNrvAppearCFP5Spine HomingKiller.o Enemy.a false
1516 __dt__Q22MR46Vector<Q22MR31AssignableArray<P11ThrowingIce>>Fv IceMerameraKing.o Enemy.a false true
1517 __ct__15IceMerameraKingFPCc IceMerameraKing.o Enemy.a false true
1518 init__15IceMerameraKingFRC12JMapInfoIter IceMerameraKing.o Enemy.a false major
1519 initAfterPlacement__15IceMerameraKingFv IceMerameraKing.o Enemy.a false major
1520 kill__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1521 control__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1522 exeSearch__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1523 exeThrow__15IceMerameraKingFv IceMerameraKing.o Enemy.a false minor
1524 tearDownThrow__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1525 exeExtinguish__15IceMerameraKingFv IceMerameraKing.o Enemy.a false minor
1526 exeEscape__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1527 exeEscapeJump__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1528 exeDamage__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1529 exePreRecover__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1530 exeRecover__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1531 exePreAttack__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1532 exeAttack__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1533 exeAttackAfter__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1534 exeAngryDemo__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1535 exeDeathDemo__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1536 attackSensor__15IceMerameraKingFP9HitSensorP9HitSensor IceMerameraKing.o Enemy.a false true
1537 receiveMsgPlayerAttack__15IceMerameraKingFUlP9HitSensorP9HitSensor IceMerameraKing.o Enemy.a false true
1538 receiveOtherMsg__15IceMerameraKingFUlP9HitSensorP9HitSensor IceMerameraKing.o Enemy.a false true
1539 addVelocityToInitPos__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1540 calcAndSetBaseMtx__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1541 isDeadAllIce__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1542 isEnableThrow__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1543 getDeadWeaponAndAppear__15IceMerameraKingFv IceMerameraKing.o Enemy.a false major
1544 calcJoint__15IceMerameraKingFPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo IceMerameraKing.o Enemy.a false
1545 __ct__24IceMerameraKingShockWaveFv IceMerameraKing.o Enemy.a false true
1546 appear__24IceMerameraKingShockWaveFv IceMerameraKing.o Enemy.a false true
1547 control__24IceMerameraKingShockWaveFv IceMerameraKing.o Enemy.a false true
1548 attackSensor__24IceMerameraKingShockWaveFP9HitSensorP9HitSensor IceMerameraKing.o Enemy.a false true
1549 __sinit_\IceMerameraKing_cpp IceMerameraKing.o Enemy.a false true
1550 __ct__Q218NrvIceMerameraKing17HostTypeNrvSearchFv IceMerameraKing.o Enemy.a false true
1551 __ct__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoFv IceMerameraKing.o Enemy.a false true
1552 __ct__Q218NrvIceMerameraKing16HostTypeNrvThrowFv IceMerameraKing.o Enemy.a false true
1553 __ct__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndFv IceMerameraKing.o Enemy.a false true
1554 __ct__Q218NrvIceMerameraKing21HostTypeNrvExtinguishFv IceMerameraKing.o Enemy.a false true
1555 __ct__Q218NrvIceMerameraKing17HostTypeNrvEscapeFv IceMerameraKing.o Enemy.a false true
1556 __ct__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpFv IceMerameraKing.o Enemy.a false true
1557 __ct__Q218NrvIceMerameraKing17HostTypeNrvDamageFv IceMerameraKing.o Enemy.a false true
1558 __ct__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverFv IceMerameraKing.o Enemy.a false true
1559 __ct__Q218NrvIceMerameraKing18HostTypeNrvRecoverFv IceMerameraKing.o Enemy.a false true
1560 __ct__Q218NrvIceMerameraKing20HostTypeNrvPreAttackFv IceMerameraKing.o Enemy.a false true
1561 __ct__Q218NrvIceMerameraKing17HostTypeNrvAttackFv IceMerameraKing.o Enemy.a false true
1562 __ct__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterFv IceMerameraKing.o Enemy.a false true
1563 __ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stFv IceMerameraKing.o Enemy.a false true
1564 __ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndFv IceMerameraKing.o Enemy.a false true
1565 __ct__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitFv IceMerameraKing.o Enemy.a false true
1566 __ct__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoFv IceMerameraKing.o Enemy.a false true
1567 execute__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoCFP5Spine IceMerameraKing.o Enemy.a false true
1568 execute__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitCFP5Spine IceMerameraKing.o Enemy.a false true
1569 execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndCFP5Spine IceMerameraKing.o Enemy.a false true
1570 execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stCFP5Spine IceMerameraKing.o Enemy.a false true
1571 execute__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterCFP5Spine IceMerameraKing.o Enemy.a false true
1572 execute__Q218NrvIceMerameraKing17HostTypeNrvAttackCFP5Spine IceMerameraKing.o Enemy.a false true
1573 execute__Q218NrvIceMerameraKing20HostTypeNrvPreAttackCFP5Spine IceMerameraKing.o Enemy.a false true
1574 execute__Q218NrvIceMerameraKing18HostTypeNrvRecoverCFP5Spine IceMerameraKing.o Enemy.a false true
1575 execute__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverCFP5Spine IceMerameraKing.o Enemy.a false true
1576 execute__Q218NrvIceMerameraKing17HostTypeNrvDamageCFP5Spine IceMerameraKing.o Enemy.a false true
1577 execute__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpCFP5Spine IceMerameraKing.o Enemy.a false true
1578 executeOnEnd__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine IceMerameraKing.o Enemy.a false true
1579 execute__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine IceMerameraKing.o Enemy.a false true
1580 execute__Q218NrvIceMerameraKing21HostTypeNrvExtinguishCFP5Spine IceMerameraKing.o Enemy.a false true
1581 executeOnEnd__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine IceMerameraKing.o Enemy.a false true
1582 execute__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine IceMerameraKing.o Enemy.a false true
1583 executeOnEnd__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine IceMerameraKing.o Enemy.a false true
1584 execute__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine IceMerameraKing.o Enemy.a false true
1585 executeOnEnd__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine IceMerameraKing.o Enemy.a false true
1586 execute__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine IceMerameraKing.o Enemy.a false true
1587 execute__Q218NrvIceMerameraKing17HostTypeNrvSearchCFP5Spine IceMerameraKing.o Enemy.a false true
1588 __dt__40JointControlDelegator<15IceMerameraKing>Fv IceMerameraKing.o Enemy.a false true
1589 calcJointMatrix__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo IceMerameraKing.o Enemy.a false true
1590 calcJointMatrixAfterChild__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo IceMerameraKing.o Enemy.a false true
1591 __dt__Q22MR31AssignableArray<P11ThrowingIce>Fv IceMerameraKing.o Enemy.a false true
1592 __dt__15IceMerameraKingFv IceMerameraKing.o Enemy.a false true
1593 __dt__24IceMerameraKingShockWaveFv IceMerameraKing.o Enemy.a false true
1594 __ct__13ItemGeneratorFv ItemGenerator.o Enemy.a false
1595 setTypeNone__13ItemGeneratorFv ItemGenerator.o Enemy.a false
1596 setTypeCoin__13ItemGeneratorFl ItemGenerator.o Enemy.a false

View File

@ -324,27 +324,27 @@ createScene<9GameScene>__26@unnamed@SceneFactory_cpp@Fv_P5Scene,SceneFactory.o,S
createScene<17IntermissionScene>__26@unnamed@SceneFactory_cpp@Fv_P5Scene,SceneFactory.o,Scene.a,false
createScene<9LogoScene>__26@unnamed@SceneFactory_cpp@Fv_P5Scene,SceneFactory.o,Scene.a,false
createScene__2MRFPCc,SceneFactory.o,Scene.a,false
startStageFileLoad__13SceneFunctionFv,SceneFunction.o,Scene.a,false
waitDoneStageFileLoad__13SceneFunctionFv,SceneFunction.o,Scene.a,false
startActorFileLoadCommon__13SceneFunctionFv,SceneFunction.o,Scene.a,false
startActorFileLoadScenario__13SceneFunctionFv,SceneFunction.o,Scene.a,false
startActorPlacement__13SceneFunctionFv,SceneFunction.o,Scene.a,false
initAfterScenarioSelected__13SceneFunctionFv,SceneFunction.o,Scene.a,false
initForNameObj__13SceneFunctionFv,SceneFunction.o,Scene.a,false
initForLiveActor__13SceneFunctionFv,SceneFunction.o,Scene.a,false
initEffectSystem__13SceneFunctionFUlUl,SceneFunction.o,Scene.a,false
allocateDrawBufferActorList__13SceneFunctionFv,SceneFunction.o,Scene.a,false
execute__12CategoryListFQ22MR12MovementType,SceneFunction.o,Scene.a,false
execute__12CategoryListFQ22MR12CalcAnimType,SceneFunction.o,Scene.a,false
execute__12CategoryListFQ22MR8DrawType,SceneFunction.o,Scene.a,false
entryDrawBuffer2D__12CategoryListFv,SceneFunction.o,Scene.a,false
entryDrawBuffer3D__12CategoryListFv,SceneFunction.o,Scene.a,false
entryDrawBufferMirror__12CategoryListFv,SceneFunction.o,Scene.a,false
drawOpa__12CategoryListFQ22MR14DrawBufferType,SceneFunction.o,Scene.a,false
drawXlu__12CategoryListFQ22MR14DrawBufferType,SceneFunction.o,Scene.a,false
requestMovementOn__12CategoryListFQ22MR12MovementType,SceneFunction.o,Scene.a,false
requestMovementOff__12CategoryListFQ22MR12MovementType,SceneFunction.o,Scene.a,false
createHioBasicNode__13SceneFunctionFP5Scene,SceneFunction.o,Scene.a,false
startStageFileLoad__13SceneFunctionFv,SceneFunction.o,Scene.a,true
waitDoneStageFileLoad__13SceneFunctionFv,SceneFunction.o,Scene.a,true
startActorFileLoadCommon__13SceneFunctionFv,SceneFunction.o,Scene.a,true
startActorFileLoadScenario__13SceneFunctionFv,SceneFunction.o,Scene.a,true
startActorPlacement__13SceneFunctionFv,SceneFunction.o,Scene.a,true
initAfterScenarioSelected__13SceneFunctionFv,SceneFunction.o,Scene.a,true
initForNameObj__13SceneFunctionFv,SceneFunction.o,Scene.a,true
initForLiveActor__13SceneFunctionFv,SceneFunction.o,Scene.a,true
initEffectSystem__13SceneFunctionFUlUl,SceneFunction.o,Scene.a,true
allocateDrawBufferActorList__13SceneFunctionFv,SceneFunction.o,Scene.a,true
execute__12CategoryListFQ22MR12MovementType,SceneFunction.o,Scene.a,true
execute__12CategoryListFQ22MR12CalcAnimType,SceneFunction.o,Scene.a,true
execute__12CategoryListFQ22MR8DrawType,SceneFunction.o,Scene.a,true
entryDrawBuffer2D__12CategoryListFv,SceneFunction.o,Scene.a,true
entryDrawBuffer3D__12CategoryListFv,SceneFunction.o,Scene.a,true
entryDrawBufferMirror__12CategoryListFv,SceneFunction.o,Scene.a,true
drawOpa__12CategoryListFQ22MR14DrawBufferType,SceneFunction.o,Scene.a,true
drawXlu__12CategoryListFQ22MR14DrawBufferType,SceneFunction.o,Scene.a,true
requestMovementOn__12CategoryListFQ22MR12MovementType,SceneFunction.o,Scene.a,true
requestMovementOff__12CategoryListFQ22MR12MovementType,SceneFunction.o,Scene.a,true
createHioBasicNode__13SceneFunctionFP5Scene,SceneFunction.o,Scene.a,true
__ct__14SceneObjHolderFv,SceneObjHolder.o,Scene.a,true
create__14SceneObjHolderFi,SceneObjHolder.o,Scene.a,true
getObj__14SceneObjHolderCFi,SceneObjHolder.o,Scene.a,true

1 Symbol Name Object File Library Archive Matching
324 createScene<17IntermissionScene>__26@unnamed@SceneFactory_cpp@Fv_P5Scene SceneFactory.o Scene.a false
325 createScene<9LogoScene>__26@unnamed@SceneFactory_cpp@Fv_P5Scene SceneFactory.o Scene.a false
326 createScene__2MRFPCc SceneFactory.o Scene.a false
327 startStageFileLoad__13SceneFunctionFv SceneFunction.o Scene.a false true
328 waitDoneStageFileLoad__13SceneFunctionFv SceneFunction.o Scene.a false true
329 startActorFileLoadCommon__13SceneFunctionFv SceneFunction.o Scene.a false true
330 startActorFileLoadScenario__13SceneFunctionFv SceneFunction.o Scene.a false true
331 startActorPlacement__13SceneFunctionFv SceneFunction.o Scene.a false true
332 initAfterScenarioSelected__13SceneFunctionFv SceneFunction.o Scene.a false true
333 initForNameObj__13SceneFunctionFv SceneFunction.o Scene.a false true
334 initForLiveActor__13SceneFunctionFv SceneFunction.o Scene.a false true
335 initEffectSystem__13SceneFunctionFUlUl SceneFunction.o Scene.a false true
336 allocateDrawBufferActorList__13SceneFunctionFv SceneFunction.o Scene.a false true
337 execute__12CategoryListFQ22MR12MovementType SceneFunction.o Scene.a false true
338 execute__12CategoryListFQ22MR12CalcAnimType SceneFunction.o Scene.a false true
339 execute__12CategoryListFQ22MR8DrawType SceneFunction.o Scene.a false true
340 entryDrawBuffer2D__12CategoryListFv SceneFunction.o Scene.a false true
341 entryDrawBuffer3D__12CategoryListFv SceneFunction.o Scene.a false true
342 entryDrawBufferMirror__12CategoryListFv SceneFunction.o Scene.a false true
343 drawOpa__12CategoryListFQ22MR14DrawBufferType SceneFunction.o Scene.a false true
344 drawXlu__12CategoryListFQ22MR14DrawBufferType SceneFunction.o Scene.a false true
345 requestMovementOn__12CategoryListFQ22MR12MovementType SceneFunction.o Scene.a false true
346 requestMovementOff__12CategoryListFQ22MR12MovementType SceneFunction.o Scene.a false true
347 createHioBasicNode__13SceneFunctionFP5Scene SceneFunction.o Scene.a false true
348 __ct__14SceneObjHolderFv SceneObjHolder.o Scene.a true
349 create__14SceneObjHolderFi SceneObjHolder.o Scene.a true
350 getObj__14SceneObjHolderCFi SceneObjHolder.o Scene.a true

View File

@ -2229,20 +2229,20 @@ execute__Q223NrvScenarioSelectLayout29ScenarioSelectLayoutNrvDecideCFP5Spine,Sce
execute__Q223NrvScenarioSelectLayout41ScenarioSelectLayoutNrvWaitScenarioSelectCFP5Spine,ScenarioSelectLayout.o,Screen.a,true
execute__Q223NrvScenarioSelectLayout29ScenarioSelectLayoutNrvAppearCFP5Spine,ScenarioSelectLayout.o,Screen.a,true
execute__Q223NrvScenarioSelectLayout33ScenarioSelectLayoutNrvAppearStarCFP5Spine,ScenarioSelectLayout.o,Screen.a,true
__ct__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,false
init__13ScenarioTitleFRC12JMapInfoIter,ScenarioTitle.o,Screen.a,false
start__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,false
end__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,false
exeAppear__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,false
exeEnd__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,false
__dt__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,false
__sinit_\ScenarioTitle_cpp,ScenarioTitle.o,Screen.a,false
__ct__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearFv,ScenarioTitle.o,Screen.a,false
__ct__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitFv,ScenarioTitle.o,Screen.a,false
__ct__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndFv,ScenarioTitle.o,Screen.a,false
execute__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndCFP5Spine,ScenarioTitle.o,Screen.a,false
execute__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitCFP5Spine,ScenarioTitle.o,Screen.a,false
execute__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearCFP5Spine,ScenarioTitle.o,Screen.a,false
__ct__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,true
init__13ScenarioTitleFRC12JMapInfoIter,ScenarioTitle.o,Screen.a,true
start__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,true
end__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,true
exeAppear__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,true
exeEnd__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,true
__dt__13ScenarioTitleFv,ScenarioTitle.o,Screen.a,true
__sinit_\ScenarioTitle_cpp,ScenarioTitle.o,Screen.a,true
__ct__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearFv,ScenarioTitle.o,Screen.a,true
__ct__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitFv,ScenarioTitle.o,Screen.a,true
__ct__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndFv,ScenarioTitle.o,Screen.a,true
execute__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndCFP5Spine,ScenarioTitle.o,Screen.a,true
execute__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitCFP5Spine,ScenarioTitle.o,Screen.a,true
execute__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearCFP5Spine,ScenarioTitle.o,Screen.a,true
__ct__15SceneWipeHolderFv,SceneWipeHolder.o,Screen.a,false
__dt__14WipeHolderBaseFv,SceneWipeHolder.o,Screen.a,false
getCurrent__14WipeHolderBaseCFv,SceneWipeHolder.o,Screen.a,false

1 Symbol Name Object File Library Archive Matching
2229 execute__Q223NrvScenarioSelectLayout41ScenarioSelectLayoutNrvWaitScenarioSelectCFP5Spine ScenarioSelectLayout.o Screen.a true
2230 execute__Q223NrvScenarioSelectLayout29ScenarioSelectLayoutNrvAppearCFP5Spine ScenarioSelectLayout.o Screen.a true
2231 execute__Q223NrvScenarioSelectLayout33ScenarioSelectLayoutNrvAppearStarCFP5Spine ScenarioSelectLayout.o Screen.a true
2232 __ct__13ScenarioTitleFv ScenarioTitle.o Screen.a false true
2233 init__13ScenarioTitleFRC12JMapInfoIter ScenarioTitle.o Screen.a false true
2234 start__13ScenarioTitleFv ScenarioTitle.o Screen.a false true
2235 end__13ScenarioTitleFv ScenarioTitle.o Screen.a false true
2236 exeAppear__13ScenarioTitleFv ScenarioTitle.o Screen.a false true
2237 exeEnd__13ScenarioTitleFv ScenarioTitle.o Screen.a false true
2238 __dt__13ScenarioTitleFv ScenarioTitle.o Screen.a false true
2239 __sinit_\ScenarioTitle_cpp ScenarioTitle.o Screen.a false true
2240 __ct__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearFv ScenarioTitle.o Screen.a false true
2241 __ct__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitFv ScenarioTitle.o Screen.a false true
2242 __ct__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndFv ScenarioTitle.o Screen.a false true
2243 execute__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndCFP5Spine ScenarioTitle.o Screen.a false true
2244 execute__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitCFP5Spine ScenarioTitle.o Screen.a false true
2245 execute__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearCFP5Spine ScenarioTitle.o Screen.a false true
2246 __ct__15SceneWipeHolderFv SceneWipeHolder.o Screen.a false
2247 __dt__14WipeHolderBaseFv SceneWipeHolder.o Screen.a false
2248 getCurrent__14WipeHolderBaseCFv SceneWipeHolder.o Screen.a false

View File

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

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "Enemy",
"message": "3.92%",
"message": "5.504%",
"color": "yellow"
}

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "Scene",
"message": "17.116%",
"message": "19.62%",
"color": "yellow"
}

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "Screen",
"message": "8.406%",
"message": "8.636%",
"color": "yellow"
}

View File

@ -8,7 +8,7 @@
| [Camera](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Camera.md) | 34.12644987572494% |
| [Demo](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Demo.md) | 20.796324655436447% |
| [Effect](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Effect.md) | 2.2184743124026984% |
| [Enemy](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy.md) | 3.920409631175268% |
| [Enemy](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy.md) | 5.504240879083315% |
| [GameAudio](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/GameAudio.md) | 0.0% |
| [Gravity](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Gravity.md) | 100.0% |
| [LiveActor](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/LiveActor.md) | 42.577224527431994% |
@ -20,8 +20,8 @@
| [Player](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Player.md) | 7.8301638397445155% |
| [RhythmLib](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/RhythmLib.md) | 1.2661566868900025% |
| [Ride](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Ride.md) | 6.181993549748319% |
| [Scene](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene.md) | 17.116530156366345% |
| [Screen](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen.md) | 8.406622845419024% |
| [Scene](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene.md) | 19.62025316455696% |
| [Screen](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen.md) | 8.636619055708742% |
| [Speaker](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Speaker.md) | 54.75241889584519% |
| [System](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/System.md) | 14.730098411770436% |
| [Util](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Util.md) | 10.090099514848767% |

View File

@ -39,7 +39,7 @@
| [HammerHeadPackun.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/HammerHeadPackun.md) | 0.0% | 0 / 61 | 0.0% | :x:
| [Hanachan.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/Hanachan.md) | 0.0% | 0 / 126 | 0.0% | :x:
| [HomingKiller.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/HomingKiller.md) | 0.0% | 0 / 69 | 0.0% | :x:
| [IceMerameraKing.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/IceMerameraKing.md) | 0.0% | 0 / 78 | 0.0% | :x:
| [IceMerameraKing.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/IceMerameraKing.md) | 74.63087248322148% | 72 / 78 | 92.3076923076923% | :eight_pointed_black_star:
| [ItemGenerator.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/ItemGenerator.md) | 0.0% | 0 / 6 | 0.0% | :x:
| [Jellyfish.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/Jellyfish.md) | 0.0% | 0 / 44 | 0.0% | :x:
| [JellyfishElectric.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Enemy/JellyfishElectric.md) | 0.0% | 0 / 38 | 0.0% | :x:

View File

@ -5,85 +5,85 @@
| :white_check_mark: | Function is completed.
# 0 / 78 Completed -- (0.0%)
# 72 / 78 Completed -- (92.3076923076923%)
# IceMerameraKing.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `__dt__Q22MR46Vector<Q22MR31AssignableArray<P11ThrowingIce>>Fv` | :x: |
| `__ct__15IceMerameraKingFPCc` | :x: |
| `__dt__Q22MR46Vector<Q22MR31AssignableArray<P11ThrowingIce>>Fv` | :white_check_mark: |
| `__ct__15IceMerameraKingFPCc` | :white_check_mark: |
| `init__15IceMerameraKingFRC12JMapInfoIter` | :x: |
| `initAfterPlacement__15IceMerameraKingFv` | :x: |
| `kill__15IceMerameraKingFv` | :x: |
| `control__15IceMerameraKingFv` | :x: |
| `exeSearch__15IceMerameraKingFv` | :x: |
| `kill__15IceMerameraKingFv` | :white_check_mark: |
| `control__15IceMerameraKingFv` | :white_check_mark: |
| `exeSearch__15IceMerameraKingFv` | :white_check_mark: |
| `exeThrow__15IceMerameraKingFv` | :x: |
| `tearDownThrow__15IceMerameraKingFv` | :x: |
| `tearDownThrow__15IceMerameraKingFv` | :white_check_mark: |
| `exeExtinguish__15IceMerameraKingFv` | :x: |
| `exeEscape__15IceMerameraKingFv` | :x: |
| `exeEscapeJump__15IceMerameraKingFv` | :x: |
| `exeDamage__15IceMerameraKingFv` | :x: |
| `exePreRecover__15IceMerameraKingFv` | :x: |
| `exeRecover__15IceMerameraKingFv` | :x: |
| `exePreAttack__15IceMerameraKingFv` | :x: |
| `exeAttack__15IceMerameraKingFv` | :x: |
| `exeAttackAfter__15IceMerameraKingFv` | :x: |
| `exeAngryDemo__15IceMerameraKingFv` | :x: |
| `exeDeathDemo__15IceMerameraKingFv` | :x: |
| `attackSensor__15IceMerameraKingFP9HitSensorP9HitSensor` | :x: |
| `receiveMsgPlayerAttack__15IceMerameraKingFUlP9HitSensorP9HitSensor` | :x: |
| `receiveOtherMsg__15IceMerameraKingFUlP9HitSensorP9HitSensor` | :x: |
| `addVelocityToInitPos__15IceMerameraKingFv` | :x: |
| `calcAndSetBaseMtx__15IceMerameraKingFv` | :x: |
| `isDeadAllIce__15IceMerameraKingFv` | :x: |
| `isEnableThrow__15IceMerameraKingFv` | :x: |
| `exeEscape__15IceMerameraKingFv` | :white_check_mark: |
| `exeEscapeJump__15IceMerameraKingFv` | :white_check_mark: |
| `exeDamage__15IceMerameraKingFv` | :white_check_mark: |
| `exePreRecover__15IceMerameraKingFv` | :white_check_mark: |
| `exeRecover__15IceMerameraKingFv` | :white_check_mark: |
| `exePreAttack__15IceMerameraKingFv` | :white_check_mark: |
| `exeAttack__15IceMerameraKingFv` | :white_check_mark: |
| `exeAttackAfter__15IceMerameraKingFv` | :white_check_mark: |
| `exeAngryDemo__15IceMerameraKingFv` | :white_check_mark: |
| `exeDeathDemo__15IceMerameraKingFv` | :white_check_mark: |
| `attackSensor__15IceMerameraKingFP9HitSensorP9HitSensor` | :white_check_mark: |
| `receiveMsgPlayerAttack__15IceMerameraKingFUlP9HitSensorP9HitSensor` | :white_check_mark: |
| `receiveOtherMsg__15IceMerameraKingFUlP9HitSensorP9HitSensor` | :white_check_mark: |
| `addVelocityToInitPos__15IceMerameraKingFv` | :white_check_mark: |
| `calcAndSetBaseMtx__15IceMerameraKingFv` | :white_check_mark: |
| `isDeadAllIce__15IceMerameraKingFv` | :white_check_mark: |
| `isEnableThrow__15IceMerameraKingFv` | :white_check_mark: |
| `getDeadWeaponAndAppear__15IceMerameraKingFv` | :x: |
| `calcJoint__15IceMerameraKingFPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo` | :x: |
| `__ct__24IceMerameraKingShockWaveFv` | :x: |
| `appear__24IceMerameraKingShockWaveFv` | :x: |
| `control__24IceMerameraKingShockWaveFv` | :x: |
| `attackSensor__24IceMerameraKingShockWaveFP9HitSensorP9HitSensor` | :x: |
| `__sinit_\IceMerameraKing_cpp` | :x: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvSearchFv` | :x: |
| `__ct__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoFv` | :x: |
| `__ct__Q218NrvIceMerameraKing16HostTypeNrvThrowFv` | :x: |
| `__ct__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndFv` | :x: |
| `__ct__Q218NrvIceMerameraKing21HostTypeNrvExtinguishFv` | :x: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvEscapeFv` | :x: |
| `__ct__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpFv` | :x: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvDamageFv` | :x: |
| `__ct__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverFv` | :x: |
| `__ct__Q218NrvIceMerameraKing18HostTypeNrvRecoverFv` | :x: |
| `__ct__Q218NrvIceMerameraKing20HostTypeNrvPreAttackFv` | :x: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvAttackFv` | :x: |
| `__ct__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterFv` | :x: |
| `__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stFv` | :x: |
| `__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndFv` | :x: |
| `__ct__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitFv` | :x: |
| `__ct__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoFv` | :x: |
| `execute__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvAttackCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing20HostTypeNrvPreAttackCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing18HostTypeNrvRecoverCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvDamageCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpCFP5Spine` | :x: |
| `executeOnEnd__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing21HostTypeNrvExtinguishCFP5Spine` | :x: |
| `executeOnEnd__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine` | :x: |
| `executeOnEnd__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine` | :x: |
| `executeOnEnd__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine` | :x: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvSearchCFP5Spine` | :x: |
| `__dt__40JointControlDelegator<15IceMerameraKing>Fv` | :x: |
| `calcJointMatrix__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo` | :x: |
| `calcJointMatrixAfterChild__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo` | :x: |
| `__dt__Q22MR31AssignableArray<P11ThrowingIce>Fv` | :x: |
| `__dt__15IceMerameraKingFv` | :x: |
| `__dt__24IceMerameraKingShockWaveFv` | :x: |
| `__ct__24IceMerameraKingShockWaveFv` | :white_check_mark: |
| `appear__24IceMerameraKingShockWaveFv` | :white_check_mark: |
| `control__24IceMerameraKingShockWaveFv` | :white_check_mark: |
| `attackSensor__24IceMerameraKingShockWaveFP9HitSensorP9HitSensor` | :white_check_mark: |
| `__sinit_\IceMerameraKing_cpp` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvSearchFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing16HostTypeNrvThrowFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing21HostTypeNrvExtinguishFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvEscapeFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvDamageFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing18HostTypeNrvRecoverFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing20HostTypeNrvPreAttackFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing17HostTypeNrvAttackFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitFv` | :white_check_mark: |
| `__ct__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoFv` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing20HostTypeNrvDeathDemoCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing24HostTypeNrvDeathDemoWaitCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo2ndCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing23HostTypeNrvAngryDemo1stCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing22HostTypeNrvAttackAfterCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvAttackCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing20HostTypeNrvPreAttackCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing18HostTypeNrvRecoverCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing21HostTypeNrvPreRecoverCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvDamageCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing21HostTypeNrvEscapeJumpCFP5Spine` | :white_check_mark: |
| `executeOnEnd__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvEscapeCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing21HostTypeNrvExtinguishCFP5Spine` | :white_check_mark: |
| `executeOnEnd__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing19HostTypeNrvThrow2ndCFP5Spine` | :white_check_mark: |
| `executeOnEnd__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing16HostTypeNrvThrowCFP5Spine` | :white_check_mark: |
| `executeOnEnd__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing20HostTypeNrvBeginDemoCFP5Spine` | :white_check_mark: |
| `execute__Q218NrvIceMerameraKing17HostTypeNrvSearchCFP5Spine` | :white_check_mark: |
| `__dt__40JointControlDelegator<15IceMerameraKing>Fv` | :white_check_mark: |
| `calcJointMatrix__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo` | :white_check_mark: |
| `calcJointMatrixAfterChild__40JointControlDelegator<15IceMerameraKing>FPQ29JGeometry64TPosition3<Q29JGeometry38TMatrix34<Q29JGeometry13SMatrix34C<f>>>RC19JointControllerInfo` | :white_check_mark: |
| `__dt__Q22MR31AssignableArray<P11ThrowingIce>Fv` | :white_check_mark: |
| `__dt__15IceMerameraKingFv` | :white_check_mark: |
| `__dt__24IceMerameraKingShockWaveFv` | :white_check_mark: |

View File

@ -24,7 +24,7 @@
| [SceneDataInitializer.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneDataInitializer.md) | 100.0% | 9 / 9 | 100.0% | :white_check_mark:
| [SceneExecutor.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneExecutor.md) | 0.0% | 0 / 19 | 0.0% | :x:
| [SceneFactory.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneFactory.md) | 0.0% | 0 / 4 | 0.0% | :x:
| [SceneFunction.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneFunction.md) | 0.0% | 0 / 21 | 0.0% | :x:
| [SceneFunction.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneFunction.md) | 100.0% | 21 / 21 | 100.0% | :white_check_mark:
| [SceneObjHolder.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneObjHolder.md) | 5.683060109289618% | 5 / 9 | 55.55555555555556% | :eight_pointed_black_star:
| [ScenePlayingResult.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/ScenePlayingResult.md) | 0.0% | 0 / 8 | 0.0% | :x:
| [SceneNameObjListExecutor.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Scene/SceneNameObjListExecutor.md) | 100.0% | 5 / 5 | 100.0% | :white_check_mark:

View File

@ -5,28 +5,28 @@
| :white_check_mark: | Function is completed.
# 0 / 21 Completed -- (0.0%)
# 21 / 21 Completed -- (100.0%)
# SceneFunction.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `startStageFileLoad__13SceneFunctionFv` | :x: |
| `waitDoneStageFileLoad__13SceneFunctionFv` | :x: |
| `startActorFileLoadCommon__13SceneFunctionFv` | :x: |
| `startActorFileLoadScenario__13SceneFunctionFv` | :x: |
| `startActorPlacement__13SceneFunctionFv` | :x: |
| `initAfterScenarioSelected__13SceneFunctionFv` | :x: |
| `initForNameObj__13SceneFunctionFv` | :x: |
| `initForLiveActor__13SceneFunctionFv` | :x: |
| `initEffectSystem__13SceneFunctionFUlUl` | :x: |
| `allocateDrawBufferActorList__13SceneFunctionFv` | :x: |
| `execute__12CategoryListFQ22MR12MovementType` | :x: |
| `execute__12CategoryListFQ22MR12CalcAnimType` | :x: |
| `execute__12CategoryListFQ22MR8DrawType` | :x: |
| `entryDrawBuffer2D__12CategoryListFv` | :x: |
| `entryDrawBuffer3D__12CategoryListFv` | :x: |
| `entryDrawBufferMirror__12CategoryListFv` | :x: |
| `drawOpa__12CategoryListFQ22MR14DrawBufferType` | :x: |
| `drawXlu__12CategoryListFQ22MR14DrawBufferType` | :x: |
| `requestMovementOn__12CategoryListFQ22MR12MovementType` | :x: |
| `requestMovementOff__12CategoryListFQ22MR12MovementType` | :x: |
| `createHioBasicNode__13SceneFunctionFP5Scene` | :x: |
| `startStageFileLoad__13SceneFunctionFv` | :white_check_mark: |
| `waitDoneStageFileLoad__13SceneFunctionFv` | :white_check_mark: |
| `startActorFileLoadCommon__13SceneFunctionFv` | :white_check_mark: |
| `startActorFileLoadScenario__13SceneFunctionFv` | :white_check_mark: |
| `startActorPlacement__13SceneFunctionFv` | :white_check_mark: |
| `initAfterScenarioSelected__13SceneFunctionFv` | :white_check_mark: |
| `initForNameObj__13SceneFunctionFv` | :white_check_mark: |
| `initForLiveActor__13SceneFunctionFv` | :white_check_mark: |
| `initEffectSystem__13SceneFunctionFUlUl` | :white_check_mark: |
| `allocateDrawBufferActorList__13SceneFunctionFv` | :white_check_mark: |
| `execute__12CategoryListFQ22MR12MovementType` | :white_check_mark: |
| `execute__12CategoryListFQ22MR12CalcAnimType` | :white_check_mark: |
| `execute__12CategoryListFQ22MR8DrawType` | :white_check_mark: |
| `entryDrawBuffer2D__12CategoryListFv` | :white_check_mark: |
| `entryDrawBuffer3D__12CategoryListFv` | :white_check_mark: |
| `entryDrawBufferMirror__12CategoryListFv` | :white_check_mark: |
| `drawOpa__12CategoryListFQ22MR14DrawBufferType` | :white_check_mark: |
| `drawXlu__12CategoryListFQ22MR14DrawBufferType` | :white_check_mark: |
| `requestMovementOn__12CategoryListFQ22MR12MovementType` | :white_check_mark: |
| `requestMovementOff__12CategoryListFQ22MR12MovementType` | :white_check_mark: |
| `createHioBasicNode__13SceneFunctionFP5Scene` | :white_check_mark: |

View File

@ -112,7 +112,7 @@
| [ReplaceTagProcessor.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/ReplaceTagProcessor.md) | 0.0% | 0 / 12 | 0.0% | :x:
| [SaveIcon.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/SaveIcon.md) | 0.0% | 0 / 4 | 0.0% | :x:
| [ScenarioSelectLayout.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/ScenarioSelectLayout.md) | 56.27306273062731% | 49 / 63 | 77.77777777777779% | :eight_pointed_black_star:
| [ScenarioTitle.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/ScenarioTitle.md) | 0.0% | 0 / 14 | 0.0% | :x:
| [ScenarioTitle.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/ScenarioTitle.md) | 100.0% | 14 / 14 | 100.0% | :white_check_mark:
| [SceneWipeHolder.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/SceneWipeHolder.md) | 0.0% | 0 / 9 | 0.0% | :x:
| [ScreenAlphaCapture.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/ScreenAlphaCapture.md) | 0.0% | 0 / 9 | 0.0% | :x:
| [ScreenBlurEffect.o](https://github.com/shibbo/Petari/blob/master/docs/lib/Game/Screen/ScreenBlurEffect.md) | 0.0% | 0 / 7 | 0.0% | :x:

View File

@ -5,21 +5,21 @@
| :white_check_mark: | Function is completed.
# 0 / 14 Completed -- (0.0%)
# 14 / 14 Completed -- (100.0%)
# ScenarioTitle.o
| Symbol | Decompiled? |
| ------------- | ------------- |
| `__ct__13ScenarioTitleFv` | :x: |
| `init__13ScenarioTitleFRC12JMapInfoIter` | :x: |
| `start__13ScenarioTitleFv` | :x: |
| `end__13ScenarioTitleFv` | :x: |
| `exeAppear__13ScenarioTitleFv` | :x: |
| `exeEnd__13ScenarioTitleFv` | :x: |
| `__dt__13ScenarioTitleFv` | :x: |
| `__sinit_\ScenarioTitle_cpp` | :x: |
| `__ct__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearFv` | :x: |
| `__ct__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitFv` | :x: |
| `__ct__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndFv` | :x: |
| `execute__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndCFP5Spine` | :x: |
| `execute__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitCFP5Spine` | :x: |
| `execute__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearCFP5Spine` | :x: |
| `__ct__13ScenarioTitleFv` | :white_check_mark: |
| `init__13ScenarioTitleFRC12JMapInfoIter` | :white_check_mark: |
| `start__13ScenarioTitleFv` | :white_check_mark: |
| `end__13ScenarioTitleFv` | :white_check_mark: |
| `exeAppear__13ScenarioTitleFv` | :white_check_mark: |
| `exeEnd__13ScenarioTitleFv` | :white_check_mark: |
| `__dt__13ScenarioTitleFv` | :white_check_mark: |
| `__sinit_\ScenarioTitle_cpp` | :white_check_mark: |
| `__ct__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearFv` | :white_check_mark: |
| `__ct__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitFv` | :white_check_mark: |
| `__ct__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndFv` | :white_check_mark: |
| `execute__Q227@unnamed@ScenarioTitle_cpp@16ScenarioTitleEndCFP5Spine` | :white_check_mark: |
| `execute__Q227@unnamed@ScenarioTitle_cpp@17ScenarioTitleWaitCFP5Spine` | :white_check_mark: |
| `execute__Q227@unnamed@ScenarioTitle_cpp@19ScenarioTitleAppearCFP5Spine` | :white_check_mark: |

View File

@ -0,0 +1,9 @@
#pragma once
#include "Game/LiveActor/LiveActor.hpp"
class CameraTargetDemoActor : public LiveActor {
public:
CameraTargetDemoActor(MtxPtr, const char *);
};

View File

@ -1,8 +1,8 @@
#pragma once
#include "Game/NameObj/NameObj.hpp"
#include <revolution.h>
#include <JSystem/JParticle/JPAEmitterManager.hpp>
#include <revolution.h>
#include "Game/NameObj/NameObj.hpp"
class AutoEffectGroupHolder;
class ParticleEmitter;
@ -10,18 +10,25 @@ class SingleEmitter;
class ParticleCalcExecutor;
class ParticleDrawExecutor;
class ParticleEmitterHolder;
class ParticleResourceHolder;
class EffectSystem : public NameObj {
public:
EffectSystem(const char *, bool);
EffectSystem(const char*, bool);
ParticleEmitter* createEmitter(u16, u8, u8);
void forceDeleteEmitter(ParticleEmitter *) const;
void forceDeleteSingleEmitter(SingleEmitter *) const;
void forceDeleteEmitter(ParticleEmitter*) const;
void forceDeleteSingleEmitter(SingleEmitter*) const;
void entry(ParticleResourceHolder*, u32, u32);
u32 _C;
ParticleEmitterHolder* mEmitterHolder; // 0x10
ParticleDrawExecutor* mDrawExec; // 0x14
ParticleCalcExecutor* mCalcExec; // 0x18
AutoEffectGroupHolder* mGroupHolder; // 0x1C
ParticleEmitterHolder* mEmitterHolder; // 0x10
ParticleDrawExecutor* mDrawExec; // 0x14
ParticleCalcExecutor* mCalcExec; // 0x18
AutoEffectGroupHolder* mGroupHolder; // 0x1C
};
namespace MR {
EffectSystem* getEffectSystem();
};

View File

@ -0,0 +1,115 @@
#pragma once
#include "Game/LiveActor/LiveActor.hpp"
#include "Game/LiveActor/ModelObj.hpp"
#include "Game/Effect/SpinPullParticleCallBack.hpp"
#include "Game/Util/JointController.hpp"
#include "Game/Util/FixedPosition.hpp"
#include "Game/Enemy/MoguStone.hpp"
#include "Game/Camera/CameraTargetDemoActor.hpp"
#include "Game/LiveActor/Binder.hpp"
class Meramera;
class IceMerameraKing : public LiveActor {
public:
IceMerameraKing(const char *);
virtual ~IceMerameraKing();
virtual void init(const JMapInfoIter &);
virtual void initAfterPlacement();
virtual void kill();
virtual void control();
virtual void calcAndSetBaseMtx();
virtual void attackSensor(HitSensor *, HitSensor *);
virtual bool receiveMsgPlayerAttack(u32, HitSensor *, HitSensor *);
virtual bool receiveOtherMsg(u32, HitSensor *, HitSensor *);
void exeSearch();
void exeThrow();
void tearDownThrow();
void exeExtinguish();
void exeEscape();
void exeEscapeJump();
void exeDamage();
void exePreRecover();
void exeRecover();
void exePreAttack();
void exeAttack();
void exeAttackAfter();
void exeAngryDemo();
void exeDeathDemo();
void addVelocityToInitPos();
bool isDeadAllIce();
bool isEnableThrow();
ThrowingIce* getDeadWeaponAndAppear();
bool calcJoint(TPos3f *, const JointControllerInfo &);
inline void exeDeleteEffect() {
MR::deleteEffect(this, "Rolling");
}
inline void exeDeathDemoWait() {
if (MR::isFirstStep(this)) {
MR::stopStageBGM(30);
}
mVelocity.zero();
}
FixedPosition* mFixedPos; //_8C
ThrowingIce* _90;
Meramera* _94;
SpinPullParticleCallBack* mSpinParticle; //_98
ThrowingIce** mActor; //_9C
s32 _A0;
s32 _A4;
LiveActor* _A8;
LiveActor* _AC;
TVec3f _B0;
TVec3f _BC;
TVec3f _C8;
TVec3f _D4;
s32 _E0;
s32 _E4;
s32 _E8;
s32 _EC;
s32 _F0;
MR::Vector<MR::AssignableArray<ThrowingIce*> > mModelArray; //_F4
TQuat4f _100;
TVec3f _110;
f32 _11C;
bool _120;
bool _121;
CameraTargetDemoActor* _F8;
JointControlDelegator<IceMerameraKing>* mJointController; //_FC
};
class IceMerameraKingShockWave : public ModelObj {
public:
IceMerameraKingShockWave();
virtual ~IceMerameraKingShockWave();
virtual void appear();
virtual void control();
virtual void attackSensor(HitSensor *, HitSensor *);
};
namespace NrvIceMerameraKing {
NERVE(HostTypeNrvSearch);
NERVE_EXECEND(HostTypeNrvBeginDemo);
NERVE_EXECEND(HostTypeNrvThrow);
NERVE_EXECEND(HostTypeNrvThrow2nd);
NERVE(HostTypeNrvExtinguish);
NERVE_EXECEND(HostTypeNrvEscape);
NERVE(HostTypeNrvEscapeJump);
NERVE(HostTypeNrvDamage);
NERVE(HostTypeNrvPreRecover);
NERVE(HostTypeNrvRecover);
NERVE(HostTypeNrvPreAttack);
NERVE(HostTypeNrvAttack);
NERVE(HostTypeNrvAttackAfter);
NERVE(HostTypeNrvAngryDemo1st);
NERVE(HostTypeNrvAngryDemo2nd);
NERVE(HostTypeNrvDeathDemoWait);
NERVE(HostTypeNrvDeathDemo);
};

View File

@ -0,0 +1,10 @@
#pragma once
#include "Game/LiveActor/LiveActor.hpp"
class IceMerameraKing;
class Meramera : public LiveActor {
public:
Meramera(const char *);
};

View File

@ -0,0 +1,47 @@
#pragma once
#include "Game/LiveActor/ModelObj.hpp"
#include "Game/LiveActor/LiveActor.hpp"
#include "Game/Util/ParabolicPath.hpp"
namespace {
static f32 hAddHeight = 200.0f;
};
class MoguStone : public ModelObj {
public:
MoguStone(const char *, const char *);
virtual bool receiveMsgPlayerAttack(u32, HitSensor *, HitSensor *);
//incomplete class
TVec4f _90;
TVec4f _A0;
TVec3f _B0;
f32 _BC;
bool _C0;
};
class ThrowingIce : public MoguStone {
public:
ThrowingIce(const char *);
virtual void init(const JMapInfoIter &);
virtual void doBehavior();
virtual void attackSensor(HitSensor *, HitSensor *);
virtual bool receiveMsgPlayerAttack(u32, HitSensor *, HitSensor *);
virtual void startBreakSound();
virtual void startThrowLevelSound();
void emitIce(const TVec3f &, const TVec3f &, f32, const TVec3f &);
ParabolicPath* mPath; //_C4
};
namespace NrvMoguStone {
NERVE(MoguStoneNrvTaken);
NERVE(MoguStoneNrvThrow);
//incomplete
};

View File

@ -0,0 +1 @@
#pragma once

View File

@ -1,20 +1,198 @@
#pragma once
namespace MR {
enum MovementType {
#include <revolution.h>
namespace MR {
/* thanks to https://github.com/magcius/noclip.website/blob/master/src/SuperMarioGalaxy/NameObj.ts */
enum MovementType {
MovementType_StopSceneDelayRequest = 0x01,
MovementType_Camera = 0x02,
MovementType_ScreenEffect = 0x03,
MovementType_ClippingDirector = 0x04,
MovementType_SensorHitChecker = 0x05,
MovementType_MsgSharedGroup = 0x06,
MovementType_UNK_0x07 = 0x07,
MovementType_AudCameraWatcher = 0x09,
MovementType_TalkDirector = 0x0A,
MovementType_DemoDirector = 0x0B,
MovementType_UNK_0x0C = 0x0C,
MovementType_AreaObj = 0x0D,
MovementType_Layout = 0x0E,
MovementType_LayoutDecoration = 0x0F,
MovementType_Movie = 0x10,
MovementType_WipeLayout = 0x11,
MovementType_LayoutOnPause = 0x12,
MovementType_MovieSubtitles = 0x13,
MovementType_UNK_0x14 = 0x14,
MovementType_UNK_0x15 = 0x15,
MovementType_MirrorCamera = 0x16,
MovementType_ImageEffect = 0x17,
MovementType_AudEffectDirector = 0x18,
MovementType_AudBgmConductor = 0x19,
MovementType_CameraCover = 0x1A,
MovementType_SwitchWatcherHolder = 0x1B,
MovementType_ClippedMapParts = 0x1C,
MovementType_Planet = 0x1D,
MovementType_CollisionMapObj = 0x1E,
MovementType_CollisionEnemy = 0x1F,
MovementType_CollisionDirector = 0x20,
MovementType_Environment = 0x21,
MovementType_MapObj = 0x22,
MovementType_MapObjDecoration = 0x23,
MovementType_Sky = 0x24,
MovementType_Player = 0x25,
MovementType_PlayerDecoration = 0x26,
MovementType_PlayerMessenger = 0x27,
MovementType_NPC = 0x28,
MovementType_Ride = 0x29,
MovementType_Enemy = 0x2A,
MovementType_EnemyDecoration = 0x2B,
MovementType_Item = 0x2C,
MovementType_ShadowControllerHolder = 0x2D
};
enum CalcAnimType {
CalcAnimType_ClippedMapParts = 0x00,
CalcAnimType_Planet = 0x01,
CalcAnimType_CollisionMapObj = 0x02,
CalcAnimType_CollisionEnemy = 0x03,
CalcAnimType_Environment = 0x04,
CalcAnimType_MapObj = 0x05,
CalcAnimType_NPC = 0x06,
CalcAnimType_Ride = 0x07,
CalcAnimType_Enemy = 0x08,
CalcAnimType_Player = 0x09,
CalcAnimType_PlayerDecoration = 0x0A,
CalcAnimType_MapObjDecoration = 0x0B,
CalcAnimType_MirrorMapObj = 0x0C,
CalcAnimType_Layout = 0x0D,
CalcAnimType_LayoutDecoration = 0x0E,
CalcAnimType_MovieSubtitles = 0x0F,
CalcAnimType_Item = 0x10,
CalcAnimType_UNK_0x12 = 0x12,
CalcAnimType_AnimParticle = 0x13,
CalcAnimType_AnimParticleIgnorePause = 0x14
};
enum DrawBufferType {
DrawBufferType_ClippedMapParts = 0x00,
DrawBufferType_Sky = 0x01,
DrawBufferType_Air = 0x02,
DrawBufferType_Sun = 0x03,
DrawBufferType_Planet = 0x04,
DrawBufferType_PlanetLow = 0x05,
DrawBufferType_Environment = 0x06,
DrawBufferType_EnvironmentStrongLight = 0x07,
DrawBufferType_MapObj = 0x08,
DrawBufferType_MapObjWeakLight = 0x09,
DrawBufferType_MapObjStrongLight = 0x0A,
DrawBufferType_NoShadowedMapObj = 0x0B,
DrawBufferType_NoShadowedMapObjStrongLight = 0x0C,
DrawBufferType_NoSilhouettedMapObj = 0x0D,
DrawBufferType_NoSilhouettedMapObjWeakLight = 0x0E,
DrawBufferType_NoSilhouettedMapObjStrongLight = 0x0F,
DrawBufferType_NPC = 0x10,
DrawBufferType_Ride = 0x11,
DrawBufferType_Enemy = 0x12,
DrawBufferType_EnemyDecoration = 0x13,
DrawBufferType_Player = 0x14,
DrawBufferType_PlayerDecoration = 0x15,
DrawBufferType_CrystalBox = 0x16,
DrawBufferType_UNK_0x17 = 0x17,
DrawBufferType_UNK_0x18 = 0x18,
DrawBufferType_IndirectMapObj = 0x19,
DrawBufferType_IndirectMapObjStrongLight = 0x1A,
DrawBufferType_IndirectNpc = 0x1B,
DrawBufferType_IndirectEnemy = 0x1C,
DrawBufferType_IndirectPlanet = 0x1D,
DrawBufferType_BloomModel = 0x1E,
DrawBufferType_TripodBoss = 0x1F,
DrawBufferType_Crystal = 0x20,
DrawBufferType_CrystalItem = 0x21,
DrawBufferType_GlaringLight = 0x22,
DrawBufferType_AstroDomeSky = 0x23,
DrawBufferType_Model3DFor2D = 0x24,
DrawBufferType_DrawBufferType_0x25 = 0x25,
DrawBufferType_DrawBufferType_0x26 = 0x26,
DrawBufferType_MirrorMapObj = 0x27,
};
enum DrawType {
DrawType_SwingRope = 0x00,
DrawType_Creeper = 0x02,
DrawType_PlantStalk = 0x04,
DrawType_Plant = 0x05,
DrawType_Trapeze = 0x06,
DrawType_OceanBowl = 0x07,
DrawType_OceanRing = 0x08,
DrawType_OceanRingPipeInside = 0x09,
DrawType_OceanRingPipeOutside = 0x0A,
DrawType_OceanSphere = 0x0B,
DrawType_WaterRoad = 0x0C,
DrawType_WhirlPoolAccelerator = 0x0D,
DrawType_ElectricRailHolder = 0x0E,
DrawType_DrawType_BigBubble = 0x0F,
DrawType_BigBubbleGoal = 0x10,
DrawType_SpinDriverPathDrawer = 0x12,
DrawType_GCapture = 0x13,
DrawType_ClipAreaDropLaser = 0x14,
DrawType_SpiderThread = 0x15,
DrawType_SpaceCocoon = 0x16,
DrawType_WarpPodPath = 0x18,
DrawType_FlexibleSphere = 0x19,
DrawType_KirairaChain = 0x1A,
DrawType_WaterPlant = 0x1B,
DrawType_VolumeModel = 0x1C,
DrawType_Flag = 0x1D,
DrawType_AstroDomeSkyClear = 0x1E,
DrawType_AstroDomeOrbit = 0x1F,
DrawType_OceanBowlBloomDrawer = 0x21,
DrawType_Player = 0x22,
DrawType_MiiFacePartsHolder = 0x25,
DrawType_ShadowSurface = 0x26,
DrawType_ShadowVolume = 0x27,
DrawType_AlphaShadow = 0x29,
DrawType_ClipArea = 0x2A,
DrawType_FallOutFieldDraw = 0x2B,
DrawType_ClipFieldFillDraw = 0x2C,
DrawType_CaptureScreenIndirect = 0x2D,
DrawType_CaptureScreenCamera = 0x2E,
DrawType_CenterScreenBlur = 0x2F,
DrawType_Fur = 0x31,
DrawType_BloomEffectPreDraw = 0x34,
DrawType_BloomEffectPostDraw = 0x35,
DrawType_BloomModel = 0x36,
DrawType_ImageEffect = 0x37,
DrawType_DashRing = 0x38,
DrawType_BrightSun = 0x39,
DrawType_WaterCameraFilter = 0x3A,
DrawType_Layout = 0x3C,
DrawType_LayoutDecoration = 0x3D,
DrawType_LayoutOnPause = 0x3E,
DrawType_Movie = 0x3F,
DrawType_MovieSubtitles = 0x40,
DrawType_CometScreenFilter = 0x41,
DrawType_WipeLayout = 0x42,
DrawType_TalkLayout = 0x43,
DrawType_CinemaFrame = 0x45,
DrawType_GalaxyNamePlate = 0x46,
DrawType_EffectDraw3D = 0x47,
DrawType_EffectDrawIndirect = 0x48,
DrawType_EffectDrawAfterIndirect = 0x49,
DrawType_EffectDraw2D = 0x4A,
DrawType_EffectDrawFor2DModel = 0x4B,
DrawType_EffectDrawForBloomEffect = 0x4C,
DrawType_EffectDrawAfterImageEffect = 0x4D,
DrawType_MessageBoardCapture = 0x4E,
DrawType_MiiFaceIcon = 0x4F,
DrawType_MiiFaceNew = 0x50,
DrawType_CameraCover = 0x51,
};
};
}; // namespace MR
class CategoryList {
class Scene;
class SceneFunction {
public:
static void startStageFileLoad();
static void waitDoneStageFileLoad();
@ -24,12 +202,21 @@ public:
static void initAfterScenarioSelected();
static void initForNameObj();
static void initForLiveActor();
static void initEffectSystem();
static void initEffectSystem(u32, u32);
static void allocateDrawBufferActorList();
static void createHioBasicNode(Scene*);
};
class CategoryList {
public:
static void execute(MR::MovementType);
static void execute(MR::CalcAnimType);
static void execute(MR::DrawType);
static void entryDrawBuffer2D();
static void entryDrawBuffer3D();
static void entryDrawBufferMirror();
static void drawOpa(MR::DrawBufferType);
static void drawXlu(MR::DrawBufferType);
static void requestMovementOn(MR::MovementType);
static void requestMovementOff(MR::MovementType);
};

View File

@ -1,48 +1,55 @@
#pragma once
#define SceneObj_SensorHitChecker 0x0
#define SceneObj_CollisionDirector 0x1
#define SceneObj_ClippingDirector 0x2
#define SceneObj_DemoDirector 0x3
#define SceneObj_EventDirector 0x4
#define SceneObj_EffectSystem 0x5
#define SceneObj_LightDirector 0x6
#define SceneObj_SceneDataInitializer 0x7
#define SceneObj_StageDataHolder 0x8
#define SceneObj_MessageSensorHolder 0x9
#define SceneObj_StageSwitchContainer 0xA
#define SceneObj_SwitchWatcherHolder 0xB
#define SceneObj_SleepControllerHolder 0xC
#define SceneObj_AreaObjContainer 0xD
#define SceneObj_MarioHolder 0x14
#define SceneObj_MirrorCamera 0x16
#define SceneObj_CameraContext 0x17
#define SceneObj_PlayerActionGuidance 0x23
#define SceneObj_PlacementStateChecker 0x27
#define SceneObj_NamePosHolder 0x28
#define SceneObj_AllLiveActorGroup 0x30
#define SceneObj_PlanetGravityManager 0x32
#define SceneObj_PurpleCoinHolder 0x37
#define SceneObj_CoinRotater 0x38
#define SceneObj_AirBubbleHolder 0x39
#define SceneObj_BigFanHolder 0x3A
#define SceneObj_ShadowControllerHolder 0x44
#define SceneObj_ShadowVolumeDrawer 0x45
#define SceneObj_ShadowSurfaceDrawerInit 0x46
#define SceneObj_VolumeModelDrawInit 0x4C
#define SceneObj_SpinDrawerPathDrawInit 0x4D
#define SceneObj_NoteGroup 0x4E
#define SceneObj_ArrowSwitchMultiHolder 0x54
#define SceneObj_NameObjExecuteHolder 0x58
#define SceneObj_QuakeEffectGenerator 0x5B
#define SceneObj_HeatHazeDirector 0x5D
#define SceneObj_EarthenPipeMediator 0x61
#define SceneObj_SensorHitChecker 0x0
#define SceneObj_CollisionDirector 0x1
#define SceneObj_ClippingDirector 0x2
#define SceneObj_DemoDirector 0x3
#define SceneObj_EventDirector 0x4
#define SceneObj_EffectSystem 0x5
#define SceneObj_LightDirector 0x6
#define SceneObj_SceneDataInitializer 0x7
#define SceneObj_StageDataHolder 0x8
#define SceneObj_MessageSensorHolder 0x9
#define SceneObj_StageSwitchContainer 0xA
#define SceneObj_SwitchWatcherHolder 0xB
#define SceneObj_SleepControllerHolder 0xC
#define SceneObj_AreaObjContainer 0xD
#define SceneObj_LiveActorGroupArray 0xE
#define SceneObj_MovementOnOffGroupHolder 0xF
#define SceneObj_CaptureScreenActor 0x10
#define SceneObj_MarioHolder 0x14
#define SceneObj_MirrorCamera 0x16
#define SceneObj_CameraContext 0x17
#define SceneObj_TalkDirector 0x19
#define SceneObj_StopSceneController 0x1B
#define SceneObj_SceneObjMovementCtrl 0x1C
#define SceneObj_PlayerActionGuidance 0x23
#define SceneObj_PlacementStateChecker 0x27
#define SceneObj_NamePosHolder 0x28
#define SceneObj_NPCDirector 0x29
#define SceneObj_AllLiveActorGroup 0x30
#define SceneObj_PlanetGravityManager 0x32
#define SceneObj_PurpleCoinHolder 0x37
#define SceneObj_CoinRotater 0x38
#define SceneObj_AirBubbleHolder 0x39
#define SceneObj_BigFanHolder 0x3A
#define SceneObj_ShadowControllerHolder 0x44
#define SceneObj_ShadowVolumeDrawer 0x45
#define SceneObj_ShadowSurfaceDrawerInit 0x46
#define SceneObj_VolumeModelDrawInit 0x4C
#define SceneObj_SpinDrawerPathDrawInit 0x4D
#define SceneObj_NoteGroup 0x4E
#define SceneObj_ArrowSwitchMultiHolder 0x54
#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
#define SceneObj_GalaxyNamePlateDrawer 0x70
#define SceneObj_PlanetMapCreator 0x74
#define SceneObj_PriorDrawAirHolder 0x75
#define SceneObj_SkeletalFishRailHolder 0x68
#define SceneObj_FirePressureBulletHolder 0x6A
#define SceneObj_GalaxyNamePlateDrawer 0x70
#define SceneObj_PlanetMapCreator 0x74
#define SceneObj_PriorDrawAirHolder 0x75
class NameObj;
@ -55,7 +62,7 @@ public:
bool isExist(int) const;
NameObj* newEachObj(int);
NameObj* mSceneObjs[0x7B]; // 0x0
NameObj* mSceneObjs[0x7B]; // 0x0
};
namespace MR {
@ -63,8 +70,8 @@ namespace MR {
SceneObjHolder* getSceneObjHolder();
bool isExistSceneObj(int);
template<class T>
template <class T>
inline T getSceneObj(int objID) {
return reinterpret_cast<T>(MR::getSceneObjHolder()->getObj(objID));
}
};
}; // namespace MR

View File

@ -0,0 +1,18 @@
#pragma once
#include "Game/Screen/LayoutActor.hpp"
class ScenarioTitle : public LayoutActor {
public:
ScenarioTitle();
virtual ~ScenarioTitle();
virtual void init(const JMapInfoIter&);
void start();
void end();
void exeAppear();
void exeEnd();
inline void exeWait() {}
};

View File

@ -6,6 +6,7 @@
class GameSequenceDirector;
class GameSystemObjHolder;
class NameObjListExecutor;
class GameSystem : public NerveExecutor {
public:
@ -15,13 +16,13 @@ public:
void frameLoop();
u32 _8;
GameSequenceDirector* mSeqDirector; // 0xC
GameSequenceDirector* mSeqDirector; // 0xC
u32 _10;
u32 _14;
u32 _18;
u32 _1C;
GameSystemObjHolder* mObjHolder; // 0x20
GameSystemSceneController* mSceneController; // 0x24
GameSystemObjHolder* mObjHolder; // 0x20
GameSystemSceneController* mSceneController; // 0x24
u32 _28;
u32 _2C;
u32 _30;

View File

@ -69,6 +69,8 @@ namespace MR {
void calcActorAxisY(TVec3f *, const LiveActor *);
void addVelocitySeparateHV(LiveActor *, const TVec3f &, f32, f32);
void attenuateVelocity(LiveActor *, f32);
void killVelocityToTarget(LiveActor *, const TVec3f &);
@ -81,6 +83,7 @@ namespace MR {
void calcMtxFromGravityAndZAxis(TPos3f *, const LiveActor *, const TVec3f &, const TVec3f &);
void setVelocityJump(LiveActor *, f32);
void addVelocityToGravity(LiveActor *, f32);
void addVelocityKeepHeight(LiveActor *, const TVec3f &, f32, f32, f32);
@ -100,8 +103,11 @@ namespace MR {
void addVelocityMoveToTarget(LiveActor *, const TVec3f &, f32, f32, f32, f32);
void addVelocityKeepHeight(LiveActor *, const TVec3f &, f32, f32, f32);
void addVelocityKeepHeightUseShadow(LiveActor *, f32, f32, f32, const char *);
void turnDirectionToTarget(const LiveActor *, TVec3f *, const TVec3f &, f32);
void makeQuatAndFrontFromRotate(TQuat4f *, TVec3f *, const LiveActor *);
void moveAndTurnToPlayer(LiveActor *, TVec3f *, f32, f32, f32, f32);
};

View File

@ -167,6 +167,7 @@ namespace MR {
bool isMsgItemEndMove(u32);
bool isMsgInhaleBlackHole(u32);
bool isMsgFreezeAttack(u32);
bool isMsgInvincibleAttack(u32);
bool isMsgFireBallAttack(u32);

View File

@ -67,4 +67,8 @@ namespace MR {
bool isShadowProjected(const LiveActor *, const char *);
void getShadowProjectionPos(const LiveActor *, const char *, TVec3f *);
void getShadowProjectionNormal(const LiveActor *, const char *, TVec3f *);
void setShadowVolumeSphereRadius(LiveActor *, const char *, f32);
f32 getShadowNearProjectionLength(const LiveActor *);
};

View File

@ -8,64 +8,61 @@ class LiveActor;
class JMapInfoIter;
namespace MR {
bool tryRegisterDemoCast(LiveActor *, const char *, const JMapInfoIter &);
bool tryRegisterDemoCast(LiveActor *, const JMapInfoIter &);
bool tryRegisterDemoCast(LiveActor*, const char*, const JMapInfoIter&);
bool tryRegisterDemoCast(LiveActor*, const JMapInfoIter&);
bool isDemoCast(const LiveActor *, const char *);
bool isDemoCast(const LiveActor*, const char*);
void registerDemoActionFunctor(const LiveActor *, const MR::FunctorBase &, const char *);
bool tryRegisterDemoActionFunctorDirect(const LiveActor *, const MR::FunctorBase &, const char *, const char *);
void registerDemoActionFunctor(const LiveActor*, const MR::FunctorBase&, const char*);
bool tryRegisterDemoActionFunctorDirect(const LiveActor*, const MR::FunctorBase&, const char*, const char*);
void registerDemoActionNerve(const LiveActor *, const Nerve *, const char *);
bool tryRegisterDemoActionFunctor(const LiveActor *, const MR::FunctorBase &, const char *);
void registerDemoActionNerve(const LiveActor*, const Nerve*, const char*);
bool tryRegisterDemoActionFunctor(const LiveActor*, const MR::FunctorBase&, const char*);
bool tryRegisterDemoActionNerve(const LiveActor *, const Nerve *, const char *);
bool tryRegisterDemoActionNerve(const LiveActor*, const Nerve*, const char*);
bool isRegisteredDemoActionNerve(const LiveActor *);
bool isRegisteredDemoActionNerve(const LiveActor*);
void registerDemoSimpleCastAll(LiveActor *);
void registerDemoSimpleCastAll(NameObj *);
bool tryStartDemoRegisteredMarioPuppetable(LiveActor*, const char*);
void registerDemoSimpleCastAll(LiveActor*);
void registerDemoSimpleCastAll(NameObj*);
bool isDemoActive();
bool isDemoActive(const char *);
bool isDemoActive(const char*);
bool isSystemTalking();
bool isDemoExist(const char *);
bool isDemoExist(const char*);
bool isDemoPartTalk(const char*);
bool isDemoPartStep(const char*, s32);
bool isDemoPartFirstStep(const char*);
const char* getCurrentDemoPartNameMain(const char*);
s32 getDemoPartTotalStep(const char*);
bool isPowerStarGetDemoActive();
const char* getCurrentDemoPartNameMain(const char *);
bool isTimeKeepDemoActive();
bool tryStartDemo(LiveActor *, const char *);
bool tryStartDemoWithoutCinemaFrame(LiveActor *, const char *);
bool tryStartDemoRegistered(LiveActor *, const char *);
void endDemo(NameObj *, const char *);
bool tryStartDemo(LiveActor*, const char*);
bool tryStartDemoWithoutCinemaFrame(LiveActor*, const char*);
bool tryStartDemoRegistered(LiveActor*, const char*);
void endDemo(NameObj*, const char*);
bool requestStartDemo(LiveActor *, const char *, const Nerve *, const Nerve *);
bool requestStartDemo(LiveActor*, const char*, const Nerve*, const Nerve*);
void requestStartDemoMarioPuppetableWithoutCinmeaFrame(LiveActor *, const char *, const Nerve *, const Nerve *);
void requestStartDemoWithoutCinemaFrame(LiveActor *, const char *, const Nerve *, const Nerve *);
void requestStartDemoMarioPuppetableWithoutCinmeaFrame(LiveActor*, const char*, const Nerve*, const Nerve*);
void requestStartDemoWithoutCinemaFrame(LiveActor*, const char*, const Nerve*, const Nerve*);
bool tryStartDemoMarioPuppetable(LiveActor *, const char *);
bool tryStartDemoMarioPuppetable(LiveActor*, const char*);
bool tryStartTimeKeepDemoMarioPuppetable(LiveActor *, const char *, const char *);
bool tryStartTimeKeepDemoMarioPuppetable(NameObj *, const char *, const char *);
void requestStartTimeKeepDemoMarioPuppetable(LiveActor*, const char*, const Nerve*, const Nerve*, const char*);
void requestStartTimeKeepDemoMarioPuppetable(LiveActor *, const char *, const Nerve *, const Nerve *, const char *);
void requestStartTimeKeepDemo(LiveActor*, const char*, const Nerve*, const Nerve*, const char*);
void requestStartTimeKeepDemo(LiveActor *, const char *, const Nerve *, const Nerve *, const char *);
bool isDemoPartLastStep(const char*);
bool isDemoPartStep(const char *, s32);
bool isDemoPartFirstStep(const char *);
bool isDemoPartLastStep(const char *);
void endDemoWaitCameraInterpolating(NameObj*, const char*);
s32 getDemoPartTotalStep(const char *);
bool isDemoPartTalk(const char *);
void endDemoWaitCameraInterpolating(NameObj *, const char *);
bool isSystemTalking();
bool isNormalTalking();
};
bool tryStartTimeKeepDemoMarioPuppetable(NameObj*, const char*, const char*);
bool tryStartTimeKeepDemoMarioPuppetable(LiveActor*, const char*, const char*);
}; // namespace MR

View File

@ -23,6 +23,6 @@ public:
MtxPtr mBaseMtx; // 0x0
TVec3f mLocalTrans; // 0x4
TVec3f _10;
TMtx34f _1C;
TPos3f _1C;
bool mNormalizeScale; // 0x4C
};

View File

@ -14,6 +14,8 @@ namespace MR {
void copyJointPos(const LiveActor *, const char *, TVec3f *);
void showJoint(J3DModel *, const char *);
void copyJointScale(const LiveActor *, const char *, TVec3f *);
void hideJoint(J3DModel *, const char *);
bool isExistJoint(const LiveActor *, const char *);

View File

@ -9,108 +9,110 @@ class LayoutActor;
class IconAButton;
namespace MR {
void setEffectRate(LayoutActor *, const char *, f32);
void setEffectDirectionalSpeed(LayoutActor *, const char *, f32);
void setEffectRate(LayoutActor*, const char*, f32);
void setEffectDirectionalSpeed(LayoutActor*, const char*, f32);
void createAndAddPaneCtrl(LayoutActor *, const char *, u32);
void createAndAddPaneCtrl(LayoutActor*, const char*, u32);
bool isExistPaneCtrl(LayoutActor*, const char*);
void startPaneAnim(LayoutActor *, const char *, const char *, u32);
void startPaneAnimAtStep(LayoutActor *, const char *, const char *, s32, u32);
void startPaneAnim(LayoutActor*, const char*, const char*, u32);
void startPaneAnimAtStep(LayoutActor*, const char*, const char*, s32, u32);
void showPaneRecursive(LayoutActor *, const char *);
void showPaneRecursive(LayoutActor*, const char*);
void startAnim(LayoutActor *, const char *, u32);
void startAnim(LayoutActor*, const char*, u32);
void setAnimFrameAndStop(LayoutActor *, f32, u32);
void setPaneAnimFrameAndStop(LayoutActor *, const char *, f32, u32);
void setAnimFrameAndStop(LayoutActor*, f32, u32);
void setPaneAnimFrameAndStop(LayoutActor*, const char*, f32, u32);
void setAnimRate(LayoutActor *, f32, u32);
void setPaneAnimRate(LayoutActor *, const char *, f32, u32);
void setAnimRate(LayoutActor*, f32, u32);
void setPaneAnimRate(LayoutActor*, const char*, f32, u32);
f32 getAnimFrame(const LayoutActor *, u32);
f32 getAnimFrame(const LayoutActor*, u32);
s16 getAnimFrameMax(const LayoutActor *, u32);
s16 getAnimFrameMax(const LayoutActor *, const char *);
s16 getAnimFrameMax(const LayoutActor*, u32);
s16 getAnimFrameMax(const LayoutActor*, const char*);
bool isAnimStopped(const LayoutActor *, u32);
bool isPaneAnimStopped(const LayoutActor *, const char *, u32);
bool isAnimStopped(const LayoutActor*, u32);
bool isPaneAnimStopped(const LayoutActor*, const char*, u32);
f32 getPaneAnimFrame(const LayoutActor *, const char *, u32);
f32 getPaneAnimFrame(const LayoutActor*, const char*, u32);
void setFollowPos(const TVec2f *, const LayoutActor *, const char *);
void setFollowPos(const TVec2f &, const LayoutActor *, const char *);
void setFollowPos(const TVec2f*, const LayoutActor*, const char*);
void setFollowPos(const TVec2f&, const LayoutActor*, const char*);
void setFollowTypeReplace(const LayoutActor *, const char *);
void setFollowTypeAdd(const LayoutActor *, const char *);
void setFollowTypeReplace(const LayoutActor*, const char*);
void setFollowTypeAdd(const LayoutActor*, const char*);
void copyPaneTrans(TVec2f *, const LayoutActor *, const char *);
void copyPaneTrans(TVec2f*, const LayoutActor*, const char*);
void convertLayoutPosToScreenPos(TVec2f *, const TVec2f &);
void convertLayoutPosToScreenPos(TVec2f*, const TVec2f&);
void setTextBoxNumberRecursive(LayoutActor *, const char *, s32);
void clearTextBoxMessageRecursive(LayoutActor *, const char *);
void setTextBoxNumberRecursive(LayoutActor*, const char*, s32);
void clearTextBoxMessageRecursive(LayoutActor*, const char*);
void setTextBoxGameMessageRecursive(LayoutActor *, const char *, const char *);
void setTextBoxLayoutMessageRecursive(LayoutActor *, const char *, const char *);
void setTextBoxSystemMessageRecursive(LayoutActor *, const char *, const char *);
void setTextBoxMessageRecursive(LayoutActor *, const char *, const wchar_t *);
void setTextBoxFormatRecursive(LayoutActor *, const char *, const wchar_t *, ...);
void setTextBoxGameMessageRecursive(LayoutActor*, const char*, const char*);
void setTextBoxLayoutMessageRecursive(LayoutActor*, const char*, const char*);
void setTextBoxSystemMessageRecursive(LayoutActor*, const char*, const char*);
void setTextBoxMessageRecursive(LayoutActor*, const char*, const wchar_t*);
void setTextBoxFormatRecursive(LayoutActor*, const char*, const wchar_t*, ...);
void setTextBoxArgNumberRecursive(LayoutActor *, const char *, s32, s32);
void setTextBoxArgStringRecursive(LayoutActor *, const char *, const wchar_t *, s32);
void setTextBoxArgNumberRecursive(LayoutActor*, const char*, s32, s32);
void setTextBoxArgStringRecursive(LayoutActor*, const char*, const wchar_t*, s32);
void setTextBoxVerticalPositionTopRecursive(LayoutActor*, const char*);
void setTextBoxVerticalPositionCenterRecursive(LayoutActor*, const char*);
void setTextBoxVerticalPositionBottomRecursive(LayoutActor*, const char*);
bool isFirstStep(const LayoutActor *);
bool isGreaterStep(const LayoutActor *, s32);
bool isFirstStep(const LayoutActor*);
bool isGreaterStep(const LayoutActor*, s32);
bool isDead(const LayoutActor *);
bool isDead(const LayoutActor*);
bool isStoppedAnimFrame(const LayoutActor *);
bool isStoppedAnimFrame(const LayoutActor*);
bool isExecuteCalcAnimLayout(const LayoutActor *);
bool isExecuteDrawLayout(const LayoutActor *);
void showLayout(LayoutActor *);
void hideLayout(LayoutActor *);
bool isExecuteCalcAnimLayout(const LayoutActor*);
bool isExecuteDrawLayout(const LayoutActor*);
void showPane(LayoutActor *, const char *);
void hidePane(LayoutActor *, const char *);
void hidePaneRecursive(LayoutActor *, const char *);
void showPaneRecursive(LayoutActor *, const char *);
void showLayout(LayoutActor*);
void hideLayout(LayoutActor*);
bool isHiddenLayout(const LayoutActor *);
void showPane(LayoutActor*, const char*);
void hidePane(LayoutActor*, const char*);
void hidePaneRecursive(LayoutActor*, const char*);
void showPaneRecursive(LayoutActor*, const char*);
void startAnimAndSetFrameAndStop(LayoutActor *, const char *, f32, u32);
bool isHiddenLayout(const LayoutActor*);
void emitEffect(LayoutActor *, const char *);
void startAnimAndSetFrameAndStop(LayoutActor*, const char*, f32, u32);
void emitEffect(LayoutActor*, const char*);
IconAButton* createAndSetupIconAButton(LayoutActor*, bool, bool);
void setCometAnimFromId(LayoutActor *, int, u32);
void setCometAnimFromId(LayoutActor*, int, u32);
void setCometPaneAnimFromId(LayoutActor *, const char *, int, u32);
void setCometPaneAnimFromId(LayoutActor*, const char*, int, u32);
void createAndAddLayoutHolderRawData(const char *);
void createAndAddLayoutHolderRawData(const char*);
void setEffectHostMtx(LayoutActor *, const char *, MtxPtr);
void setEffectHostMtx(LayoutActor*, const char*, MtxPtr);
void addStarPointerTargetCircle(LayoutActor *, const char *, f32, const TVec2f &, const char *);
void addStarPointerTargetCircle(LayoutActor*, const char*, f32, const TVec2f&, const char*);
void startPaneAnimAtFirstStep(LayoutActor *, const char *, const char *, u32);
void startPaneAnimAtFirstStep(LayoutActor*, const char*, const char*, u32);
void setNerveAtPaneAnimStopped(LayoutActor *, const char *, const Nerve *, u32);
void setNerveAtPaneAnimStopped(LayoutActor*, const char*, const Nerve*, u32);
void setNerveAtStep(LayoutActor *, const Nerve *, s32);
void setNerveAtStep(LayoutActor*, const Nerve*, s32);
void setTextBoxGameMessageRecursive(LayoutActor *, const char *, const char *);
void setTextBoxArgGameMessageRecursive(LayoutActor *, const char *, const char *, s32);
void setTextBoxGameMessageRecursive(LayoutActor*, const char*, const char*);
void setTextBoxArgGameMessageRecursive(LayoutActor*, const char*, const char*, s32);
bool isStep(const LayoutActor *, s32);
bool isStep(const LayoutActor*, s32);
void hideLayout(LayoutActor *);
void hideLayout(LayoutActor*);
f32 calcNerveEaseInValue(const LayoutActor *, s32, s32, f32, f32);
};
f32 calcNerveEaseInValue(const LayoutActor*, s32, s32, f32, f32);
void setNerveAtAnimStopped(LayoutActor*, const Nerve*, u32);
}; // namespace MR

View File

@ -1,11 +1,12 @@
#pragma once
#include "JSystem/JGeometry/TVec.hpp"
#include "JSystem/JGeometry/TQuat.hpp"
#include <revolution.h>
#include "Game/Animation/AnmPlayer.hpp"
#include "Game/LiveActor/LiveActorGroup.hpp"
#include "Game/Util/JMapInfo.hpp"
#include <revolution.h>
#include "JSystem/JGeometry/TMatrix.hpp"
#include "JSystem/JGeometry/TQuat.hpp"
#include "JSystem/JGeometry/TVec.hpp"
class CollisionParts;
class Nerve;
@ -14,7 +15,6 @@ class ActorLightCtrl;
class ProjmapEffectMtxSetter;
class ModelObj;
class BrkCtrl;
class BckCtrlData;
class PartsModel;
class LodCtrl;
class CollisionParts;
@ -24,337 +24,329 @@ class MsgSharedGroup;
class ResTIMG;
class LiveActor;
class TexMtxCtrl;
class BckCtrlData;
namespace MR {
enum CollisionScaleType {
UNKNOWN_0 = 0,
UNKNOWN_1 = 1,
UNKNOWN_2 = 2,
UNKNOWN_3 = 3
};
enum CollisionScaleType { UNKNOWN_0 = 0, UNKNOWN_1 = 1, UNKNOWN_2 = 2, UNKNOWN_3 = 3 };
bool isExistIndirectTexture(const LiveActor *);
bool isExistIndirectTexture(const LiveActor*);
bool isAnyAnimStopped(const LiveActor *, const char *);
bool isAnyAnimStopped(const LiveActor*, const char*);
void validateClipping(LiveActor *);
void invalidateClipping(LiveActor *);
void setClippingTypeSphere(LiveActor *, f32);
void setClippingTypeSphere(LiveActor *, f32, const TVec3f *);
void setClippingFarMax(LiveActor *);
void setClippingFar50m(LiveActor *);
void setClippingFar200m(LiveActor *);
void startBtk(const LiveActor *, const char *);
void setBaseScale(LiveActor *, const TVec3f &);
MsgSharedGroup* joinToGroupArray(LiveActor *, const JMapInfoIter &, const char *, s32);
LiveActorGroup* getGroupFromArray(const LiveActor *);
inline s32 getGroupCountFromArray(const LiveActor *pActor) {
return getGroupFromArray(pActor)->mObjectCount;
}
void copyTransRotateScale(const LiveActor *, LiveActor *);
bool isDead(const LiveActor *);
void initDefaultPos(LiveActor *, const JMapInfoIter &);
void initDefaultPosNoRepeat(LiveActor *, const JMapInfoIter &);
bool isValidMovement(const LiveActor *);
bool isValidCalcAnim(const LiveActor *);
bool isValidCalcViewAndEntry(const LiveActor *);
bool isValidDraw(const LiveActor *);
bool isValidCollisionParts(LiveActor *);
void setCollisionMtx(LiveActor *);
void invalidateClipping(LiveActor *);
bool isClipped(const LiveActor *);
bool isInvalidClipping(const LiveActor *);
bool isHiddenModel(const LiveActor *);
void onBind(LiveActor *);
void offBind(LiveActor *);
bool isCalcGravity(const LiveActor *);
void showModel(LiveActor *);
void hideModel(LiveActor *);
void showModelIfHidden(LiveActor *);
void hideModelIfHidden(LiveActor *);
void hideModelAndOnCalcAnim(LiveActor *);
void stopAnimFrame(LiveActor *);
void validateClipping(LiveActor*);
void invalidateClipping(LiveActor*);
void setClippingTypeSphere(LiveActor*, f32);
void setClippingTypeSphere(LiveActor*, f32, const TVec3f*);
void setClippingFarMax(LiveActor*);
void setClippingFar50m(LiveActor*);
void setClippingFar200m(LiveActor*);
void startBtk(const LiveActor*, const char*);
ResourceHolder* getResourceHolder(const LiveActor *);
ResourceHolder* getModelResourceHolder(const LiveActor *);
void setBaseScale(LiveActor*, const TVec3f&);
bool isNoEntryDrawBuffer(const LiveActor *);
MsgSharedGroup* joinToGroupArray(LiveActor*, const JMapInfoIter&, const char*, s32);
LiveActorGroup* getGroupFromArray(const LiveActor*);
inline s32 getGroupCountFromArray(const LiveActor* pActor) { return getGroupFromArray(pActor)->mObjectCount; }
void onCalcAnim(LiveActor *);
void offCalcAnim(LiveActor *);
void copyTransRotateScale(const LiveActor*, LiveActor*);
bool isDead(const LiveActor*);
void onEntryDrawBuffer(LiveActor *);
void offEntryDrawBuffer(LiveActor *);
void initDefaultPos(LiveActor*, const JMapInfoIter&);
void initDefaultPosNoRepeat(LiveActor*, const JMapInfoIter&);
bool isValidMovement(const LiveActor*);
bool isValidCalcAnim(const LiveActor*);
bool isValidCalcViewAndEntry(const LiveActor*);
bool isValidDraw(const LiveActor*);
const char* getModelResName(const LiveActor *);
void onCalcGravity(LiveActor *);
void offCalcGravity(LiveActor *);
bool isValidCollisionParts(LiveActor*);
void setCollisionMtx(LiveActor*);
void calcGravityOrZero(LiveActor *);
void calcAnimDirect(LiveActor *);
void invalidateClipping(LiveActor*);
void calcGravity(LiveActor *);
void calcGravity(LiveActor *, const TVec3f &);
bool isClipped(const LiveActor*);
bool isInvalidClipping(const LiveActor*);
void offCalcShadow(LiveActor *, const char *);
bool isHiddenModel(const LiveActor*);
void zeroVelocity(LiveActor *);
void onBind(LiveActor*);
void offBind(LiveActor*);
bool isNoBind(const LiveActor *);
void initLightCtrl(LiveActor *);
void initLightCtrlForPlayer(LiveActor *);
void initLightCtrlNoDrawEnemy(LiveActor *);
void initLightCtrlNoDrawMapObj(LiveActor *);
void updateLightCtrl(LiveActor *);
void updateLightCtrlDirect(LiveActor *);
void loadActorLight(const LiveActor *);
void calcLightPos0(TVec3f *, const LiveActor *);
void calcLightPos1(TVec3f *, const LiveActor *);
const GXColor* getLightAmbientColor(const LiveActor *);
ActorLightCtrl* getLightCtrl(const LiveActor *);
bool isStep(const LiveActor *, s32);
bool isFirstStep(const LiveActor *);
bool isLessStep(const LiveActor *, s32);
bool isLessEqualStep(const LiveActor *, s32);
bool isGreaterStep(const LiveActor *, s32);
bool isGreaterEqualStep(const LiveActor *, s32);
bool isIntervalStep(const LiveActor *, s32);
bool isNewNerve(const LiveActor *);
f32 calcNerveRate(const LiveActor *, s32);
f32 calcNerveRate(const LiveActor *, s32, s32);
f32 calcNerveEaseInRate(const LiveActor *, s32);
f32 calcNerveEaseOutRate(const LiveActor *, s32);
f32 calcNerveEaseOutRate(const LiveActor *, s32, s32);
f32 calcNerveEaseInOutRate(const LiveActor *, s32);
f32 calcNerveEaseInOutRate(const LiveActor *, s32, s32);
f32 calcNerveValue(const LiveActor *, s32, f32, f32);
f32 calcNerveValue(const LiveActor *, s32, s32, f32, f32);
f32 calcNerveEaseInValue(const LiveActor *, s32, f32, f32);
f32 calcNerveEaseInValue(const LiveActor *, s32, s32, f32, f32);
f32 calcNerveEaseOutValue(const LiveActor *, s32, f32, f32);
f32 calcNerveEaseInOutValue(const LiveActor *, s32, f32, f32);
f32 calcNerveEaseInOutValue(const LiveActor *, s32, s32, f32, f32);
void setNerveAtStep(LiveActor *, const Nerve *, s32);
void setNerveAtBckStopped(LiveActor *, const Nerve *);
bool trySetNerve(LiveActor *, const Nerve *);
bool isCalcGravity(const LiveActor*);
bool isNoCalcAnim(const LiveActor *);
void showModel(LiveActor*);
void hideModel(LiveActor*);
void showModelIfHidden(LiveActor*);
void hideModelIfHidden(LiveActor*);
void initCollisionParts(LiveActor *, const char *, HitSensor *, MtxPtr);
void hideModelAndOnCalcAnim(LiveActor*);
void stopAnimFrame(LiveActor*);
void initCollisionPartsAutoEqualScale(LiveActor *, const char *, HitSensor *, MtxPtr);
void setBaseTRMtx(LiveActor *, MtxPtr);
void setBaseTRMtx(LiveActor *, const TQuat4f &);
void setBaseTRMtx(LiveActor *, const TPos3f &);
ResourceHolder* getResourceHolder(const LiveActor*);
ResourceHolder* getModelResourceHolder(const LiveActor*);
void setClippingFar(LiveActor *, f32);
void setClippingFar100m(LiveActor *);
bool isNoEntryDrawBuffer(const LiveActor*);
void setClippingTypeSphereContainsModelBoundingBox(LiveActor *, f32);
void validateCollisionParts(LiveActor *);
void validateCollisionParts(CollisionParts *);
void onCalcAnim(LiveActor*);
void offCalcAnim(LiveActor*);
void invalidateCollisionParts(LiveActor *);
void invalidateCollisionParts(CollisionParts *);
void onEntryDrawBuffer(LiveActor*);
void offEntryDrawBuffer(LiveActor*);
void offUpdateCollisionParts(LiveActor *);
const char* getModelResName(const LiveActor*);
void onUpdateCollisionPartsOnetimeImmediately(LiveActor *);
void onCalcGravity(LiveActor*);
void offCalcGravity(LiveActor*);
bool isExistCollisionParts(const LiveActor *);
void calcGravityOrZero(LiveActor*);
void resetAllCollisionMtx(LiveActor *);
void calcAnimDirect(LiveActor*);
void startAllAnim(const LiveActor *, const char *);
bool tryStartAllAnim(const LiveActor *, const char *);
void calcGravity(LiveActor*);
void calcGravity(LiveActor*, const TVec3f&);
bool isAnyAnimOneTimeAndStopped(const LiveActor *, const char *);
void offCalcShadow(LiveActor*, const char*);
bool isBrkOneTimeAndStopped(const LiveActor *);
void zeroVelocity(LiveActor*);
void setAllAnimFrame(const LiveActor *, const char *, f32);
void setAllAnimFrameAtEnd(const LiveActor *, const char *);
bool isNoBind(const LiveActor*);
void startBck(const LiveActor *, const char *, const char *);
void startBckNoInterpole(const LiveActor *, const char *);
void startBckWithInterpole(const LiveActor *, const char *, s32);
void startBrk(const LiveActor *, const char *);
void startBva(const LiveActor *, const char *);
void setBvaFrameAndStop(const LiveActor *, f32);
void initLightCtrl(LiveActor*);
void initLightCtrlForPlayer(LiveActor*);
void initLightCtrlNoDrawEnemy(LiveActor*);
void initLightCtrlNoDrawMapObj(LiveActor*);
void updateLightCtrl(LiveActor*);
void updateLightCtrlDirect(LiveActor*);
void loadActorLight(const LiveActor*);
void calcLightPos0(TVec3f*, const LiveActor*);
void calcLightPos1(TVec3f*, const LiveActor*);
const GXColor* getLightAmbientColor(const LiveActor*);
ActorLightCtrl* getLightCtrl(const LiveActor*);
bool isStep(const LiveActor*, s32);
bool isFirstStep(const LiveActor*);
bool isLessStep(const LiveActor*, s32);
bool isLessEqualStep(const LiveActor*, s32);
bool isGreaterStep(const LiveActor*, s32);
bool isGreaterEqualStep(const LiveActor*, s32);
bool isIntervalStep(const LiveActor*, s32);
bool isNewNerve(const LiveActor*);
f32 calcNerveRate(const LiveActor*, s32);
f32 calcNerveRate(const LiveActor*, s32, s32);
f32 calcNerveEaseInRate(const LiveActor*, s32);
f32 calcNerveEaseOutRate(const LiveActor*, s32);
f32 calcNerveEaseOutRate(const LiveActor*, s32, s32);
f32 calcNerveEaseInOutRate(const LiveActor*, s32);
f32 calcNerveEaseInOutRate(const LiveActor*, s32, s32);
f32 calcNerveValue(const LiveActor*, s32, f32, f32);
f32 calcNerveValue(const LiveActor*, s32, s32, f32, f32);
f32 calcNerveEaseInValue(const LiveActor*, s32, f32, f32);
f32 calcNerveEaseInValue(const LiveActor*, s32, s32, f32, f32);
f32 calcNerveEaseOutValue(const LiveActor*, s32, f32, f32);
f32 calcNerveEaseInOutValue(const LiveActor*, s32, f32, f32);
f32 calcNerveEaseInOutValue(const LiveActor*, s32, s32, f32, f32);
void setNerveAtStep(LiveActor*, const Nerve*, s32);
void setNerveAtBckStopped(LiveActor*, const Nerve*);
bool trySetNerve(LiveActor*, const Nerve*);
J3DFrameCtrl* getBckCtrl(const LiveActor *);
J3DFrameCtrl* getBrkCtrl(const LiveActor *);
J3DFrameCtrl* getBtkCtrl(const LiveActor *);
J3DFrameCtrl* getBpkCtrl(const LiveActor *);
J3DFrameCtrl* getBtpCtrl(const LiveActor *);
J3DFrameCtrl* getBvaCtrl(const LiveActor *);
bool isNoCalcAnim(const LiveActor*);
void startBrkAndSetFrameAndStop(const LiveActor *, const char *, f32);
bool tryStartBck(const LiveActor *, const char *, const char *);
void setBckRate(const LiveActor *, f32);
void initCollisionParts(LiveActor*, const char*, HitSensor*, MtxPtr);
void setBrkRate(const LiveActor *, f32);
void initCollisionPartsAutoEqualScale(LiveActor*, const char*, HitSensor*, MtxPtr);
void setBckFrame(const LiveActor *, f32);
f32 getBckFrameMax(const LiveActor *);
f32 getBrkFrameMax(const LiveActor *);
f32 getBtkFrameMax(const LiveActor *);
void setBaseTRMtx(LiveActor*, MtxPtr);
void setBaseTRMtx(LiveActor*, const TQuat4f&);
void setBaseTRMtx(LiveActor*, const TPos3f&);
void reflectBckCtrlData(LiveActor *, const BckCtrlData &);
void setClippingFar(LiveActor*, f32);
void setClippingFar100m(LiveActor*);
void setBckFrameAndStop(const LiveActor *, f32);
void setClippingTypeSphereContainsModelBoundingBox(LiveActor*, f32);
s16 getBrkFrameMax(const LiveActor *, const char *);
void validateCollisionParts(LiveActor*);
void validateCollisionParts(CollisionParts*);
void setBtkFrame(LiveActor *, f32);
void setBtkFrameAndStop(const LiveActor *, f32);
void invalidateCollisionParts(LiveActor*);
void invalidateCollisionParts(CollisionParts*);
bool isExistBck(const LiveActor *, const char *);
bool isExistBva(const LiveActor *, const char *);
bool isExistBtk(const LiveActor *, const char *);
bool isExistBpk(const LiveActor *, const char *);
bool isExistBtp(const LiveActor *, const char *);
bool isExistBrk(const LiveActor *, const char *);
void offUpdateCollisionParts(LiveActor*);
bool isBckPlaying(const LiveActor *, const char *);
void onUpdateCollisionPartsOnetimeImmediately(LiveActor*);
bool isBckStopped(const LiveActor *);
bool isBrkStopped(const LiveActor *);
bool isBtkStopped(const LiveActor *);
bool isBtpStopped(const LiveActor *);
bool isBpkStopped(const LiveActor *);
bool isExistCollisionParts(const LiveActor*);
bool isBckOneTimeAndStopped(const LiveActor *);
void resetAllCollisionMtx(LiveActor*);
void startAllAnim(const LiveActor*, const char*);
bool tryStartAllAnim(const LiveActor*, const char*);
void setBrkFrame(const LiveActor *, f32);
void setBrkFrameAndStop(const LiveActor *, f32);
void setBrkFrameEndAndStop(const LiveActor *);
bool isAnyAnimOneTimeAndStopped(const LiveActor*, const char*);
void setBckFrameAtRandom(const LiveActor *);
bool isBrkOneTimeAndStopped(const LiveActor*);
void setBaseTRMtx(LiveActor *, const TPos3f &);
void setAllAnimFrame(const LiveActor*, const char*, f32);
void setAllAnimFrameAtEnd(const LiveActor*, const char*);
void setBpkFrame(const LiveActor *, f32);
void stopBck(const LiveActor *);
void startBck(const LiveActor*, const char*, const char*);
void startBckNoInterpole(const LiveActor*, const char*);
void startBckWithInterpole(const LiveActor*, const char*, s32);
void startBrk(const LiveActor*, const char*);
void startBva(const LiveActor*, const char*);
void setBvaFrameAndStop(const LiveActor*, f32);
void startBtp(const LiveActor *, const char *);
void setBtpFrame(const LiveActor *, f32);
void setBtpFrameAndStop(const LiveActor *, f32);
J3DFrameCtrl* getBckCtrl(const LiveActor*);
J3DFrameCtrl* getBrkCtrl(const LiveActor*);
J3DFrameCtrl* getBtkCtrl(const LiveActor*);
J3DFrameCtrl* getBpkCtrl(const LiveActor*);
J3DFrameCtrl* getBtpCtrl(const LiveActor*);
J3DFrameCtrl* getBvaCtrl(const LiveActor*);
void startBpk(const LiveActor *, const char *);
void startBrkAndSetFrameAndStop(const LiveActor*, const char*, f32);
bool tryStartBck(const LiveActor*, const char*, const char*);
void setBckRate(const LiveActor*, f32);
ProjmapEffectMtxSetter* initDLMakerProjmapEffectMtxSetter(LiveActor *);
void setBrkRate(const LiveActor*, f32);
void newDifferedDLBuffer(LiveActor *);
void setBckFrame(const LiveActor*, f32);
f32 getBckFrameMax(const LiveActor*);
f32 getBrkFrameMax(const LiveActor*);
f32 getBtkFrameMax(const LiveActor*);
void setBckFrameAndStop(const LiveActor*, f32);
ModelObj* createModelObjMapObj(const char *, const char *, MtxPtr);
ModelObj* createModelObjMapObjStrongLight(const char *, const char *, MtxPtr);
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);
s16 getBrkFrameMax(const LiveActor*, const char*);
void sendMsgToGroupMember(u32, LiveActor *, HitSensor *, const char *);
void setBtkFrame(LiveActor*, f32);
void setBtkFrameAndStop(const LiveActor*, f32);
void callAppearAllGroupMember(const LiveActor *);
void callMakeActorDeadAllGroupMember(const LiveActor *);
void callRequestMovementOnAllGroupMember(const LiveActor *);
bool isExistBck(const LiveActor*, const char*);
bool isExistBva(const LiveActor*, const char*);
bool isExistBtk(const LiveActor*, const char*);
bool isExistBpk(const LiveActor*, const char*);
bool isExistBtp(const LiveActor*, const char*);
bool isExistBrk(const LiveActor*, const char*);
void setGroupClipping(LiveActor *, const JMapInfoIter &, int);
bool isBckPlaying(const LiveActor*, const char*);
PartsModel* createPartsModelNoSilhouettedMapObj(LiveActor *, const char *, const char *, MtxPtr);
bool isBckStopped(const LiveActor*);
bool isBrkStopped(const LiveActor*);
bool isBtkStopped(const LiveActor*);
bool isBtpStopped(const LiveActor*);
bool isBpkStopped(const LiveActor*);
void startAction(const LiveActor *, const char *);
bool isBckOneTimeAndStopped(const LiveActor*);
LodCtrl* createLodCtrlPlanet(LiveActor *, const JMapInfoIter &, f32, s32);
LodCtrl* createLodCtrlNPC(LiveActor *, const JMapInfoIter &);
void setBrkFrame(const LiveActor*, f32);
void setBrkFrameAndStop(const LiveActor*, f32);
void setBrkFrameEndAndStop(const LiveActor*);
bool changeShowModelFlagSyncNearClipping(LiveActor *, f32);
void setBckFrameAtRandom(const LiveActor*);
void hideModelAndOnCalcAnimIfShown(LiveActor *);
void setBaseTRMtx(LiveActor*, const TPos3f&);
bool tryCreateMirrorActor(LiveActor *, const char *);
void setBpkFrame(const LiveActor*, f32);
void stopBck(const LiveActor*);
CollisionParts* createCollisionPartsFromLiveActor(LiveActor *, const char *, HitSensor *, CollisionScaleType);
CollisionParts* createCollisionPartsFromLiveActor(LiveActor *, const char *, HitSensor *, MtxPtr, CollisionScaleType);
void startBtp(const LiveActor*, const char*);
void setBtpFrame(const LiveActor*, f32);
void setBtpFrameAndStop(const LiveActor*, f32);
bool isBinded(const LiveActor *);
bool isBinded(const LiveActor *, HitSensor *);
void startBpk(const LiveActor*, const char*);
bool isBindedGround(const LiveActor *);
bool isBindedWall(const LiveActor *);
ProjmapEffectMtxSetter* initDLMakerProjmapEffectMtxSetter(LiveActor*);
bool isBindedGroundIce(const LiveActor *);
bool isBindedGroundWater(const LiveActor *);
void newDifferedDLBuffer(LiveActor*);
bool isActionEnd(const LiveActor *);
ModelObj* createModelObjMapObj(const char*, const char*, MtxPtr);
ModelObj* createModelObjMapObjStrongLight(const char*, const char*, MtxPtr);
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 setMirrorReflectionInfoFromModel(LiveActor *);
void sendMsgToGroupMember(u32, LiveActor*, HitSensor*, const char*);
bool isBindedRoof(const LiveActor *);
bool isOnGround(const LiveActor *);
void callAppearAllGroupMember(const LiveActor*);
void callMakeActorDeadAllGroupMember(const LiveActor*);
void callRequestMovementOnAllGroupMember(const LiveActor*);
bool isPressedRoofAndGround(const LiveActor *);
void setGroupClipping(LiveActor*, const JMapInfoIter&, int);
TVec3f* getRoofNormal(const LiveActor *);
TVec3f* getWallNormal(const LiveActor *);
TVec3f* getGroundNormal(const LiveActor *);
PartsModel* createPartsModelNoSilhouettedMapObj(LiveActor*, const char*, const char*, MtxPtr);
void setBinderExceptSensorType(LiveActor *, const TVec3f *, f32);
void startAction(const LiveActor*, const char*);
void setBinderOffsetVec(LiveActor *, const TVec3f *, bool);
LodCtrl* createLodCtrlPlanet(LiveActor*, const JMapInfoIter&, f32, s32);
LodCtrl* createLodCtrlNPC(LiveActor*, const JMapInfoIter&);
void setBinderExceptActor(LiveActor *, const LiveActor *);
bool changeShowModelFlagSyncNearClipping(LiveActor*, f32);
bool tryCreateCollisionAllOtherCategory(LiveActor *, MtxPtr, HitSensor *, CollisionParts **, CollisionParts **, CollisionParts **);
bool tryCreateCollisionAllOtherCategory(LiveActor *, HitSensor *, CollisionParts **, CollisionParts **, CollisionParts **);
void hideModelAndOnCalcAnimIfShown(LiveActor*);
f32 getCollisionBoundingSphereRange(const LiveActor *);
bool tryCreateMirrorActor(LiveActor*, const char*);
bool isExistAnim(const LiveActor *, const char *);
CollisionParts* createCollisionPartsFromLiveActor(LiveActor*, const char*, HitSensor*, CollisionScaleType);
CollisionParts* createCollisionPartsFromLiveActor(LiveActor*, const char*, HitSensor*, MtxPtr, CollisionScaleType);
void setMirrorReflectionInfoFromMtxYUp(const TPos3f &);
bool isBinded(const LiveActor*);
bool isBinded(const LiveActor*, HitSensor*);
const char* createLowModelObjName(const LiveActor *);
const char* createMiddleModelObjName(const LiveActor *);
bool isBindedGround(const LiveActor*);
bool isBindedWall(const LiveActor*);
void addToAttributeGroupSearchTurtle(const LiveActor *);
bool isBindedGroundIce(const LiveActor*);
bool isBindedGroundWater(const LiveActor*);
void stopSceneAtStep(const LiveActor *, s32, s32);
bool isActionEnd(const LiveActor*);
void tryRumblePadAndCameraDistanceStrong(const LiveActor *, f32, f32, f32);
void setMirrorReflectionInfoFromModel(LiveActor*);
void initJointTransform(const LiveActor *);
bool isBindedRoof(const LiveActor*);
bool isOnGround(const LiveActor*);
void initCollisionPartsAutoEqualScaleOne(LiveActor *, const char *, HitSensor *, MtxPtr);
void initCollisionPartsFromResourceHolder(LiveActor *, const char *, HitSensor *, ResourceHolder *, MtxPtr);
bool isPressedRoofAndGround(const LiveActor*);
ResTIMG* getTexFromArc(const char *, const LiveActor *);
PartsModel* createBloomModel(LiveActor *, MtxPtr);
TVec3f* getRoofNormal(const LiveActor*);
TVec3f* getWallNormal(const LiveActor*);
TVec3f* getGroundNormal(const LiveActor*);
CollisionParts* getCollisionParts(const LiveActor *);
void setBinderExceptSensorType(LiveActor*, const TVec3f*, f32);
TexMtxCtrl* initDLMakerTexMtx(LiveActor *, const char *);
void setBinderOffsetVec(LiveActor*, const TVec3f*, bool);
void setBinderRadius(LiveActor*, f32);
void changeModelDataTexAll(LiveActor *, const char *, const ResTIMG &);
};
void setBinderExceptActor(LiveActor*, const LiveActor*);
bool tryCreateCollisionAllOtherCategory(LiveActor*, MtxPtr, HitSensor*, CollisionParts**, CollisionParts**, CollisionParts**);
bool tryCreateCollisionAllOtherCategory(LiveActor*, HitSensor*, CollisionParts**, CollisionParts**, CollisionParts**);
f32 getCollisionBoundingSphereRange(const LiveActor*);
bool isExistAnim(const LiveActor*, const char*);
void setMirrorReflectionInfoFromMtxYUp(const TPos3f&);
const char* createLowModelObjName(const LiveActor*);
const char* createMiddleModelObjName(const LiveActor*);
void addToAttributeGroupSearchTurtle(const LiveActor*);
void stopSceneAtStep(const LiveActor*, s32, s32);
void tryRumblePadAndCameraDistanceStrong(const LiveActor*, f32, f32, f32);
void initJointTransform(const LiveActor*);
void initCollisionPartsAutoEqualScaleOne(LiveActor*, const char*, HitSensor*, MtxPtr);
void initCollisionPartsFromResourceHolder(LiveActor*, const char*, HitSensor*, ResourceHolder*, MtxPtr);
ResTIMG* getTexFromArc(const char*, const LiveActor*);
PartsModel* createBloomModel(LiveActor*, MtxPtr);
CollisionParts* getCollisionParts(const LiveActor*);
TexMtxCtrl* initDLMakerTexMtx(LiveActor*, const char*);
void changeModelDataTexAll(LiveActor*, const char*, const ResTIMG&);
void reflectBckCtrlData(LiveActor*, const BckCtrlData&);
}; // namespace MR

View File

@ -65,6 +65,8 @@ namespace MR {
void blendQuatUpFront(TQuat4f *, const TVec3f &, const TVec3f &, float, float);
void rotateQuatRollBall(TQuat4f *, const TVec3f &, const TVec3f &, f32);
void clampLength(TVec3f *, const TVec3f &, f32);
f32 convergeRadian(f32, f32, f32);
bool isInRange(f32, f32, f32);
@ -157,10 +159,6 @@ namespace MR {
return x >= y ? x : y;
}
static inline s32 max(s32 x, s32 y) {
return x >= y ? x : y;
}
/* there's a couple of issues with stack ordering when it comes to vectors being created and scaled
* this function automates this and resolves most issues
*/

View File

@ -68,6 +68,8 @@ namespace MR {
void startSystemLevelSE(const char *, s32, s32);
void playLevelMarioPinchBGM(bool);
void stopMarioPinchBGMSoon();
void submitTrigSE();
void permitTrigSE();
};

View File

@ -2,16 +2,21 @@
#include "Game/Util/Functor.hpp"
class ParticleResourceHolder;
namespace MR {
bool isScreen16Per9();
void setLayoutDefaultAllocator();
void startFunctionAsyncExecuteOnMainThread(const FunctorBase &, const char *);
void waitForEndFunctionAsyncExecute(const char *);
bool isEndFunctionAsyncExecute(const char *);
bool tryEndFunctionAsyncExecute(const char *);
void suspendAsyncExecuteThread(const char *);
void resumeAsyncExecuteThread(const char *);
bool isSuspendAsyncExecuteThread(const char *);
};
void startFunctionAsyncExecuteOnMainThread(const FunctorBase&, const char*);
void waitForEndFunctionAsyncExecute(const char*);
bool isEndFunctionAsyncExecute(const char*);
bool tryEndFunctionAsyncExecute(const char*);
void suspendAsyncExecuteThread(const char*);
void resumeAsyncExecuteThread(const char*);
bool isSuspendAsyncExecuteThread(const char*);
ParticleResourceHolder* getParticleResourceHolder();
}; // namespace MR

View File

@ -1,6 +1,8 @@
#ifndef GXTYPES_H
#define GXTYPES_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif

View File

@ -0,0 +1,91 @@
#ifndef RSO_H
#define RSO_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct RSOObjectHeader RSOObjectHeader;
typedef u32 RSOHash;
typedef struct RSOObjectList RSOObjectList;
typedef struct RSOObjectLink RSOObjectLink;
typedef struct RSOObjectInfo RSOObjectInfo;
typedef struct RSOSymbolHeader RSOSymbolHeader;
typedef struct RSOSectionInfo RSOSectionInfo;
typedef struct RSOExportTable RSOExportTable;
typedef struct RSOImportTable RSOImportTable;
typedef struct RSORel RSORel;
typedef struct RSOExportFuncTable RSOExportFuncTable;
struct RSOExportFuncTable {
const char* mSymbolName;
u32* mSymbolPtr;
};
struct RSOObjectList {
RSOObjectInfo* mHead;
RSOObjectInfo* mTail;
};
struct RSOObjectLink {
RSOObjectInfo* mNext;
RSOObjectInfo* mPrev;
};
struct RSOObjectInfo {
RSOObjectLink mLink;
u32 mNumSections;
u32 mSectionInfoOffset;
u32 mNameOffset;
u32 mNameSize;
u32 mVersion;
};
struct RSOSymbolHeader {
u32 mTableOffset;
u32 mTableSize;
u32 mStringOffset;
};
struct RSOObjectHeader {
RSOObjectInfo mInfo;
u32 mBssSize;
u8 mPrologSection;
u8 mEpilogSection;
u8 mUnresolvedSection;
u8 mBssSection;
u32 mProlog;
u32 mEpilog;
u32 mUnresolved;
u32 mInternalRelOffset;
u32 mInternalRelSize;
u32 mExternalRelOffset;
u32 mExternalRelSize;
RSOSymbolHeader mExpHeader;
RSOSymbolHeader mImpHeader;
};
struct RSOSectionInfo {
u32 mOffset;
u32 mSize;
};
BOOL RSOListInit(void *);
BOOL RSOLinkList(void *, void *);
BOOL RSOIsImportSymbolResolvedAll(const RSOObjectHeader *);
int RSOGetJumpCodeSize(const RSOObjectHeader *);
int RSOGetJumpCodeSize(const RSOObjectHeader *);
void RSOMakeJumpCode(const RSOObjectHeader *, void *);
const void* RSOFindExportSymbolAddr(const RSOObjectHeader *, const char *);
#ifdef __cplusplus
}
#endif
#endif // RSO_H

View File

@ -78,7 +78,7 @@ if not os.path.exists("Compilers"):
with urllib.request.urlopen("http://shibbo.net/smg/Compilers.zip") as response, open("Compilers.zip", 'wb') as out:
data = response.read()
if hashlib.sha256(data).hexdigest().upper() != "12D439B707D7AECB1BCD5B321DA406310523357128ABADB1493BED212A4A225F":
if hashlib.sha256(data).hexdigest().upper() != "1856A7CDDD7630F35D2BBF4494B1CD929B21EEFB3363DB82B3E328F2E0F02227":
print("Compilers.zip corrupt")
sys.exit(1)
out.write(data)
@ -97,4 +97,4 @@ else:
print("Found compilers folder, continuing...")
print("Done.")
sys.exit(1)
sys.exit(0)

View File

@ -1,102 +1,85 @@
#include "Game/Demo/DemoFunction.hpp"
#include "Game/Demo/DemoCastGroup.hpp"
#include "Game/Demo/DemoExecutorFunction.hpp"
#include "Game/Demo/DemoCastGroupHolder.hpp"
#include "Game/Demo/DemoDirector.hpp"
#include "Game/Demo/DemoTimeKeeper.hpp"
#include "Game/Demo/DemoSubPartKeeper.hpp"
#include "Game/Effect/EffectSystemUtil.hpp"
#include <cstdio>
#include <cstring>
#include "Game/Demo/DemoCastGroup.hpp"
#include "Game/Demo/DemoCastGroupHolder.hpp"
#include "Game/Demo/DemoDirector.hpp"
#include "Game/Demo/DemoExecutorFunction.hpp"
#include "Game/Demo/DemoSubPartKeeper.hpp"
#include "Game/Demo/DemoTimeKeeper.hpp"
#include "Game/Effect/EffectSystemUtil.hpp"
namespace {
DemoTimeKeeper* getCurrentTimeKeeper() NO_INLINE {
return DemoFunction::getDemoDirector()->mExecutor->mTimeKeeper;
}
DemoSubPartKeeper* getCurrentSubPartKeeper() NO_INLINE {
return DemoFunction::getDemoDirector()->mExecutor->mSubPartKeeper;
}
bool isCurrentMainPart(const char *pPartName) NO_INLINE {
DemoTimeKeeper *timekeeper = getCurrentTimeKeeper();
DemoTimeKeeper* getCurrentTimeKeeper() NO_INLINE { return DemoFunction::getDemoDirector()->mExecutor->mTimeKeeper; }
DemoSubPartKeeper* getCurrentSubPartKeeper() NO_INLINE { return DemoFunction::getDemoDirector()->mExecutor->mSubPartKeeper; }
bool isCurrentMainPart(const char* pPartName) NO_INLINE {
DemoTimeKeeper* timekeeper = getCurrentTimeKeeper();
return MR::isEqualString(pPartName, timekeeper->mSubPartInfos[0].mName);
}
}
} // namespace
namespace DemoFunction {
DemoDirector* getDemoDirector() {
return reinterpret_cast<DemoDirector *>(MR::getSceneObjHolder()->getObj(SceneObj_DemoDirector));
}
DemoDirector* getDemoDirector() { return reinterpret_cast<DemoDirector*>(MR::getSceneObjHolder()->getObj(SceneObj_DemoDirector)); }
DemoCastGroupHolder* getDemoCastSubGroupHolder() {
return getDemoDirector()->_1C;
}
DemoCastGroupHolder* getDemoCastSubGroupHolder() { return getDemoDirector()->_1C; }
void registerDemoSimpleCastAllFunction(LiveActor *pActor) {
return getDemoDirector()->registerDemoSimpleCast(pActor);
}
void registerDemoSimpleCastAllFunction(LiveActor* pActor) { return getDemoDirector()->registerDemoSimpleCast(pActor); }
void registerDemoSimpleCastAllFunction(LayoutActor *pActor) {
return getDemoDirector()->registerDemoSimpleCast(pActor);
}
void registerDemoSimpleCastAllFunction(LayoutActor* pActor) { return getDemoDirector()->registerDemoSimpleCast(pActor); }
void registerDemoSimpleCastAllFunction(NameObj *pObj) {
return getDemoDirector()->registerDemoSimpleCast(pObj);
}
void registerDemoSimpleCastAllFunction(NameObj* pObj) { return getDemoDirector()->registerDemoSimpleCast(pObj); }
void registerDemoActionFunctorFunction(const LiveActor *pActor, const MR::FunctorBase &rFunctor, const char *pName) {
void registerDemoActionFunctorFunction(const LiveActor* pActor, const MR::FunctorBase& rFunctor, const char* pName) {
DemoExecutorFunction::registerDemoActionFunction(findDemoExecutor(pActor), pActor, rFunctor, pName);
}
void registerDemoActionFunctorFunction(const LiveActor *pActor, const MR::FunctorBase &rFunctor, const char *pDemoName, const char *pName) {
void registerDemoActionFunctorFunction(const LiveActor* pActor, const MR::FunctorBase& rFunctor, const char* pDemoName, const char* pName) {
DemoExecutorFunction::registerDemoActionFunction(findDemoExecutor(pDemoName), pActor, rFunctor, pName);
}
void registerDemoActionNerveFunction(const LiveActor *pActor, const Nerve *pNerve, const char *pName) {
void registerDemoActionNerveFunction(const LiveActor* pActor, const Nerve* pNerve, const char* pName) {
DemoExecutorFunction::registerDemoActionNerve(findDemoExecutor(pActor), pActor, pNerve, pName);
}
bool tryStartDemoRegistered(LiveActor *pActor, const char *pPartName) {
DemoExecutor *executor = findDemoExecutor(pActor);
bool tryStartDemoRegistered(LiveActor* pActor, const char* pPartName) {
DemoExecutor* executor = findDemoExecutor(pActor);
if (executor == nullptr) {
return false;
}
if (pPartName != nullptr) {
return executor->tryStartProperDemoSystemPart(pPartName);
}
else {
} else {
return executor->tryStartProperDemoSystem();
}
}
bool tryStartDemoRegisteredMarioPuppetable(LiveActor *pActor, const char *pPartName) {
DemoExecutor *executor = findDemoExecutor(pActor);
bool tryStartDemoRegisteredMarioPuppetable(LiveActor* pActor, const char* pPartName) {
DemoExecutor* executor = findDemoExecutor(pActor);
if (executor == nullptr) {
return false;
}
if (pPartName != nullptr) {
return executor->tryStartDemoSystemPart(pPartName, 2);
}
else {
} else {
return MR::tryStartTimeKeepDemoMarioPuppetable(executor, executor->mName, nullptr);
}
}
void registerDemoExecutor(DemoExecutor *pExecutor) {
getDemoDirector()->_18->registerObj(pExecutor);
}
void registerDemoExecutor(DemoExecutor* pExecutor) { getDemoDirector()->_18->registerObj(pExecutor); }
DemoExecutor* findDemoExecutor(const char *pDemoName) {
DemoCastGroup *group = getDemoDirector()->_18->findCastGroup(pDemoName);
DemoExecutor* findDemoExecutor(const char* pDemoName) {
DemoCastGroup* group = getDemoDirector()->_18->findCastGroup(pDemoName);
if (group == nullptr) {
return nullptr;
}
return reinterpret_cast<DemoExecutor *>(group);
return reinterpret_cast<DemoExecutor*>(group);
}
DemoExecutor* findDemoExecutor(const LiveActor *pActor) {
DemoExecutor *executor;
DemoExecutor* findDemoExecutor(const LiveActor* pActor) {
DemoExecutor* executor;
for (s32 i = 0; i < getDemoDirector()->_18->mObjectCount; i++) {
executor = reinterpret_cast<DemoExecutor *>(getDemoDirector()->_18->getCastGroup(i));
executor = reinterpret_cast<DemoExecutor*>(getDemoDirector()->_18->getCastGroup(i));
if (DemoExecutorFunction::isRegisteredDemoCast(executor, pActor)) {
return executor;
}
@ -104,10 +87,10 @@ namespace DemoFunction {
return NULL;
}
DemoExecutor* findDemoExecutorActive(const LiveActor *pActor) {
DemoExecutor *executor;
DemoExecutor* findDemoExecutorActive(const LiveActor* pActor) {
DemoExecutor* executor;
for (s32 i = 0; i < getDemoDirector()->_18->mObjectCount; i++) {
executor = reinterpret_cast<DemoExecutor *>(getDemoDirector()->_18->getCastGroup(i));
executor = reinterpret_cast<DemoExecutor*>(getDemoDirector()->_18->getCastGroup(i));
if (DemoExecutorFunction::isRegisteredDemoCast(executor, pActor) && MR::isDemoActive(executor->mName)) {
return executor;
}
@ -115,15 +98,11 @@ namespace DemoFunction {
return NULL;
}
bool isDemoCast(const DemoExecutor *pExecutor, const LiveActor *pActor) {
return DemoExecutorFunction::isRegisteredDemoCast(pExecutor, pActor);
}
bool isDemoCast(const DemoExecutor* pExecutor, const LiveActor* pActor) { return DemoExecutorFunction::isRegisteredDemoCast(pExecutor, pActor); }
bool isExistDemoPart(const DemoExecutor *pExecutor, const char *pPartName) {
return DemoExecutorFunction::isExistDemoPart(pExecutor, pPartName);
}
bool isExistDemoPart(const DemoExecutor* pExecutor, const char* pPartName) { return DemoExecutorFunction::isExistDemoPart(pExecutor, pPartName); }
bool isDemoPartActiveFunction(const char *pPartName) {
bool isDemoPartActiveFunction(const char* pPartName) {
if (!MR::isTimeKeepDemoActive()) {
return false;
}
@ -133,20 +112,18 @@ namespace DemoFunction {
return getCurrentSubPartKeeper()->isDemoPartActive(pPartName);
}
s32 getDemoPartStepFunction(const char *pPartName) {
s32 getDemoPartStepFunction(const char* pPartName) {
if (isCurrentMainPart(pPartName)) {
return getCurrentTimeKeeper()->mCurrentStep;
}
else {
} else {
return getCurrentSubPartKeeper()->getDemoPartStep(pPartName);
}
}
s32 getDemoPartTotalStepFunction(const char *pPartName) {
s32 getDemoPartTotalStepFunction(const char* pPartName) {
if (isCurrentMainPart(pPartName)) {
return getCurrentTimeKeeper()->mSubPartInfos[0].mTotalSteps;
}
else {
} else {
return getCurrentSubPartKeeper()->getDemoPartTotalStep(pPartName);
}
}
@ -168,30 +145,30 @@ namespace DemoFunction {
if (!MR::isTimeKeepDemoActive()) {
return false;
}
DemoDirector *director = getDemoDirector();
DemoDirector* director = getDemoDirector();
if (director->mExecutor == nullptr) {
return false;
}
DemoTimeKeeper *timekeeper = director->mExecutor->mTimeKeeper;
DemoTimeKeeper* timekeeper = director->mExecutor->mTimeKeeper;
if (timekeeper->isExistSuspendFlagCurrentPart()) {
return timekeeper->isExistSuspendFlagCurrentPart();
}
return isDemoLastPartLastStep();
}
const char *getCurrentDemoPartNameMain(const char *pDemoName) {
DemoExecutor *executor = findDemoExecutor(pDemoName);
const char* getCurrentDemoPartNameMain(const char* pDemoName) {
DemoExecutor* executor = findDemoExecutor(pDemoName);
if (executor == nullptr) {
return nullptr;
}
DemoTimePartInfo *part = &executor->mTimeKeeper->mSubPartInfos[0];
DemoTimePartInfo* part = &executor->mTimeKeeper->mSubPartInfos[0];
if (part != nullptr) {
return part->mName;
}
return nullptr;
}
bool isTargetDemoCast(LiveActor *pActor, const JMapInfoIter &rIter, const char *pActorName, s32 id) {
bool isTargetDemoCast(LiveActor* pActor, const JMapInfoIter& rIter, const char* pActorName, s32 id) {
if (pActorName == nullptr) {
return false;
}
@ -204,93 +181,82 @@ namespace DemoFunction {
return true;
}
bool isRegisteredDemoActionAppear(const LiveActor *pActor) {
bool isRegisteredDemoActionAppear(const LiveActor* pActor) {
return DemoExecutorFunction::isRegisteredDemoActionAppear(DemoFunction::findDemoExecutor(pActor), pActor);
}
bool isRegisteredDemoActionFunctor(const LiveActor *pActor) {
bool isRegisteredDemoActionFunctor(const LiveActor* pActor) {
return DemoExecutorFunction::isRegisteredDemoActionFunctor(DemoFunction::findDemoExecutor(pActor), pActor);
}
bool isRegisteredDemoActionFunctor(const LiveActor *pActor, const char *pDemoName) {
bool isRegisteredDemoActionFunctor(const LiveActor* pActor, const char* pDemoName) {
return DemoExecutorFunction::isRegisteredDemoActionFunctor(DemoFunction::findDemoExecutor(pDemoName), pActor);
}
bool isRegisteredDemoActionNerve(const LiveActor *pActor) {
bool isRegisteredDemoActionNerve(const LiveActor* pActor) {
return DemoExecutorFunction::isRegisteredDemoActionNerve(DemoFunction::findDemoExecutor(pActor), pActor);
}
void requestDemoCastMovementOn(LiveActor *pActor) {
void requestDemoCastMovementOn(LiveActor* pActor) {
MR::requestMovementOn(pActor);
if (pActor->mEffectKeeper != nullptr) {
MR::Effect::requestMovementOn(pActor->mEffectKeeper);
}
}
bool isRegisteredDemoCast(const LiveActor *pActor, const char *pDemoName) {
DemoExecutor *executor = findDemoExecutor(pDemoName);
bool isRegisteredDemoCast(const LiveActor* pActor, const char* pDemoName) {
DemoExecutor* executor = findDemoExecutor(pDemoName);
if (executor != nullptr) {
return DemoExecutorFunction::isRegisteredDemoCast(executor, pActor);
}
return false;
}
void pauseTimeKeepDemo(LiveActor *pActor) {
return DemoExecutorFunction::pauseTimeKeepDemo(DemoFunction::findDemoExecutorActive(pActor));
}
void pauseTimeKeepDemo(LiveActor* pActor) { return DemoExecutorFunction::pauseTimeKeepDemo(DemoFunction::findDemoExecutorActive(pActor)); }
void resumeTimeKeepDemo(LiveActor *pActor) {
return DemoExecutorFunction::resumeTimeKeepDemo(DemoFunction::findDemoExecutorActive(pActor));
}
void resumeTimeKeepDemo(LiveActor* pActor) { return DemoExecutorFunction::resumeTimeKeepDemo(DemoFunction::findDemoExecutorActive(pActor)); }
bool isPauseTimeKeepDemo(LiveActor *pActor) {
return DemoExecutorFunction::isPauseTimeKeepDemo(DemoFunction::findDemoExecutorActive(pActor));
}
bool isPauseTimeKeepDemo(LiveActor* pActor) { return DemoExecutorFunction::isPauseTimeKeepDemo(DemoFunction::findDemoExecutorActive(pActor)); }
void pauseTimeKeepDemo(const char *pDemoName) {
return DemoExecutorFunction::pauseTimeKeepDemo(DemoFunction::findDemoExecutor(pDemoName));
}
void pauseTimeKeepDemo(const char* pDemoName) { return DemoExecutorFunction::pauseTimeKeepDemo(DemoFunction::findDemoExecutor(pDemoName)); }
void resumeTimeKeepDemo(const char *pDemoName) {
return DemoExecutorFunction::resumeTimeKeepDemo(DemoFunction::findDemoExecutor(pDemoName));
}
void resumeTimeKeepDemo(const char* pDemoName) { return DemoExecutorFunction::resumeTimeKeepDemo(DemoFunction::findDemoExecutor(pDemoName)); }
bool isPauseTimeKeepDemo(const char *pDemoName) {
return DemoExecutorFunction::isPauseTimeKeepDemo(DemoFunction::findDemoExecutor(pDemoName));
}
bool isPauseTimeKeepDemo(const char* pDemoName) { return DemoExecutorFunction::isPauseTimeKeepDemo(DemoFunction::findDemoExecutor(pDemoName)); }
bool tryCreateDemoTalkAnimCtrlForActor(LiveActor *pActor, const char *pFileBaseName, const char *a3) {
DemoExecutor *executor = findDemoExecutor(pActor);
bool tryCreateDemoTalkAnimCtrlForActor(LiveActor* pActor, const char* pFileBaseName, const char* a3) {
DemoExecutor* executor = findDemoExecutor(pActor);
return DemoExecutorFunction::tryCreateDemoTalkAnimCtrlForActor(executor, pActor, pFileBaseName, a3);
}
bool tryCreateDemoTalkAnimCtrlForActorDirect(LiveActor *pActor, const char *pDemoName, const char *pFileBaseName, const char *a4) {
DemoExecutor *executor = findDemoExecutor(pDemoName);
bool tryCreateDemoTalkAnimCtrlForActorDirect(LiveActor* pActor, const char* pDemoName, const char* pFileBaseName, const char* a4) {
DemoExecutor* executor = findDemoExecutor(pDemoName);
return DemoExecutorFunction::tryCreateDemoTalkAnimCtrlForActor(executor, pActor, pFileBaseName, a4);
}
bool tryCreateDemoTalkAnimCtrlForScene(LiveActor *pActor, const JMapInfoIter &rIter, const char *pFileBaseName, const char *a4, s32 a5, s32 a6) {
DemoExecutor *executor = findDemoExecutor(pActor);
bool tryCreateDemoTalkAnimCtrlForScene(LiveActor* pActor, const JMapInfoIter& rIter, const char* pFileBaseName, const char* a4, s32 a5, s32 a6) {
DemoExecutor* executor = findDemoExecutor(pActor);
return DemoExecutorFunction::tryCreateDemoTalkAnimCtrlForScene(executor, pActor, rIter, pFileBaseName, a4, a5, a6);
}
bool tryCreateDemoTalkAnimCtrlForSceneDirect(LiveActor *pActor, const char *pDemoName, const JMapInfoIter &rIter, const char *pFileBaseName, const char *a5, s32 a6, s32 a7) {
DemoExecutor *executor = findDemoExecutor(pDemoName);
bool tryCreateDemoTalkAnimCtrlForSceneDirect(LiveActor* pActor, const char* pDemoName, const JMapInfoIter& rIter, const char* pFileBaseName,
const char* a5, s32 a6, s32 a7) {
DemoExecutor* executor = findDemoExecutor(pDemoName);
return DemoExecutorFunction::tryCreateDemoTalkAnimCtrlForScene(executor, pActor, rIter, pFileBaseName, a5, a6, a7);
}
void registerDemoTalkMessageCtrl(LiveActor *pActor, TalkMessageCtrl *pTalkCtrl) {
DemoExecutor *executor = findDemoExecutor(pActor);
void registerDemoTalkMessageCtrl(LiveActor* pActor, TalkMessageCtrl* pTalkCtrl) {
DemoExecutor* executor = findDemoExecutor(pActor);
executor->addTalkMessageCtrl(pActor, pTalkCtrl);
}
void registerDemoTalkMessageCtrlDirect(LiveActor *pActor, TalkMessageCtrl *pTalkCtrl, const char *pDemoName) {
DemoExecutor *executor = findDemoExecutor(pDemoName);
void registerDemoTalkMessageCtrlDirect(LiveActor* pActor, TalkMessageCtrl* pTalkCtrl, const char* pDemoName) {
DemoExecutor* executor = findDemoExecutor(pDemoName);
DemoExecutorFunction::registerDemoTalkMessageCtrl(executor, pActor, pTalkCtrl);
}
void setDemoTalkMessageCtrlDirect(const LiveActor *pActor, TalkMessageCtrl *pTalkCtrl, const char *pDemoName) {
DemoExecutor *executor = findDemoExecutor(pDemoName);
void setDemoTalkMessageCtrlDirect(const LiveActor* pActor, TalkMessageCtrl* pTalkCtrl, const char* pDemoName) {
DemoExecutor* executor = findDemoExecutor(pDemoName);
DemoExecutorFunction::setDemoTalkMessageCtrl(executor, pActor, pTalkCtrl);
}
@ -300,12 +266,12 @@ namespace DemoFunction {
return MR::createAndAddResourceHolder(buf);
}
s32 createSheetParser(const DemoExecutor *pExecutor, const char *pNameSuffix, JMapInfo **pMap) {
const char *sheet_name = pExecutor->mSheetName;
JMapInfo *map = MR::tryCreateCsvParser(getDemoDirector()->mResourceHolder, "Demo%s%s.bcsv", sheet_name, pNameSuffix);
s32 createSheetParser(const DemoExecutor* pExecutor, const char* pNameSuffix, JMapInfo** pMap) {
const char* sheet_name = pExecutor->mSheetName;
JMapInfo* map = MR::tryCreateCsvParser(getDemoDirector()->mResourceHolder, "Demo%s%s.bcsv", sheet_name, pNameSuffix);
*pMap = map;
if (map != nullptr) {
const JMapData *data = map->mData;
const JMapData* data = map->mData;
if (data != nullptr) {
return data->mNumEntries;
}
@ -314,7 +280,5 @@ namespace DemoFunction {
return 0;
}
bool isDemoPartTalk(const char *pDemoName) {
return MR::isEqualSubString(pDemoName, "会話");
}
}
bool isDemoPartTalk(const char* pDemoName) { return MR::isEqualSubString(pDemoName, "会話"); }
} // namespace DemoFunction

View File

@ -4,12 +4,12 @@
#include "Game/Util/JMapInfo.hpp"
#include "Game/Util/PlayerUtil.hpp"
DemoPlayerKeeper::DemoPlayerKeeper(const DemoExecutor *pExecutor) : mExecutor(pExecutor), mNumPlayerInfos(0), mPlayerInfos(nullptr) {
JMapInfo *map = nullptr;
DemoPlayerKeeper::DemoPlayerKeeper(const DemoExecutor* pExecutor) : mExecutor(pExecutor), mNumPlayerInfos(0), mPlayerInfos(nullptr) {
JMapInfo* map = nullptr;
mNumPlayerInfos = DemoFunction::createSheetParser(mExecutor, "Player", &map);
mPlayerInfos = new DemoPlayerInfo[mNumPlayerInfos];
for (int i = 0; i < mNumPlayerInfos; i++) {
DemoPlayerInfo *playerinfo = &mPlayerInfos[i];
DemoPlayerInfo* playerinfo = &mPlayerInfos[i];
MR::getCsvDataStrOrNULL(&playerinfo->mPartName, map, "PartName", i);
MR::getCsvDataStrOrNULL(&playerinfo->mPosName, map, "PosName", i);
MR::getCsvDataStrOrNULL(&playerinfo->mBckName, map, "BckName", i);
@ -19,7 +19,7 @@ DemoPlayerKeeper::DemoPlayerKeeper(const DemoExecutor *pExecutor) : mExecutor(pE
DemoPlayerInfo::DemoPlayerInfo() : mPosName(nullptr), mPartName(nullptr), mBckName(nullptr) {}
void DemoPlayerKeeper::update() {
const DemoPlayerInfo *playerinfo;
const DemoPlayerInfo* playerinfo;
for (int i = 0; i < mNumPlayerInfos; i++) {
playerinfo = &mPlayerInfos[i];
if (MR::isDemoPartFirstStep(playerinfo->mPartName)) {
@ -37,11 +37,11 @@ bool DemoPlayerKeeper::isExistPosName() const {
return false;
}
void DemoPlayerKeeper::executePlayer(const DemoPlayerInfo *pPlayerInfo) const {
void DemoPlayerKeeper::executePlayer(const DemoPlayerInfo* pPlayerInfo) const {
if (pPlayerInfo->mPosName != nullptr) {
MR::setPlayerPosOnGroundAndWait(pPlayerInfo->mPosName);
}
if (pPlayerInfo->mBckName != nullptr) {
MR::startBckPlayer(pPlayerInfo->mBckName, (const char *)nullptr);
MR::startBckPlayer(pPlayerInfo->mBckName, (const char*)nullptr);
}
}

View File

@ -1,13 +1,13 @@
#include "Game/Demo/DemoSubPartKeeper.hpp"
#include "Game/Demo/DemoFunction.hpp"
#include "Game/Util/ObjUtil.hpp"
#include "Game/Util.hpp"
DemoSubPartKeeper::DemoSubPartKeeper(const DemoExecutor *pExecutor) : mExecutor(pExecutor), mNumSubPartInfos(0), mSubPartInfos(nullptr) {
JMapInfo *map = nullptr;
DemoSubPartKeeper::DemoSubPartKeeper(const DemoExecutor* pExecutor) : mExecutor(pExecutor), mNumSubPartInfos(0), mSubPartInfos(nullptr) {
JMapInfo* map = nullptr;
mNumSubPartInfos = DemoFunction::createSheetParser(mExecutor, "SubPart", &map);
mSubPartInfos = new DemoSubPartInfo[mNumSubPartInfos];
for (int i = 0; i < mNumSubPartInfos; i++) {
DemoSubPartInfo *subpart = &mSubPartInfos[i];
DemoSubPartInfo* subpart = &mSubPartInfos[i];
MR::getCsvDataStrOrNULL(&subpart->mSubPartName, map, "SubPartName", i);
MR::getCsvDataS32(&subpart->mSubPartTotalStep, map, "SubPartTotalStep", i);
MR::getCsvDataStrOrNULL(&subpart->mMainPartName, map, "MainPartName", i);
@ -20,7 +20,7 @@ DemoSubPartInfo::DemoSubPartInfo() : mSubPartName(nullptr), mSubPartTotalStep(1)
void DemoSubPartKeeper::update() {
if (mNumSubPartInfos > 0) {
for (int i = 0; i < mNumSubPartInfos; i++) {
DemoSubPartInfo *subpart = &mSubPartInfos[i];
DemoSubPartInfo* subpart = &mSubPartInfos[i];
if (subpart->_10 > 0) {
subpart->_10 -= 1;
}
@ -37,28 +37,27 @@ void DemoSubPartKeeper::end() {
}
}
bool DemoSubPartKeeper::isDemoPartActive(const char *pSubPartName) const {
DemoSubPartInfo *subpart = findSubPart(pSubPartName);
bool DemoSubPartKeeper::isDemoPartActive(const char* pSubPartName) const {
DemoSubPartInfo* subpart = findSubPart(pSubPartName);
if (subpart == nullptr) {
return false;
}
else {
} else {
return subpart->_10 > 0;
}
}
s32 DemoSubPartKeeper::getDemoPartStep(const char *pSubPartName) const {
DemoSubPartInfo *subpart = findSubPart(pSubPartName);
s32 DemoSubPartKeeper::getDemoPartStep(const char* pSubPartName) const {
DemoSubPartInfo* subpart = findSubPart(pSubPartName);
return subpart->mSubPartTotalStep - subpart->_10;
}
s32 DemoSubPartKeeper::getDemoPartTotalStep(const char *pSubPartName) const {
DemoSubPartInfo *subpart = findSubPart(pSubPartName);
s32 DemoSubPartKeeper::getDemoPartTotalStep(const char* pSubPartName) const {
DemoSubPartInfo* subpart = findSubPart(pSubPartName);
return subpart->mSubPartTotalStep;
}
DemoSubPartInfo* DemoSubPartKeeper::findSubPart(const char *pSubPartName) const {
DemoSubPartInfo *subpart;
DemoSubPartInfo* DemoSubPartKeeper::findSubPart(const char* pSubPartName) const {
DemoSubPartInfo* subpart;
s32 count = mNumSubPartInfos;
for (int i = 0; i < count; i++) {
subpart = &mSubPartInfos[i];

View File

@ -1,24 +1,24 @@
#include "Game/Demo/DemoTalkAnimCtrl.hpp"
#include "Game/Demo/DemoFunction.hpp"
#include <cstdio>
#include "Game/Demo/DemoExecutor.hpp"
#include "Game/Demo/DemoFunction.hpp"
#include "Game/System/NerveExecutor.hpp"
#include "Game/System/ResourceHolder.hpp"
#include "Game/System/ResourceInfo.hpp"
#include "Game/Util/ActorCameraUtil.hpp"
#include "Game/Util/CameraUtil.hpp"
#include "Game/Util/DemoUtil.hpp"
#include "Game/Util/LiveActorUtil.hpp"
#include "Game/System/ResourceInfo.hpp"
#include "Game/System/ResourceHolder.hpp"
#include "Game/Util/PlayerUtil.hpp"
#include <cstdio>
DemoTalkAnimCtrl::DemoTalkAnimCtrl(LiveActor *pActor, const char *a3, const char *a4) : NerveExecutor(a3),
mActor(pActor), _C(a3), _10(a4), _14(nullptr), _18(""), _1C(""),
mCameraInfo(nullptr), _24(0), _28(0), _2C(0), _30(0), _34(true), _35(false), _36(false), _38(0), _3C(0), _40(0), _44(0),
_48(false), mHaveCamera(false), _4A(false), mHaveBtk(false), mHaveBpk(false), mHaveBtp(false), mHaveBrk(false), mHaveBva(false) {}
DemoTalkAnimCtrl::DemoTalkAnimCtrl(LiveActor* pActor, const char* a3, const char* a4)
: NerveExecutor(a3), mActor(pActor), _C(a3), _10(a4), _14(nullptr), _18(""), _1C(""), mCameraInfo(nullptr), _24(0), _28(0), _2C(0), _30(0),
_34(true), _35(false), _36(false), _38(0), _3C(0), _40(0), _44(0), _48(false), mHaveCamera(false), _4A(false), mHaveBtk(false), mHaveBpk(false),
mHaveBtp(false), mHaveBrk(false), mHaveBva(false) {}
DemoTalkAnimCtrl::~DemoTalkAnimCtrl() {}
void DemoTalkAnimCtrl::initForScene(const char *a1, const char *a2, const JMapInfoIter &rIter) {
void DemoTalkAnimCtrl::initForScene(const char* a1, const char* a2, const JMapInfoIter& rIter) {
char buf[0x100];
snprintf(buf, sizeof(buf), "%s.canm", a2);
initForActor(a1);
@ -38,13 +38,12 @@ void DemoTalkAnimCtrl::updateCamera() {
snprintf(buf, sizeof(buf), "%s%s", mActor->mName, _1C);
if (DemoFunction::isPauseTimeKeepDemo(_C)) {
MR::pauseOnAnimCamera(mCameraInfo, buf);
}
else {
} else {
MR::pauseOffAnimCamera(mCameraInfo, buf);
}
}
void DemoTalkAnimCtrl::createBckCtrlData(BckCtrlData *pBck, s32 totalSteps) const {
void DemoTalkAnimCtrl::createBckCtrlData(BckCtrlData* pBck, s32 totalSteps) const {
s16 temp_r0 = MR::max(_24 - 1, 0);
pBck->mLoopMode = 2;
pBck->mStartFrame = temp_r0;
@ -60,7 +59,7 @@ void DemoTalkAnimCtrl::createBckCtrlData(BckCtrlData *pBck, s32 totalSteps) cons
}
}
void DemoTalkAnimCtrl::initForActor(const char *a1) {
void DemoTalkAnimCtrl::initForActor(const char* a1) {
_35 = false;
_34 = true;
mHaveCamera = false;
@ -99,7 +98,7 @@ bool DemoTalkAnimCtrl::updateDemo() {
return false;
}
const char *name = MR::getCurrentDemoPartNameMain(_C);
const char* name = MR::getCurrentDemoPartNameMain(_C);
if (_14 == nullptr) {
startAnim();
_14 = "";
@ -137,8 +136,7 @@ bool DemoTalkAnimCtrl::updateDemo() {
endCamera();
}
return false;
}
else {
} else {
if (!DemoFunction::isPauseTimeKeepDemo(_C)) {
_30 += 1;
_28 += 1;
@ -173,8 +171,8 @@ void DemoTalkAnimCtrl::startCamera() {
MR::startAnimCameraTargetSelf(mActor, mCameraInfo, _1C, _40, 1.0f);
}
void DemoTalkAnimCtrl::updateAnim(const BckCtrlData &rBck) {
J3DFrameCtrl *ctrls[5];
void DemoTalkAnimCtrl::updateAnim(const BckCtrlData& rBck) {
J3DFrameCtrl* ctrls[5];
ctrls[0] = mHaveBtk ? MR::getBtkCtrl(mActor) : nullptr;
ctrls[1] = mHaveBpk ? MR::getBpkCtrl(mActor) : nullptr;
@ -183,7 +181,7 @@ void DemoTalkAnimCtrl::updateAnim(const BckCtrlData &rBck) {
ctrls[4] = mHaveBva ? MR::getBvaCtrl(mActor) : nullptr;
for (int i = 0; i < 5; i++) {
J3DFrameCtrl *ctrl = ctrls[i];
J3DFrameCtrl* ctrl = ctrls[i];
if (ctrl != nullptr) {
ctrl->mLoopMode = rBck.mLoopMode;
ctrl->mStartFrame = rBck.mStartFrame;
@ -202,13 +200,12 @@ void DemoTalkAnimCtrl::updateAnim(const BckCtrlData &rBck) {
}
void DemoTalkAnimCtrl::updatePause() {
const char *name = MR::getCurrentDemoPartNameMain(_C);
const char* name = MR::getCurrentDemoPartNameMain(_C);
if (DemoFunction::isPauseTimeKeepDemo(_C)) {
if (!MR::isSystemTalking()) {
DemoFunction::resumeTimeKeepDemo(_C);
}
}
else {
} else {
if (MR::isDemoPartStep(name, MR::getDemoPartTotalStep(name) - 2)) {
DemoFunction::pauseTimeKeepDemo(_C);
}
@ -219,7 +216,7 @@ void DemoTalkAnimCtrl::endCamera() {
MR::endAnimCamera(mActor, mCameraInfo, _1C, _44, true);
}
void DemoTalkAnimCtrl::setupStartDemoPart(const char *pPartName) {
void DemoTalkAnimCtrl::setupStartDemoPart(const char* pPartName) {
if (_10 != nullptr) {
_34 = MR::isEqualStringCase(pPartName, _10);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,125 @@
#include "Game/Scene/SceneFunction.hpp"
#include "Game/Effect/EffectSystem.hpp"
#include "Game/NameObj/NameObjExecuteHolder.hpp"
#include "Game/NameObj/NameObjListExecutor.hpp"
#include "Game/Scene/SceneDataInitializer.hpp"
#include "Game/System/GameSystem.hpp"
void SceneFunction::startStageFileLoad() {
MR::createSceneObj(SceneObj_SceneDataInitializer);
SceneDataInitializer* init = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init->startStageFileLoad();
}
void SceneFunction::waitDoneStageFileLoad() {
SceneDataInitializer* init = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init->waitDoneStageFileLoad();
}
void SceneFunction::startActorFileLoadCommon() {
SceneDataInitializer* init = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init->startActorFileLoadCommon();
}
void SceneFunction::startActorFileLoadScenario() {
SceneDataInitializer* init = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init->startActorFileLoadScenario();
}
void SceneFunction::startActorPlacement() {
SceneDataInitializer* init = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init->startActorPlacement();
}
void SceneFunction::initAfterScenarioSelected() {
SceneDataInitializer* init = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init->startStageFileLoadAfterScenarioSelected();
SceneDataInitializer* init_again = MR::getSceneObj<SceneDataInitializer*>(SceneObj_SceneDataInitializer);
init_again->initAfterScenarioSelected();
}
void SceneFunction::initForNameObj() {
MR::createSceneObj(SceneObj_NameObjExecuteHolder);
MR::createSceneObj(SceneObj_StopSceneController);
MR::createSceneObj(SceneObj_SceneObjMovementCtrl);
}
void SceneFunction::initForLiveActor() {
MR::createSceneObj(SceneObj_AllLiveActorGroup);
MR::createSceneObj(SceneObj_ClippingDirector);
MR::createSceneObj(SceneObj_DemoDirector);
MR::createSceneObj(SceneObj_SensorHitChecker);
MR::createSceneObj(SceneObj_CollisionDirector);
MR::createSceneObj(SceneObj_MessageSensorHolder);
MR::createSceneObj(SceneObj_LiveActorGroupArray);
MR::createSceneObj(SceneObj_MovementOnOffGroupHolder);
MR::createSceneObj(SceneObj_LightDirector);
MR::createSceneObj(SceneObj_AreaObjContainer);
MR::createSceneObj(SceneObj_CaptureScreenActor);
MR::createSceneObj(SceneObj_StageSwitchContainer);
MR::createSceneObj(SceneObj_SwitchWatcherHolder);
MR::createSceneObj(SceneObj_SleepControllerHolder);
MR::createSceneObj(SceneObj_TalkDirector);
MR::createSceneObj(SceneObj_NPCDirector);
}
void SceneFunction::initEffectSystem(u32 a1, u32 a2) {
MR::createSceneObj(SceneObj_EffectSystem);
MR::getEffectSystem()->entry(MR::getParticleResourceHolder(), a1, a2);
}
void SceneFunction::allocateDrawBufferActorList() {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->allocateDrawBufferActorList();
MR::initConnectting();
}
void CategoryList::execute(MR::MovementType type) {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->executeMovement(type);
}
void CategoryList::execute(MR::CalcAnimType type) {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->executeCalcAnim(type);
}
void CategoryList::execute(MR::DrawType type) {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->executeDraw(type);
}
void CategoryList::entryDrawBuffer2D() {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->entryDrawBuffer2D();
}
void CategoryList::entryDrawBuffer3D() {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->entryDrawBuffer3D();
}
void CategoryList::entryDrawBufferMirror() {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->entryDrawBufferMirror();
}
void CategoryList::drawOpa(MR::DrawBufferType type) {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->drawOpa(type);
}
void CategoryList::drawXlu(MR::DrawBufferType type) {
NameObjListExecutor* exec = SingletonHolder<GameSystem>::get()->mSceneController->getNameObjListExecutor();
exec->drawXlu(type);
}
void CategoryList::requestMovementOn(MR::MovementType type) {
MR::requestMovementOnWithCategory(type);
}
void CategoryList::requestMovementOff(MR::MovementType type) {
MR::requestMovementOffWithCategory(type);
}
void SceneFunction::createHioBasicNode(Scene*) {}

View File

@ -0,0 +1,53 @@
#include "Game/Screen/ScenarioTitle.hpp"
#include "Game/LiveActor/Nerve.hpp"
#include "Game/Util.hpp"
namespace {
NERVE_DECL_EXE(ScenarioTitleAppear, ScenarioTitle, Appear);
NERVE_DECL_EXE(ScenarioTitleWait, ScenarioTitle, Wait);
NERVE_DECL_EXE(ScenarioTitleEnd, ScenarioTitle, End);
INIT_NERVE(ScenarioTitleAppear);
INIT_NERVE(ScenarioTitleWait);
INIT_NERVE(ScenarioTitleEnd);
}; // namespace
ScenarioTitle::ScenarioTitle() : LayoutActor("シナリオ名表示", true) {}
void ScenarioTitle::init(const JMapInfoIter& rInfo) {
initNerve(&ScenarioTitleAppear::sInstance);
MR::connectToSceneLayout(this);
initLayoutManager("StageTitle", 1);
kill();
}
void ScenarioTitle::start() {
appear();
setNerve(&ScenarioTitleAppear::sInstance);
}
void ScenarioTitle::end() {
setNerve(&ScenarioTitleEnd::sInstance);
}
void ScenarioTitle::exeAppear() {
if (MR::isFirstStep(this)) {
MR::setTextBoxMessageRecursive(this, "Galaxy", MR::getCurrentGalaxyNameOnCurrentLanguage());
MR::setTextBoxMessageRecursive(this, "Scenario", MR::getCurrentScenarioNameOnCurrentLanguage());
MR::startAnim(this, "Appear", 0);
}
MR::setNerveAtAnimStopped(this, &ScenarioTitleWait::sInstance, 0);
}
void ScenarioTitle::exeEnd() {
if (MR::isFirstStep(this)) {
MR::startAnim(this, "End", 0);
}
if (MR::isAnimStopped(this, 0)) {
kill();
}
}
ScenarioTitle::~ScenarioTitle() {}