diff --git a/data/behavior_table.c b/data/behavior_table.c index 5c45e1f2..ff139183 100644 --- a/data/behavior_table.c +++ b/data/behavior_table.c @@ -11,520 +11,541 @@ struct BehaviorTableEntry { #define BHV_ENTRY(BHV) [id_##BHV] = { .id = id_##BHV, .script = BHV, .name = #BHV } const struct BehaviorTableEntry gBehaviorTable[id_bhv_max_count] = { - BHV_ENTRY(bhvStarDoor), - BHV_ENTRY(bhvMrI), - BHV_ENTRY(bhvMrIBody), - BHV_ENTRY(bhvMrIParticle), - BHV_ENTRY(bhvPurpleParticle), - BHV_ENTRY(bhvGiantPole), - BHV_ENTRY(bhvPoleGrabbing), - BHV_ENTRY(bhvThiHugeIslandTop), - BHV_ENTRY(bhvThiTinyIslandTop), - BHV_ENTRY(bhvCapSwitchBase), - BHV_ENTRY(bhvCapSwitch), - BHV_ENTRY(bhvKingBobomb), - BHV_ENTRY(bhvBobombAnchorMario), + BHV_ENTRY(bhv1Up), + BHV_ENTRY(bhv1upJumpOnApproach), + BHV_ENTRY(bhv1upRunningAway), + BHV_ENTRY(bhv1upSliding), + BHV_ENTRY(bhv1upWalking), + BHV_ENTRY(bhvActivatedBackAndForthPlatform), + BHV_ENTRY(bhvActSelector), + BHV_ENTRY(bhvActSelectorStarType), + BHV_ENTRY(bhvAirborneDeathWarp), + BHV_ENTRY(bhvAirborneStarCollectWarp), + BHV_ENTRY(bhvAirborneWarp), + BHV_ENTRY(bhvAlphaBooKey), + BHV_ENTRY(bhvAmbientSounds), + BHV_ENTRY(bhvAnimatedTexture), + BHV_ENTRY(bhvAnimatesOnFloorSwitchPress), + BHV_ENTRY(bhvAnotherElavator), + BHV_ENTRY(bhvAnotherTiltingPlatform), + BHV_ENTRY(bhvArrowLift), + BHV_ENTRY(bhvBalconyBigBoo), + BHV_ENTRY(bhvBbhTiltingTrapPlatform), + BHV_ENTRY(bhvBbhTumblingBridge), + BHV_ENTRY(bhvBeginningLakitu), + BHV_ENTRY(bhvBeginningPeach), + BHV_ENTRY(bhvBetaBooKey), + BHV_ENTRY(bhvBetaBowserAnchor), BHV_ENTRY(bhvBetaChestBottom), BHV_ENTRY(bhvBetaChestLid), - BHV_ENTRY(bhvBubbleParticleSpawner), - BHV_ENTRY(bhvBubbleMaybe), - BHV_ENTRY(bhvBubblePlayer), - BHV_ENTRY(bhvSmallWaterWave), - BHV_ENTRY(bhvWaterAirBubble), - BHV_ENTRY(bhvSmallParticle), - BHV_ENTRY(bhvPlungeBubble), - BHV_ENTRY(bhvSmallParticleSnow), - BHV_ENTRY(bhvSmallParticleBubbles), - BHV_ENTRY(bhvFishGroup), - BHV_ENTRY(bhvCannon), - BHV_ENTRY(bhvCannonBarrel), - BHV_ENTRY(bhvCannonBaseUnused), - BHV_ENTRY(bhvChuckya), - BHV_ENTRY(bhvChuckyaAnchorMario), - BHV_ENTRY(bhvUnused05A8), - BHV_ENTRY(bhvRotatingPlatform), - BHV_ENTRY(bhvTower), - BHV_ENTRY(bhvBulletBillCannon), - BHV_ENTRY(bhvWfBreakableWallRight), - BHV_ENTRY(bhvWfBreakableWallLeft), - BHV_ENTRY(bhvKickableBoard), - BHV_ENTRY(bhvTowerDoor), - BHV_ENTRY(bhvRotatingCounterClockwise), - BHV_ENTRY(bhvWfRotatingWoodenPlatform), - BHV_ENTRY(bhvKoopaShellUnderwater), - BHV_ENTRY(bhvExitPodiumWarp), - BHV_ENTRY(bhvFadingWarp), - BHV_ENTRY(bhvWarp), - BHV_ENTRY(bhvWarpPipe), - BHV_ENTRY(bhvWhitePuffExplosion), - BHV_ENTRY(bhvSpawnedStar), - BHV_ENTRY(bhvSpawnedStarNoLevelExit), - BHV_ENTRY(bhvMrIBlueCoin), - BHV_ENTRY(bhvCoinInsideBoo), - BHV_ENTRY(bhvCoinFormationSpawn), - BHV_ENTRY(bhvCoinFormation), - BHV_ENTRY(bhvOneCoin), - BHV_ENTRY(bhvYellowCoin), - BHV_ENTRY(bhvTemporaryYellowCoin), - BHV_ENTRY(bhvThreeCoinsSpawn), - BHV_ENTRY(bhvTenCoinsSpawn), - BHV_ENTRY(bhvSingleCoinGetsSpawned), - BHV_ENTRY(bhvCoinSparkles), - BHV_ENTRY(bhvGoldenCoinSparkles), - BHV_ENTRY(bhvWallTinyStarParticle), - BHV_ENTRY(bhvVertStarParticleSpawner), - BHV_ENTRY(bhvPoundTinyStarParticle), - BHV_ENTRY(bhvHorStarParticleSpawner), - BHV_ENTRY(bhvPunchTinyTriangle), - BHV_ENTRY(bhvTriangleParticleSpawner), - BHV_ENTRY(bhvDoorWarp), - BHV_ENTRY(bhvDoor), - BHV_ENTRY(bhvGrindel), - BHV_ENTRY(bhvThwomp2), - BHV_ENTRY(bhvThwomp), - BHV_ENTRY(bhvTumblingBridgePlatform), - BHV_ENTRY(bhvWfTumblingBridge), - BHV_ENTRY(bhvBbhTumblingBridge), - BHV_ENTRY(bhvLllTumblingBridge), - BHV_ENTRY(bhvFlame), - BHV_ENTRY(bhvAnotherElavator), - BHV_ENTRY(bhvRrElevatorPlatform), - BHV_ENTRY(bhvHmcElevatorPlatform), - BHV_ENTRY(bhvWaterMist), - BHV_ENTRY(bhvBreathParticleSpawner), - BHV_ENTRY(bhvBreakBoxTriangle), - BHV_ENTRY(bhvWaterMist2), - BHV_ENTRY(bhvUnused0DFC), - BHV_ENTRY(bhvMistCircParticleSpawner), - BHV_ENTRY(bhvDirtParticleSpawner), - BHV_ENTRY(bhvSnowParticleSpawner), - BHV_ENTRY(bhvWind), - BHV_ENTRY(bhvEndToad), - BHV_ENTRY(bhvEndPeach), - BHV_ENTRY(bhvUnusedParticleSpawn), - BHV_ENTRY(bhvUkiki), - BHV_ENTRY(bhvUkikiCageChild), - BHV_ENTRY(bhvUkikiCageStar), - BHV_ENTRY(bhvUkikiCage), - BHV_ENTRY(bhvBitfsSinkingPlatforms), - BHV_ENTRY(bhvBitfsSinkingCagePlatform), - BHV_ENTRY(bhvDddMovingPole), - BHV_ENTRY(bhvBitfsTiltingInvertedPyramid), - BHV_ENTRY(bhvSquishablePlatform), - BHV_ENTRY(bhvCutOutObject), - BHV_ENTRY(bhvBetaMovingFlames), - BHV_ENTRY(bhvRrRotatingBridgePlatform), - BHV_ENTRY(bhvFlamethrower), - BHV_ENTRY(bhvFlamethrowerFlame), - BHV_ENTRY(bhvBouncingFireball), - BHV_ENTRY(bhvBouncingFireballFlame), - BHV_ENTRY(bhvBowserShockWave), - BHV_ENTRY(bhvFireParticleSpawner), - BHV_ENTRY(bhvBlackSmokeMario), - BHV_ENTRY(bhvBlackSmokeBowser), - BHV_ENTRY(bhvBlackSmokeUpward), BHV_ENTRY(bhvBetaFishSplashSpawner), - BHV_ENTRY(bhvSpindrift), - BHV_ENTRY(bhvTowerPlatformGroup), - BHV_ENTRY(bhvWfSlidingTowerPlatform), - BHV_ENTRY(bhvWfElevatorTowerPlatform), - BHV_ENTRY(bhvWfSolidTowerPlatform), - BHV_ENTRY(bhvLeafParticleSpawner), - BHV_ENTRY(bhvTreeSnow), - BHV_ENTRY(bhvTreeLeaf), - BHV_ENTRY(bhvAnotherTiltingPlatform), - BHV_ENTRY(bhvSquarishPathMoving), - BHV_ENTRY(bhvSquarishPathParent), - BHV_ENTRY(bhvPiranhaPlantBubble), - BHV_ENTRY(bhvPiranhaPlantWakingBubbles), - BHV_ENTRY(bhvFloorSwitchAnimatesObject), - BHV_ENTRY(bhvFloorSwitchGrills), - BHV_ENTRY(bhvFloorSwitchHardcodedModel), - BHV_ENTRY(bhvFloorSwitchHiddenObjects), - BHV_ENTRY(bhvHiddenObject), - BHV_ENTRY(bhvBreakableBox), - BHV_ENTRY(bhvPushableMetalBox), - BHV_ENTRY(bhvHeaveHo), - BHV_ENTRY(bhvHeaveHoThrowMario), - BHV_ENTRY(bhvCcmTouchedStarSpawn), - BHV_ENTRY(bhvUnusedPoundablePlatform), - BHV_ENTRY(bhvBetaTrampolineTop), + BHV_ENTRY(bhvBetaHoldableObject), + BHV_ENTRY(bhvBetaMovingFlames), + BHV_ENTRY(bhvBetaMovingFlamesSpawn), BHV_ENTRY(bhvBetaTrampolineSpring), - BHV_ENTRY(bhvJumpingBox), - BHV_ENTRY(bhvBooCage), - BHV_ENTRY(bhvStub), - BHV_ENTRY(bhvIgloo), - BHV_ENTRY(bhvBowserKey), - BHV_ENTRY(bhvGrandStar), - BHV_ENTRY(bhvBetaBooKey), - BHV_ENTRY(bhvAlphaBooKey), - BHV_ENTRY(bhvBulletBill), - BHV_ENTRY(bhvWhitePuffSmoke), - BHV_ENTRY(bhvUnused1820), - BHV_ENTRY(bhvBowserTailAnchor), - BHV_ENTRY(bhvBowser), - BHV_ENTRY(bhvBowserBodyAnchor), - BHV_ENTRY(bhvBowserFlameSpawn), - BHV_ENTRY(bhvTiltingBowserLavaPlatform), - BHV_ENTRY(bhvFallingBowserPlatform), + BHV_ENTRY(bhvBetaTrampolineTop), + BHV_ENTRY(bhvBigBoulder), + BHV_ENTRY(bhvBigBoulderGenerator), + BHV_ENTRY(bhvBigBully), + BHV_ENTRY(bhvBigBullyWithMinions), + BHV_ENTRY(bhvBigChillBully), + BHV_ENTRY(bhvBigSnowmanWhole), + BHV_ENTRY(bhvBird), + BHV_ENTRY(bhvBirdsSoundLoop), + BHV_ENTRY(bhvBitfsSinkingCagePlatform), + BHV_ENTRY(bhvBitfsSinkingPlatforms), + BHV_ENTRY(bhvBitfsTiltingInvertedPyramid), + BHV_ENTRY(bhvBlackSmokeBowser), + BHV_ENTRY(bhvBlackSmokeMario), + BHV_ENTRY(bhvBlackSmokeUpward), BHV_ENTRY(bhvBlueBowserFlame), - BHV_ENTRY(bhvFlameFloatingLanding), - BHV_ENTRY(bhvBlueFlamesGroup), - BHV_ENTRY(bhvFlameBouncing), - BHV_ENTRY(bhvFlameMovingForwardGrowing), - BHV_ENTRY(bhvFlameBowser), - BHV_ENTRY(bhvFlameLargeBurningOut), - BHV_ENTRY(bhvBlueFish), - BHV_ENTRY(bhvTankFishGroup), - BHV_ENTRY(bhvCheckerboardElevatorGroup), - BHV_ENTRY(bhvCheckerboardPlatformSub), - BHV_ENTRY(bhvBowserKeyUnlockDoor), - BHV_ENTRY(bhvBowserKeyCourseExit), - BHV_ENTRY(bhvInvisibleObjectsUnderBridge), - BHV_ENTRY(bhvWaterLevelPillar), - BHV_ENTRY(bhvDddWarp), - BHV_ENTRY(bhvMoatGrills), - BHV_ENTRY(bhvClockMinuteHand), - BHV_ENTRY(bhvClockHourHand), - BHV_ENTRY(bhvMacroUkiki), - BHV_ENTRY(bhvStub1D0C), - BHV_ENTRY(bhvLllRotatingHexagonalPlatform), - BHV_ENTRY(bhvLllSinkingRockBlock), - BHV_ENTRY(bhvStub1D70), - BHV_ENTRY(bhvLllMovingOctagonalMeshPlatform), - BHV_ENTRY(bhvLllRotatingBlockWithFireBars), - BHV_ENTRY(bhvLllRotatingHexFlame), - BHV_ENTRY(bhvLllWoodPiece), - BHV_ENTRY(bhvLllFloatingWoodBridge), - BHV_ENTRY(bhvVolcanoFlames), - BHV_ENTRY(bhvLllRotatingHexagonalRing), - BHV_ENTRY(bhvLllSinkingRectangularPlatform), - BHV_ENTRY(bhvLllSinkingSquarePlatforms), - BHV_ENTRY(bhvLllTiltingInvertedPyramid), - BHV_ENTRY(bhvUnused1F30), - BHV_ENTRY(bhvKoopaShell), - BHV_ENTRY(bhvKoopaShellFlame), - BHV_ENTRY(bhvToxBox), - BHV_ENTRY(bhvPiranhaPlant), - BHV_ENTRY(bhvLllHexagonalMesh), - BHV_ENTRY(bhvLllBowserPuzzlePiece), - BHV_ENTRY(bhvLllBowserPuzzle), - BHV_ENTRY(bhvTuxiesMother), - BHV_ENTRY(bhvPenguinBaby), - BHV_ENTRY(bhvUnused20E0), - BHV_ENTRY(bhvSmallPenguin), - BHV_ENTRY(bhvManyBlueFishSpawner), - BHV_ENTRY(bhvFewBlueFishSpawner), - BHV_ENTRY(bhvFishSpawner), - BHV_ENTRY(bhvFish), - BHV_ENTRY(bhvWdwExpressElevator), - BHV_ENTRY(bhvWdwExpressElevatorPlatform), - BHV_ENTRY(bhvChirpChirp), - BHV_ENTRY(bhvBub), - BHV_ENTRY(bhvExclamationBox), - BHV_ENTRY(bhvRotatingExclamationMark), - BHV_ENTRY(bhvSoundSpawner), - BHV_ENTRY(bhvRockSolid), - BHV_ENTRY(bhvBowserSubDoor), - BHV_ENTRY(bhvBowsersSub), - BHV_ENTRY(bhvSushiShark), - BHV_ENTRY(bhvSushiSharkCollisionChild), - BHV_ENTRY(bhvJrbSlidingBox), - BHV_ENTRY(bhvShipPart3), - BHV_ENTRY(bhvInSunkenShip3), - BHV_ENTRY(bhvSunkenShipPart), - BHV_ENTRY(bhvSunkenShipPart2), - BHV_ENTRY(bhvInSunkenShip), - BHV_ENTRY(bhvInSunkenShip2), - BHV_ENTRY(bhvMistParticleSpawner), - BHV_ENTRY(bhvWhitePuff1), - BHV_ENTRY(bhvWhitePuff2), - BHV_ENTRY(bhvWhitePuffSmoke2), - BHV_ENTRY(bhvPurpleSwitchHiddenBoxes), - BHV_ENTRY(bhvBlueCoinSwitch), - BHV_ENTRY(bhvHiddenBlueCoin), - BHV_ENTRY(bhvOpenableCageDoor), - BHV_ENTRY(bhvOpenableGrill), - BHV_ENTRY(bhvWaterLevelDiamond), - BHV_ENTRY(bhvInitializeChangingWaterLevel), - BHV_ENTRY(bhvTweesterSandParticle), - BHV_ENTRY(bhvTweester), - BHV_ENTRY(bhvMerryGoRoundBooManager), - BHV_ENTRY(bhvAnimatedTexture), - BHV_ENTRY(bhvBooInCastle), - BHV_ENTRY(bhvBooWithCage), - BHV_ENTRY(bhvBalconyBigBoo), - BHV_ENTRY(bhvMerryGoRoundBigBoo), - BHV_ENTRY(bhvGhostHuntBigBoo), - BHV_ENTRY(bhvCourtyardBooTriplet), - BHV_ENTRY(bhvBoo), - BHV_ENTRY(bhvMerryGoRoundBoo), - BHV_ENTRY(bhvGhostHuntBoo), - BHV_ENTRY(bhvHiddenStaircaseStep), - BHV_ENTRY(bhvBooBossSpawnedBridge), - BHV_ENTRY(bhvBbhTiltingTrapPlatform), - BHV_ENTRY(bhvHauntedBookshelf), - BHV_ENTRY(bhvMeshElevator), - BHV_ENTRY(bhvMerryGoRound), - BHV_ENTRY(bhvPlaysMusicTrackWhenTouched), - BHV_ENTRY(bhvBetaBowserAnchor), - BHV_ENTRY(bhvStaticCheckeredPlatform), - BHV_ENTRY(bhvUnused2A10), - BHV_ENTRY(bhvUnusedFakeStar), - BHV_ENTRY(bhvStaticObject), - BHV_ENTRY(bhvUnused2A54), - BHV_ENTRY(bhvCastleFloorTrap), - BHV_ENTRY(bhvFloorTrapInCastle), - BHV_ENTRY(bhvTree), - BHV_ENTRY(bhvSparkle), - BHV_ENTRY(bhvSparkleSpawn), - BHV_ENTRY(bhvSparkleParticleSpawner), - BHV_ENTRY(bhvScuttlebug), - BHV_ENTRY(bhvScuttlebugSpawn), - BHV_ENTRY(bhvWhompKingBoss), - BHV_ENTRY(bhvSmallWhomp), - BHV_ENTRY(bhvWaterSplash), - BHV_ENTRY(bhvWaterDroplet), - BHV_ENTRY(bhvWaterDropletSplash), - BHV_ENTRY(bhvBubbleSplash), - BHV_ENTRY(bhvIdleWaterWave), - BHV_ENTRY(bhvObjectWaterSplash), - BHV_ENTRY(bhvShallowWaterWave), - BHV_ENTRY(bhvShallowWaterSplash), - BHV_ENTRY(bhvObjectWaveTrail), - BHV_ENTRY(bhvWaveTrail), - BHV_ENTRY(bhvTinyStrongWindParticle), - BHV_ENTRY(bhvStrongWindParticle), - BHV_ENTRY(bhvSLSnowmanWind), - BHV_ENTRY(bhvSLWalkingPenguin), - BHV_ENTRY(bhvYellowBall), - BHV_ENTRY(bhvMario), - BHV_ENTRY(bhvToadMessage), - BHV_ENTRY(bhvUnlockDoorStar), - BHV_ENTRY(bhvRandomAnimatedTexture), - BHV_ENTRY(bhvYellowBackgroundInMenu), - BHV_ENTRY(bhvMenuButton), - BHV_ENTRY(bhvMenuButtonManager), - BHV_ENTRY(bhvActSelectorStarType), - BHV_ENTRY(bhvActSelector), - BHV_ENTRY(bhvMovingYellowCoin), - BHV_ENTRY(bhvMovingBlueCoin), - BHV_ENTRY(bhvBlueCoinSliding), BHV_ENTRY(bhvBlueCoinJumping), - BHV_ENTRY(bhvSeaweed), - BHV_ENTRY(bhvSeaweedBundle), + BHV_ENTRY(bhvBlueCoinSliding), + BHV_ENTRY(bhvBlueCoinSwitch), + BHV_ENTRY(bhvBlueFish), + BHV_ENTRY(bhvBlueFlamesGroup), + BHV_ENTRY(bhvBobBowlingBallSpawner), BHV_ENTRY(bhvBobomb), - BHV_ENTRY(bhvBobombFuseSmoke), + BHV_ENTRY(bhvBobombAnchorMario), BHV_ENTRY(bhvBobombBuddy), BHV_ENTRY(bhvBobombBuddyOpensCannon), - BHV_ENTRY(bhvCannonClosed), - BHV_ENTRY(bhvWhirlpool), - BHV_ENTRY(bhvJetStream), - BHV_ENTRY(bhvMessagePanel), - BHV_ENTRY(bhvSignOnWall), - BHV_ENTRY(bhvHomingAmp), - BHV_ENTRY(bhvCirclingAmp), + BHV_ENTRY(bhvBobombBullyDeathSmoke), + BHV_ENTRY(bhvBobombExplosionBubble), + BHV_ENTRY(bhvBobombExplosionBubble3600), + BHV_ENTRY(bhvBobombFuseSmoke), + BHV_ENTRY(bhvBoo), + BHV_ENTRY(bhvBooBossSpawnedBridge), + BHV_ENTRY(bhvBooCage), + BHV_ENTRY(bhvBooInCastle), + BHV_ENTRY(bhvBookendSpawn), + BHV_ENTRY(bhvBookSwitch), + BHV_ENTRY(bhvBooWithCage), + BHV_ENTRY(bhvBouncingFireball), + BHV_ENTRY(bhvBouncingFireballFlame), + BHV_ENTRY(bhvBowlingBall), + BHV_ENTRY(bhvBowser), + BHV_ENTRY(bhvBowserBodyAnchor), + BHV_ENTRY(bhvBowserBomb), + BHV_ENTRY(bhvBowserBombExplosion), + BHV_ENTRY(bhvBowserBombSmoke), + BHV_ENTRY(bhvBowserCourseRedCoinStar), + BHV_ENTRY(bhvBowserFlameSpawn), + BHV_ENTRY(bhvBowserKey), + BHV_ENTRY(bhvBowserKeyCourseExit), + BHV_ENTRY(bhvBowserKeyUnlockDoor), + BHV_ENTRY(bhvBowserShockWave), + BHV_ENTRY(bhvBowsersSub), + BHV_ENTRY(bhvBowserSubDoor), + BHV_ENTRY(bhvBowserTailAnchor), + BHV_ENTRY(bhvBreakableBox), + BHV_ENTRY(bhvBreakableBoxSmall), + BHV_ENTRY(bhvBreakBoxTriangle), + BHV_ENTRY(bhvBreathParticleSpawner), + BHV_ENTRY(bhvBub), + BHV_ENTRY(bhvBubba), + BHV_ENTRY(bhvBubbleMaybe), + BHV_ENTRY(bhvBubbleParticleSpawner), + BHV_ENTRY(bhvBubblePlayer), + BHV_ENTRY(bhvBubbleSplash), + BHV_ENTRY(bhvBulletBill), + BHV_ENTRY(bhvBulletBillCannon), BHV_ENTRY(bhvButterfly), - BHV_ENTRY(bhvHoot), - BHV_ENTRY(bhvBetaHoldableObject), + BHV_ENTRY(bhvCameraLakitu), + BHV_ENTRY(bhvCannon), + BHV_ENTRY(bhvCannonBarrel), + BHV_ENTRY(bhvCannonBarrelBubbles), + BHV_ENTRY(bhvCannonBaseUnused), + BHV_ENTRY(bhvCannonClosed), + BHV_ENTRY(bhvCapSwitch), + BHV_ENTRY(bhvCapSwitchBase), BHV_ENTRY(bhvCarrySomething1), BHV_ENTRY(bhvCarrySomething2), BHV_ENTRY(bhvCarrySomething3), BHV_ENTRY(bhvCarrySomething4), BHV_ENTRY(bhvCarrySomething5), BHV_ENTRY(bhvCarrySomething6), - BHV_ENTRY(bhvObjectBubble), - BHV_ENTRY(bhvObjectWaterWave), - BHV_ENTRY(bhvExplosion), - BHV_ENTRY(bhvBobombBullyDeathSmoke), - BHV_ENTRY(bhvSmoke), - BHV_ENTRY(bhvBobombExplosionBubble), - BHV_ENTRY(bhvRespawner), - BHV_ENTRY(bhvSmallBully), - BHV_ENTRY(bhvBigBully), - BHV_ENTRY(bhvBigBullyWithMinions), - BHV_ENTRY(bhvSmallChillBully), - BHV_ENTRY(bhvBigChillBully), - BHV_ENTRY(bhvJetStreamRingSpawner), - BHV_ENTRY(bhvJetStreamWaterRing), - BHV_ENTRY(bhvMantaRayWaterRing), - BHV_ENTRY(bhvMantaRayRingManager), - BHV_ENTRY(bhvBowserBomb), - BHV_ENTRY(bhvBowserBombExplosion), - BHV_ENTRY(bhvBowserBombSmoke), + BHV_ENTRY(bhvCastleFlagWaving), + BHV_ENTRY(bhvCastleFloorTrap), + BHV_ENTRY(bhvCcmTouchedStarSpawn), BHV_ENTRY(bhvCelebrationStar), BHV_ENTRY(bhvCelebrationStarSparkle), - BHV_ENTRY(bhvStarKeyCollectionPuffSpawner), - BHV_ENTRY(bhvLllDrawbridgeSpawner), - BHV_ENTRY(bhvLllDrawbridge), - BHV_ENTRY(bhvSmallBomp), - BHV_ENTRY(bhvLargeBomp), - BHV_ENTRY(bhvWfSlidingPlatform), - BHV_ENTRY(bhvMoneybag), - BHV_ENTRY(bhvMoneybagHidden), - BHV_ENTRY(bhvPitBowlingBall), - BHV_ENTRY(bhvFreeBowlingBall), - BHV_ENTRY(bhvBowlingBall), - BHV_ENTRY(bhvTtmBowlingBallSpawner), - BHV_ENTRY(bhvBobBowlingBallSpawner), - BHV_ENTRY(bhvThiBowlingBallSpawner), - BHV_ENTRY(bhvRrCruiserWing), - BHV_ENTRY(bhvSpindel), - BHV_ENTRY(bhvSslMovingPyramidWall), - BHV_ENTRY(bhvPyramidElevator), - BHV_ENTRY(bhvPyramidElevatorTrajectoryMarkerBall), - BHV_ENTRY(bhvPyramidTop), - BHV_ENTRY(bhvPyramidTopFragment), - BHV_ENTRY(bhvPyramidPillarTouchDetector), - BHV_ENTRY(bhvWaterfallSoundLoop), - BHV_ENTRY(bhvVolcanoSoundLoop), - BHV_ENTRY(bhvCastleFlagWaving), - BHV_ENTRY(bhvBirdsSoundLoop), - BHV_ENTRY(bhvAmbientSounds), - BHV_ENTRY(bhvSandSoundLoop), - BHV_ENTRY(bhvHiddenAt120Stars), - BHV_ENTRY(bhvSnowmansBottom), - BHV_ENTRY(bhvSnowmansHead), - BHV_ENTRY(bhvSnowmansBodyCheckpoint), - BHV_ENTRY(bhvBigSnowmanWhole), - BHV_ENTRY(bhvBigBoulder), - BHV_ENTRY(bhvBigBoulderGenerator), - BHV_ENTRY(bhvWingCap), - BHV_ENTRY(bhvMetalCap), - BHV_ENTRY(bhvNormalCap), - BHV_ENTRY(bhvVanishCap), - BHV_ENTRY(bhvStar), - BHV_ENTRY(bhvStarSpawnCoordinates), - BHV_ENTRY(bhvHiddenRedCoinStar), - BHV_ENTRY(bhvRedCoin), - BHV_ENTRY(bhvBowserCourseRedCoinStar), - BHV_ENTRY(bhvHiddenStar), - BHV_ENTRY(bhvHiddenStarTrigger), - BHV_ENTRY(bhvTtmRollingLog), - BHV_ENTRY(bhvLllVolcanoFallingTrap), - BHV_ENTRY(bhvLllRollingLog), - BHV_ENTRY(bhv1upWalking), - BHV_ENTRY(bhv1upRunningAway), - BHV_ENTRY(bhv1upSliding), - BHV_ENTRY(bhv1Up), - BHV_ENTRY(bhv1upJumpOnApproach), - BHV_ENTRY(bhvHidden1up), - BHV_ENTRY(bhvHidden1upTrigger), - BHV_ENTRY(bhvHidden1upInPole), - BHV_ENTRY(bhvHidden1upInPoleTrigger), - BHV_ENTRY(bhvHidden1upInPoleSpawner), - BHV_ENTRY(bhvControllablePlatform), - BHV_ENTRY(bhvControllablePlatformSub), - BHV_ENTRY(bhvBreakableBoxSmall), - BHV_ENTRY(bhvSlidingSnowMound), - BHV_ENTRY(bhvSnowMoundSpawn), - BHV_ENTRY(bhvWdwSquareFloatingPlatform), - BHV_ENTRY(bhvWdwRectangularFloatingPlatform), - BHV_ENTRY(bhvJrbFloatingPlatform), - BHV_ENTRY(bhvArrowLift), - BHV_ENTRY(bhvOrangeNumber), - BHV_ENTRY(bhvMantaRay), - BHV_ENTRY(bhvFallingPillar), - BHV_ENTRY(bhvFallingPillarHitbox), - BHV_ENTRY(bhvPillarBase), - BHV_ENTRY(bhvJrbFloatingBox), - BHV_ENTRY(bhvDecorativePendulum), - BHV_ENTRY(bhvTreasureChestsShip), - BHV_ENTRY(bhvTreasureChestsJrb), - BHV_ENTRY(bhvTreasureChests), - BHV_ENTRY(bhvTreasureChestBottom), - BHV_ENTRY(bhvTreasureChestTop), - BHV_ENTRY(bhvMips), - BHV_ENTRY(bhvYoshi), - BHV_ENTRY(bhvKoopa), - BHV_ENTRY(bhvKoopaRaceEndpoint), - BHV_ENTRY(bhvKoopaFlag), - BHV_ENTRY(bhvPokey), - BHV_ENTRY(bhvPokeyBodyPart), - BHV_ENTRY(bhvSwoop), - BHV_ENTRY(bhvFlyGuy), - BHV_ENTRY(bhvGoomba), - BHV_ENTRY(bhvGoombaTripletSpawner), BHV_ENTRY(bhvChainChomp), BHV_ENTRY(bhvChainChompChainPart), - BHV_ENTRY(bhvWoodenPost), BHV_ENTRY(bhvChainChompGate), - BHV_ENTRY(bhvWigglerHead), - BHV_ENTRY(bhvWigglerBody), - BHV_ENTRY(bhvEnemyLakitu), - BHV_ENTRY(bhvCameraLakitu), + BHV_ENTRY(bhvCheckerboardElevatorGroup), + BHV_ENTRY(bhvCheckerboardPlatformSub), + BHV_ENTRY(bhvChirpChirp), + BHV_ENTRY(bhvChirpChirpUnused), + BHV_ENTRY(bhvChuckya), + BHV_ENTRY(bhvChuckyaAnchorMario), + BHV_ENTRY(bhvCirclingAmp), + BHV_ENTRY(bhvClamShell), + BHV_ENTRY(bhvClockHourHand), + BHV_ENTRY(bhvClockMinuteHand), BHV_ENTRY(bhvCloud), BHV_ENTRY(bhvCloudPart), - BHV_ENTRY(bhvSpiny), + BHV_ENTRY(bhvCoffin), + BHV_ENTRY(bhvCoffinSpawner), + BHV_ENTRY(bhvCoinFormation), + BHV_ENTRY(bhvCoinFormationSpawn), + BHV_ENTRY(bhvCoinInsideBoo), + BHV_ENTRY(bhvCoinSparkles), + BHV_ENTRY(bhvControllablePlatform), + BHV_ENTRY(bhvControllablePlatformSub), + BHV_ENTRY(bhvCourtyardBooTriplet), + BHV_ENTRY(bhvCutOutObject), + BHV_ENTRY(bhvDddMovingPole), + BHV_ENTRY(bhvDDDPole), + BHV_ENTRY(bhvDddWarp), + BHV_ENTRY(bhvDeathWarp), + BHV_ENTRY(bhvDecorativePendulum), + BHV_ENTRY(bhvDirtParticleSpawner), + BHV_ENTRY(bhvDonutPlatform), + BHV_ENTRY(bhvDonutPlatformSpawner), + BHV_ENTRY(bhvDoor), + BHV_ENTRY(bhvDoorWarp), + BHV_ENTRY(bhvDorrie), + BHV_ENTRY(bhvEndBirds1), + BHV_ENTRY(bhvEndBirds2), + BHV_ENTRY(bhvEndPeach), + BHV_ENTRY(bhvEndToad), + BHV_ENTRY(bhvEnemyLakitu), + BHV_ENTRY(bhvExclamationBox), + BHV_ENTRY(bhvExitPodiumWarp), + BHV_ENTRY(bhvExplosion), + BHV_ENTRY(bhvEyerokBoss), + BHV_ENTRY(bhvEyerokHand), + BHV_ENTRY(bhvFadingWarp), + BHV_ENTRY(bhvFallingBowserPlatform), + BHV_ENTRY(bhvFallingPillar), + BHV_ENTRY(bhvFallingPillarHitbox), + BHV_ENTRY(bhvFerrisWheelAxle), + BHV_ENTRY(bhvFerrisWheelPlatform), + BHV_ENTRY(bhvFewBlueFishSpawner), + BHV_ENTRY(bhvFireParticleSpawner), + BHV_ENTRY(bhvFirePiranhaPlant), + BHV_ENTRY(bhvFireSpitter), + BHV_ENTRY(bhvFish), + BHV_ENTRY(bhvFishGroup), + BHV_ENTRY(bhvFishSpawner), + BHV_ENTRY(bhvFlame), + BHV_ENTRY(bhvFlameBouncing), + BHV_ENTRY(bhvFlameBowser), + BHV_ENTRY(bhvFlameFloatingLanding), + BHV_ENTRY(bhvFlameLargeBurningOut), + BHV_ENTRY(bhvFlameMovingForwardGrowing), + BHV_ENTRY(bhvFlamethrower), + BHV_ENTRY(bhvFlamethrowerFlame), + BHV_ENTRY(bhvFloorSwitchAnimatesObject), + BHV_ENTRY(bhvFloorSwitchGrills), + BHV_ENTRY(bhvFloorSwitchHardcodedModel), + BHV_ENTRY(bhvFloorSwitchHiddenObjects), + BHV_ENTRY(bhvFloorTrapInCastle), + BHV_ENTRY(bhvFlyGuy), + BHV_ENTRY(bhvFlyguyFlame), + BHV_ENTRY(bhvFlyingBookend), + BHV_ENTRY(bhvFlyingWarp), + BHV_ENTRY(bhvFreeBowlingBall), + BHV_ENTRY(bhvGhostHuntBigBoo), + BHV_ENTRY(bhvGhostHuntBoo), + BHV_ENTRY(bhvGiantPole), + BHV_ENTRY(bhvGoldenCoinSparkles), + BHV_ENTRY(bhvGoomba), + BHV_ENTRY(bhvGoombaTripletSpawner), + BHV_ENTRY(bhvGrandStar), + BHV_ENTRY(bhvGrindel), + BHV_ENTRY(bhvHardAirKnockBackWarp), + BHV_ENTRY(bhvHauntedBookshelf), + BHV_ENTRY(bhvHauntedBookshelfManager), + BHV_ENTRY(bhvHauntedChair), + BHV_ENTRY(bhvHeaveHo), + BHV_ENTRY(bhvHeaveHoThrowMario), + BHV_ENTRY(bhvHidden1up), + BHV_ENTRY(bhvHidden1upInPole), + BHV_ENTRY(bhvHidden1upInPoleSpawner), + BHV_ENTRY(bhvHidden1upInPoleTrigger), + BHV_ENTRY(bhvHidden1upTrigger), + BHV_ENTRY(bhvHiddenAt120Stars), + BHV_ENTRY(bhvHiddenBlueCoin), + BHV_ENTRY(bhvHiddenObject), + BHV_ENTRY(bhvHiddenRedCoinStar), + BHV_ENTRY(bhvHiddenStaircaseStep), + BHV_ENTRY(bhvHiddenStar), + BHV_ENTRY(bhvHiddenStarTrigger), + BHV_ENTRY(bhvHmcElevatorPlatform), + BHV_ENTRY(bhvHomingAmp), + BHV_ENTRY(bhvHoot), + BHV_ENTRY(bhvHorizontalGrindel), + BHV_ENTRY(bhvHorStarParticleSpawner), + BHV_ENTRY(bhvIdleWaterWave), + BHV_ENTRY(bhvIgloo), + BHV_ENTRY(bhvInitializeChangingWaterLevel), + BHV_ENTRY(bhvInsideCannon), + BHV_ENTRY(bhvInstantActiveWarp), + BHV_ENTRY(bhvInSunkenShip), + BHV_ENTRY(bhvInSunkenShip2), + BHV_ENTRY(bhvInSunkenShip3), + BHV_ENTRY(bhvIntroScene), + BHV_ENTRY(bhvInvisibleObjectsUnderBridge), + BHV_ENTRY(bhvJetStream), + BHV_ENTRY(bhvJetStreamRingSpawner), + BHV_ENTRY(bhvJetStreamWaterRing), + BHV_ENTRY(bhvJrbFloatingBox), + BHV_ENTRY(bhvJrbFloatingPlatform), + BHV_ENTRY(bhvJrbSlidingBox), + BHV_ENTRY(bhvJumpingBox), + BHV_ENTRY(bhvKickableBoard), + BHV_ENTRY(bhvKingBobomb), + BHV_ENTRY(bhvKlepto), + BHV_ENTRY(bhvKoopa), + BHV_ENTRY(bhvKoopaFlag), + BHV_ENTRY(bhvKoopaRaceEndpoint), + BHV_ENTRY(bhvKoopaShell), + BHV_ENTRY(bhvKoopaShellFlame), + BHV_ENTRY(bhvKoopaShellUnderwater), + BHV_ENTRY(bhvLargeBomp), + BHV_ENTRY(bhvLaunchDeathWarp), + BHV_ENTRY(bhvLaunchStarCollectWarp), + BHV_ENTRY(bhvLeafParticleSpawner), + BHV_ENTRY(bhvLllBowserPuzzle), + BHV_ENTRY(bhvLllBowserPuzzlePiece), + BHV_ENTRY(bhvLllDrawbridge), + BHV_ENTRY(bhvLllDrawbridgeSpawner), + BHV_ENTRY(bhvLllFloatingWoodBridge), + BHV_ENTRY(bhvLllHexagonalMesh), + BHV_ENTRY(bhvLllMovingOctagonalMeshPlatform), + BHV_ENTRY(bhvLllRollingLog), + BHV_ENTRY(bhvLllRotatingBlockWithFireBars), + BHV_ENTRY(bhvLllRotatingHexagonalPlatform), + BHV_ENTRY(bhvLllRotatingHexagonalRing), + BHV_ENTRY(bhvLllRotatingHexFlame), + BHV_ENTRY(bhvLllSinkingRectangularPlatform), + BHV_ENTRY(bhvLllSinkingRockBlock), + BHV_ENTRY(bhvLllSinkingSquarePlatforms), + BHV_ENTRY(bhvLllTiltingInvertedPyramid), + BHV_ENTRY(bhvLllTumblingBridge), + BHV_ENTRY(bhvLllVolcanoFallingTrap), + BHV_ENTRY(bhvLllWoodPiece), + BHV_ENTRY(bhvMacroUkiki), + BHV_ENTRY(bhvMadPiano), + BHV_ENTRY(bhvMantaRay), + BHV_ENTRY(bhvMantaRayRingManager), + BHV_ENTRY(bhvMantaRayWaterRing), + BHV_ENTRY(bhvManyBlueFishSpawner), + BHV_ENTRY(bhvMario), + BHV_ENTRY(bhvMenuButton), + BHV_ENTRY(bhvMenuButtonManager), + BHV_ENTRY(bhvMerryGoRound), + BHV_ENTRY(bhvMerryGoRoundBigBoo), + BHV_ENTRY(bhvMerryGoRoundBoo), + BHV_ENTRY(bhvMerryGoRoundBooManager), + BHV_ENTRY(bhvMeshElevator), + BHV_ENTRY(bhvMessagePanel), + BHV_ENTRY(bhvMetalCap), + BHV_ENTRY(bhvMips), + BHV_ENTRY(bhvMistCircParticleSpawner), + BHV_ENTRY(bhvMistParticleSpawner), + BHV_ENTRY(bhvMoatGrills), + BHV_ENTRY(bhvMoneybag), + BHV_ENTRY(bhvMoneybagHidden), BHV_ENTRY(bhvMontyMole), BHV_ENTRY(bhvMontyMoleHole), BHV_ENTRY(bhvMontyMoleRock), - BHV_ENTRY(bhvPlatformOnTrack), - BHV_ENTRY(bhvTrackBall), - BHV_ENTRY(bhvSeesawPlatform), - BHV_ENTRY(bhvFerrisWheelAxle), - BHV_ENTRY(bhvFerrisWheelPlatform), - BHV_ENTRY(bhvWaterBombSpawner), - BHV_ENTRY(bhvWaterBomb), - BHV_ENTRY(bhvWaterBombShadow), - BHV_ENTRY(bhvTTCRotatingSolid), - BHV_ENTRY(bhvTTCPendulum), - BHV_ENTRY(bhvTTCTreadmill), - BHV_ENTRY(bhvTTCMovingBar), - BHV_ENTRY(bhvTTCCog), - BHV_ENTRY(bhvTTCPitBlock), - BHV_ENTRY(bhvTTCElevator), - BHV_ENTRY(bhvTTC2DRotator), - BHV_ENTRY(bhvTTCSpinner), + BHV_ENTRY(bhvMovingBlueCoin), + BHV_ENTRY(bhvMovingYellowCoin), BHV_ENTRY(bhvMrBlizzard), BHV_ENTRY(bhvMrBlizzardSnowball), - BHV_ENTRY(bhvSlidingPlatform2), + BHV_ENTRY(bhvMrI), + BHV_ENTRY(bhvMrIBlueCoin), + BHV_ENTRY(bhvMrIBody), + BHV_ENTRY(bhvMrIParticle), + BHV_ENTRY(bhvNormalCap), + BHV_ENTRY(bhvObjectBubble), + BHV_ENTRY(bhvObjectWaterSplash), + BHV_ENTRY(bhvObjectWaterWave), + BHV_ENTRY(bhvObjectWaveTrail), BHV_ENTRY(bhvOctagonalPlatformRotating), - BHV_ENTRY(bhvAnimatesOnFloorSwitchPress), - BHV_ENTRY(bhvActivatedBackAndForthPlatform), - BHV_ENTRY(bhvRecoveryHeart), - BHV_ENTRY(bhvWaterBombCannon), - BHV_ENTRY(bhvCannonBarrelBubbles), - BHV_ENTRY(bhvUnagi), - BHV_ENTRY(bhvUnagiSubobject), - BHV_ENTRY(bhvDorrie), - BHV_ENTRY(bhvHauntedChair), - BHV_ENTRY(bhvMadPiano), - BHV_ENTRY(bhvFlyingBookend), - BHV_ENTRY(bhvBookendSpawn), - BHV_ENTRY(bhvHauntedBookshelfManager), - BHV_ENTRY(bhvBookSwitch), - BHV_ENTRY(bhvFirePiranhaPlant), - BHV_ENTRY(bhvSmallPiranhaFlame), - BHV_ENTRY(bhvFireSpitter), - BHV_ENTRY(bhvFlyguyFlame), - BHV_ENTRY(bhvSnufit), - BHV_ENTRY(bhvSnufitBalls), - BHV_ENTRY(bhvHorizontalGrindel), - BHV_ENTRY(bhvEyerokBoss), - BHV_ENTRY(bhvEyerokHand), - BHV_ENTRY(bhvKlepto), - BHV_ENTRY(bhvBird), - BHV_ENTRY(bhvRacingPenguin), + BHV_ENTRY(bhvOneCoin), + BHV_ENTRY(bhvOpenableCageDoor), + BHV_ENTRY(bhvOpenableGrill), + BHV_ENTRY(bhvOrangeNumber), + BHV_ENTRY(bhvPaintingDeathWarp), + BHV_ENTRY(bhvPaintingStarCollectWarp), + BHV_ENTRY(bhvPenguinBaby), BHV_ENTRY(bhvPenguinRaceFinishLine), BHV_ENTRY(bhvPenguinRaceShortcutCheck), - BHV_ENTRY(bhvCoffinSpawner), - BHV_ENTRY(bhvCoffin), - BHV_ENTRY(bhvClamShell), + BHV_ENTRY(bhvPillarBase), + BHV_ENTRY(bhvPiranhaPlant), + BHV_ENTRY(bhvPiranhaPlantBubble), + BHV_ENTRY(bhvPiranhaPlantWakingBubbles), + BHV_ENTRY(bhvPitBowlingBall), + BHV_ENTRY(bhvPlatformOnTrack), + BHV_ENTRY(bhvPlaysMusicTrackWhenTouched), + BHV_ENTRY(bhvPlungeBubble), + BHV_ENTRY(bhvPokey), + BHV_ENTRY(bhvPokeyBodyPart), + BHV_ENTRY(bhvPoleGrabbing), + BHV_ENTRY(bhvPoundTinyStarParticle), + BHV_ENTRY(bhvPunchTinyTriangle), + BHV_ENTRY(bhvPurpleParticle), + BHV_ENTRY(bhvPurpleSwitchHiddenBoxes), + BHV_ENTRY(bhvPushableMetalBox), + BHV_ENTRY(bhvPyramidElevator), + BHV_ENTRY(bhvPyramidElevatorTrajectoryMarkerBall), + BHV_ENTRY(bhvPyramidPillarTouchDetector), + BHV_ENTRY(bhvPyramidTop), + BHV_ENTRY(bhvPyramidTopFragment), + BHV_ENTRY(bhvRacingPenguin), + BHV_ENTRY(bhvRandomAnimatedTexture), + BHV_ENTRY(bhvRecoveryHeart), + BHV_ENTRY(bhvRedCoin), + BHV_ENTRY(bhvRedCoinStarMarker), + BHV_ENTRY(bhvRespawner), + BHV_ENTRY(bhvRockSolid), + BHV_ENTRY(bhvRotatingCounterClockwise), + BHV_ENTRY(bhvRotatingExclamationMark), + BHV_ENTRY(bhvRotatingPlatform), + BHV_ENTRY(bhvRrCruiserWing), + BHV_ENTRY(bhvRrElevatorPlatform), + BHV_ENTRY(bhvRrRotatingBridgePlatform), + BHV_ENTRY(bhvSandSoundLoop), + BHV_ENTRY(bhvScuttlebug), + BHV_ENTRY(bhvScuttlebugSpawn), + BHV_ENTRY(bhvSeaweed), + BHV_ENTRY(bhvSeaweedBundle), + BHV_ENTRY(bhvSeesawPlatform), + BHV_ENTRY(bhvShallowWaterSplash), + BHV_ENTRY(bhvShallowWaterWave), + BHV_ENTRY(bhvShipPart3), + BHV_ENTRY(bhvSignOnWall), + BHV_ENTRY(bhvSingleCoinGetsSpawned), BHV_ENTRY(bhvSkeeter), BHV_ENTRY(bhvSkeeterWave), + BHV_ENTRY(bhvSlidingPlatform2), + BHV_ENTRY(bhvSlidingSnowMound), + BHV_ENTRY(bhvSLSnowmanWind), + BHV_ENTRY(bhvSLWalkingPenguin), + BHV_ENTRY(bhvSmallBomp), + BHV_ENTRY(bhvSmallBully), + BHV_ENTRY(bhvSmallChillBully), + BHV_ENTRY(bhvSmallParticle), + BHV_ENTRY(bhvSmallParticleBubbles), + BHV_ENTRY(bhvSmallParticleSnow), + BHV_ENTRY(bhvSmallPenguin), + BHV_ENTRY(bhvSmallPiranhaFlame), + BHV_ENTRY(bhvSmallWaterWave), + BHV_ENTRY(bhvSmallWaterWave398), + BHV_ENTRY(bhvSmallWhomp), + BHV_ENTRY(bhvSmoke), + BHV_ENTRY(bhvSnowBall), + BHV_ENTRY(bhvSnowmansBodyCheckpoint), + BHV_ENTRY(bhvSnowmansBottom), + BHV_ENTRY(bhvSnowmansHead), + BHV_ENTRY(bhvSnowMoundSpawn), + BHV_ENTRY(bhvSnowParticleSpawner), + BHV_ENTRY(bhvSnufit), + BHV_ENTRY(bhvSnufitBalls), + BHV_ENTRY(bhvSoundSpawner), + BHV_ENTRY(bhvSparkle), + BHV_ENTRY(bhvSparkleParticleSpawner), + BHV_ENTRY(bhvSparkleSpawn), + BHV_ENTRY(bhvSpawnedStar), + BHV_ENTRY(bhvSpawnedStarNoLevelExit), + BHV_ENTRY(bhvSpinAirborneCircleWarp), + BHV_ENTRY(bhvSpinAirborneWarp), + BHV_ENTRY(bhvSpindel), + BHV_ENTRY(bhvSpindrift), + BHV_ENTRY(bhvSpiny), + BHV_ENTRY(bhvSquarishPathMoving), + BHV_ENTRY(bhvSquarishPathParent), + BHV_ENTRY(bhvSquishablePlatform), + BHV_ENTRY(bhvSslMovingPyramidWall), + BHV_ENTRY(bhvStar), + BHV_ENTRY(bhvStarDoor), + BHV_ENTRY(bhvStarKeyCollectionPuffSpawner), + BHV_ENTRY(bhvStarSpawnCoordinates), + BHV_ENTRY(bhvStaticCheckeredPlatform), + BHV_ENTRY(bhvStaticObject), + BHV_ENTRY(bhvStrongWindParticle), + BHV_ENTRY(bhvStub), + BHV_ENTRY(bhvStub1D0C), + BHV_ENTRY(bhvStub1D70), + BHV_ENTRY(bhvSunkenShipPart), + BHV_ENTRY(bhvSunkenShipPart2), + BHV_ENTRY(bhvSunkenShipSetRotation), + BHV_ENTRY(bhvSushiShark), + BHV_ENTRY(bhvSushiSharkCollisionChild), + BHV_ENTRY(bhvSwimmingWarp), BHV_ENTRY(bhvSwingPlatform), - BHV_ENTRY(bhvDonutPlatformSpawner), - BHV_ENTRY(bhvDonutPlatform), - BHV_ENTRY(bhvDDDPole), - BHV_ENTRY(bhvRedCoinStarMarker), + BHV_ENTRY(bhvSwoop), + BHV_ENTRY(bhvTankFishGroup), + BHV_ENTRY(bhvTemporaryYellowCoin), + BHV_ENTRY(bhvTenCoinsSpawn), + BHV_ENTRY(bhvThiBowlingBallSpawner), + BHV_ENTRY(bhvThiHugeIslandTop), + BHV_ENTRY(bhvThiTinyIslandTop), + BHV_ENTRY(bhvThreeCoinsSpawn), + BHV_ENTRY(bhvThwomp), + BHV_ENTRY(bhvThwomp2), + BHV_ENTRY(bhvTiltingBowserLavaPlatform), + BHV_ENTRY(bhvTinyStrongWindParticle), + BHV_ENTRY(bhvToadMessage), + BHV_ENTRY(bhvTower), + BHV_ENTRY(bhvTowerDoor), + BHV_ENTRY(bhvTowerPlatformGroup), + BHV_ENTRY(bhvToxBox), + BHV_ENTRY(bhvTrackBall), + BHV_ENTRY(bhvTreasureChestBottom), + BHV_ENTRY(bhvTreasureChests), + BHV_ENTRY(bhvTreasureChestsJrb), + BHV_ENTRY(bhvTreasureChestsShip), + BHV_ENTRY(bhvTreasureChestTop), + BHV_ENTRY(bhvTree), + BHV_ENTRY(bhvTreeLeaf), + BHV_ENTRY(bhvTreeSnow), + BHV_ENTRY(bhvTriangleParticleSpawner), BHV_ENTRY(bhvTripletButterfly), - BHV_ENTRY(bhvBubba), - BHV_ENTRY(bhvBeginningLakitu), - BHV_ENTRY(bhvBeginningPeach), - BHV_ENTRY(bhvEndBirds1), - BHV_ENTRY(bhvEndBirds2), - BHV_ENTRY(bhvIntroScene), + BHV_ENTRY(bhvTTC2DRotator), + BHV_ENTRY(bhvTTCCog), + BHV_ENTRY(bhvTTCElevator), + BHV_ENTRY(bhvTTCMovingBar), + BHV_ENTRY(bhvTTCPendulum), + BHV_ENTRY(bhvTTCPitBlock), + BHV_ENTRY(bhvTTCRotatingSolid), + BHV_ENTRY(bhvTTCSpinner), + BHV_ENTRY(bhvTTCTreadmill), + BHV_ENTRY(bhvTtmBowlingBallSpawner), + BHV_ENTRY(bhvTtmRollingLog), + BHV_ENTRY(bhvTumblingBridgePlatform), + BHV_ENTRY(bhvTuxiesMother), + BHV_ENTRY(bhvTweester), + BHV_ENTRY(bhvTweesterSandParticle), + BHV_ENTRY(bhvUkiki), + BHV_ENTRY(bhvUkikiCage), + BHV_ENTRY(bhvUkikiCageChild), + BHV_ENTRY(bhvUkikiCageStar), + BHV_ENTRY(bhvUnagi), + BHV_ENTRY(bhvUnagiSubobject), + BHV_ENTRY(bhvUnlockDoorStar), + BHV_ENTRY(bhvUnused05A8), + BHV_ENTRY(bhvUnused0DFC), + BHV_ENTRY(bhvUnused1820), + BHV_ENTRY(bhvUnused1F30), + BHV_ENTRY(bhvUnused20E0), + BHV_ENTRY(bhvUnused2A10), + BHV_ENTRY(bhvUnused2A54), + BHV_ENTRY(bhvUnusedFakeStar), + BHV_ENTRY(bhvUnusedParticleSpawn), + BHV_ENTRY(bhvUnusedPoundablePlatform), + BHV_ENTRY(bhvVanishCap), + BHV_ENTRY(bhvVertStarParticleSpawner), + BHV_ENTRY(bhvVolcanoFlames), + BHV_ENTRY(bhvVolcanoSoundLoop), + BHV_ENTRY(bhvWallTinyStarParticle), + BHV_ENTRY(bhvWarp), + BHV_ENTRY(bhvWarpPipe), + BHV_ENTRY(bhvWaterAirBubble), + BHV_ENTRY(bhvWaterBomb), + BHV_ENTRY(bhvWaterBombCannon), + BHV_ENTRY(bhvWaterBombShadow), + BHV_ENTRY(bhvWaterBombSpawner), + BHV_ENTRY(bhvWaterDroplet), + BHV_ENTRY(bhvWaterDropletSplash), + BHV_ENTRY(bhvWaterfallSoundLoop), + BHV_ENTRY(bhvWaterLevelDiamond), + BHV_ENTRY(bhvWaterLevelPillar), + BHV_ENTRY(bhvWaterMist), + BHV_ENTRY(bhvWaterMist2), + BHV_ENTRY(bhvWaterSplash), + BHV_ENTRY(bhvWaveTrail), + BHV_ENTRY(bhvWdwExpressElevator), + BHV_ENTRY(bhvWdwExpressElevatorPlatform), + BHV_ENTRY(bhvWdwRectangularFloatingPlatform), + BHV_ENTRY(bhvWdwSquareFloatingPlatform), + BHV_ENTRY(bhvWfBreakableWallLeft), + BHV_ENTRY(bhvWfBreakableWallRight), + BHV_ENTRY(bhvWfElevatorTowerPlatform), + BHV_ENTRY(bhvWfRotatingWoodenPlatform), + BHV_ENTRY(bhvWfSlidingPlatform), + BHV_ENTRY(bhvWfSlidingTowerPlatform), + BHV_ENTRY(bhvWfSolidTowerPlatform), + BHV_ENTRY(bhvWfTumblingBridge), + BHV_ENTRY(bhvWhirlpool), + BHV_ENTRY(bhvWhitePuff1), + BHV_ENTRY(bhvWhitePuff2), + BHV_ENTRY(bhvWhitePuffExplosion), + BHV_ENTRY(bhvWhitePuffSmoke), + BHV_ENTRY(bhvWhitePuffSmoke2), + BHV_ENTRY(bhvWhompKingBoss), + BHV_ENTRY(bhvWigglerBody), + BHV_ENTRY(bhvWigglerHead), + BHV_ENTRY(bhvWind), + BHV_ENTRY(bhvWingCap), + BHV_ENTRY(bhvWoodenPost), + BHV_ENTRY(bhvYellowBackgroundInMenu), + BHV_ENTRY(bhvYellowBall), + BHV_ENTRY(bhvYellowCoin), + BHV_ENTRY(bhvYoshi), }; enum BehaviorId get_id_from_behavior(const BehaviorScript* behavior) { @@ -533,11 +554,12 @@ enum BehaviorId get_id_from_behavior(const BehaviorScript* behavior) { } enum BehaviorId get_id_from_vanilla_behavior(const BehaviorScript* behavior) { - if (behavior == NULL) { return id_bhv_max_count; } - enum BehaviorId id = (enum BehaviorId)(behavior[1] & 0xFFFF); - if (id == id_bhv_max_count) { return id_bhv_max_count; } - if (gBehaviorTable[id].script != behavior) { return id_bhv_max_count; } - return id; + for (enum BehaviorId i = 0; i < id_bhv_max_count; i++) { + if (gBehaviorTable[i].script == behavior) { + return i; + } + } + return id_bhv_max_count; } const BehaviorScript* get_behavior_from_id(enum BehaviorId id) { diff --git a/data/dynos.cpp.h b/data/dynos.cpp.h index 20ef31af..0e7b8114 100644 --- a/data/dynos.cpp.h +++ b/data/dynos.cpp.h @@ -781,6 +781,7 @@ GfxData *DynOS_Lvl_LoadFromBinary(const SysPath &aPackFolder, const char *aLevel void DynOS_Lvl_GeneratePack(const SysPath &aPackFolder); s32 DynOS_Lvl_GetFunctionIndex(const void *aPtr); void *DynOS_Lvl_GetFunctionPointerFromIndex(s32 aIndex); +s64 DynOS_Lvl_ParseLevelScriptConstants(const String& _Arg, bool* found); #endif #endif diff --git a/data/dynos_bin_gfx.cpp b/data/dynos_bin_gfx.cpp index 7feed4aa..23da1e23 100644 --- a/data/dynos_bin_gfx.cpp +++ b/data/dynos_bin_gfx.cpp @@ -2,6 +2,7 @@ extern "C" { #include #include "sm64.h" +#include "include/textures.h" } #pragma GCC diagnostic push diff --git a/data/dynos_bin_lvl.cpp b/data/dynos_bin_lvl.cpp index 1c63de52..be32ab7a 100644 --- a/data/dynos_bin_lvl.cpp +++ b/data/dynos_bin_lvl.cpp @@ -7,6 +7,8 @@ extern "C" { #include "include/seq_ids.h" #include "level_commands.h" #include "src/game/level_update.h" +#include "include/dialog_ids.h" +#include "levels/scripts.h" } // Free data pointers, but keep nodes and tokens intact @@ -61,14 +63,11 @@ void *DynOS_Lvl_GetFunctionPointerFromIndex(s32 aIndex) { #define LEVEL_SCRIPT_SIZE_PER_TOKEN 4 #define lvl_constant(x) if (_Arg == #x) { return (LevelScript) (x); } -static LevelScript ParseLevelScriptSymbolArg(GfxData* aGfxData, DataNode* aNode, u64& aTokenIndex) { - const String& _Arg = aNode->mTokens[aTokenIndex++]; - // Lvl functions - void *_LvlFunctionPtr = DynOS_Lvl_GetFunctionPointerFromName(_Arg); - if (_LvlFunctionPtr != NULL) { - return (LevelScript) _LvlFunctionPtr; - } +// TODO: this was made so that recursive descent can parse the constants... +// but RD should really use any function pointer passed to it +s64 DynOS_Lvl_ParseLevelScriptConstants(const String& _Arg, bool* found) { + *found = true; // Behavior constants lvl_constant(bhvStarDoor); @@ -1159,6 +1158,200 @@ static LevelScript ParseLevelScriptSymbolArg(GfxData* aGfxData, DataNode* aNode, u64& aTokenIndex) { + const String& _Arg = aNode->mTokens[aTokenIndex++]; + + // Lvl functions + void *_LvlFunctionPtr = DynOS_Lvl_GetFunctionPointerFromName(_Arg); + if (_LvlFunctionPtr != NULL) { + return (LevelScript) _LvlFunctionPtr; + } + + bool constantFound = false; + s64 constantValue = DynOS_Lvl_ParseLevelScriptConstants(_Arg, &constantFound); + if (constantFound) { + return (LevelScript) constantValue; + } + // Other constants lvl_constant(NULL); + // Level Scripts + for (auto& _Node : aGfxData->mLevelScripts) { + if (_Arg == _Node->mName) { + return (LevelScript) DynOS_Lvl_Parse(aGfxData, _Node, false)->mData; + } + } + // Geo layouts for (auto& _Node : aGfxData->mGeoLayouts) { if (_Arg == _Node->mName) { - return (s64) DynOS_Geo_Parse(aGfxData, _Node, false)->mData; + return (LevelScript) DynOS_Geo_Parse(aGfxData, _Node, false)->mData; } } // Collisions for (auto& _Node : aGfxData->mCollisions) { if (_Arg == _Node->mName) { - return (s64) DynOS_Col_Parse(aGfxData, _Node, false)->mData; + return (LevelScript) DynOS_Col_Parse(aGfxData, _Node, false)->mData; } } // MacroObjects for (auto& _Node : aGfxData->mMacroObjects) { if (_Arg == _Node->mName) { - return (s64) DynOS_MacroObject_Parse(aGfxData, _Node, false)->mData; + return (LevelScript) DynOS_MacroObject_Parse(aGfxData, _Node, false)->mData; } } // Trajectories for (auto& _Node : aGfxData->mTrajectories) { if (_Arg == _Node->mName) { - return (s64) DynOS_Trajectory_Parse(aGfxData, _Node, false)->mData; + return (LevelScript) DynOS_Trajectory_Parse(aGfxData, _Node, false)->mData; } } @@ -1408,7 +1636,7 @@ static void ParseLevelScriptSymbol(GfxData* aGfxData, DataNode* aNo lvl_symbol_0(PUSH_POOL); lvl_symbol_0(POP_POOL); lvl_symbol_3(FIXED_LOAD, 1, 2, 3); - lvl_symbol_3(LOAD_RAW, 1, 2, 0); + lvl_symbol_noop(LOAD_RAW, 3); lvl_symbol_noop(LOAD_MIO0, 3); lvl_symbol_1(LOAD_MARIO_HEAD, 0); lvl_symbol_noop(LOAD_MIO0_TEXTURE, 3); @@ -1429,8 +1657,8 @@ static void ParseLevelScriptSymbol(GfxData* aGfxData, DataNode* aNo lvl_symbol_3(CMD23, 1, 0, 0); // objects - lvl_symbol_10(OBJECT_WITH_ACTS, 3, 0, 0); - lvl_symbol_9(OBJECT, 0, 0, 0); + lvl_symbol_10(OBJECT_WITH_ACTS, 5, 0, 0); + lvl_symbol_9(OBJECT, 5, 0, 0); lvl_symbol_3(MARIO, 2, 0, 0); // warps @@ -1652,7 +1880,7 @@ static bool DynOS_Lvl_GeneratePack_Internal(const SysPath &aPackFolder, ArraymName; DataNode *_LvlRoot = GetLevelScript(_GfxData, _LvlRootName); if (_LvlRoot == NULL) { continue; } - + if (_LvlRootName.Find("_entry") == -1) { continue; } // If there is an existing binary file for this level, skip and go to the next level SysPath _LvlFilename = fstring("%s/%s.lvl", aPackFolder.c_str(), _LvlRootName.begin()); if (fs_sys_file_exists(_LvlFilename.c_str())) { @@ -1662,6 +1890,7 @@ static bool DynOS_Lvl_GeneratePack_Internal(const SysPath &aPackFolder, ArraymErrorCount = 0; _GfxData->mLoadIndex = 0; + _GfxData->mPackFolder = aPackFolder; // Parse data PrintNoNewLine("%s.lvl: Model identifier: %X - Processing... ", _LvlRootName.begin(), _GfxData->mModelIdentifier); diff --git a/data/dynos_bin_macro_object.cpp b/data/dynos_bin_macro_object.cpp index 98e34d67..fca97a30 100644 --- a/data/dynos_bin_macro_object.cpp +++ b/data/dynos_bin_macro_object.cpp @@ -395,6 +395,13 @@ static s64 ParseMacroObjectSymbolArg(GfxData* aGfxData, DataNode* a return (s64) x; } + // Check level constants + bool constantFound = false; + s64 constantValue = DynOS_Lvl_ParseLevelScriptConstants(_Arg, &constantFound); + if (constantFound) { + return (LevelScript) constantValue; + } + // Unknown PrintError(" ERROR: Unknown macro object arg: %s", _Arg.begin()); return 0; diff --git a/data/dynos_bin_pointer.cpp b/data/dynos_bin_pointer.cpp index b0832c1a..17f37abc 100644 --- a/data/dynos_bin_pointer.cpp +++ b/data/dynos_bin_pointer.cpp @@ -1,7 +1,32 @@ #include "dynos.cpp.h" extern "C" { #include "behavior_table.h" +#include "levels/scripts.h" } + +#define define_pointer(ptr) (const void *) #ptr, (const void *) ptr +static const void *sDynosPointers[] = { + define_pointer(level_main_scripts_entry), + define_pointer(script_func_global_1), + define_pointer(script_func_global_2), + define_pointer(script_func_global_3), + define_pointer(script_func_global_4), + define_pointer(script_func_global_5), + define_pointer(script_func_global_6), + define_pointer(script_func_global_7), + define_pointer(script_func_global_8), + define_pointer(script_func_global_9), + define_pointer(script_func_global_10), + define_pointer(script_func_global_11), + define_pointer(script_func_global_12), + define_pointer(script_func_global_13), + define_pointer(script_func_global_14), + define_pointer(script_func_global_15), + define_pointer(script_func_global_16), + define_pointer(script_func_global_17), + define_pointer(script_func_global_18), +}; + ///////////// // Writing // ///////////// @@ -73,6 +98,25 @@ static PointerData GetDataFromPointer(const void* aPtr, GfxData* aGfxData) { return { get_behavior_name_from_id(id), 0 }; } + // Vanilla Geos + s32 actorCount = DynOS_Geo_GetActorCount(); + for (s32 i = 0; i < actorCount; i++) { + if (DynOS_Geo_IsCustomActor(i)) { break; } + if (aPtr == DynOS_Geo_GetActorLayout(i)) { + return { DynOS_Geo_GetActorName(i), 0 }; + } + } + + // Vanilla Pointers + s32 pointerCount = (s32) (sizeof(sDynosPointers) / (2 * sizeof(sDynosPointers[0]))); + for (s32 i = 0; i < pointerCount; i++) { + const char* ptrName = (const char*)sDynosPointers[i * 2 + 0]; + const void* ptr = sDynosPointers[i * 2 + 1]; + if (ptr == aPtr) { + return { ptrName, 0 }; + } + } + // Vertices String _VtxArrayName = ""; uintptr_t _VtxArrayStart = 0; @@ -115,6 +159,9 @@ void DynOS_Pointer_Write(FILE* aFile, const void* aPtr, GfxData* aGfxData) { // Pointer PointerData _PtrData = GetDataFromPointer(aPtr, aGfxData); + if (strlen(_PtrData.first.begin()) == 0) { + _PtrData = _PtrData; + } WriteBytes(aFile, POINTER_CODE); _PtrData.first.Write(aFile); WriteBytes(aFile, _PtrData.second); @@ -201,6 +248,25 @@ static void *GetPointerFromData(GfxData *aGfxData, const String &aPtrName, u32 a return (void*)get_behavior_from_id(id); } + // Vanilla Geos + s32 actorCount = DynOS_Geo_GetActorCount(); + for (s32 i = 0; i < actorCount; i++) { + if (DynOS_Geo_IsCustomActor(i)) { break; } + if (!strcmp(aPtrName.begin(), DynOS_Geo_GetActorName(i))) { + return (void*)DynOS_Geo_GetActorLayout(i); + } + } + + // Vanilla Pointers + s32 pointerCount = (s32) (sizeof(sDynosPointers) / (2 * sizeof(sDynosPointers[0]))); + for (s32 i = 0; i < pointerCount; i++) { + const char* ptrName = (const char*)sDynosPointers[i * 2 + 0]; + const void* ptr = sDynosPointers[i * 2 + 1]; + if (!strcmp(aPtrName.begin(), ptrName)) { + return (void*)ptr; + } + } + // Error sys_fatal("Pointer not found: %s", aPtrName.begin()); return NULL; diff --git a/data/dynos_bin_utils.cpp b/data/dynos_bin_utils.cpp index f466c92c..5d59092d 100644 --- a/data/dynos_bin_utils.cpp +++ b/data/dynos_bin_utils.cpp @@ -65,6 +65,32 @@ static void ParseWhitespace() { } } +static bool IsAlphabetical(char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); +} + +static bool IsAlphaNumeric(char c) { + return IsAlphabetical(c) || (c >= '0' && c <= '9'); +} + +static bool IsIdentifierBeginning(char c) { + return IsAlphabetical(c) || (c == '_'); +} + +static bool IsIdentifierCharacter(char c) { + return IsAlphaNumeric(c) || (c == '_'); +} + +static bool ParseOperator(const char* op) { + size_t opLen = strlen(op); + if (!strncmp(sRdString, op, opLen)) { + sRdString += opLen; + ParseWhitespace(); + return true; + } + return false; +} + static s64 ParseNumeric() { String numeric = ""; char* c = sRdString; @@ -95,41 +121,48 @@ static s64 ParseFactor() { char* c = sRdString; // check for unary op - if (*c == '-') { - sRdString++; - ParseWhitespace(); - s64 f1 = ParseFactor(); - return -f1; - } else if (*c == '+') { - sRdString++; - ParseWhitespace(); - s64 f1 = ParseFactor(); - return +f1; - } else if (*c == '!') { - sRdString++; - ParseWhitespace(); - s64 f1 = ParseFactor(); - return !f1; - } else if (*c == '~') { - sRdString++; - ParseWhitespace(); - s64 f1 = ParseFactor(); - return ~f1; + if (ParseOperator("-")) { + return -ParseFactor(); + } else if (ParseOperator("+")) { + return +ParseFactor(); + } else if (ParseOperator("!")) { + return !ParseFactor(); + } else if (ParseOperator("~")) { + return ~ParseFactor(); } // check for numeric if (*c >= '0' && *c <= '9') { return ParseNumeric(); + } // check for sub expression - } else if (*c >= '(') { - sRdString++; - ParseWhitespace(); + if (ParseOperator("(")) { s64 e1 = ParseExpression(); - if (*sRdString == ')') { - sRdString++; - ParseWhitespace(); + if (ParseOperator(")")) { return e1; + } else { + sRdError = true; + return 0; + } + } + + // check for known identifier + if (IsIdentifierBeginning(*c)) { + String identifier = ""; + char* cTmp = c; + while (IsIdentifierCharacter(*cTmp)) { + identifier.Add(*cTmp); + cTmp++; + } + + // TODO: this was made so that recursive descent can parse the constants... + // but RD should really use any function pointer passed to it + bool constantFound = false; + s64 constantValue = DynOS_Lvl_ParseLevelScriptConstants(identifier, &constantFound); + if (constantFound) { + sRdString = cTmp; + return constantValue; } } @@ -140,21 +173,12 @@ static s64 ParseFactor() { static s64 ParseTerm() { s64 f1 = ParseFactor(); - if (*sRdString == '*') { - sRdString++; - ParseWhitespace(); - s64 f2 = ParseFactor(); - return f1 * f2; - } else if (*sRdString == '/') { - sRdString++; - ParseWhitespace(); - s64 f2 = ParseFactor(); - return f1 / f2; - } else if (*sRdString == '%') { - sRdString++; - ParseWhitespace(); - s64 f2 = ParseFactor(); - return f1 % f2; + if (ParseOperator("*")) { + return f1 * ParseFactor(); + } else if (ParseOperator("/")) { + return f1 / ParseFactor(); + } else if (ParseOperator("%")) { + return f1 % ParseFactor(); } return f1; @@ -163,39 +187,61 @@ static s64 ParseTerm() { static s64 ParseAddSubExpression() { s64 t1 = ParseTerm(); - if (*sRdString == '+') { - sRdString++; - ParseWhitespace(); - s64 t2 = ParseTerm(); - return t1 + t2; - } else if (*sRdString == '+') { - sRdString++; - ParseWhitespace(); - s64 t2 = ParseTerm(); - return t1 - t2; + if (ParseOperator("+")) { + return t1 + ParseTerm(); + } else if (ParseOperator("-")) { + return t1 - ParseTerm(); } return t1; } -static s64 ParseExpression() { +static s64 ParseShiftExpression() { s64 e1 = ParseAddSubExpression(); - if (*sRdString == '<' && *(sRdString + 1) == '<') { - sRdString += 2; - ParseWhitespace(); - s64 e2 = ParseAddSubExpression(); - return e1 << e2; - } else if (*sRdString == '>' && *(sRdString + 1) == '>') { - sRdString += 2; - ParseWhitespace(); - s64 e2 = ParseAddSubExpression(); - return e1 >> e2; + if (ParseOperator("<<")) { + return e1 << ParseAddSubExpression(); + } else if (ParseOperator(">>")) { + return e1 >> ParseAddSubExpression(); } return e1; } +static s64 ParseBitAndExpression() { + s64 e1 = ParseShiftExpression(); + + if (ParseOperator("&")) { + return e1 & ParseShiftExpression(); + } + + return e1; +} + +static s64 ParseBitXorExpression() { + s64 e1 = ParseBitAndExpression(); + + if (ParseOperator("^")) { + return e1 ^ ParseBitAndExpression(); + } + + return e1; +} + +static s64 ParseBitOrExpression() { + s64 e1 = ParseBitXorExpression(); + + if (ParseOperator("|")) { + return e1 | ParseBitXorExpression(); + } + + return e1; +} + +static s64 ParseExpression() { + return ParseBitOrExpression(); +} + s64 DynOS_RecursiveDescent_Parse(const char* expr, bool* success) { sRdString = (char*)expr; sRdError = false; diff --git a/include/behavior_table.h b/include/behavior_table.h index a42bee7b..c595b282 100644 --- a/include/behavior_table.h +++ b/include/behavior_table.h @@ -4,520 +4,542 @@ #include "behavior_data.h" enum BehaviorId { - id_bhvStarDoor, - id_bhvMrI, - id_bhvMrIBody, - id_bhvMrIParticle, - id_bhvPurpleParticle, - id_bhvGiantPole, - id_bhvPoleGrabbing, - id_bhvThiHugeIslandTop, - id_bhvThiTinyIslandTop, - id_bhvCapSwitchBase, - id_bhvCapSwitch, - id_bhvKingBobomb, - id_bhvBobombAnchorMario, + id_bhv1Up, + id_bhv1upJumpOnApproach, + id_bhv1upRunningAway, + id_bhv1upSliding, + id_bhv1upWalking, + id_bhvActivatedBackAndForthPlatform, + id_bhvActSelector, + id_bhvActSelectorStarType, + id_bhvAirborneDeathWarp, + id_bhvAirborneStarCollectWarp, + id_bhvAirborneWarp, + id_bhvAlphaBooKey, + id_bhvAmbientSounds, + id_bhvAnimatedTexture, + id_bhvAnimatesOnFloorSwitchPress, + id_bhvAnotherElavator, + id_bhvAnotherTiltingPlatform, + id_bhvArrowLift, + id_bhvBalconyBigBoo, + id_bhvBbhTiltingTrapPlatform, + id_bhvBbhTumblingBridge, + id_bhvBeginningLakitu, + id_bhvBeginningPeach, + id_bhvBetaBooKey, + id_bhvBetaBowserAnchor, id_bhvBetaChestBottom, id_bhvBetaChestLid, - id_bhvBubbleParticleSpawner, - id_bhvBubbleMaybe, - id_bhvBubblePlayer, - id_bhvSmallWaterWave, - id_bhvWaterAirBubble, - id_bhvSmallParticle, - id_bhvPlungeBubble, - id_bhvSmallParticleSnow, - id_bhvSmallParticleBubbles, - id_bhvFishGroup, - id_bhvCannon, - id_bhvCannonBarrel, - id_bhvCannonBaseUnused, - id_bhvChuckya, - id_bhvChuckyaAnchorMario, - id_bhvUnused05A8, - id_bhvRotatingPlatform, - id_bhvTower, - id_bhvBulletBillCannon, - id_bhvWfBreakableWallRight, - id_bhvWfBreakableWallLeft, - id_bhvKickableBoard, - id_bhvTowerDoor, - id_bhvRotatingCounterClockwise, - id_bhvWfRotatingWoodenPlatform, - id_bhvKoopaShellUnderwater, - id_bhvExitPodiumWarp, - id_bhvFadingWarp, - id_bhvWarp, - id_bhvWarpPipe, - id_bhvWhitePuffExplosion, - id_bhvSpawnedStar, - id_bhvSpawnedStarNoLevelExit, - id_bhvMrIBlueCoin, - id_bhvCoinInsideBoo, - id_bhvCoinFormationSpawn, - id_bhvCoinFormation, - id_bhvOneCoin, - id_bhvYellowCoin, - id_bhvTemporaryYellowCoin, - id_bhvThreeCoinsSpawn, - id_bhvTenCoinsSpawn, - id_bhvSingleCoinGetsSpawned, - id_bhvCoinSparkles, - id_bhvGoldenCoinSparkles, - id_bhvWallTinyStarParticle, - id_bhvVertStarParticleSpawner, - id_bhvPoundTinyStarParticle, - id_bhvHorStarParticleSpawner, - id_bhvPunchTinyTriangle, - id_bhvTriangleParticleSpawner, - id_bhvDoorWarp, - id_bhvDoor, - id_bhvGrindel, - id_bhvThwomp2, - id_bhvThwomp, - id_bhvTumblingBridgePlatform, - id_bhvWfTumblingBridge, - id_bhvBbhTumblingBridge, - id_bhvLllTumblingBridge, - id_bhvFlame, - id_bhvAnotherElavator, - id_bhvRrElevatorPlatform, - id_bhvHmcElevatorPlatform, - id_bhvWaterMist, - id_bhvBreathParticleSpawner, - id_bhvBreakBoxTriangle, - id_bhvWaterMist2, - id_bhvUnused0DFC, - id_bhvMistCircParticleSpawner, - id_bhvDirtParticleSpawner, - id_bhvSnowParticleSpawner, - id_bhvWind, - id_bhvEndToad, - id_bhvEndPeach, - id_bhvUnusedParticleSpawn, - id_bhvUkiki, - id_bhvUkikiCageChild, - id_bhvUkikiCageStar, - id_bhvUkikiCage, - id_bhvBitfsSinkingPlatforms, - id_bhvBitfsSinkingCagePlatform, - id_bhvDddMovingPole, - id_bhvBitfsTiltingInvertedPyramid, - id_bhvSquishablePlatform, - id_bhvCutOutObject, - id_bhvBetaMovingFlames, - id_bhvRrRotatingBridgePlatform, - id_bhvFlamethrower, - id_bhvFlamethrowerFlame, - id_bhvBouncingFireball, - id_bhvBouncingFireballFlame, - id_bhvBowserShockWave, - id_bhvFireParticleSpawner, - id_bhvBlackSmokeMario, - id_bhvBlackSmokeBowser, - id_bhvBlackSmokeUpward, id_bhvBetaFishSplashSpawner, - id_bhvSpindrift, - id_bhvTowerPlatformGroup, - id_bhvWfSlidingTowerPlatform, - id_bhvWfElevatorTowerPlatform, - id_bhvWfSolidTowerPlatform, - id_bhvLeafParticleSpawner, - id_bhvTreeSnow, - id_bhvTreeLeaf, - id_bhvAnotherTiltingPlatform, - id_bhvSquarishPathMoving, - id_bhvSquarishPathParent, - id_bhvPiranhaPlantBubble, - id_bhvPiranhaPlantWakingBubbles, - id_bhvFloorSwitchAnimatesObject, - id_bhvFloorSwitchGrills, - id_bhvFloorSwitchHardcodedModel, - id_bhvFloorSwitchHiddenObjects, - id_bhvHiddenObject, - id_bhvBreakableBox, - id_bhvPushableMetalBox, - id_bhvHeaveHo, - id_bhvHeaveHoThrowMario, - id_bhvCcmTouchedStarSpawn, - id_bhvUnusedPoundablePlatform, - id_bhvBetaTrampolineTop, + id_bhvBetaHoldableObject, + id_bhvBetaMovingFlames, + id_bhvBetaMovingFlamesSpawn, id_bhvBetaTrampolineSpring, - id_bhvJumpingBox, - id_bhvBooCage, - id_bhvStub, - id_bhvIgloo, - id_bhvBowserKey, - id_bhvGrandStar, - id_bhvBetaBooKey, - id_bhvAlphaBooKey, - id_bhvBulletBill, - id_bhvWhitePuffSmoke, - id_bhvUnused1820, - id_bhvBowserTailAnchor, - id_bhvBowser, - id_bhvBowserBodyAnchor, - id_bhvBowserFlameSpawn, - id_bhvTiltingBowserLavaPlatform, - id_bhvFallingBowserPlatform, + id_bhvBetaTrampolineTop, + id_bhvBigBoulder, + id_bhvBigBoulderGenerator, + id_bhvBigBully, + id_bhvBigBullyWithMinions, + id_bhvBigChillBully, + id_bhvBigSnowmanWhole, + id_bhvBird, + id_bhvBirdsSoundLoop, + id_bhvBitfsSinkingCagePlatform, + id_bhvBitfsSinkingPlatforms, + id_bhvBitfsTiltingInvertedPyramid, + id_bhvBlackSmokeBowser, + id_bhvBlackSmokeMario, + id_bhvBlackSmokeUpward, id_bhvBlueBowserFlame, - id_bhvFlameFloatingLanding, - id_bhvBlueFlamesGroup, - id_bhvFlameBouncing, - id_bhvFlameMovingForwardGrowing, - id_bhvFlameBowser, - id_bhvFlameLargeBurningOut, - id_bhvBlueFish, - id_bhvTankFishGroup, - id_bhvCheckerboardElevatorGroup, - id_bhvCheckerboardPlatformSub, - id_bhvBowserKeyUnlockDoor, - id_bhvBowserKeyCourseExit, - id_bhvInvisibleObjectsUnderBridge, - id_bhvWaterLevelPillar, - id_bhvDddWarp, - id_bhvMoatGrills, - id_bhvClockMinuteHand, - id_bhvClockHourHand, - id_bhvMacroUkiki, - id_bhvStub1D0C, - id_bhvLllRotatingHexagonalPlatform, - id_bhvLllSinkingRockBlock, - id_bhvStub1D70, - id_bhvLllMovingOctagonalMeshPlatform, - id_bhvLllRotatingBlockWithFireBars, - id_bhvLllRotatingHexFlame, - id_bhvLllWoodPiece, - id_bhvLllFloatingWoodBridge, - id_bhvVolcanoFlames, - id_bhvLllRotatingHexagonalRing, - id_bhvLllSinkingRectangularPlatform, - id_bhvLllSinkingSquarePlatforms, - id_bhvLllTiltingInvertedPyramid, - id_bhvUnused1F30, - id_bhvKoopaShell, - id_bhvKoopaShellFlame, - id_bhvToxBox, - id_bhvPiranhaPlant, - id_bhvLllHexagonalMesh, - id_bhvLllBowserPuzzlePiece, - id_bhvLllBowserPuzzle, - id_bhvTuxiesMother, - id_bhvPenguinBaby, - id_bhvUnused20E0, - id_bhvSmallPenguin, - id_bhvManyBlueFishSpawner, - id_bhvFewBlueFishSpawner, - id_bhvFishSpawner, - id_bhvFish, - id_bhvWdwExpressElevator, - id_bhvWdwExpressElevatorPlatform, - id_bhvChirpChirp, - id_bhvBub, - id_bhvExclamationBox, - id_bhvRotatingExclamationMark, - id_bhvSoundSpawner, - id_bhvRockSolid, - id_bhvBowserSubDoor, - id_bhvBowsersSub, - id_bhvSushiShark, - id_bhvSushiSharkCollisionChild, - id_bhvJrbSlidingBox, - id_bhvShipPart3, - id_bhvInSunkenShip3, - id_bhvSunkenShipPart, - id_bhvSunkenShipPart2, - id_bhvInSunkenShip, - id_bhvInSunkenShip2, - id_bhvMistParticleSpawner, - id_bhvWhitePuff1, - id_bhvWhitePuff2, - id_bhvWhitePuffSmoke2, - id_bhvPurpleSwitchHiddenBoxes, - id_bhvBlueCoinSwitch, - id_bhvHiddenBlueCoin, - id_bhvOpenableCageDoor, - id_bhvOpenableGrill, - id_bhvWaterLevelDiamond, - id_bhvInitializeChangingWaterLevel, - id_bhvTweesterSandParticle, - id_bhvTweester, - id_bhvMerryGoRoundBooManager, - id_bhvAnimatedTexture, - id_bhvBooInCastle, - id_bhvBooWithCage, - id_bhvBalconyBigBoo, - id_bhvMerryGoRoundBigBoo, - id_bhvGhostHuntBigBoo, - id_bhvCourtyardBooTriplet, - id_bhvBoo, - id_bhvMerryGoRoundBoo, - id_bhvGhostHuntBoo, - id_bhvHiddenStaircaseStep, - id_bhvBooBossSpawnedBridge, - id_bhvBbhTiltingTrapPlatform, - id_bhvHauntedBookshelf, - id_bhvMeshElevator, - id_bhvMerryGoRound, - id_bhvPlaysMusicTrackWhenTouched, - id_bhvBetaBowserAnchor, - id_bhvStaticCheckeredPlatform, - id_bhvUnused2A10, - id_bhvUnusedFakeStar, - id_bhvStaticObject, - id_bhvUnused2A54, - id_bhvCastleFloorTrap, - id_bhvFloorTrapInCastle, - id_bhvTree, - id_bhvSparkle, - id_bhvSparkleSpawn, - id_bhvSparkleParticleSpawner, - id_bhvScuttlebug, - id_bhvScuttlebugSpawn, - id_bhvWhompKingBoss, - id_bhvSmallWhomp, - id_bhvWaterSplash, - id_bhvWaterDroplet, - id_bhvWaterDropletSplash, - id_bhvBubbleSplash, - id_bhvIdleWaterWave, - id_bhvObjectWaterSplash, - id_bhvShallowWaterWave, - id_bhvShallowWaterSplash, - id_bhvObjectWaveTrail, - id_bhvWaveTrail, - id_bhvTinyStrongWindParticle, - id_bhvStrongWindParticle, - id_bhvSLSnowmanWind, - id_bhvSLWalkingPenguin, - id_bhvYellowBall, - id_bhvMario, - id_bhvToadMessage, - id_bhvUnlockDoorStar, - id_bhvRandomAnimatedTexture, - id_bhvYellowBackgroundInMenu, - id_bhvMenuButton, - id_bhvMenuButtonManager, - id_bhvActSelectorStarType, - id_bhvActSelector, - id_bhvMovingYellowCoin, - id_bhvMovingBlueCoin, - id_bhvBlueCoinSliding, id_bhvBlueCoinJumping, - id_bhvSeaweed, - id_bhvSeaweedBundle, + id_bhvBlueCoinSliding, + id_bhvBlueCoinSwitch, + id_bhvBlueFish, + id_bhvBlueFlamesGroup, + id_bhvBobBowlingBallSpawner, id_bhvBobomb, - id_bhvBobombFuseSmoke, + id_bhvBobombAnchorMario, id_bhvBobombBuddy, id_bhvBobombBuddyOpensCannon, - id_bhvCannonClosed, - id_bhvWhirlpool, - id_bhvJetStream, - id_bhvMessagePanel, - id_bhvSignOnWall, - id_bhvHomingAmp, - id_bhvCirclingAmp, + id_bhvBobombBullyDeathSmoke, + id_bhvBobombExplosionBubble, + id_bhvBobombExplosionBubble3600, + id_bhvBobombFuseSmoke, + id_bhvBoo, + id_bhvBooBossSpawnedBridge, + id_bhvBooCage, + id_bhvBooInCastle, + id_bhvBookendSpawn, + id_bhvBookSwitch, + id_bhvBooWithCage, + id_bhvBouncingFireball, + id_bhvBouncingFireballFlame, + id_bhvBowlingBall, + id_bhvBowser, + id_bhvBowserBodyAnchor, + id_bhvBowserBomb, + id_bhvBowserBombExplosion, + id_bhvBowserBombSmoke, + id_bhvBowserCourseRedCoinStar, + id_bhvBowserFlameSpawn, + id_bhvBowserKey, + id_bhvBowserKeyCourseExit, + id_bhvBowserKeyUnlockDoor, + id_bhvBowserShockWave, + id_bhvBowsersSub, + id_bhvBowserSubDoor, + id_bhvBowserTailAnchor, + id_bhvBreakableBox, + id_bhvBreakableBoxSmall, + id_bhvBreakBoxTriangle, + id_bhvBreathParticleSpawner, + id_bhvBub, + id_bhvBubba, + id_bhvBubbleMaybe, + id_bhvBubbleParticleSpawner, + id_bhvBubblePlayer, + id_bhvBubbleSplash, + id_bhvBulletBill, + id_bhvBulletBillCannon, id_bhvButterfly, - id_bhvHoot, - id_bhvBetaHoldableObject, + id_bhvCameraLakitu, + id_bhvCannon, + id_bhvCannonBarrel, + id_bhvCannonBarrelBubbles, + id_bhvCannonBaseUnused, + id_bhvCannonClosed, + id_bhvCapSwitch, + id_bhvCapSwitchBase, id_bhvCarrySomething1, id_bhvCarrySomething2, id_bhvCarrySomething3, id_bhvCarrySomething4, id_bhvCarrySomething5, id_bhvCarrySomething6, - id_bhvObjectBubble, - id_bhvObjectWaterWave, - id_bhvExplosion, - id_bhvBobombBullyDeathSmoke, - id_bhvSmoke, - id_bhvBobombExplosionBubble, - id_bhvRespawner, - id_bhvSmallBully, - id_bhvBigBully, - id_bhvBigBullyWithMinions, - id_bhvSmallChillBully, - id_bhvBigChillBully, - id_bhvJetStreamRingSpawner, - id_bhvJetStreamWaterRing, - id_bhvMantaRayWaterRing, - id_bhvMantaRayRingManager, - id_bhvBowserBomb, - id_bhvBowserBombExplosion, - id_bhvBowserBombSmoke, + id_bhvCastleFlagWaving, + id_bhvCastleFloorTrap, + id_bhvCcmTouchedStarSpawn, id_bhvCelebrationStar, id_bhvCelebrationStarSparkle, - id_bhvStarKeyCollectionPuffSpawner, - id_bhvLllDrawbridgeSpawner, - id_bhvLllDrawbridge, - id_bhvSmallBomp, - id_bhvLargeBomp, - id_bhvWfSlidingPlatform, - id_bhvMoneybag, - id_bhvMoneybagHidden, - id_bhvPitBowlingBall, - id_bhvFreeBowlingBall, - id_bhvBowlingBall, - id_bhvTtmBowlingBallSpawner, - id_bhvBobBowlingBallSpawner, - id_bhvThiBowlingBallSpawner, - id_bhvRrCruiserWing, - id_bhvSpindel, - id_bhvSslMovingPyramidWall, - id_bhvPyramidElevator, - id_bhvPyramidElevatorTrajectoryMarkerBall, - id_bhvPyramidTop, - id_bhvPyramidTopFragment, - id_bhvPyramidPillarTouchDetector, - id_bhvWaterfallSoundLoop, - id_bhvVolcanoSoundLoop, - id_bhvCastleFlagWaving, - id_bhvBirdsSoundLoop, - id_bhvAmbientSounds, - id_bhvSandSoundLoop, - id_bhvHiddenAt120Stars, - id_bhvSnowmansBottom, - id_bhvSnowmansHead, - id_bhvSnowmansBodyCheckpoint, - id_bhvBigSnowmanWhole, - id_bhvBigBoulder, - id_bhvBigBoulderGenerator, - id_bhvWingCap, - id_bhvMetalCap, - id_bhvNormalCap, - id_bhvVanishCap, - id_bhvStar, - id_bhvStarSpawnCoordinates, - id_bhvHiddenRedCoinStar, - id_bhvRedCoin, - id_bhvBowserCourseRedCoinStar, - id_bhvHiddenStar, - id_bhvHiddenStarTrigger, - id_bhvTtmRollingLog, - id_bhvLllVolcanoFallingTrap, - id_bhvLllRollingLog, - id_bhv1upWalking, - id_bhv1upRunningAway, - id_bhv1upSliding, - id_bhv1Up, - id_bhv1upJumpOnApproach, - id_bhvHidden1up, - id_bhvHidden1upTrigger, - id_bhvHidden1upInPole, - id_bhvHidden1upInPoleTrigger, - id_bhvHidden1upInPoleSpawner, - id_bhvControllablePlatform, - id_bhvControllablePlatformSub, - id_bhvBreakableBoxSmall, - id_bhvSlidingSnowMound, - id_bhvSnowMoundSpawn, - id_bhvWdwSquareFloatingPlatform, - id_bhvWdwRectangularFloatingPlatform, - id_bhvJrbFloatingPlatform, - id_bhvArrowLift, - id_bhvOrangeNumber, - id_bhvMantaRay, - id_bhvFallingPillar, - id_bhvFallingPillarHitbox, - id_bhvPillarBase, - id_bhvJrbFloatingBox, - id_bhvDecorativePendulum, - id_bhvTreasureChestsShip, - id_bhvTreasureChestsJrb, - id_bhvTreasureChests, - id_bhvTreasureChestBottom, - id_bhvTreasureChestTop, - id_bhvMips, - id_bhvYoshi, - id_bhvKoopa, - id_bhvKoopaRaceEndpoint, - id_bhvKoopaFlag, - id_bhvPokey, - id_bhvPokeyBodyPart, - id_bhvSwoop, - id_bhvFlyGuy, - id_bhvGoomba, - id_bhvGoombaTripletSpawner, id_bhvChainChomp, id_bhvChainChompChainPart, - id_bhvWoodenPost, id_bhvChainChompGate, - id_bhvWigglerHead, - id_bhvWigglerBody, - id_bhvEnemyLakitu, - id_bhvCameraLakitu, + id_bhvCheckerboardElevatorGroup, + id_bhvCheckerboardPlatformSub, + id_bhvChirpChirp, + id_bhvChirpChirpUnused, + id_bhvChuckya, + id_bhvChuckyaAnchorMario, + id_bhvCirclingAmp, + id_bhvClamShell, + id_bhvClockHourHand, + id_bhvClockMinuteHand, id_bhvCloud, id_bhvCloudPart, - id_bhvSpiny, + id_bhvCoffin, + id_bhvCoffinSpawner, + id_bhvCoinFormation, + id_bhvCoinFormationSpawn, + id_bhvCoinInsideBoo, + id_bhvCoinSparkles, + id_bhvControllablePlatform, + id_bhvControllablePlatformSub, + id_bhvCourtyardBooTriplet, + id_bhvCutOutObject, + id_bhvDddMovingPole, + id_bhvDDDPole, + id_bhvDddWarp, + id_bhvDeathWarp, + id_bhvDecorativePendulum, + id_bhvDirtParticleSpawner, + id_bhvDonutPlatform, + id_bhvDonutPlatformSpawner, + id_bhvDoor, + id_bhvDoorWarp, + id_bhvDorrie, + id_bhvEndBirds1, + id_bhvEndBirds2, + id_bhvEndPeach, + id_bhvEndToad, + id_bhvEnemyLakitu, + id_bhvExclamationBox, + id_bhvExitPodiumWarp, + id_bhvExplosion, + id_bhvEyerokBoss, + id_bhvEyerokHand, + id_bhvFadingWarp, + id_bhvFallingBowserPlatform, + id_bhvFallingPillar, + id_bhvFallingPillarHitbox, + id_bhvFerrisWheelAxle, + id_bhvFerrisWheelPlatform, + id_bhvFewBlueFishSpawner, + id_bhvFireParticleSpawner, + id_bhvFirePiranhaPlant, + id_bhvFireSpitter, + id_bhvFish, + id_bhvFishGroup, + id_bhvFishSpawner, + id_bhvFlame, + id_bhvFlameBouncing, + id_bhvFlameBowser, + id_bhvFlameFloatingLanding, + id_bhvFlameLargeBurningOut, + id_bhvFlameMovingForwardGrowing, + id_bhvFlamethrower, + id_bhvFlamethrowerFlame, + id_bhvFloorSwitchAnimatesObject, + id_bhvFloorSwitchGrills, + id_bhvFloorSwitchHardcodedModel, + id_bhvFloorSwitchHiddenObjects, + id_bhvFloorTrapInCastle, + id_bhvFlyGuy, + id_bhvFlyguyFlame, + id_bhvFlyingBookend, + id_bhvFlyingWarp, + id_bhvFreeBowlingBall, + id_bhvGhostHuntBigBoo, + id_bhvGhostHuntBoo, + id_bhvGiantPole, + id_bhvGoldenCoinSparkles, + id_bhvGoomba, + id_bhvGoombaTripletSpawner, + id_bhvGrandStar, + id_bhvGrindel, + id_bhvHardAirKnockBackWarp, + id_bhvHauntedBookshelf, + id_bhvHauntedBookshelfManager, + id_bhvHauntedChair, + id_bhvHeaveHo, + id_bhvHeaveHoThrowMario, + id_bhvHidden1up, + id_bhvHidden1upInPole, + id_bhvHidden1upInPoleSpawner, + id_bhvHidden1upInPoleTrigger, + id_bhvHidden1upTrigger, + id_bhvHiddenAt120Stars, + id_bhvHiddenBlueCoin, + id_bhvHiddenObject, + id_bhvHiddenRedCoinStar, + id_bhvHiddenStaircaseStep, + id_bhvHiddenStar, + id_bhvHiddenStarTrigger, + id_bhvHmcElevatorPlatform, + id_bhvHomingAmp, + id_bhvHoot, + id_bhvHorizontalGrindel, + id_bhvHorStarParticleSpawner, + id_bhvIdleWaterWave, + id_bhvIgloo, + id_bhvInitializeChangingWaterLevel, + id_bhvInsideCannon, + id_bhvInstantActiveWarp, + id_bhvInSunkenShip, + id_bhvInSunkenShip2, + id_bhvInSunkenShip3, + id_bhvIntroScene, + id_bhvInvisibleObjectsUnderBridge, + id_bhvJetStream, + id_bhvJetStreamRingSpawner, + id_bhvJetStreamWaterRing, + id_bhvJrbFloatingBox, + id_bhvJrbFloatingPlatform, + id_bhvJrbSlidingBox, + id_bhvJumpingBox, + id_bhvKickableBoard, + id_bhvKingBobomb, + id_bhvKlepto, + id_bhvKoopa, + id_bhvKoopaFlag, + id_bhvKoopaRaceEndpoint, + id_bhvKoopaShell, + id_bhvKoopaShellFlame, + id_bhvKoopaShellUnderwater, + id_bhvLargeBomp, + id_bhvLaunchDeathWarp, + id_bhvLaunchStarCollectWarp, + id_bhvLeafParticleSpawner, + id_bhvLllBowserPuzzle, + id_bhvLllBowserPuzzlePiece, + id_bhvLllDrawbridge, + id_bhvLllDrawbridgeSpawner, + id_bhvLllFloatingWoodBridge, + id_bhvLllHexagonalMesh, + id_bhvLllMovingOctagonalMeshPlatform, + id_bhvLllRollingLog, + id_bhvLllRotatingBlockWithFireBars, + id_bhvLllRotatingHexagonalPlatform, + id_bhvLllRotatingHexagonalRing, + id_bhvLllRotatingHexFlame, + id_bhvLllSinkingRectangularPlatform, + id_bhvLllSinkingRockBlock, + id_bhvLllSinkingSquarePlatforms, + id_bhvLllTiltingInvertedPyramid, + id_bhvLllTumblingBridge, + id_bhvLllVolcanoFallingTrap, + id_bhvLllWoodPiece, + id_bhvMacroUkiki, + id_bhvMadPiano, + id_bhvMantaRay, + id_bhvMantaRayRingManager, + id_bhvMantaRayWaterRing, + id_bhvManyBlueFishSpawner, + id_bhvMario, + id_bhvMenuButton, + id_bhvMenuButtonManager, + id_bhvMerryGoRound, + id_bhvMerryGoRoundBigBoo, + id_bhvMerryGoRoundBoo, + id_bhvMerryGoRoundBooManager, + id_bhvMeshElevator, + id_bhvMessagePanel, + id_bhvMetalCap, + id_bhvMips, + id_bhvMistCircParticleSpawner, + id_bhvMistParticleSpawner, + id_bhvMoatGrills, + id_bhvMoneybag, + id_bhvMoneybagHidden, id_bhvMontyMole, id_bhvMontyMoleHole, id_bhvMontyMoleRock, - id_bhvPlatformOnTrack, - id_bhvTrackBall, - id_bhvSeesawPlatform, - id_bhvFerrisWheelAxle, - id_bhvFerrisWheelPlatform, - id_bhvWaterBombSpawner, - id_bhvWaterBomb, - id_bhvWaterBombShadow, - id_bhvTTCRotatingSolid, - id_bhvTTCPendulum, - id_bhvTTCTreadmill, - id_bhvTTCMovingBar, - id_bhvTTCCog, - id_bhvTTCPitBlock, - id_bhvTTCElevator, - id_bhvTTC2DRotator, - id_bhvTTCSpinner, + id_bhvMovingBlueCoin, + id_bhvMovingYellowCoin, id_bhvMrBlizzard, id_bhvMrBlizzardSnowball, - id_bhvSlidingPlatform2, + id_bhvMrI, + id_bhvMrIBlueCoin, + id_bhvMrIBody, + id_bhvMrIParticle, + id_bhvNormalCap, + id_bhvObjectBubble, + id_bhvObjectWaterSplash, + id_bhvObjectWaterWave, + id_bhvObjectWaveTrail, id_bhvOctagonalPlatformRotating, - id_bhvAnimatesOnFloorSwitchPress, - id_bhvActivatedBackAndForthPlatform, - id_bhvRecoveryHeart, - id_bhvWaterBombCannon, - id_bhvCannonBarrelBubbles, - id_bhvUnagi, - id_bhvUnagiSubobject, - id_bhvDorrie, - id_bhvHauntedChair, - id_bhvMadPiano, - id_bhvFlyingBookend, - id_bhvBookendSpawn, - id_bhvHauntedBookshelfManager, - id_bhvBookSwitch, - id_bhvFirePiranhaPlant, - id_bhvSmallPiranhaFlame, - id_bhvFireSpitter, - id_bhvFlyguyFlame, - id_bhvSnufit, - id_bhvSnufitBalls, - id_bhvHorizontalGrindel, - id_bhvEyerokBoss, - id_bhvEyerokHand, - id_bhvKlepto, - id_bhvBird, - id_bhvRacingPenguin, + id_bhvOneCoin, + id_bhvOpenableCageDoor, + id_bhvOpenableGrill, + id_bhvOrangeNumber, + id_bhvPaintingDeathWarp, + id_bhvPaintingStarCollectWarp, + id_bhvPenguinBaby, id_bhvPenguinRaceFinishLine, id_bhvPenguinRaceShortcutCheck, - id_bhvCoffinSpawner, - id_bhvCoffin, - id_bhvClamShell, + id_bhvPillarBase, + id_bhvPiranhaPlant, + id_bhvPiranhaPlantBubble, + id_bhvPiranhaPlantWakingBubbles, + id_bhvPitBowlingBall, + id_bhvPlatformOnTrack, + id_bhvPlaysMusicTrackWhenTouched, + id_bhvPlungeBubble, + id_bhvPokey, + id_bhvPokeyBodyPart, + id_bhvPoleGrabbing, + id_bhvPoundTinyStarParticle, + id_bhvPunchTinyTriangle, + id_bhvPurpleParticle, + id_bhvPurpleSwitchHiddenBoxes, + id_bhvPushableMetalBox, + id_bhvPyramidElevator, + id_bhvPyramidElevatorTrajectoryMarkerBall, + id_bhvPyramidPillarTouchDetector, + id_bhvPyramidTop, + id_bhvPyramidTopFragment, + id_bhvRacingPenguin, + id_bhvRandomAnimatedTexture, + id_bhvRecoveryHeart, + id_bhvRedCoin, + id_bhvRedCoinStarMarker, + id_bhvRespawner, + id_bhvRockSolid, + id_bhvRotatingCounterClockwise, + id_bhvRotatingExclamationMark, + id_bhvRotatingPlatform, + id_bhvRrCruiserWing, + id_bhvRrElevatorPlatform, + id_bhvRrRotatingBridgePlatform, + id_bhvSandSoundLoop, + id_bhvScuttlebug, + id_bhvScuttlebugSpawn, + id_bhvSeaweed, + id_bhvSeaweedBundle, + id_bhvSeesawPlatform, + id_bhvShallowWaterSplash, + id_bhvShallowWaterWave, + id_bhvShipPart3, + id_bhvSignOnWall, + id_bhvSingleCoinGetsSpawned, id_bhvSkeeter, id_bhvSkeeterWave, + id_bhvSlidingPlatform2, + id_bhvSlidingSnowMound, + id_bhvSLSnowmanWind, + id_bhvSLWalkingPenguin, + id_bhvSmallBomp, + id_bhvSmallBully, + id_bhvSmallChillBully, + id_bhvSmallParticle, + id_bhvSmallParticleBubbles, + id_bhvSmallParticleSnow, + id_bhvSmallPenguin, + id_bhvSmallPiranhaFlame, + id_bhvSmallWaterWave, + id_bhvSmallWaterWave398, + id_bhvSmallWhomp, + id_bhvSmoke, + id_bhvSnowBall, + id_bhvSnowmansBodyCheckpoint, + id_bhvSnowmansBottom, + id_bhvSnowmansHead, + id_bhvSnowMoundSpawn, + id_bhvSnowParticleSpawner, + id_bhvSnufit, + id_bhvSnufitBalls, + id_bhvSoundSpawner, + id_bhvSparkle, + id_bhvSparkleParticleSpawner, + id_bhvSparkleSpawn, + id_bhvSpawnedStar, + id_bhvSpawnedStarNoLevelExit, + id_bhvSpinAirborneCircleWarp, + id_bhvSpinAirborneWarp, + id_bhvSpindel, + id_bhvSpindrift, + id_bhvSpiny, + id_bhvSquarishPathMoving, + id_bhvSquarishPathParent, + id_bhvSquishablePlatform, + id_bhvSslMovingPyramidWall, + id_bhvStar, + id_bhvStarDoor, + id_bhvStarKeyCollectionPuffSpawner, + id_bhvStarSpawnCoordinates, + id_bhvStaticCheckeredPlatform, + id_bhvStaticObject, + id_bhvStrongWindParticle, + id_bhvStub, + id_bhvStub1D0C, + id_bhvStub1D70, + id_bhvSunkenShipPart, + id_bhvSunkenShipPart2, + id_bhvSunkenShipSetRotation, + id_bhvSushiShark, + id_bhvSushiSharkCollisionChild, + id_bhvSwimmingWarp, id_bhvSwingPlatform, - id_bhvDonutPlatformSpawner, - id_bhvDonutPlatform, - id_bhvDDDPole, - id_bhvRedCoinStarMarker, + id_bhvSwoop, + id_bhvTankFishGroup, + id_bhvTemporaryYellowCoin, + id_bhvTenCoinsSpawn, + id_bhvThiBowlingBallSpawner, + id_bhvThiHugeIslandTop, + id_bhvThiTinyIslandTop, + id_bhvThreeCoinsSpawn, + id_bhvThwomp, + id_bhvThwomp2, + id_bhvTiltingBowserLavaPlatform, + id_bhvTinyStrongWindParticle, + id_bhvToadMessage, + id_bhvTower, + id_bhvTowerDoor, + id_bhvTowerPlatformGroup, + id_bhvToxBox, + id_bhvTrackBall, + id_bhvTreasureChestBottom, + id_bhvTreasureChests, + id_bhvTreasureChestsJrb, + id_bhvTreasureChestsShip, + id_bhvTreasureChestTop, + id_bhvTree, + id_bhvTreeLeaf, + id_bhvTreeSnow, + id_bhvTriangleParticleSpawner, id_bhvTripletButterfly, - id_bhvBubba, - id_bhvBeginningLakitu, - id_bhvBeginningPeach, - id_bhvEndBirds1, - id_bhvEndBirds2, - id_bhvIntroScene, + id_bhvTTC2DRotator, + id_bhvTTCCog, + id_bhvTTCElevator, + id_bhvTTCMovingBar, + id_bhvTTCPendulum, + id_bhvTTCPitBlock, + id_bhvTTCRotatingSolid, + id_bhvTTCSpinner, + id_bhvTTCTreadmill, + id_bhvTtmBowlingBallSpawner, + id_bhvTtmRollingLog, + id_bhvTumblingBridgePlatform, + id_bhvTuxiesMother, + id_bhvTweester, + id_bhvTweesterSandParticle, + id_bhvUkiki, + id_bhvUkikiCage, + id_bhvUkikiCageChild, + id_bhvUkikiCageStar, + id_bhvUnagi, + id_bhvUnagiSubobject, + id_bhvUnlockDoorStar, + id_bhvUnused05A8, + id_bhvUnused0DFC, + id_bhvUnused1820, + id_bhvUnused1F30, + id_bhvUnused20E0, + id_bhvUnused2A10, + id_bhvUnused2A54, + id_bhvUnusedFakeStar, + id_bhvUnusedParticleSpawn, + id_bhvUnusedPoundablePlatform, + id_bhvVanishCap, + id_bhvVertStarParticleSpawner, + id_bhvVolcanoFlames, + id_bhvVolcanoSoundLoop, + id_bhvWallTinyStarParticle, + id_bhvWarp, + id_bhvWarpPipe, + id_bhvWaterAirBubble, + id_bhvWaterBomb, + id_bhvWaterBombCannon, + id_bhvWaterBombShadow, + id_bhvWaterBombSpawner, + id_bhvWaterDroplet, + id_bhvWaterDropletSplash, + id_bhvWaterfallSoundLoop, + id_bhvWaterLevelDiamond, + id_bhvWaterLevelPillar, + id_bhvWaterMist, + id_bhvWaterMist2, + id_bhvWaterSplash, + id_bhvWaveTrail, + id_bhvWdwExpressElevator, + id_bhvWdwExpressElevatorPlatform, + id_bhvWdwRectangularFloatingPlatform, + id_bhvWdwSquareFloatingPlatform, + id_bhvWfBreakableWallLeft, + id_bhvWfBreakableWallRight, + id_bhvWfElevatorTowerPlatform, + id_bhvWfRotatingWoodenPlatform, + id_bhvWfSlidingPlatform, + id_bhvWfSlidingTowerPlatform, + id_bhvWfSolidTowerPlatform, + id_bhvWfTumblingBridge, + id_bhvWhirlpool, + id_bhvWhitePuff1, + id_bhvWhitePuff2, + id_bhvWhitePuffExplosion, + id_bhvWhitePuffSmoke, + id_bhvWhitePuffSmoke2, + id_bhvWhompKingBoss, + id_bhvWigglerBody, + id_bhvWigglerHead, + id_bhvWind, + id_bhvWingCap, + id_bhvWoodenPost, + id_bhvYellowBackgroundInMenu, + id_bhvYellowBall, + id_bhvYellowCoin, + id_bhvYoshi, + id_bhv_max_count // must be the last in the list }; diff --git a/include/textures.h b/include/textures.h index a3205ae5..b1bc1778 100644 --- a/include/textures.h +++ b/include/textures.h @@ -223,7 +223,6 @@ extern const u8 snow_09009800[]; // spooky extern const u8 spooky_09000000[]; extern const u8 spooky_09000800[]; -extern const u8 spooky_09001000[]; extern const u8 spooky_09001800[]; extern const u8 spooky_09002800[]; extern const u8 spooky_09003800[];