14class dAcPy_c :
public daPlBase_c {
18 SPIN_HIP_ATTACK_ACTION_0,
19 SPIN_HIP_ATTACK_ACTION_1
74 PENGUIN_SLIDE_ACTION_0,
75 PENGUIN_SLIDE_ACTION_1,
76 PENGUIN_SLIDE_ACTION_2
118 KANI_ACTION_HANG_INIT,
119 KANI_ACTION_JUMP_HANG_INIT,
121 KANI_ACTION_HANG_FALL,
123 KANI_ACTION_HANG_UP_VINE
143 DEMO_OUT_DOOR_OPEN_DOOR,
144 DEMO_OUT_DOOR_MOVE_CENTER,
145 DEMO_OUT_DOOR_MOVE_INTER,
146 DEMO_OUT_DOOR_WAIT_CLOSE,
147 DEMO_OUT_DOOR_WAIT_ENTER,
148 DEMO_OUT_DOOR_FINISHED
156 float f1, f2, mSandSinkRate, f4, f5, f6, f7, f8;
160 float mThrowSpeedMax;
161 float mSpitRelated[4];
162 float mVineSpeedRelated[4];
163 float mKaniSpeedRelated[4];
184 virtual void executeMain();
185 virtual void executeLastPlayer();
186 virtual void executeLastAll();
187 virtual bool isItemKinopio() {
return mIsRescueKinopio; }
189 virtual u8 getTallType(s8);
190 virtual const sBcPointData *getHeadBgPointData() {
return &getBgPointData()->mHead; }
191 virtual const sBcPointData *getWallBgPointData() {
return &getBgPointData()->mWall; }
192 virtual const sBcPointData *getFootBgPointData() {
return &getBgPointData()->mFoot; }
193 virtual float getStandHeadBgPointY();
194 virtual void checkBgCrossSub();
195 virtual void postBgCross();
196 virtual float getSandSinkRate();
197 virtual bool setPressBgDamage(
int,
int);
198 virtual bool setBalloonInDispOut(
int);
199 virtual bool isChange();
200 virtual bool isEnableDokanInStatus();
201 virtual bool setHideNotGoalPlayer();
202 virtual int setDemoGoal(mVec3_c &landPos,
float goalCastleX, u8 goalType);
203 virtual bool setDemoCannonWarp(
int,
short,
short);
208 virtual void initialDoor();
209 virtual void initialVine();
210 virtual void initialJumpRight();
211 virtual void initialJumpLeft();
212 virtual void initialSwim();
213 virtual void initialBlockJump();
214 virtual void initialBlockJumpBelow();
216 virtual void setCreateAction(
int);
217 virtual bool setTimeOverDemo();
218 virtual void setFallDownDemo();
219 virtual bool setDokanIn(DokanDir_e dir);
220 virtual void initDemoOutDokan();
221 virtual bool updateDemoKimePose(ClearType_e clearType);
222 virtual void initDemoGoalBase();
223 virtual void executeDemoGoal_Run();
224 virtual void initializeDemoControl();
239 virtual bool isWaitFrameCountMax();
240 virtual bool checkWalkNextAction();
244 virtual void walkAction_Wait();
246 virtual void walkAction_Move();
247 virtual bool checkCrouch();
248 virtual bool setCancelCrouch();
249 virtual void setSlipAction();
250 virtual void slipActionMove(
int);
251 virtual void setHipAttack_AttackStart();
253 virtual float getCloudOffsetY();
254 virtual bool setRideJrCrown(
const dActor_c *);
255 virtual bool isRideJrCrownOwn(
const dActor_c *);
256 virtual void setRideJrCrownMtx(
const mMtx_c *);
257 virtual void setRideJrCrownAnm(
int);
259 virtual const mVec3_c *getHeadTopPosP();
260 virtual const float *getGravityData();
261 virtual bool isCarry()
const {
return mCarryActorID !=
BASE_ID_NULL; }
262 virtual bool isLiftUp();
263 virtual bool isLiftUpExceptMame();
265 virtual void setStar(daPlBase_c::StarSet_e,
int);
266 virtual void endStar();
267 virtual void setVirusStar(daPlBase_c *);
269 virtual bool isNoDamage();
270 virtual bool setDamage(
dActor_c *, DamageType_e);
271 virtual bool setForcedDamage(
dActor_c *, DamageType_e);
272 virtual bool setJump(
float jumpSpeed,
float speedF,
bool allowSteer,
int keyMode,
int jumpMode);
273 virtual bool _setJump(
float jumpSpeed,
float speedF,
bool allowSteer,
int keyMode,
int jumpMode);
275 virtual bool setHipAttackOnEnemy(mVec3_c *hitPos);
277 virtual void clearJumpActionInfo(
int);
278 virtual bool setSwimSpeed(
float speedY,
float speedF);
280 virtual void set1UpKinokoEffect();
281 virtual void setFlagGetEffect();
282 virtual void setHipAttackEffect();
284 virtual void startQuakeShock(dQuake_c::TYPE_SHOCK_e);
285 virtual void startPatternRumble(
const char *pattern);
287 virtual bool setDamage2(
dActor_c *, daPlBase_c::DamageType_e);
289 virtual bool isCarryMamePlayer();
329 void setSeaLandSmokeEffect();
330 bool setHipAttackAction();
331 void setWaterInEffect();
332 void setSpinHipAttackEffect();
333 void setScrollMode(s8);
335 void setPropelSpinSmokeEffect();
336 void setWaterWalkFlag();
337 bool setKaniActionInitHangHand();
340 void calcJumpCount();
341 float getJumpSpeed();
345 bool checkCarryThrow();
351 dAcPy_c *getCarryPlayer();
352 bool isIceSlipAnmPlay();
354 bool checkWallJump();
356 void setSpinHoldReq(
float targetX);
357 bool setSpinSpeed(
float,
float);
358 void setSpinJumpEffect(
int);
359 void endSpinJumpEffect();
360 void setSpinJumpEffectSub(
int);
361 void setMissSpinJumpEffect(
int);
362 void initRideSpinMove();
363 void setSpinFireBall();
364 void endRideSpinMove();
365 bool isMissSpinEnableAnm();
366 s16 getMissSpinAngle();
368 void resetMissSpin();
369 void updateMissSpin();
370 void setKaniMoveSpeed(
bool);
371 void setCrouchSmokeEffect();
373 void setSlipEffect();
374 void releaseCarryActor();
375 void setInvalidKeyTimer(
int,
int);
376 void setInvalidKeyTimer_LR(
int,
int);
377 bool checkPenguinSlideJump();
378 void setPenguinSlideEffect();
379 void setPenguinSlideLandEffect();
381 void setRunOnWaterEffect();
383 void setTurnSmokeEffect();
384 void CrouchActionGround();
385 void CrouchActionWater();
386 void setWaterGroundJump();
389 float getLiftUpOffset();
391 void clearSpinLiftUpReserve();
392 void checkSpinLiftUpReserve(
dCc_c *cc);
393 void setSpinLiftUpReserve();
394 void checkSpinLiftUpRoofHeight();
395 void setCarryOffFall(
const dAcPy_c *player);
396 bool checkEnableThrow();
397 void initializeThrowCommonBase();
398 void initializeThrowCommon();
399 void finalizeThrowCommonBase();
400 void finalizeThrowCommon();
401 void setThrowActor();
404 void executeThrowCommon();
405 void setWaterMoveSpeed();
407 void setUzuSpeedY(
float f);
408 void setUzuSpeedF(
float f);
409 bool setUzuSwimAction();
410 bool setSwimAction();
411 void setWaterOutEffect();
412 void setPaddleSwimEffect();
413 void resetPaddleSwimEffect();
414 void setWaterSurfaceSwimEffect();
415 void setFlutterKickEffect();
416 void setInitSwimAction_FireBall();
418 bool setWaterSurfaceJump();
419 void createFireBall(
int);
420 void SwimAction_Swim();
421 void setSwimAction_Swim(
AnmBlend_e blendMode);
422 void setSwimAction_Walk(
AnmBlend_e blendMode);
423 void setSwimAction_Penguin(
AnmBlend_e blendMode);
424 void setSwimActionWalkAnm();
425 void SwimAction_Walk();
426 s16 getPenguinSwinAngleX();
427 void setPenWaterMoveSpeed(
int i);
428 bool setPenguinPaddleSwim();
429 void SwimAction_Penguin();
430 void setSwimAction_FireBall();
431 void SwimAction_FireBall();
432 bool checkSetFireBall();
433 void calcPenguinSwimGroundRev();
434 void setIvyHangEffect();
435 bool setVineAction();
436 float getHangBcOffsetY();
437 bool setKaniHangToVineAction();
438 bool setVineToKaniHangAction();
439 void calcVineSpeed();
441 void setVineWalkSE();
442 void VineActionIvy();
443 bool setRideOffPlayerJump(
float,
float);
444 void VineActionNet();
445 void VineActionAttack();
446 void VineActionRoll();
447 bool checkNetPunch();
449 bool setAmiRollAction(
mVec3_c *);
450 bool isAmiRollAction();
451 void setAmiRollPos(
short,
float);
452 void setAmiRollPos(
short,
float,
mVec3_c &);
453 void endAmiRollAction(
short ang);
455 void setCarryPlayerHang(
float height);
456 bool setHangAction();
457 void HangActionStart();
458 void setHangActionWait();
459 void HangActionWait();
460 void setHangActionMove();
461 void HangActionMove();
463 void setPoleTurnAngle();
464 bool setPoleAction();
465 void PoleActionStart();
466 void setPoleActionWait();
467 void PoleActionWait();
468 void setPoleActionUp();
470 void setPoleActionDown();
471 void PoleActionDown();
473 bool setPoleShakeJump();
475 bool setKaniHangAction();
476 void setKaniWalkEffect();
477 void setKaniHangEffect();
478 void setKaniCliffCatchEffect();
479 void setKaniAction_Walk();
480 void setKaniAction_Hang();
481 void setKaniAction_HangUp();
482 void setKaniAction_HangFall();
483 void setKaniAction_JumpHang();
484 void setKaniAction_HangUpVine();
485 void setKaniAction_HangHand();
486 void setKaniHangStartEffect();
487 void KaniAction_Walk();
488 void KaniAction_HangInit();
489 void KaniAction_JumpHangInit();
490 bool checkCliffHangFootGround();
491 bool checkCliffHangWater();
492 void KaniAction_Hang();
493 void KaniAction_HangFall();
494 void KaniAction_HangUp();
495 void KaniAction_HangUpVine();
497 void setCatchRopeSE();
498 void setClimbRopeSE();
499 void setSlideRopeSE();
500 void setRopeHasigoSE();
501 void releasePoleCheck();
503 bool setTarzanRopeAction();
504 bool setTarzanRopeJump();
507 bool isNotBalloonCourse();
509 void setSceneChangeInfo();
510 bool updateRopeAngle();
511 void setRopeSwingAnm(
float,
float);
512 bool checkStartSwingUp();
513 bool checkStartSwingDown();
514 void updateRopeSwingAnm();
515 void TarzanRopeActionStart();
516 void setTarzanRopeActionWait();
517 void TarzanRopeActionWait();
518 void setTarzanRopeActionUp();
519 void TarzanRopeActionUp();
520 void setTarzanRopeActionDown();
521 void TarzanRopeActionDown();
522 void setTarzanRopeActionHasigoMove();
523 void TarzanRopeActionHasigoMove();
524 void TarzanRopeActionHasigoHangDown();
525 void setTarzanRopeActionHasigoHangUp();
526 void TarzanRopeActionHasigoHangUp();
528 void startQuakeAction(QuakeMode_e);
529 void setQuakeAction(
int, QuakeMode_e);
530 void setQuakeActionLocal(
int, QuakeMode_e);
531 void endQuakeAction();
532 void setQuakeNumbEffect();
534 void initElecShock();
535 bool executeElecShock();
536 void setElecEffect();
538 bool setFlyDamageAction(
int,
dActor_c *);
544 void setBreakBalloonJump(u8,
short);
545 void setDrawBalloonInPlayer(
mVec3_c &pos);
546 bool checkAllBalloonFade();
547 void setBalloonHelpVoice();
548 bool setBalloonInNextgoto();
549 bool setBalloonInDamage();
550 bool setBalloonButtonA();
551 bool setBalloonInDispOutByYoshi(
int);
552 bool setBalloonInDispOutBase(
int,
int);
554 void setShakeIce(
float);
560 bool setRideOffYoshiJump(daPlBase_c *yoshi);
563 void setCloudStateMove();
564 bool checkCloudStateCrouch();
565 void setCloudStateFireCreate();
567 bool checkCarryActor(dAcPy_c *player);
568 bool setDropCarryPlayer();
569 void setCarryPlayerMode_Move(
float);
570 void setCarryPlayerMode_Fire();
571 void setCarryPlayerMode_Crouch();
573 dAcPy_c *getRidePlayer();
575 void setYoshiBackPos();
576 void setPlayerHandPos();
577 void setPlayerEatPos(
dActor_c *eatingActor);
578 void setPlayerEatReact();
580 void endPowerUpEffect();
582 void setJrCrownPos();
583 void setJrCrownElecDamage();
585 bool setFireBallAction();
586 bool checkFireJump();
589 int getSpinActionMode();
591 bool setPropelAction();
592 void resetPropelFlyTime();
593 void clearPropelFlyUpTime();
594 void calcPropelMoveSpeedF();
595 void setPropelActionFlyInit();
596 void setPropelActionBigFly();
597 void setPropelActionFly();
598 void PropelActionFly();
599 void setPropelActionFall();
600 void PropelActionFall();
601 void setStartPropelJumpEffect();
602 bool calcPropelFallSpinEffect();
603 void setPropelFallSpinEffect();
604 void endPropelFlyPartsMove();
605 void stopPropelFallSpinEffect();
606 void updatePropelParts();
607 void updatePropelFlyPartsMove();
608 bool isEnablePropelJump();
609 bool setSpinActionReq();
610 bool setSpinAction();
612 void initPlayerDownCommon();
613 void initDemo_DownPose();
614 void initDemo_DownFall();
615 void exeDemo_DownFall();
617 void stopOtherDownDemo();
618 void playOtherDownDemo();
619 void setPlayerEatDie();
620 void releaseEatDie();
621 bool setEatDieHide();
622 bool setEatDieFadeOut();
623 bool setEatDieSpitOut();
624 void setEatDieScreamVoice();
626 bool searchDoorActor();
627 void setDemoInDoor_Walk();
628 bool isDoorDemoEnable();
630 void exeDemoOutDoor_OpenDoor();
631 void initDemoOutDoor_MoveInter();
632 void exeDemoOutDoor_MoveInter();
633 void initDemoOutDoor_MoveCenter();
634 void exeDemoOutDoor_MoveCenter();
635 void exeDemoOutDoor_WaitClose();
636 void exeDemoOutDoor_WaitEnter();
639 void endDemoDokanCannon(
mVec3_c &pos);
640 bool isDokanCannonIn();
641 bool setCannonJump(
float speedY,
float speedF,
int jumpType);
643 void setOffYoshiInGoal(daPlBase_c *yoshi);
645 bool isDrawingCarryFukidashi();
647 bool cancelCarry(
dActor_c *carriedActor);
656 void calcInvalidKeyTimer();
657 void calcTimerProc();
658 void calcStarTimer();
660 void initChangeInit();
661 bool executeChangeInit();
663 void initChangeNormal();
664 bool executeChangeNormal();
668 void maxFallSpeedSet();
669 void setFollowEffect(
int);
670 void setItemGetEffect();
671 void setChukanPowerUpEffect();
672 void updateItemGetEffect();
673 void updateFollowEffect();
675 void setCenterOffset();
678 bool isDrawingFukidashi();
679 void managePropelFukidashi();
682 void setCcAtSpinFall();
683 void setCcAtSpinLiftUp();
684 void setCcAtNetPunch();
686 void setCcDataDirect();
693 void setStarBase(StarSet_e,
int);
695 bool searchKinopioNearPlayer(
float *dist);
697 void setPlayerData();
699 void setModeGravity();
701 static bool ccCheckAttack(
dCc_c *self,
dCc_c *other);
702 static bool ccCheckStamp(
dCc_c *self,
dCc_c *other);
703 static bool ccCheckSideHit(
dCc_c *self,
dCc_c *other);
704 static void ccCallBack(
dCc_c *self,
dCc_c *other);
705 static void atCcCallBack(
dCc_c *self,
dCc_c *other);
711 mtx.trans(getCarryPos());
712 mtx.concat(getModel()->getMtx());
724 float getDirSpeed()
const {
728 int mIsRescueKinopio;
732 sBcPointData mVineBcData;
758 s16 mPropelRollSpeed;
782 short m_900, m_902, m_904, m_906;
826 u32 mAllBalloonFadeTimer;
858 short mWaterWalkTimer;
866 ACTOR_PARAM_CONFIG(PlayerNo, 0, 4);
867 ACTOR_PARAM_CONFIG(CreateAction, 16, 8);
868 ACTOR_PARAM_CONFIG(Direction, 24, 1);
870 static const float data_802f5a0c[];
871 static const float data_802f5a48[];
873 static const float msc_JUMP_SPEED;