2424
2525const float dAcPy_c::msc_JUMP_SPEED = daPlBase_c::sc_JumpSpeed;
2626
27- STATE_VIRTUAL_DEFINE (dAcPy_c, Walk);
28- STATE_VIRTUAL_DEFINE (dAcPy_c, Jump);
29- STATE_VIRTUAL_DEFINE (dAcPy_c, Fall);
30- STATE_VIRTUAL_DEFINE (dAcPy_c, Land);
31- STATE_VIRTUAL_DEFINE (dAcPy_c, Crouch);
32- STATE_VIRTUAL_DEFINE (dAcPy_c, SitJump);
33- STATE_VIRTUAL_DEFINE (dAcPy_c, Slip);
34- STATE_VIRTUAL_DEFINE (dAcPy_c, Turn);
35- STATE_VIRTUAL_DEFINE (dAcPy_c, HipAttack);
36- STATE_VIRTUAL_DEFINE (dAcPy_c, Swim);
37- STATE_VIRTUAL_DEFINE (dAcPy_c, Kani);
38- STATE_VIRTUAL_DEFINE (dAcPy_c, Cloud);
39-
40- STATE_DEFINE (dAcPy_c, RideOffJump);
41- STATE_DEFINE (dAcPy_c, SpinHipAttack);
42- STATE_DEFINE (dAcPy_c, RollSlip);
43- STATE_DEFINE (dAcPy_c, Vine);
44- STATE_DEFINE (dAcPy_c, Hang);
45- STATE_DEFINE (dAcPy_c, Pole);
46- STATE_DEFINE (dAcPy_c, Fire);
47- STATE_DEFINE (dAcPy_c, LiftUp);
48- STATE_DEFINE (dAcPy_c, Throw);
49- STATE_DEFINE (dAcPy_c, PropelThrow);
50- STATE_DEFINE (dAcPy_c, WallJump);
51- STATE_DEFINE (dAcPy_c, WallSlide);
52- STATE_DEFINE (dAcPy_c, Propel);
53- STATE_DEFINE (dAcPy_c, CarryPlayer);
54- STATE_DEFINE (dAcPy_c, RideYoshi);
55- STATE_DEFINE (dAcPy_c, SpinJump);
56- STATE_DEFINE (dAcPy_c, PenguinSlide);
57- STATE_DEFINE (dAcPy_c, KaniJump);
58- STATE_DEFINE (dAcPy_c, Quake);
59- STATE_DEFINE (dAcPy_c, ElecShock);
60- STATE_DEFINE (dAcPy_c, FlyDamage);
61- STATE_DEFINE (dAcPy_c, IceDamage);
62- STATE_DEFINE (dAcPy_c, CannonJump);
63- STATE_DEFINE (dAcPy_c, TarzanRope);
64- STATE_DEFINE (dAcPy_c, PlayerEat);
65- STATE_DEFINE (dAcPy_c, Balloon);
66- STATE_DEFINE (dAcPy_c, BlockJump);
67- STATE_DEFINE (dAcPy_c, JrCrown);
68-
69- STATE_VIRTUAL_DEFINE (dAcPy_c, DemoDown);
70- STATE_DEFINE (dAcPy_c, DemoInDoor);
71- STATE_DEFINE (dAcPy_c, DemoInJump);
72- STATE_DEFINE (dAcPy_c, DemoInVine);
73- STATE_DEFINE (dAcPy_c, DemoOutDoor);
74- STATE_DEFINE (dAcPy_c, DemoFallDown);
75- STATE_DEFINE (dAcPy_c, DemoFireDown);
76- STATE_DEFINE (dAcPy_c, DemoEatDie);
77- STATE_DEFINE (dAcPy_c, DemoDokanCannon);
78- STATE_DEFINE (dAcPy_c, DemoCannonWarp);
79- // STATE_VIRTUAL_DEFINE(dAcPy_c, DemoStartWait); // [TODO: intentionally left out?]
80-
8127inline float getSomeData (int idx) {
8228 return dAcPy_c::data_802f5a0c[idx];
8329}
@@ -189,8 +135,6 @@ void dAcPy_c::initializeState_SpinHipAttack() {
189135 setScrollMode (2 );
190136}
191137
192- #pragma push
193- #pragma pool_data off
194138void dAcPy_c::executeState_SpinHipAttack () {
195139 offStatus (STATUS_SPIN_HIP_ATTACK_LANDING);
196140 if (isStatus (STATUS_SPIN_HIP_ATTACK_FALL)) {
@@ -278,7 +222,6 @@ void dAcPy_c::executeState_SpinHipAttack() {
278222 mPos .y = mPressAttachPos .y ;
279223 }
280224}
281- #pragma pop
282225
283226void dAcPy_c::finalizeState_SpinHipAttack () {
284227 m_2e8 = 0 ;
@@ -849,8 +792,6 @@ void dAcPy_c::setWallSlideEffect() {
849792 dEf::createPlayerEffect (mPlayerNo , &mSmokeEffect , sc_wallSlidEffectID[idx], 0 , &jnt, nullptr , nullptr );
850793}
851794
852- #pragma push
853- #pragma pool_data off
854795void dAcPy_c::executeState_WallSlide () {
855796 if (isNowBgCross (BGC_IS_FOOT)) {
856797 changeState (StateID_Walk, 0 );
@@ -884,7 +825,6 @@ void dAcPy_c::executeState_WallSlide() {
884825 setWallSlideEffect ();
885826 mSpeedF = sc_DirSpeed[mDirection ];
886827}
887- #pragma pop
888828
889829void dAcPy_c::initializeState_WallJump () {
890830 onStatus (STATUS_97);
@@ -903,10 +843,10 @@ void dAcPy_c::initializeState_WallJump() {
903843 float thing = mWallBcData .mOffset / 4096 .0f ;
904844 mVec3_c pos (mPos .x - thing * sc_DirSpeed[dir], mPos .y , mPos .z );
905845 mVec3_c pos2 (pos.x - sc_DirSpeed[mDirection ] * 8 .0f , pos.y , pos.z );
906- if (!dBc_c::checkWall (&mPos , &pos2, nullptr , mLayer , m_ca1 , nullptr )) {
846+ if (!dBc_c::checkWall (&mPos , &pos2, nullptr , mLayer , mAmiLayer , nullptr )) {
907847 pos.y += 8 .0f ;
908848 float f;
909- if (dBc_c::checkTenjou (&pos2, &f, mLayer , m_ca1 ) && f < mPos .y + getSomeYOffset ()) {
849+ if (dBc_c::checkTenjou (&pos2, &f, mLayer , mAmiLayer ) && f < mPos .y + getSomeYOffset ()) {
910850 pos.y = f + 8 .0f ;
911851 }
912852 }
@@ -1982,8 +1922,6 @@ bool dAcPy_c::isWaitFrameCountMax() {
19821922 return mWaitFrameCount >= 80 ;
19831923}
19841924
1985- #pragma push
1986- #pragma pool_data off
19871925bool dAcPy_c::checkWalkNextAction () {
19881926 if (checkCarryThrow ()) {
19891927 return true ;
@@ -2017,7 +1955,6 @@ bool dAcPy_c::checkWalkNextAction() {
20171955 }
20181956 return false ;
20191957}
2020- #pragma pop
20211958
20221959void dAcPy_c::setWalkActionAnm (AnmBlend_e blend) {
20231960 float speed = std::fabs (mSpeedF );
@@ -2093,7 +2030,7 @@ void dAcPy_c::setWaitActionAnm(AnmBlend_e blend) {
20932030 mVec3_c p (mPos .x + scSakaCheckOffset[3 + i], mPos .y + 5 .0f , mPos .z );
20942031 s16 tmpAng;
20952032 float f;
2096- if (dBc_c::checkGroundAngle (&p, &f, &tmpAng, mLayer , m_ca1 , -1 , nullptr , 0 ) && std::fabs (f - mPos .y ) < 8 .0f ) {
2033+ if (dBc_c::checkGroundAngle (&p, &f, &tmpAng, mLayer , mAmiLayer , -1 , nullptr , 0 ) && std::fabs (f - mPos .y ) < 8 .0f ) {
20972034 count++;
20982035 sum += tmpAng;
20992036 }
@@ -2839,8 +2776,6 @@ bool dAcPy_c::checkEnableThrow() {
28392776 return !mKey .buttonCarry ();
28402777}
28412778
2842- #pragma push
2843- #pragma pool_data off
28442779bool dAcPy_c::checkCarryThrow () {
28452780 if (checkEnableThrow ()) {
28462781 if (isState (StateID_Propel)) {
@@ -2853,7 +2788,6 @@ bool dAcPy_c::checkCarryThrow() {
28532788 }
28542789 return false ;
28552790}
2856- #pragma pop
28572791
28582792void dAcPy_c::initializeThrowCommonBase () {
28592793 vf434 (19 , 0 );
@@ -2966,8 +2900,6 @@ void dAcPy_c::setThrowActor() {
29662900 cancelCarry (actor);
29672901}
29682902
2969- #pragma push
2970- #pragma pool_data off
29712903void dAcPy_c::executeThrowCommon () {
29722904 if (isNowBgCross (BGC_IS_FOOT)) {
29732905 offStatus (STATUS_8F);
@@ -3019,7 +2951,6 @@ void dAcPy_c::executeThrowCommon() {
30192951 break ;
30202952 }
30212953}
3022- #pragma pop
30232954
30242955void dAcPy_c::initializeState_Throw () {
30252956 initializeThrowCommon ();
@@ -3398,7 +3329,7 @@ void dAcPy_c::initializeState_Swim() {
33983329 if (carryPlayer != nullptr ) {
33993330 mVec3_c pos (mPos .x , mPos .y + 4 .0f , mPos .z );
34003331 float height;
3401- if (dBc_c::checkTenjou (&pos, &height, mLayer , m_ca1 )) {
3332+ if (dBc_c::checkTenjou (&pos, &height, mLayer , mAmiLayer )) {
34023333 if (mPos .y + getSomeYOffset () + getBgPointData_Powerup (mPowerup , 1 )->mHead .mOffset / 4096 .0f > height) {
34033334 releaseCarryActor ();
34043335 }
@@ -4244,7 +4175,7 @@ void dAcPy_c::initializeState_Vine() {
42444175 mSpeed .x = 0 .0f ;
42454176 mSpeed .y = 0 .0f ;
42464177 m_7c4 = 0 ;
4247- if (m_ca1 == 1 ) {
4178+ if (mAmiLayer == 1 ) {
42484179 m_7c0 = 0x8000 ;
42494180 } else {
42504181 m_7c0 = 0 ;
@@ -4639,9 +4570,9 @@ void dAcPy_c::endAmiRollAction(short ang) {
46394570 m_7c0 = newAng;
46404571 mAngle .y = newAng;
46414572 if (m_7c0 == 0x8000 ) {
4642- m_ca1 = 1 ;
4573+ mAmiLayer = 1 ;
46434574 } else {
4644- m_ca1 = 2 ;
4575+ mAmiLayer = 2 ;
46454576 }
46464577 mAmiRelated2 = 1 .0f ;
46474578 m_7bc = 2 ;
@@ -6800,9 +6731,9 @@ bool dAcPy_c::setDropCarryPlayer() {
68006731 }
68016732 mVec3_c pos (ridePlayer->mPos .x , ridePlayer->mPos .y + 4 .0f , ridePlayer->mPos .z );
68026733 mVec3_c pos2 (mPos .x , mPos .y + 4 .0f , mPos .z );
6803- if (!dBc_c::checkWall (&pos, &pos2, nullptr , mLayer , m_ca1 , nullptr )) {
6734+ if (!dBc_c::checkWall (&pos, &pos2, nullptr , mLayer , mAmiLayer , nullptr )) {
68046735 float height;
6805- if (dBc_c::checkTenjou (&pos2, &height, mLayer , m_ca1 )) {
6736+ if (dBc_c::checkTenjou (&pos2, &height, mLayer , mAmiLayer )) {
68066737 const sBcPlayerPointData *p = getBgPointData_Powerup (mPowerup , 1 );
68076738 if (mPos .y + p->mHead .mOffset / 4096 .0f + 2 .0f > height) {
68086739 vf3fc (0 .0f , ridePlayer->mSpeedF / 2 .0f , 1 , 0 , 0 );
@@ -6893,7 +6824,7 @@ void dAcPy_c::executeState_CarryPlayer() {
68936824 return ;
68946825 }
68956826 if (isNowBgCross (BGC_45)) {
6896- m_ca1 = ridePlayer->m_ca1 ;
6827+ mAmiLayer = ridePlayer->mAmiLayer ;
68976828 }
68986829 if (!ridePlayer->isStatus (STATUS_46)) {
68996830 if (setRideOffPlayerJump (sc_JumpSpeed - 0 .2f , 0 .0f )) {
@@ -7309,12 +7240,12 @@ void dAcPy_c::createFireBall(int i) {
73097240 if (mPowerup == POWERUP_FIRE_FLOWER) {
73107241 fn_80057e70 (SE_PLY_THROW_FIRE, false );
73117242 pos = loopPos;
7312- u32 param = (i << 16 ) | (m_ca1 << 12 ) | (mLayer << 8 ) | (m_12f4 << 4 ) | mPlayerNo ;
7243+ u32 param = (i << 16 ) | (mAmiLayer << 12 ) | (mLayer << 8 ) | (m_12f4 << 4 ) | mPlayerNo ;
73137244 dActor_c::construct (fProfile ::PL_FIREBALL, param, &pos, nullptr , 0 );
73147245 } else if (mPowerup == POWERUP_PENGUIN_SUIT || mPowerup == POWERUP_ICE_FLOWER) {
73157246 fn_80057e70 (SE_PLY_THROW_ICEBALL, false );
73167247 pos = loopPos;
7317- u32 param = (i << 16 ) | (m_ca1 << 12 ) | (mLayer << 8 ) | (m_12f4 << 4 ) | mPlayerNo ;
7248+ u32 param = (i << 16 ) | (mAmiLayer << 12 ) | (mLayer << 8 ) | (m_12f4 << 4 ) | mPlayerNo ;
73187249 dActor_c::construct (fProfile ::ICEBALL, param, &pos, nullptr , 0 );
73197250 }
73207251}
@@ -7746,7 +7677,7 @@ void dAcPy_c::endPropelFlyPartsMove() {
77467677void dAcPy_c::setPropelSpinSmokeEffect () {
77477678 mVec3_c efPos = mPos ;
77487679 efPos.y += 10 .0f ;
7749- if (dMaskMng::isCaveMask () && mLayer == 0 && m_ca1 == 1 ) {
7680+ if (dMaskMng::isCaveMask () && mLayer == 0 && mAmiLayer == 1 ) {
77507681 efPos.z = 2000 .0f ;
77517682 }
77527683 float height;
@@ -7759,7 +7690,7 @@ void dAcPy_c::setPropelSpinSmokeEffect() {
77597690void dAcPy_c::setStartPropelJumpEffect () {
77607691 if (isNowBgCross (BGC_IS_FOOT)) {
77617692 mVec3_c efPos = mPos ;
7762- if (dMaskMng::isCaveMask () && mLayer == 0 && m_ca1 == 1 ) {
7693+ if (dMaskMng::isCaveMask () && mLayer == 0 && mAmiLayer == 1 ) {
77637694 efPos.z = 2000 .0f ;
77647695 }
77657696 dEf::createPlayerEffect (mPlayerNo , " Wm_mr_spindepart" , 0 , &efPos, nullptr , nullptr );
@@ -10152,8 +10083,8 @@ void dAcPy_c::setBcData(int setInstant) {
1015210083 float y = mPos .y + getStandHeadBgPointY () - 1 .0f ;
1015310084 mVec3_c pos (mPos .x , mPos .y + 4 .0f , mPos .z );
1015410085 float height;
10155- if (dBc_c::checkTenjou (&pos, &height, mLayer , m_ca1 )) {
10156- if (height < y && !dBc_c::checkBg (pos.x , height + 4 .0f , mLayer , m_ca1 , 0x10 )) {
10086+ if (dBc_c::checkTenjou (&pos, &height, mLayer , mAmiLayer )) {
10087+ if (height < y && !dBc_c::checkBg (pos.x , height + 4 .0f , mLayer , mAmiLayer , 0x10 )) {
1015710088 footData.mFlags |= 0x800000 ;
1015810089 }
1015910090 }
@@ -10227,7 +10158,7 @@ void dAcPy_c::setBcData(int setInstant) {
1022710158 if (mHeadBcData .mOffset < headData.mOffset ) {
1022810159 mVec3_c pos (mPos .x , mPos .y + mHeadBcData .mOffset / 4096 .0f + 1 .0f , mPos .z );
1022910160 float height;
10230- if (dBc_c::checkTenjou (&pos, &height, mLayer , m_ca1 )) {
10161+ if (dBc_c::checkTenjou (&pos, &height, mLayer , mAmiLayer )) {
1023110162 if (height < mPos .y + headData.mOffset / 4096 .0f ) {
1023210163 float tmp = height - mPos .y ;
1023310164 if (tmp < 0 .0f ) {
@@ -10718,7 +10649,7 @@ bool dAcPy_c::setPressBgDamage(int a, int b) {
1071810649 } else {
1071910650 mVec3_c pos = carryPlayer->mPos ;
1072010651 float height;
10721- if (dBc_c::checkTenjou (&pos, &height, mLayer , m_ca1 )) {
10652+ if (dBc_c::checkTenjou (&pos, &height, mLayer , mAmiLayer )) {
1072210653 const sBcPlayerPointData *data = getBgPointData_Powerup (mPowerup , 0 );
1072310654 pos.y = height - data->mHead .mOffset / 4096 .0f - 2 .0f ;
1072410655 carryPlayer->mPos = pos;
@@ -10834,6 +10765,60 @@ const float dAcPy_c::data_802f5a48[] = {
1083410765 0 .8f , 0 .14f , 4 .0f , 0 .07f , 40 .0f
1083510766};
1083610767
10768+ STATE_VIRTUAL_DEFINE (dAcPy_c, Walk);
10769+ STATE_VIRTUAL_DEFINE (dAcPy_c, Jump);
10770+ STATE_VIRTUAL_DEFINE (dAcPy_c, Fall);
10771+ STATE_VIRTUAL_DEFINE (dAcPy_c, Land);
10772+ STATE_VIRTUAL_DEFINE (dAcPy_c, Crouch);
10773+ STATE_VIRTUAL_DEFINE (dAcPy_c, SitJump);
10774+ STATE_VIRTUAL_DEFINE (dAcPy_c, Slip);
10775+ STATE_VIRTUAL_DEFINE (dAcPy_c, Turn);
10776+ STATE_VIRTUAL_DEFINE (dAcPy_c, HipAttack);
10777+ STATE_VIRTUAL_DEFINE (dAcPy_c, Swim);
10778+ STATE_VIRTUAL_DEFINE (dAcPy_c, Kani);
10779+ STATE_VIRTUAL_DEFINE (dAcPy_c, Cloud);
10780+
10781+ STATE_DEFINE (dAcPy_c, RideOffJump);
10782+ STATE_DEFINE (dAcPy_c, SpinHipAttack);
10783+ STATE_DEFINE (dAcPy_c, RollSlip);
10784+ STATE_DEFINE (dAcPy_c, Vine);
10785+ STATE_DEFINE (dAcPy_c, Hang);
10786+ STATE_DEFINE (dAcPy_c, Pole);
10787+ STATE_DEFINE (dAcPy_c, Fire);
10788+ STATE_DEFINE (dAcPy_c, LiftUp);
10789+ STATE_DEFINE (dAcPy_c, Throw);
10790+ STATE_DEFINE (dAcPy_c, PropelThrow);
10791+ STATE_DEFINE (dAcPy_c, WallJump);
10792+ STATE_DEFINE (dAcPy_c, WallSlide);
10793+ STATE_DEFINE (dAcPy_c, Propel);
10794+ STATE_DEFINE (dAcPy_c, CarryPlayer);
10795+ STATE_DEFINE (dAcPy_c, RideYoshi);
10796+ STATE_DEFINE (dAcPy_c, SpinJump);
10797+ STATE_DEFINE (dAcPy_c, PenguinSlide);
10798+ STATE_DEFINE (dAcPy_c, KaniJump);
10799+ STATE_DEFINE (dAcPy_c, Quake);
10800+ STATE_DEFINE (dAcPy_c, ElecShock);
10801+ STATE_DEFINE (dAcPy_c, FlyDamage);
10802+ STATE_DEFINE (dAcPy_c, IceDamage);
10803+ STATE_DEFINE (dAcPy_c, CannonJump);
10804+ STATE_DEFINE (dAcPy_c, TarzanRope);
10805+ STATE_DEFINE (dAcPy_c, PlayerEat);
10806+ STATE_DEFINE (dAcPy_c, Balloon);
10807+ STATE_DEFINE (dAcPy_c, BlockJump);
10808+ STATE_DEFINE (dAcPy_c, JrCrown);
10809+
10810+ STATE_VIRTUAL_DEFINE (dAcPy_c, DemoDown);
10811+ STATE_DEFINE (dAcPy_c, DemoInDoor);
10812+ STATE_DEFINE (dAcPy_c, DemoInJump);
10813+ STATE_DEFINE (dAcPy_c, DemoInVine);
10814+ STATE_DEFINE (dAcPy_c, DemoOutDoor);
10815+ STATE_DEFINE (dAcPy_c, DemoFallDown);
10816+ STATE_DEFINE (dAcPy_c, DemoFireDown);
10817+ STATE_DEFINE (dAcPy_c, DemoEatDie);
10818+ STATE_DEFINE (dAcPy_c, DemoDokanCannon);
10819+ STATE_DEFINE (dAcPy_c, DemoCannonWarp);
10820+ // STATE_VIRTUAL_DEFINE(dAcPy_c, DemoStartWait); // [TODO: intentionally left out?]
10821+
1083710822ACTOR_PROFILE (PLAYER, dAcPy_c, 0 );
1083810823
1083910824template <>
0 commit comments