diff --git a/Makefile b/Makefile index fbe3911a7..af9c14b4e 100644 --- a/Makefile +++ b/Makefile @@ -58,9 +58,6 @@ DISCORD_SDK ?= 1 # Enable docker build workarounds DOCKERBUILD ?= 0 -# Should It compile with windows Icon -ICON ?= 1 - # Various workarounds for weird toolchains NO_BZERO_BCOPY ?= 0 @@ -832,20 +829,6 @@ else # endif endif -# Icon -ifeq ($(WINDOWS_BUILD),1) - ifeq ($(ICON),1) - - Command := mkdir $(BUILD_DIR)/res - Reponse := $(shell $(call Command)) - - Command := windres -o $(BUILD_DIR)/res/icon.o -i res/icon.rc - Reponse := $(shell $(call Command)) - - LDFLAGS += $(BUILD_DIR)/res/icon.o - endif -endif - # Coop specific libraries # Lua diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 6880a84c9..9adab0c5a 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -275,1549 +275,1612 @@ end --- @class BehaviorId --- @type BehaviorId -id_bhvStarDoor = 0 +id_bhv1Up = 0 --- @type BehaviorId -id_bhvMrI = 1 +id_bhv1upJumpOnApproach = 1 --- @type BehaviorId -id_bhvMrIBody = 2 +id_bhv1upRunningAway = 2 --- @type BehaviorId -id_bhvMrIParticle = 3 +id_bhv1upSliding = 3 --- @type BehaviorId -id_bhvPurpleParticle = 4 +id_bhv1upWalking = 4 --- @type BehaviorId -id_bhvGiantPole = 5 +id_bhvActivatedBackAndForthPlatform = 5 --- @type BehaviorId -id_bhvPoleGrabbing = 6 +id_bhvActSelector = 6 --- @type BehaviorId -id_bhvThiHugeIslandTop = 7 +id_bhvActSelectorStarType = 7 --- @type BehaviorId -id_bhvThiTinyIslandTop = 8 +id_bhvAirborneDeathWarp = 8 --- @type BehaviorId -id_bhvCapSwitchBase = 9 +id_bhvAirborneStarCollectWarp = 9 --- @type BehaviorId -id_bhvCapSwitch = 10 +id_bhvAirborneWarp = 10 --- @type BehaviorId -id_bhvKingBobomb = 11 +id_bhvAlphaBooKey = 11 --- @type BehaviorId -id_bhvBobombAnchorMario = 12 +id_bhvAmbientSounds = 12 --- @type BehaviorId -id_bhvBetaChestBottom = 13 +id_bhvAnimatedTexture = 13 --- @type BehaviorId -id_bhvBetaChestLid = 14 +id_bhvAnimatesOnFloorSwitchPress = 14 --- @type BehaviorId -id_bhvBubbleParticleSpawner = 15 +id_bhvAnotherElavator = 15 --- @type BehaviorId -id_bhvBubbleMaybe = 16 +id_bhvAnotherTiltingPlatform = 16 --- @type BehaviorId -id_bhvBubblePlayer = 17 +id_bhvArrowLift = 17 --- @type BehaviorId -id_bhvSmallWaterWave = 18 +id_bhvBalconyBigBoo = 18 --- @type BehaviorId -id_bhvWaterAirBubble = 19 +id_bhvBbhTiltingTrapPlatform = 19 --- @type BehaviorId -id_bhvSmallParticle = 20 +id_bhvBbhTumblingBridge = 20 --- @type BehaviorId -id_bhvPlungeBubble = 21 +id_bhvBeginningLakitu = 21 --- @type BehaviorId -id_bhvSmallParticleSnow = 22 +id_bhvBeginningPeach = 22 --- @type BehaviorId -id_bhvSmallParticleBubbles = 23 +id_bhvBetaBooKey = 23 --- @type BehaviorId -id_bhvFishGroup = 24 +id_bhvBetaBowserAnchor = 24 --- @type BehaviorId -id_bhvCannon = 25 +id_bhvBetaChestBottom = 25 --- @type BehaviorId -id_bhvCannonBarrel = 26 +id_bhvBetaChestLid = 26 --- @type BehaviorId -id_bhvCannonBaseUnused = 27 +id_bhvBetaFishSplashSpawner = 27 --- @type BehaviorId -id_bhvChuckya = 28 +id_bhvBetaHoldableObject = 28 --- @type BehaviorId -id_bhvChuckyaAnchorMario = 29 +id_bhvBetaMovingFlames = 29 --- @type BehaviorId -id_bhvUnused05A8 = 30 +id_bhvBetaMovingFlamesSpawn = 30 --- @type BehaviorId -id_bhvRotatingPlatform = 31 +id_bhvBetaTrampolineSpring = 31 --- @type BehaviorId -id_bhvTower = 32 +id_bhvBetaTrampolineTop = 32 --- @type BehaviorId -id_bhvBulletBillCannon = 33 +id_bhvBigBoulder = 33 --- @type BehaviorId -id_bhvWfBreakableWallRight = 34 +id_bhvBigBoulderGenerator = 34 --- @type BehaviorId -id_bhvWfBreakableWallLeft = 35 +id_bhvBigBully = 35 --- @type BehaviorId -id_bhvKickableBoard = 36 +id_bhvBigBullyWithMinions = 36 --- @type BehaviorId -id_bhvTowerDoor = 37 +id_bhvBigChillBully = 37 --- @type BehaviorId -id_bhvRotatingCounterClockwise = 38 +id_bhvBigSnowmanWhole = 38 --- @type BehaviorId -id_bhvWfRotatingWoodenPlatform = 39 +id_bhvBird = 39 --- @type BehaviorId -id_bhvKoopaShellUnderwater = 40 +id_bhvBirdsSoundLoop = 40 --- @type BehaviorId -id_bhvExitPodiumWarp = 41 +id_bhvBitfsSinkingCagePlatform = 41 --- @type BehaviorId -id_bhvFadingWarp = 42 +id_bhvBitfsSinkingPlatforms = 42 --- @type BehaviorId -id_bhvWarp = 43 +id_bhvBitfsTiltingInvertedPyramid = 43 --- @type BehaviorId -id_bhvWarpPipe = 44 +id_bhvBlackSmokeBowser = 44 --- @type BehaviorId -id_bhvWhitePuffExplosion = 45 +id_bhvBlackSmokeMario = 45 --- @type BehaviorId -id_bhvSpawnedStar = 46 +id_bhvBlackSmokeUpward = 46 --- @type BehaviorId -id_bhvSpawnedStarNoLevelExit = 47 +id_bhvBlueBowserFlame = 47 --- @type BehaviorId -id_bhvMrIBlueCoin = 48 +id_bhvBlueCoinJumping = 48 --- @type BehaviorId -id_bhvCoinInsideBoo = 49 +id_bhvBlueCoinSliding = 49 --- @type BehaviorId -id_bhvCoinFormationSpawn = 50 +id_bhvBlueCoinSwitch = 50 --- @type BehaviorId -id_bhvCoinFormation = 51 +id_bhvBlueFish = 51 --- @type BehaviorId -id_bhvOneCoin = 52 +id_bhvBlueFlamesGroup = 52 --- @type BehaviorId -id_bhvYellowCoin = 53 +id_bhvBobBowlingBallSpawner = 53 --- @type BehaviorId -id_bhvTemporaryYellowCoin = 54 +id_bhvBobomb = 54 --- @type BehaviorId -id_bhvThreeCoinsSpawn = 55 +id_bhvBobombAnchorMario = 55 --- @type BehaviorId -id_bhvTenCoinsSpawn = 56 +id_bhvBobombBuddy = 56 --- @type BehaviorId -id_bhvSingleCoinGetsSpawned = 57 +id_bhvBobombBuddyOpensCannon = 57 --- @type BehaviorId -id_bhvCoinSparkles = 58 +id_bhvBobombBullyDeathSmoke = 58 --- @type BehaviorId -id_bhvGoldenCoinSparkles = 59 +id_bhvBobombExplosionBubble = 59 --- @type BehaviorId -id_bhvWallTinyStarParticle = 60 +id_bhvBobombExplosionBubble3600 = 60 --- @type BehaviorId -id_bhvVertStarParticleSpawner = 61 +id_bhvBobombFuseSmoke = 61 --- @type BehaviorId -id_bhvPoundTinyStarParticle = 62 +id_bhvBoo = 62 --- @type BehaviorId -id_bhvHorStarParticleSpawner = 63 +id_bhvBooBossSpawnedBridge = 63 --- @type BehaviorId -id_bhvPunchTinyTriangle = 64 +id_bhvBooCage = 64 --- @type BehaviorId -id_bhvTriangleParticleSpawner = 65 +id_bhvBooInCastle = 65 --- @type BehaviorId -id_bhvDoorWarp = 66 +id_bhvBookendSpawn = 66 --- @type BehaviorId -id_bhvDoor = 67 +id_bhvBookSwitch = 67 --- @type BehaviorId -id_bhvGrindel = 68 +id_bhvBooWithCage = 68 --- @type BehaviorId -id_bhvThwomp2 = 69 +id_bhvBouncingFireball = 69 --- @type BehaviorId -id_bhvThwomp = 70 +id_bhvBouncingFireballFlame = 70 --- @type BehaviorId -id_bhvTumblingBridgePlatform = 71 +id_bhvBowlingBall = 71 --- @type BehaviorId -id_bhvWfTumblingBridge = 72 +id_bhvBowser = 72 --- @type BehaviorId -id_bhvBbhTumblingBridge = 73 +id_bhvBowserBodyAnchor = 73 --- @type BehaviorId -id_bhvLllTumblingBridge = 74 +id_bhvBowserBomb = 74 --- @type BehaviorId -id_bhvFlame = 75 +id_bhvBowserBombExplosion = 75 --- @type BehaviorId -id_bhvAnotherElavator = 76 +id_bhvBowserBombSmoke = 76 --- @type BehaviorId -id_bhvRrElevatorPlatform = 77 +id_bhvBowserCourseRedCoinStar = 77 --- @type BehaviorId -id_bhvHmcElevatorPlatform = 78 +id_bhvBowserFlameSpawn = 78 --- @type BehaviorId -id_bhvWaterMist = 79 +id_bhvBowserKey = 79 --- @type BehaviorId -id_bhvBreathParticleSpawner = 80 +id_bhvBowserKeyCourseExit = 80 --- @type BehaviorId -id_bhvBreakBoxTriangle = 81 +id_bhvBowserKeyUnlockDoor = 81 --- @type BehaviorId -id_bhvWaterMist2 = 82 +id_bhvBowserShockWave = 82 --- @type BehaviorId -id_bhvUnused0DFC = 83 +id_bhvBowsersSub = 83 --- @type BehaviorId -id_bhvMistCircParticleSpawner = 84 +id_bhvBowserSubDoor = 84 --- @type BehaviorId -id_bhvDirtParticleSpawner = 85 +id_bhvBowserTailAnchor = 85 --- @type BehaviorId -id_bhvSnowParticleSpawner = 86 +id_bhvBreakableBox = 86 --- @type BehaviorId -id_bhvWind = 87 +id_bhvBreakableBoxSmall = 87 --- @type BehaviorId -id_bhvEndToad = 88 +id_bhvBreakBoxTriangle = 88 --- @type BehaviorId -id_bhvEndPeach = 89 +id_bhvBreathParticleSpawner = 89 --- @type BehaviorId -id_bhvUnusedParticleSpawn = 90 +id_bhvBub = 90 --- @type BehaviorId -id_bhvUkiki = 91 +id_bhvBubba = 91 --- @type BehaviorId -id_bhvUkikiCageChild = 92 +id_bhvBubbleMaybe = 92 --- @type BehaviorId -id_bhvUkikiCageStar = 93 +id_bhvBubbleParticleSpawner = 93 --- @type BehaviorId -id_bhvUkikiCage = 94 +id_bhvBubblePlayer = 94 --- @type BehaviorId -id_bhvBitfsSinkingPlatforms = 95 +id_bhvBubbleSplash = 95 --- @type BehaviorId -id_bhvBitfsSinkingCagePlatform = 96 +id_bhvBulletBill = 96 --- @type BehaviorId -id_bhvDddMovingPole = 97 +id_bhvBulletBillCannon = 97 --- @type BehaviorId -id_bhvBitfsTiltingInvertedPyramid = 98 +id_bhvButterfly = 98 --- @type BehaviorId -id_bhvSquishablePlatform = 99 +id_bhvCameraLakitu = 99 --- @type BehaviorId -id_bhvCutOutObject = 100 +id_bhvCannon = 100 --- @type BehaviorId -id_bhvBetaMovingFlames = 101 +id_bhvCannonBarrel = 101 --- @type BehaviorId -id_bhvRrRotatingBridgePlatform = 102 +id_bhvCannonBarrelBubbles = 102 --- @type BehaviorId -id_bhvFlamethrower = 103 +id_bhvCannonBaseUnused = 103 --- @type BehaviorId -id_bhvFlamethrowerFlame = 104 +id_bhvCannonClosed = 104 --- @type BehaviorId -id_bhvBouncingFireball = 105 +id_bhvCapSwitch = 105 --- @type BehaviorId -id_bhvBouncingFireballFlame = 106 +id_bhvCapSwitchBase = 106 --- @type BehaviorId -id_bhvBowserShockWave = 107 +id_bhvCarrySomething1 = 107 --- @type BehaviorId -id_bhvFireParticleSpawner = 108 +id_bhvCarrySomething2 = 108 --- @type BehaviorId -id_bhvBlackSmokeMario = 109 +id_bhvCarrySomething3 = 109 --- @type BehaviorId -id_bhvBlackSmokeBowser = 110 +id_bhvCarrySomething4 = 110 --- @type BehaviorId -id_bhvBlackSmokeUpward = 111 +id_bhvCarrySomething5 = 111 --- @type BehaviorId -id_bhvBetaFishSplashSpawner = 112 +id_bhvCarrySomething6 = 112 --- @type BehaviorId -id_bhvSpindrift = 113 +id_bhvCastleFlagWaving = 113 --- @type BehaviorId -id_bhvTowerPlatformGroup = 114 +id_bhvCastleFloorTrap = 114 --- @type BehaviorId -id_bhvWfSlidingTowerPlatform = 115 +id_bhvCcmTouchedStarSpawn = 115 --- @type BehaviorId -id_bhvWfElevatorTowerPlatform = 116 +id_bhvCelebrationStar = 116 --- @type BehaviorId -id_bhvWfSolidTowerPlatform = 117 +id_bhvCelebrationStarSparkle = 117 --- @type BehaviorId -id_bhvLeafParticleSpawner = 118 +id_bhvChainChomp = 118 --- @type BehaviorId -id_bhvTreeSnow = 119 +id_bhvChainChompChainPart = 119 --- @type BehaviorId -id_bhvTreeLeaf = 120 +id_bhvChainChompGate = 120 --- @type BehaviorId -id_bhvAnotherTiltingPlatform = 121 +id_bhvCheckerboardElevatorGroup = 121 --- @type BehaviorId -id_bhvSquarishPathMoving = 122 +id_bhvCheckerboardPlatformSub = 122 --- @type BehaviorId -id_bhvSquarishPathParent = 123 +id_bhvChirpChirp = 123 --- @type BehaviorId -id_bhvPiranhaPlantBubble = 124 +id_bhvChirpChirpUnused = 124 --- @type BehaviorId -id_bhvPiranhaPlantWakingBubbles = 125 +id_bhvChuckya = 125 --- @type BehaviorId -id_bhvFloorSwitchAnimatesObject = 126 +id_bhvChuckyaAnchorMario = 126 --- @type BehaviorId -id_bhvFloorSwitchGrills = 127 +id_bhvCirclingAmp = 127 --- @type BehaviorId -id_bhvFloorSwitchHardcodedModel = 128 +id_bhvClamShell = 128 --- @type BehaviorId -id_bhvFloorSwitchHiddenObjects = 129 +id_bhvClockHourHand = 129 --- @type BehaviorId -id_bhvHiddenObject = 130 +id_bhvClockMinuteHand = 130 --- @type BehaviorId -id_bhvBreakableBox = 131 +id_bhvCloud = 131 --- @type BehaviorId -id_bhvPushableMetalBox = 132 +id_bhvCloudPart = 132 --- @type BehaviorId -id_bhvHeaveHo = 133 +id_bhvCoffin = 133 --- @type BehaviorId -id_bhvHeaveHoThrowMario = 134 +id_bhvCoffinSpawner = 134 --- @type BehaviorId -id_bhvCcmTouchedStarSpawn = 135 +id_bhvCoinFormation = 135 --- @type BehaviorId -id_bhvUnusedPoundablePlatform = 136 +id_bhvCoinFormationSpawn = 136 --- @type BehaviorId -id_bhvBetaTrampolineTop = 137 +id_bhvCoinInsideBoo = 137 --- @type BehaviorId -id_bhvBetaTrampolineSpring = 138 +id_bhvCoinSparkles = 138 --- @type BehaviorId -id_bhvJumpingBox = 139 +id_bhvControllablePlatform = 139 --- @type BehaviorId -id_bhvBooCage = 140 +id_bhvControllablePlatformSub = 140 --- @type BehaviorId -id_bhvStub = 141 +id_bhvCourtyardBooTriplet = 141 --- @type BehaviorId -id_bhvIgloo = 142 +id_bhvCutOutObject = 142 --- @type BehaviorId -id_bhvBowserKey = 143 +id_bhvDddMovingPole = 143 --- @type BehaviorId -id_bhvGrandStar = 144 +id_bhvDDDPole = 144 --- @type BehaviorId -id_bhvBetaBooKey = 145 +id_bhvDddWarp = 145 --- @type BehaviorId -id_bhvAlphaBooKey = 146 +id_bhvDeathWarp = 146 --- @type BehaviorId -id_bhvBulletBill = 147 +id_bhvDecorativePendulum = 147 --- @type BehaviorId -id_bhvWhitePuffSmoke = 148 +id_bhvDirtParticleSpawner = 148 --- @type BehaviorId -id_bhvUnused1820 = 149 +id_bhvDonutPlatform = 149 --- @type BehaviorId -id_bhvBowserTailAnchor = 150 +id_bhvDonutPlatformSpawner = 150 --- @type BehaviorId -id_bhvBowser = 151 +id_bhvDoor = 151 --- @type BehaviorId -id_bhvBowserBodyAnchor = 152 +id_bhvDoorWarp = 152 --- @type BehaviorId -id_bhvBowserFlameSpawn = 153 +id_bhvDorrie = 153 --- @type BehaviorId -id_bhvTiltingBowserLavaPlatform = 154 +id_bhvEndBirds1 = 154 --- @type BehaviorId -id_bhvFallingBowserPlatform = 155 +id_bhvEndBirds2 = 155 --- @type BehaviorId -id_bhvBlueBowserFlame = 156 +id_bhvEndPeach = 156 --- @type BehaviorId -id_bhvFlameFloatingLanding = 157 +id_bhvEndToad = 157 --- @type BehaviorId -id_bhvBlueFlamesGroup = 158 +id_bhvEnemyLakitu = 158 --- @type BehaviorId -id_bhvFlameBouncing = 159 +id_bhvExclamationBox = 159 --- @type BehaviorId -id_bhvFlameMovingForwardGrowing = 160 +id_bhvExitPodiumWarp = 160 --- @type BehaviorId -id_bhvFlameBowser = 161 +id_bhvExplosion = 161 --- @type BehaviorId -id_bhvFlameLargeBurningOut = 162 +id_bhvEyerokBoss = 162 --- @type BehaviorId -id_bhvBlueFish = 163 +id_bhvEyerokHand = 163 --- @type BehaviorId -id_bhvTankFishGroup = 164 +id_bhvFadingWarp = 164 --- @type BehaviorId -id_bhvCheckerboardElevatorGroup = 165 +id_bhvFallingBowserPlatform = 165 --- @type BehaviorId -id_bhvCheckerboardPlatformSub = 166 +id_bhvFallingPillar = 166 --- @type BehaviorId -id_bhvBowserKeyUnlockDoor = 167 +id_bhvFallingPillarHitbox = 167 --- @type BehaviorId -id_bhvBowserKeyCourseExit = 168 +id_bhvFerrisWheelAxle = 168 --- @type BehaviorId -id_bhvInvisibleObjectsUnderBridge = 169 +id_bhvFerrisWheelPlatform = 169 --- @type BehaviorId -id_bhvWaterLevelPillar = 170 +id_bhvFewBlueFishSpawner = 170 --- @type BehaviorId -id_bhvDddWarp = 171 +id_bhvFireParticleSpawner = 171 --- @type BehaviorId -id_bhvMoatGrills = 172 +id_bhvFirePiranhaPlant = 172 --- @type BehaviorId -id_bhvClockMinuteHand = 173 +id_bhvFireSpitter = 173 --- @type BehaviorId -id_bhvClockHourHand = 174 +id_bhvFish = 174 --- @type BehaviorId -id_bhvMacroUkiki = 175 +id_bhvFishGroup = 175 --- @type BehaviorId -id_bhvStub1D0C = 176 +id_bhvFishSpawner = 176 --- @type BehaviorId -id_bhvLllRotatingHexagonalPlatform = 177 +id_bhvFlame = 177 --- @type BehaviorId -id_bhvLllSinkingRockBlock = 178 +id_bhvFlameBouncing = 178 --- @type BehaviorId -id_bhvStub1D70 = 179 +id_bhvFlameBowser = 179 --- @type BehaviorId -id_bhvLllMovingOctagonalMeshPlatform = 180 +id_bhvFlameFloatingLanding = 180 --- @type BehaviorId -id_bhvLllRotatingBlockWithFireBars = 181 +id_bhvFlameLargeBurningOut = 181 --- @type BehaviorId -id_bhvLllRotatingHexFlame = 182 +id_bhvFlameMovingForwardGrowing = 182 --- @type BehaviorId -id_bhvLllWoodPiece = 183 +id_bhvFlamethrower = 183 --- @type BehaviorId -id_bhvLllFloatingWoodBridge = 184 +id_bhvFlamethrowerFlame = 184 --- @type BehaviorId -id_bhvVolcanoFlames = 185 +id_bhvFloorSwitchAnimatesObject = 185 --- @type BehaviorId -id_bhvLllRotatingHexagonalRing = 186 +id_bhvFloorSwitchGrills = 186 --- @type BehaviorId -id_bhvLllSinkingRectangularPlatform = 187 +id_bhvFloorSwitchHardcodedModel = 187 --- @type BehaviorId -id_bhvLllSinkingSquarePlatforms = 188 +id_bhvFloorSwitchHiddenObjects = 188 --- @type BehaviorId -id_bhvLllTiltingInvertedPyramid = 189 +id_bhvFloorTrapInCastle = 189 --- @type BehaviorId -id_bhvUnused1F30 = 190 +id_bhvFlyGuy = 190 --- @type BehaviorId -id_bhvKoopaShell = 191 +id_bhvFlyguyFlame = 191 --- @type BehaviorId -id_bhvKoopaShellFlame = 192 +id_bhvFlyingBookend = 192 --- @type BehaviorId -id_bhvToxBox = 193 +id_bhvFlyingWarp = 193 --- @type BehaviorId -id_bhvPiranhaPlant = 194 +id_bhvFreeBowlingBall = 194 --- @type BehaviorId -id_bhvLllHexagonalMesh = 195 +id_bhvGhostHuntBigBoo = 195 --- @type BehaviorId -id_bhvLllBowserPuzzlePiece = 196 +id_bhvGhostHuntBoo = 196 --- @type BehaviorId -id_bhvLllBowserPuzzle = 197 +id_bhvGiantPole = 197 --- @type BehaviorId -id_bhvTuxiesMother = 198 +id_bhvGoldenCoinSparkles = 198 --- @type BehaviorId -id_bhvPenguinBaby = 199 +id_bhvGoomba = 199 --- @type BehaviorId -id_bhvUnused20E0 = 200 +id_bhvGoombaTripletSpawner = 200 --- @type BehaviorId -id_bhvSmallPenguin = 201 +id_bhvGrandStar = 201 --- @type BehaviorId -id_bhvManyBlueFishSpawner = 202 +id_bhvGrindel = 202 --- @type BehaviorId -id_bhvFewBlueFishSpawner = 203 +id_bhvHardAirKnockBackWarp = 203 --- @type BehaviorId -id_bhvFishSpawner = 204 +id_bhvHauntedBookshelf = 204 --- @type BehaviorId -id_bhvFish = 205 +id_bhvHauntedBookshelfManager = 205 --- @type BehaviorId -id_bhvWdwExpressElevator = 206 +id_bhvHauntedChair = 206 --- @type BehaviorId -id_bhvWdwExpressElevatorPlatform = 207 +id_bhvHeaveHo = 207 --- @type BehaviorId -id_bhvChirpChirp = 208 +id_bhvHeaveHoThrowMario = 208 --- @type BehaviorId -id_bhvBub = 209 +id_bhvHidden1up = 209 --- @type BehaviorId -id_bhvExclamationBox = 210 +id_bhvHidden1upInPole = 210 --- @type BehaviorId -id_bhvRotatingExclamationMark = 211 +id_bhvHidden1upInPoleSpawner = 211 --- @type BehaviorId -id_bhvSoundSpawner = 212 +id_bhvHidden1upInPoleTrigger = 212 --- @type BehaviorId -id_bhvRockSolid = 213 +id_bhvHidden1upTrigger = 213 --- @type BehaviorId -id_bhvBowserSubDoor = 214 +id_bhvHiddenAt120Stars = 214 --- @type BehaviorId -id_bhvBowsersSub = 215 +id_bhvHiddenBlueCoin = 215 --- @type BehaviorId -id_bhvSushiShark = 216 +id_bhvHiddenObject = 216 --- @type BehaviorId -id_bhvSushiSharkCollisionChild = 217 +id_bhvHiddenRedCoinStar = 217 --- @type BehaviorId -id_bhvJrbSlidingBox = 218 +id_bhvHiddenStaircaseStep = 218 --- @type BehaviorId -id_bhvShipPart3 = 219 +id_bhvHiddenStar = 219 --- @type BehaviorId -id_bhvInSunkenShip3 = 220 +id_bhvHiddenStarTrigger = 220 --- @type BehaviorId -id_bhvSunkenShipPart = 221 +id_bhvHmcElevatorPlatform = 221 --- @type BehaviorId -id_bhvSunkenShipPart2 = 222 +id_bhvHomingAmp = 222 --- @type BehaviorId -id_bhvInSunkenShip = 223 +id_bhvHoot = 223 --- @type BehaviorId -id_bhvInSunkenShip2 = 224 +id_bhvHorizontalGrindel = 224 --- @type BehaviorId -id_bhvMistParticleSpawner = 225 +id_bhvHorStarParticleSpawner = 225 --- @type BehaviorId -id_bhvWhitePuff1 = 226 +id_bhvIdleWaterWave = 226 --- @type BehaviorId -id_bhvWhitePuff2 = 227 +id_bhvIgloo = 227 --- @type BehaviorId -id_bhvWhitePuffSmoke2 = 228 +id_bhvInitializeChangingWaterLevel = 228 --- @type BehaviorId -id_bhvPurpleSwitchHiddenBoxes = 229 +id_bhvInsideCannon = 229 --- @type BehaviorId -id_bhvBlueCoinSwitch = 230 +id_bhvInstantActiveWarp = 230 --- @type BehaviorId -id_bhvHiddenBlueCoin = 231 +id_bhvInSunkenShip = 231 --- @type BehaviorId -id_bhvOpenableCageDoor = 232 +id_bhvInSunkenShip2 = 232 --- @type BehaviorId -id_bhvOpenableGrill = 233 +id_bhvInSunkenShip3 = 233 --- @type BehaviorId -id_bhvWaterLevelDiamond = 234 +id_bhvIntroScene = 234 --- @type BehaviorId -id_bhvInitializeChangingWaterLevel = 235 +id_bhvInvisibleObjectsUnderBridge = 235 --- @type BehaviorId -id_bhvTweesterSandParticle = 236 +id_bhvJetStream = 236 --- @type BehaviorId -id_bhvTweester = 237 +id_bhvJetStreamRingSpawner = 237 --- @type BehaviorId -id_bhvMerryGoRoundBooManager = 238 +id_bhvJetStreamWaterRing = 238 --- @type BehaviorId -id_bhvAnimatedTexture = 239 +id_bhvJrbFloatingBox = 239 --- @type BehaviorId -id_bhvBooInCastle = 240 +id_bhvJrbFloatingPlatform = 240 --- @type BehaviorId -id_bhvBooWithCage = 241 +id_bhvJrbSlidingBox = 241 --- @type BehaviorId -id_bhvBalconyBigBoo = 242 +id_bhvJumpingBox = 242 --- @type BehaviorId -id_bhvMerryGoRoundBigBoo = 243 +id_bhvKickableBoard = 243 --- @type BehaviorId -id_bhvGhostHuntBigBoo = 244 +id_bhvKingBobomb = 244 --- @type BehaviorId -id_bhvCourtyardBooTriplet = 245 +id_bhvKlepto = 245 --- @type BehaviorId -id_bhvBoo = 246 +id_bhvKoopa = 246 --- @type BehaviorId -id_bhvMerryGoRoundBoo = 247 +id_bhvKoopaFlag = 247 --- @type BehaviorId -id_bhvGhostHuntBoo = 248 +id_bhvKoopaRaceEndpoint = 248 --- @type BehaviorId -id_bhvHiddenStaircaseStep = 249 +id_bhvKoopaShell = 249 --- @type BehaviorId -id_bhvBooBossSpawnedBridge = 250 +id_bhvKoopaShellFlame = 250 --- @type BehaviorId -id_bhvBbhTiltingTrapPlatform = 251 +id_bhvKoopaShellUnderwater = 251 --- @type BehaviorId -id_bhvHauntedBookshelf = 252 +id_bhvLargeBomp = 252 --- @type BehaviorId -id_bhvMeshElevator = 253 +id_bhvLaunchDeathWarp = 253 --- @type BehaviorId -id_bhvMerryGoRound = 254 +id_bhvLaunchStarCollectWarp = 254 --- @type BehaviorId -id_bhvPlaysMusicTrackWhenTouched = 255 +id_bhvLeafParticleSpawner = 255 --- @type BehaviorId -id_bhvBetaBowserAnchor = 256 +id_bhvLllBowserPuzzle = 256 --- @type BehaviorId -id_bhvStaticCheckeredPlatform = 257 +id_bhvLllBowserPuzzlePiece = 257 --- @type BehaviorId -id_bhvUnused2A10 = 258 +id_bhvLllDrawbridge = 258 --- @type BehaviorId -id_bhvUnusedFakeStar = 259 +id_bhvLllDrawbridgeSpawner = 259 --- @type BehaviorId -id_bhvStaticObject = 260 +id_bhvLllFloatingWoodBridge = 260 --- @type BehaviorId -id_bhvUnused2A54 = 261 +id_bhvLllHexagonalMesh = 261 --- @type BehaviorId -id_bhvCastleFloorTrap = 262 +id_bhvLllMovingOctagonalMeshPlatform = 262 --- @type BehaviorId -id_bhvFloorTrapInCastle = 263 +id_bhvLllRollingLog = 263 --- @type BehaviorId -id_bhvTree = 264 +id_bhvLllRotatingBlockWithFireBars = 264 --- @type BehaviorId -id_bhvSparkle = 265 +id_bhvLllRotatingHexagonalPlatform = 265 --- @type BehaviorId -id_bhvSparkleSpawn = 266 +id_bhvLllRotatingHexagonalRing = 266 --- @type BehaviorId -id_bhvSparkleParticleSpawner = 267 +id_bhvLllRotatingHexFlame = 267 --- @type BehaviorId -id_bhvScuttlebug = 268 +id_bhvLllSinkingRectangularPlatform = 268 --- @type BehaviorId -id_bhvScuttlebugSpawn = 269 +id_bhvLllSinkingRockBlock = 269 --- @type BehaviorId -id_bhvWhompKingBoss = 270 +id_bhvLllSinkingSquarePlatforms = 270 --- @type BehaviorId -id_bhvSmallWhomp = 271 +id_bhvLllTiltingInvertedPyramid = 271 --- @type BehaviorId -id_bhvWaterSplash = 272 +id_bhvLllTumblingBridge = 272 --- @type BehaviorId -id_bhvWaterDroplet = 273 +id_bhvLllVolcanoFallingTrap = 273 --- @type BehaviorId -id_bhvWaterDropletSplash = 274 +id_bhvLllWoodPiece = 274 --- @type BehaviorId -id_bhvBubbleSplash = 275 +id_bhvMacroUkiki = 275 --- @type BehaviorId -id_bhvIdleWaterWave = 276 +id_bhvMadPiano = 276 --- @type BehaviorId -id_bhvObjectWaterSplash = 277 +id_bhvMantaRay = 277 --- @type BehaviorId -id_bhvShallowWaterWave = 278 +id_bhvMantaRayRingManager = 278 --- @type BehaviorId -id_bhvShallowWaterSplash = 279 +id_bhvMantaRayWaterRing = 279 --- @type BehaviorId -id_bhvObjectWaveTrail = 280 +id_bhvManyBlueFishSpawner = 280 --- @type BehaviorId -id_bhvWaveTrail = 281 +id_bhvMario = 281 --- @type BehaviorId -id_bhvTinyStrongWindParticle = 282 +id_bhvMenuButton = 282 --- @type BehaviorId -id_bhvStrongWindParticle = 283 +id_bhvMenuButtonManager = 283 --- @type BehaviorId -id_bhvSLSnowmanWind = 284 +id_bhvMerryGoRound = 284 --- @type BehaviorId -id_bhvSLWalkingPenguin = 285 +id_bhvMerryGoRoundBigBoo = 285 --- @type BehaviorId -id_bhvYellowBall = 286 +id_bhvMerryGoRoundBoo = 286 --- @type BehaviorId -id_bhvMario = 287 +id_bhvMerryGoRoundBooManager = 287 --- @type BehaviorId -id_bhvToadMessage = 288 +id_bhvMeshElevator = 288 --- @type BehaviorId -id_bhvUnlockDoorStar = 289 +id_bhvMessagePanel = 289 --- @type BehaviorId -id_bhvRandomAnimatedTexture = 290 +id_bhvMetalCap = 290 --- @type BehaviorId -id_bhvYellowBackgroundInMenu = 291 +id_bhvMips = 291 --- @type BehaviorId -id_bhvMenuButton = 292 +id_bhvMistCircParticleSpawner = 292 --- @type BehaviorId -id_bhvMenuButtonManager = 293 +id_bhvMistParticleSpawner = 293 --- @type BehaviorId -id_bhvActSelectorStarType = 294 +id_bhvMoatGrills = 294 --- @type BehaviorId -id_bhvActSelector = 295 +id_bhvMoneybag = 295 --- @type BehaviorId -id_bhvMovingYellowCoin = 296 +id_bhvMoneybagHidden = 296 --- @type BehaviorId -id_bhvMovingBlueCoin = 297 +id_bhvMontyMole = 297 --- @type BehaviorId -id_bhvBlueCoinSliding = 298 +id_bhvMontyMoleHole = 298 --- @type BehaviorId -id_bhvBlueCoinJumping = 299 +id_bhvMontyMoleRock = 299 --- @type BehaviorId -id_bhvSeaweed = 300 +id_bhvMovingBlueCoin = 300 --- @type BehaviorId -id_bhvSeaweedBundle = 301 +id_bhvMovingYellowCoin = 301 --- @type BehaviorId -id_bhvBobomb = 302 +id_bhvMrBlizzard = 302 --- @type BehaviorId -id_bhvBobombFuseSmoke = 303 +id_bhvMrBlizzardSnowball = 303 --- @type BehaviorId -id_bhvBobombBuddy = 304 +id_bhvMrI = 304 --- @type BehaviorId -id_bhvBobombBuddyOpensCannon = 305 +id_bhvMrIBlueCoin = 305 --- @type BehaviorId -id_bhvCannonClosed = 306 +id_bhvMrIBody = 306 --- @type BehaviorId -id_bhvWhirlpool = 307 +id_bhvMrIParticle = 307 --- @type BehaviorId -id_bhvJetStream = 308 +id_bhvNormalCap = 308 --- @type BehaviorId -id_bhvMessagePanel = 309 +id_bhvObjectBubble = 309 --- @type BehaviorId -id_bhvSignOnWall = 310 +id_bhvObjectWaterSplash = 310 --- @type BehaviorId -id_bhvHomingAmp = 311 +id_bhvObjectWaterWave = 311 --- @type BehaviorId -id_bhvCirclingAmp = 312 +id_bhvObjectWaveTrail = 312 --- @type BehaviorId -id_bhvButterfly = 313 +id_bhvOctagonalPlatformRotating = 313 --- @type BehaviorId -id_bhvHoot = 314 +id_bhvOneCoin = 314 --- @type BehaviorId -id_bhvBetaHoldableObject = 315 +id_bhvOpenableCageDoor = 315 --- @type BehaviorId -id_bhvCarrySomething1 = 316 +id_bhvOpenableGrill = 316 --- @type BehaviorId -id_bhvCarrySomething2 = 317 +id_bhvOrangeNumber = 317 --- @type BehaviorId -id_bhvCarrySomething3 = 318 +id_bhvPaintingDeathWarp = 318 --- @type BehaviorId -id_bhvCarrySomething4 = 319 +id_bhvPaintingStarCollectWarp = 319 --- @type BehaviorId -id_bhvCarrySomething5 = 320 +id_bhvPenguinBaby = 320 --- @type BehaviorId -id_bhvCarrySomething6 = 321 +id_bhvPenguinRaceFinishLine = 321 --- @type BehaviorId -id_bhvObjectBubble = 322 +id_bhvPenguinRaceShortcutCheck = 322 --- @type BehaviorId -id_bhvObjectWaterWave = 323 +id_bhvPillarBase = 323 --- @type BehaviorId -id_bhvExplosion = 324 +id_bhvPiranhaPlant = 324 --- @type BehaviorId -id_bhvBobombBullyDeathSmoke = 325 +id_bhvPiranhaPlantBubble = 325 --- @type BehaviorId -id_bhvSmoke = 326 +id_bhvPiranhaPlantWakingBubbles = 326 --- @type BehaviorId -id_bhvBobombExplosionBubble = 327 +id_bhvPitBowlingBall = 327 --- @type BehaviorId -id_bhvRespawner = 328 +id_bhvPlatformOnTrack = 328 --- @type BehaviorId -id_bhvSmallBully = 329 +id_bhvPlaysMusicTrackWhenTouched = 329 --- @type BehaviorId -id_bhvBigBully = 330 +id_bhvPlungeBubble = 330 --- @type BehaviorId -id_bhvBigBullyWithMinions = 331 +id_bhvPokey = 331 --- @type BehaviorId -id_bhvSmallChillBully = 332 +id_bhvPokeyBodyPart = 332 --- @type BehaviorId -id_bhvBigChillBully = 333 +id_bhvPoleGrabbing = 333 --- @type BehaviorId -id_bhvJetStreamRingSpawner = 334 +id_bhvPoundTinyStarParticle = 334 --- @type BehaviorId -id_bhvJetStreamWaterRing = 335 +id_bhvPunchTinyTriangle = 335 --- @type BehaviorId -id_bhvMantaRayWaterRing = 336 +id_bhvPurpleParticle = 336 --- @type BehaviorId -id_bhvMantaRayRingManager = 337 +id_bhvPurpleSwitchHiddenBoxes = 337 --- @type BehaviorId -id_bhvBowserBomb = 338 +id_bhvPushableMetalBox = 338 --- @type BehaviorId -id_bhvBowserBombExplosion = 339 +id_bhvPyramidElevator = 339 --- @type BehaviorId -id_bhvBowserBombSmoke = 340 +id_bhvPyramidElevatorTrajectoryMarkerBall = 340 --- @type BehaviorId -id_bhvCelebrationStar = 341 +id_bhvPyramidPillarTouchDetector = 341 --- @type BehaviorId -id_bhvCelebrationStarSparkle = 342 +id_bhvPyramidTop = 342 --- @type BehaviorId -id_bhvStarKeyCollectionPuffSpawner = 343 +id_bhvPyramidTopFragment = 343 --- @type BehaviorId -id_bhvLllDrawbridgeSpawner = 344 +id_bhvRacingPenguin = 344 --- @type BehaviorId -id_bhvLllDrawbridge = 345 +id_bhvRandomAnimatedTexture = 345 --- @type BehaviorId -id_bhvSmallBomp = 346 +id_bhvRecoveryHeart = 346 --- @type BehaviorId -id_bhvLargeBomp = 347 +id_bhvRedCoin = 347 --- @type BehaviorId -id_bhvWfSlidingPlatform = 348 +id_bhvRedCoinStarMarker = 348 --- @type BehaviorId -id_bhvMoneybag = 349 +id_bhvRespawner = 349 --- @type BehaviorId -id_bhvMoneybagHidden = 350 +id_bhvRockSolid = 350 --- @type BehaviorId -id_bhvPitBowlingBall = 351 +id_bhvRotatingCounterClockwise = 351 --- @type BehaviorId -id_bhvFreeBowlingBall = 352 +id_bhvRotatingExclamationMark = 352 --- @type BehaviorId -id_bhvBowlingBall = 353 +id_bhvRotatingPlatform = 353 --- @type BehaviorId -id_bhvTtmBowlingBallSpawner = 354 +id_bhvRrCruiserWing = 354 --- @type BehaviorId -id_bhvBobBowlingBallSpawner = 355 +id_bhvRrElevatorPlatform = 355 --- @type BehaviorId -id_bhvThiBowlingBallSpawner = 356 +id_bhvRrRotatingBridgePlatform = 356 --- @type BehaviorId -id_bhvRrCruiserWing = 357 +id_bhvSandSoundLoop = 357 --- @type BehaviorId -id_bhvSpindel = 358 +id_bhvScuttlebug = 358 --- @type BehaviorId -id_bhvSslMovingPyramidWall = 359 +id_bhvScuttlebugSpawn = 359 --- @type BehaviorId -id_bhvPyramidElevator = 360 +id_bhvSeaweed = 360 --- @type BehaviorId -id_bhvPyramidElevatorTrajectoryMarkerBall = 361 +id_bhvSeaweedBundle = 361 --- @type BehaviorId -id_bhvPyramidTop = 362 +id_bhvSeesawPlatform = 362 --- @type BehaviorId -id_bhvPyramidTopFragment = 363 +id_bhvShallowWaterSplash = 363 --- @type BehaviorId -id_bhvPyramidPillarTouchDetector = 364 +id_bhvShallowWaterWave = 364 --- @type BehaviorId -id_bhvWaterfallSoundLoop = 365 +id_bhvShipPart3 = 365 --- @type BehaviorId -id_bhvVolcanoSoundLoop = 366 +id_bhvSignOnWall = 366 --- @type BehaviorId -id_bhvCastleFlagWaving = 367 +id_bhvSingleCoinGetsSpawned = 367 --- @type BehaviorId -id_bhvBirdsSoundLoop = 368 +id_bhvSkeeter = 368 --- @type BehaviorId -id_bhvAmbientSounds = 369 +id_bhvSkeeterWave = 369 --- @type BehaviorId -id_bhvSandSoundLoop = 370 +id_bhvSlidingPlatform2 = 370 --- @type BehaviorId -id_bhvHiddenAt120Stars = 371 +id_bhvSlidingSnowMound = 371 --- @type BehaviorId -id_bhvSnowmansBottom = 372 +id_bhvSLSnowmanWind = 372 --- @type BehaviorId -id_bhvSnowmansHead = 373 +id_bhvSLWalkingPenguin = 373 --- @type BehaviorId -id_bhvSnowmansBodyCheckpoint = 374 +id_bhvSmallBomp = 374 --- @type BehaviorId -id_bhvBigSnowmanWhole = 375 +id_bhvSmallBully = 375 --- @type BehaviorId -id_bhvBigBoulder = 376 +id_bhvSmallChillBully = 376 --- @type BehaviorId -id_bhvBigBoulderGenerator = 377 +id_bhvSmallParticle = 377 --- @type BehaviorId -id_bhvWingCap = 378 +id_bhvSmallParticleBubbles = 378 --- @type BehaviorId -id_bhvMetalCap = 379 +id_bhvSmallParticleSnow = 379 --- @type BehaviorId -id_bhvNormalCap = 380 +id_bhvSmallPenguin = 380 --- @type BehaviorId -id_bhvVanishCap = 381 +id_bhvSmallPiranhaFlame = 381 --- @type BehaviorId -id_bhvStar = 382 +id_bhvSmallWaterWave = 382 --- @type BehaviorId -id_bhvStarSpawnCoordinates = 383 +id_bhvSmallWaterWave398 = 383 --- @type BehaviorId -id_bhvHiddenRedCoinStar = 384 +id_bhvSmallWhomp = 384 --- @type BehaviorId -id_bhvRedCoin = 385 +id_bhvSmoke = 385 --- @type BehaviorId -id_bhvBowserCourseRedCoinStar = 386 +id_bhvSnowBall = 386 --- @type BehaviorId -id_bhvHiddenStar = 387 +id_bhvSnowmansBodyCheckpoint = 387 --- @type BehaviorId -id_bhvHiddenStarTrigger = 388 +id_bhvSnowmansBottom = 388 --- @type BehaviorId -id_bhvTtmRollingLog = 389 +id_bhvSnowmansHead = 389 --- @type BehaviorId -id_bhvLllVolcanoFallingTrap = 390 +id_bhvSnowMoundSpawn = 390 --- @type BehaviorId -id_bhvLllRollingLog = 391 +id_bhvSnowParticleSpawner = 391 --- @type BehaviorId -id_bhv1upWalking = 392 +id_bhvSnufit = 392 --- @type BehaviorId -id_bhv1upRunningAway = 393 +id_bhvSnufitBalls = 393 --- @type BehaviorId -id_bhv1upSliding = 394 +id_bhvSoundSpawner = 394 --- @type BehaviorId -id_bhv1Up = 395 +id_bhvSparkle = 395 --- @type BehaviorId -id_bhv1upJumpOnApproach = 396 +id_bhvSparkleParticleSpawner = 396 --- @type BehaviorId -id_bhvHidden1up = 397 +id_bhvSparkleSpawn = 397 --- @type BehaviorId -id_bhvHidden1upTrigger = 398 +id_bhvSpawnedStar = 398 --- @type BehaviorId -id_bhvHidden1upInPole = 399 +id_bhvSpawnedStarNoLevelExit = 399 --- @type BehaviorId -id_bhvHidden1upInPoleTrigger = 400 +id_bhvSpinAirborneCircleWarp = 400 --- @type BehaviorId -id_bhvHidden1upInPoleSpawner = 401 +id_bhvSpinAirborneWarp = 401 --- @type BehaviorId -id_bhvControllablePlatform = 402 +id_bhvSpindel = 402 --- @type BehaviorId -id_bhvControllablePlatformSub = 403 +id_bhvSpindrift = 403 --- @type BehaviorId -id_bhvBreakableBoxSmall = 404 +id_bhvSpiny = 404 --- @type BehaviorId -id_bhvSlidingSnowMound = 405 +id_bhvSquarishPathMoving = 405 --- @type BehaviorId -id_bhvSnowMoundSpawn = 406 +id_bhvSquarishPathParent = 406 --- @type BehaviorId -id_bhvWdwSquareFloatingPlatform = 407 +id_bhvSquishablePlatform = 407 --- @type BehaviorId -id_bhvWdwRectangularFloatingPlatform = 408 +id_bhvSslMovingPyramidWall = 408 --- @type BehaviorId -id_bhvJrbFloatingPlatform = 409 +id_bhvStar = 409 --- @type BehaviorId -id_bhvArrowLift = 410 +id_bhvStarDoor = 410 --- @type BehaviorId -id_bhvOrangeNumber = 411 +id_bhvStarKeyCollectionPuffSpawner = 411 --- @type BehaviorId -id_bhvMantaRay = 412 +id_bhvStarSpawnCoordinates = 412 --- @type BehaviorId -id_bhvFallingPillar = 413 +id_bhvStaticCheckeredPlatform = 413 --- @type BehaviorId -id_bhvFallingPillarHitbox = 414 +id_bhvStaticObject = 414 --- @type BehaviorId -id_bhvPillarBase = 415 +id_bhvStrongWindParticle = 415 --- @type BehaviorId -id_bhvJrbFloatingBox = 416 +id_bhvStub = 416 --- @type BehaviorId -id_bhvDecorativePendulum = 417 +id_bhvStub1D0C = 417 --- @type BehaviorId -id_bhvTreasureChestsShip = 418 +id_bhvStub1D70 = 418 --- @type BehaviorId -id_bhvTreasureChestsJrb = 419 +id_bhvSunkenShipPart = 419 --- @type BehaviorId -id_bhvTreasureChests = 420 +id_bhvSunkenShipPart2 = 420 --- @type BehaviorId -id_bhvTreasureChestBottom = 421 +id_bhvSunkenShipSetRotation = 421 --- @type BehaviorId -id_bhvTreasureChestTop = 422 +id_bhvSushiShark = 422 --- @type BehaviorId -id_bhvMips = 423 +id_bhvSushiSharkCollisionChild = 423 --- @type BehaviorId -id_bhvYoshi = 424 +id_bhvSwimmingWarp = 424 --- @type BehaviorId -id_bhvKoopa = 425 +id_bhvSwingPlatform = 425 --- @type BehaviorId -id_bhvKoopaRaceEndpoint = 426 +id_bhvSwoop = 426 --- @type BehaviorId -id_bhvKoopaFlag = 427 +id_bhvTankFishGroup = 427 --- @type BehaviorId -id_bhvPokey = 428 +id_bhvTemporaryYellowCoin = 428 --- @type BehaviorId -id_bhvPokeyBodyPart = 429 +id_bhvTenCoinsSpawn = 429 --- @type BehaviorId -id_bhvSwoop = 430 +id_bhvThiBowlingBallSpawner = 430 --- @type BehaviorId -id_bhvFlyGuy = 431 +id_bhvThiHugeIslandTop = 431 --- @type BehaviorId -id_bhvGoomba = 432 +id_bhvThiTinyIslandTop = 432 --- @type BehaviorId -id_bhvGoombaTripletSpawner = 433 +id_bhvThreeCoinsSpawn = 433 --- @type BehaviorId -id_bhvChainChomp = 434 +id_bhvThwomp = 434 --- @type BehaviorId -id_bhvChainChompChainPart = 435 +id_bhvThwomp2 = 435 --- @type BehaviorId -id_bhvWoodenPost = 436 +id_bhvTiltingBowserLavaPlatform = 436 --- @type BehaviorId -id_bhvChainChompGate = 437 +id_bhvTinyStrongWindParticle = 437 --- @type BehaviorId -id_bhvWigglerHead = 438 +id_bhvToadMessage = 438 --- @type BehaviorId -id_bhvWigglerBody = 439 +id_bhvTower = 439 --- @type BehaviorId -id_bhvEnemyLakitu = 440 +id_bhvTowerDoor = 440 --- @type BehaviorId -id_bhvCameraLakitu = 441 +id_bhvTowerPlatformGroup = 441 --- @type BehaviorId -id_bhvCloud = 442 +id_bhvToxBox = 442 --- @type BehaviorId -id_bhvCloudPart = 443 +id_bhvTrackBall = 443 --- @type BehaviorId -id_bhvSpiny = 444 +id_bhvTreasureChestBottom = 444 --- @type BehaviorId -id_bhvMontyMole = 445 +id_bhvTreasureChests = 445 --- @type BehaviorId -id_bhvMontyMoleHole = 446 +id_bhvTreasureChestsJrb = 446 --- @type BehaviorId -id_bhvMontyMoleRock = 447 +id_bhvTreasureChestsShip = 447 --- @type BehaviorId -id_bhvPlatformOnTrack = 448 +id_bhvTreasureChestTop = 448 --- @type BehaviorId -id_bhvTrackBall = 449 +id_bhvTree = 449 --- @type BehaviorId -id_bhvSeesawPlatform = 450 +id_bhvTreeLeaf = 450 --- @type BehaviorId -id_bhvFerrisWheelAxle = 451 +id_bhvTreeSnow = 451 --- @type BehaviorId -id_bhvFerrisWheelPlatform = 452 +id_bhvTriangleParticleSpawner = 452 --- @type BehaviorId -id_bhvWaterBombSpawner = 453 +id_bhvTripletButterfly = 453 --- @type BehaviorId -id_bhvWaterBomb = 454 +id_bhvTTC2DRotator = 454 --- @type BehaviorId -id_bhvWaterBombShadow = 455 +id_bhvTTCCog = 455 --- @type BehaviorId -id_bhvTTCRotatingSolid = 456 +id_bhvTTCElevator = 456 --- @type BehaviorId -id_bhvTTCPendulum = 457 +id_bhvTTCMovingBar = 457 --- @type BehaviorId -id_bhvTTCTreadmill = 458 +id_bhvTTCPendulum = 458 --- @type BehaviorId -id_bhvTTCMovingBar = 459 +id_bhvTTCPitBlock = 459 --- @type BehaviorId -id_bhvTTCCog = 460 +id_bhvTTCRotatingSolid = 460 --- @type BehaviorId -id_bhvTTCPitBlock = 461 +id_bhvTTCSpinner = 461 --- @type BehaviorId -id_bhvTTCElevator = 462 +id_bhvTTCTreadmill = 462 --- @type BehaviorId -id_bhvTTC2DRotator = 463 +id_bhvTtmBowlingBallSpawner = 463 --- @type BehaviorId -id_bhvTTCSpinner = 464 +id_bhvTtmRollingLog = 464 --- @type BehaviorId -id_bhvMrBlizzard = 465 +id_bhvTumblingBridgePlatform = 465 --- @type BehaviorId -id_bhvMrBlizzardSnowball = 466 +id_bhvTuxiesMother = 466 --- @type BehaviorId -id_bhvSlidingPlatform2 = 467 +id_bhvTweester = 467 --- @type BehaviorId -id_bhvOctagonalPlatformRotating = 468 +id_bhvTweesterSandParticle = 468 --- @type BehaviorId -id_bhvAnimatesOnFloorSwitchPress = 469 +id_bhvUkiki = 469 --- @type BehaviorId -id_bhvActivatedBackAndForthPlatform = 470 +id_bhvUkikiCage = 470 --- @type BehaviorId -id_bhvRecoveryHeart = 471 +id_bhvUkikiCageChild = 471 --- @type BehaviorId -id_bhvWaterBombCannon = 472 +id_bhvUkikiCageStar = 472 --- @type BehaviorId -id_bhvCannonBarrelBubbles = 473 +id_bhvUnagi = 473 --- @type BehaviorId -id_bhvUnagi = 474 +id_bhvUnagiSubobject = 474 --- @type BehaviorId -id_bhvUnagiSubobject = 475 +id_bhvUnlockDoorStar = 475 --- @type BehaviorId -id_bhvDorrie = 476 +id_bhvUnused05A8 = 476 --- @type BehaviorId -id_bhvHauntedChair = 477 +id_bhvUnused0DFC = 477 --- @type BehaviorId -id_bhvMadPiano = 478 +id_bhvUnused1820 = 478 --- @type BehaviorId -id_bhvFlyingBookend = 479 +id_bhvUnused1F30 = 479 --- @type BehaviorId -id_bhvBookendSpawn = 480 +id_bhvUnused20E0 = 480 --- @type BehaviorId -id_bhvHauntedBookshelfManager = 481 +id_bhvUnused2A10 = 481 --- @type BehaviorId -id_bhvBookSwitch = 482 +id_bhvUnused2A54 = 482 --- @type BehaviorId -id_bhvFirePiranhaPlant = 483 +id_bhvUnusedFakeStar = 483 --- @type BehaviorId -id_bhvSmallPiranhaFlame = 484 +id_bhvUnusedParticleSpawn = 484 --- @type BehaviorId -id_bhvFireSpitter = 485 +id_bhvUnusedPoundablePlatform = 485 --- @type BehaviorId -id_bhvFlyguyFlame = 486 +id_bhvVanishCap = 486 --- @type BehaviorId -id_bhvSnufit = 487 +id_bhvVertStarParticleSpawner = 487 --- @type BehaviorId -id_bhvSnufitBalls = 488 +id_bhvVolcanoFlames = 488 --- @type BehaviorId -id_bhvHorizontalGrindel = 489 +id_bhvVolcanoSoundLoop = 489 --- @type BehaviorId -id_bhvEyerokBoss = 490 +id_bhvWallTinyStarParticle = 490 --- @type BehaviorId -id_bhvEyerokHand = 491 +id_bhvWarp = 491 --- @type BehaviorId -id_bhvKlepto = 492 +id_bhvWarpPipe = 492 --- @type BehaviorId -id_bhvBird = 493 +id_bhvWaterAirBubble = 493 --- @type BehaviorId -id_bhvRacingPenguin = 494 +id_bhvWaterBomb = 494 --- @type BehaviorId -id_bhvPenguinRaceFinishLine = 495 +id_bhvWaterBombCannon = 495 --- @type BehaviorId -id_bhvPenguinRaceShortcutCheck = 496 +id_bhvWaterBombShadow = 496 --- @type BehaviorId -id_bhvCoffinSpawner = 497 +id_bhvWaterBombSpawner = 497 --- @type BehaviorId -id_bhvCoffin = 498 +id_bhvWaterDroplet = 498 --- @type BehaviorId -id_bhvClamShell = 499 +id_bhvWaterDropletSplash = 499 --- @type BehaviorId -id_bhvSkeeter = 500 +id_bhvWaterfallSoundLoop = 500 --- @type BehaviorId -id_bhvSkeeterWave = 501 +id_bhvWaterLevelDiamond = 501 --- @type BehaviorId -id_bhvSwingPlatform = 502 +id_bhvWaterLevelPillar = 502 --- @type BehaviorId -id_bhvDonutPlatformSpawner = 503 +id_bhvWaterMist = 503 --- @type BehaviorId -id_bhvDonutPlatform = 504 +id_bhvWaterMist2 = 504 --- @type BehaviorId -id_bhvDDDPole = 505 +id_bhvWaterSplash = 505 --- @type BehaviorId -id_bhvRedCoinStarMarker = 506 +id_bhvWaveTrail = 506 --- @type BehaviorId -id_bhvTripletButterfly = 507 +id_bhvWdwExpressElevator = 507 --- @type BehaviorId -id_bhvBubba = 508 +id_bhvWdwExpressElevatorPlatform = 508 --- @type BehaviorId -id_bhvBeginningLakitu = 509 +id_bhvWdwRectangularFloatingPlatform = 509 --- @type BehaviorId -id_bhvBeginningPeach = 510 +id_bhvWdwSquareFloatingPlatform = 510 --- @type BehaviorId -id_bhvEndBirds1 = 511 +id_bhvWfBreakableWallLeft = 511 --- @type BehaviorId -id_bhvEndBirds2 = 512 +id_bhvWfBreakableWallRight = 512 --- @type BehaviorId -id_bhvIntroScene = 513 +id_bhvWfElevatorTowerPlatform = 513 --- @type BehaviorId -id_bhv_max_count = 514 +id_bhvWfRotatingWoodenPlatform = 514 + +--- @type BehaviorId +id_bhvWfSlidingPlatform = 515 + +--- @type BehaviorId +id_bhvWfSlidingTowerPlatform = 516 + +--- @type BehaviorId +id_bhvWfSolidTowerPlatform = 517 + +--- @type BehaviorId +id_bhvWfTumblingBridge = 518 + +--- @type BehaviorId +id_bhvWhirlpool = 519 + +--- @type BehaviorId +id_bhvWhitePuff1 = 520 + +--- @type BehaviorId +id_bhvWhitePuff2 = 521 + +--- @type BehaviorId +id_bhvWhitePuffExplosion = 522 + +--- @type BehaviorId +id_bhvWhitePuffSmoke = 523 + +--- @type BehaviorId +id_bhvWhitePuffSmoke2 = 524 + +--- @type BehaviorId +id_bhvWhompKingBoss = 525 + +--- @type BehaviorId +id_bhvWigglerBody = 526 + +--- @type BehaviorId +id_bhvWigglerHead = 527 + +--- @type BehaviorId +id_bhvWind = 528 + +--- @type BehaviorId +id_bhvWingCap = 529 + +--- @type BehaviorId +id_bhvWoodenPost = 530 + +--- @type BehaviorId +id_bhvYellowBackgroundInMenu = 531 + +--- @type BehaviorId +id_bhvYellowBall = 532 + +--- @type BehaviorId +id_bhvYellowCoin = 533 + +--- @type BehaviorId +id_bhvYoshi = 534 + +--- @type BehaviorId +id_bhv_max_count = 535 --- @type integer CAMERA_MODE_8_DIRECTIONS = 0x0E diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 6e97e6add..bb8515b46 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -6,12 +6,30 @@ function get_behavior_from_id(id) -- ... end +--- @param id BehaviorId +--- @return string +function get_behavior_name_from_id(id) + -- ... +end + --- @param behavior Pointer_BehaviorScript --- @return BehaviorId function get_id_from_behavior(behavior) -- ... end +--- @param name string +--- @return BehaviorId +function get_id_from_behavior_name(name) + -- ... +end + +--- @param behavior Pointer_BehaviorScript +--- @return BehaviorId +function get_id_from_vanilla_behavior(behavior) + -- ... +end + --- @param c Camera --- @param goal number --- @param inc number @@ -4135,6 +4153,12 @@ function allocate_mario_action(actFlags) -- ... end +--- @param index integer +--- @return number +function get_environment_region(index) + -- ... +end + --- @param m MarioState --- @param index integer --- @return number @@ -4171,6 +4195,13 @@ function hud_show() -- ... end +--- @param index integer +--- @param value integer +--- @return nil +function set_environment_region(index, value) + -- ... +end + --- @param name string --- @return Pointer_LevelScript function smlua_level_util_get(name) diff --git a/credits.txt b/credits.txt index e8a12f5b5..8f8891dc2 100644 --- a/credits.txt +++ b/credits.txt @@ -9,7 +9,9 @@ Developers: theclashingfritz Contributors: + Agent X AloXado320 + Altiami Amy54Desu anzz1 Avery diff --git a/data/dynos_col_load.cpp b/data/dynos_col_load.cpp new file mode 100644 index 000000000..720e5e9a0 --- /dev/null +++ b/data/dynos_col_load.cpp @@ -0,0 +1,37 @@ +#include "dynos.cpp.h" + +// +// Load collision from binary +// + +static DataNode* LoadCollisionData(FILE *aFile) { + DataNode *_Node = New>(); + + // Name + _Node->mName.Read(aFile); + + // Data + _Node->mSize = ReadBytes(aFile); + _Node->mData = New(_Node->mSize); + for (u32 i = 0; i != _Node->mSize; ++i) { + _Node->mData[i] = ReadBytes(aFile); + } + + return _Node; +} + +DataNode* DynOS_Col_LoadFromBinary(const SysPath &aPackFolder, const char *aCollisionName) { + // Load data from binary file + DataNode* collisionNode = NULL; + SysPath _Filename = fstring("%s/%s.col", aPackFolder.begin(), aCollisionName); + FILE *_File = fopen(_Filename.c_str(), "rb"); + if (_File) { + u8 type = ReadBytes(_File); + if (type == DATA_TYPE_COLLISION) { + collisionNode = LoadCollisionData(_File); + } + fclose(_File); + } + + return collisionNode; +} diff --git a/data/dynos_col_write.cpp b/data/dynos_col_write.cpp new file mode 100644 index 000000000..e18b5026c --- /dev/null +++ b/data/dynos_col_write.cpp @@ -0,0 +1,32 @@ +#include "dynos.cpp.h" + +// +// Collisions +// + +static void WriteCollisionData(FILE* aFile, GfxData* aGfxData, DataNode *aNode) { + if (!aNode->mData) return; + + // Name + WriteBytes(aFile, DATA_TYPE_COLLISION); + aNode->mName.Write(aFile); + + // Data + WriteBytes(aFile, aNode->mSize); + for (u32 i = 0; i != aNode->mSize; ++i) { + WriteBytes(aFile, aNode->mData[i]); + } +} + +bool DynOS_Col_WriteBinary(const SysPath &aOutputFilename, GfxData *aGfxData, DataNode* _Node) { + FILE *_File = fopen(aOutputFilename.c_str(), "wb"); + if (!_File) { + PrintError(" ERROR: Unable to create file \"%s\"", aOutputFilename.c_str()); + return false; + } + + WriteCollisionData(_File, aGfxData, _Node); + + fclose(_File); + return true; +} diff --git a/data/dynos_gfx_write.cpp b/data/dynos_gfx_write.cpp new file mode 100644 index 000000000..6b341a10e --- /dev/null +++ b/data/dynos_gfx_write.cpp @@ -0,0 +1,322 @@ +#include "dynos.cpp.h" + +// +// Pointers +// + +typedef Pair PointerData; +static PointerData GetDataFromPointer(const void* aPtr, GfxData* aGfxData) { + + // Lights + for (auto& _Node : aGfxData->mLights) { + if (&_Node->mData->l[0] == aPtr) { // Light *, not Lights1 * + return { _Node->mName, 1 }; + } + if (&_Node->mData->a == aPtr) { // Ambient *, not Lights1 * + return { _Node->mName, 2 }; + } + } + + // Textures + for (auto& _Node : aGfxData->mTextures) { + if (_Node == aPtr) { + return { _Node->mName, 0 }; + } + } + + // Display lists + for (auto& _Node : aGfxData->mDisplayLists) { + if (_Node == aPtr) { + return { _Node->mName, 0 }; + } + } + + // Geo layouts + for (auto& _Node : aGfxData->mGeoLayouts) { + if (_Node->mData == aPtr) { + return { _Node->mName, 0 }; + } + } + + // Vertices + String _VtxArrayName = ""; + uintptr_t _VtxArrayStart = 0; + for (auto& _Node : aGfxData->mVertices) { + if (_Node->mData == aPtr) { + return { _Node->mName, 0 }; + } + if ((uintptr_t)_Node->mData <= (uintptr_t)aPtr && + (uintptr_t)_Node->mData >= _VtxArrayStart) { + _VtxArrayName = _Node->mName; + _VtxArrayStart = (uintptr_t)_Node->mData; + } + } + return { _VtxArrayName, (u32)((const Vtx*)aPtr - (const Vtx*)_VtxArrayStart) }; +} + +static void WritePointer(FILE* aFile, const void* aPtr, GfxData* aGfxData) { + + // NULL + if (!aPtr) { + WriteBytes(aFile, 0); + return; + } + + // Geo function + s32 _GeoFunctionIndex = DynOS_Geo_GetFunctionIndex(aPtr); + if (_GeoFunctionIndex != -1) { + WriteBytes(aFile, FUNCTION_CODE); + WriteBytes(aFile, _GeoFunctionIndex); + return; + } + + // Pointer + PointerData _PtrData = GetDataFromPointer(aPtr, aGfxData); + WriteBytes(aFile, POINTER_CODE); + _PtrData.first.Write(aFile); + WriteBytes(aFile, _PtrData.second); +} + +// +// Lights +// + +static void WriteLightData(FILE* aFile, GfxData* aGfxData, DataNode *aNode) { + if (!aNode->mData) return; + + // Header + WriteBytes(aFile, DATA_TYPE_LIGHT); + aNode->mName.Write(aFile); + + // Data + WriteBytes(aFile, *aNode->mData); +} + +// +// Textures +// + +static void WriteTextureData(FILE* aFile, GfxData* aGfxData, DataNode *aNode) { + if (!aNode->mData) return; + + // Header + WriteBytes(aFile, DATA_TYPE_TEXTURE); + aNode->mName.Write(aFile); + + // Data + aNode->mData->mPngData.Write(aFile); +} + +// +// Vertices +// + +static void WriteVertexData(FILE* aFile, GfxData* aGfxData, DataNode *aNode) { + if (!aNode->mData) return; + + // Header + WriteBytes(aFile, DATA_TYPE_VERTEX); + aNode->mName.Write(aFile); + + // Data + WriteBytes(aFile, aNode->mSize); + for (u32 i = 0; i != aNode->mSize; ++i) { + WriteBytes(aFile, aNode->mData[i].n.ob[0]); + WriteBytes(aFile, aNode->mData[i].n.ob[1]); + WriteBytes(aFile, aNode->mData[i].n.ob[2]); + WriteBytes(aFile, aNode->mData[i].n.flag); + WriteBytes(aFile, aNode->mData[i].n.tc[0]); + WriteBytes(aFile, aNode->mData[i].n.tc[1]); + WriteBytes (aFile, aNode->mData[i].n.n[0]); + WriteBytes (aFile, aNode->mData[i].n.n[1]); + WriteBytes (aFile, aNode->mData[i].n.n[2]); + WriteBytes (aFile, aNode->mData[i].n.a); + } +} + +// +// Display lists +// + +static void WriteDisplayListData(FILE *aFile, GfxData *aGfxData, DataNode *aNode) { + if (!aNode->mData) return; + + // Header + WriteBytes(aFile, DATA_TYPE_DISPLAY_LIST); + aNode->mName.Write(aFile); + + // Data + WriteBytes(aFile, aNode->mSize); + for (u32 i = 0; i != aNode->mSize; ++i) { + Gfx *_Head = &aNode->mData[i]; + if (aGfxData->mPointerList.Find((void *) _Head) != -1) { + WriteBytes(aFile, _Head->words.w0); + WritePointer(aFile, (const void *) _Head->words.w1, aGfxData); + } else { + WriteBytes(aFile, _Head->words.w0); + WriteBytes(aFile, _Head->words.w1); + } + } +} + +// +// Geo layouts +// + +static void WriteGeoLayoutData(FILE *aFile, GfxData *aGfxData, DataNode *aNode) { + if (!aNode->mData) return; + + // Header + WriteBytes(aFile, DATA_TYPE_GEO_LAYOUT); + aNode->mName.Write(aFile); + + // Data + WriteBytes(aFile, aNode->mSize); + for (u32 i = 0; i != aNode->mSize; ++i) { + GeoLayout *_Head = &aNode->mData[i]; + if (aGfxData->mPointerList.Find((void *) _Head) != -1) { + WritePointer(aFile, (const void *) (*_Head), aGfxData); + } else { + WriteBytes(aFile, *((u32 *) _Head)); + } + } +} + +// +// Animation data +// + +static void WriteAnimationData(FILE* aFile, GfxData* aGfxData) { + for (auto& _Node : aGfxData->mAnimations) { + + // Value buffer + s32 _ValueBufferIdx = aGfxData->mAnimValues.FindIf([&_Node](const AnimBuffer *aAnimBuffer) { return aAnimBuffer->first == _Node->mData->mValues.first; }); + if (_ValueBufferIdx == -1) { + continue; + } + + // Index buffer + s32 _IndexBufferIdx = aGfxData->mAnimIndices.FindIf([&_Node](const AnimBuffer *aAnimBuffer) { return aAnimBuffer->first == _Node->mData->mIndex.first; }); + if (_IndexBufferIdx == -1) { + continue; + } + + // Unk0A buffer + s32 _Unk0ABufferIdx = aGfxData->mAnimIndices.FindIf([&_Node](const AnimBuffer *aAnimBuffer) { return aAnimBuffer->first == _Node->mData->mUnk0A.first; }); + if (_Unk0ABufferIdx == -1) { + continue; + } + + // Header + WriteBytes(aFile, DATA_TYPE_ANIMATION); + _Node->mName.Write(aFile); + + // Data + WriteBytes(aFile, _Node->mData->mFlags); + WriteBytes(aFile, _Node->mData->mUnk02); + WriteBytes(aFile, _Node->mData->mUnk04); + WriteBytes(aFile, _Node->mData->mUnk06); + WriteBytes(aFile, _Node->mData->mUnk08); + WriteBytes(aFile, (aGfxData->mAnimIndices[_Unk0ABufferIdx]->second.Count() / 6) - 1); + WriteBytes(aFile, _Node->mData->mLength); + aGfxData->mAnimValues[_ValueBufferIdx]->second.Write(aFile); + aGfxData->mAnimIndices[_IndexBufferIdx]->second.Write(aFile); + } +} + +// +// Animation table +// + +static void WriteAnimationTable(FILE* aFile, GfxData* aGfxData) { + for (auto& _AnimName : aGfxData->mAnimationTable) { + + // Header + WriteBytes(aFile, DATA_TYPE_ANIMATION_TABLE); + + // Data + _AnimName.first.Write(aFile); + } +} + +// +// Write +// + +bool DynOS_Gfx_WriteBinary(const SysPath &aOutputFilename, GfxData *aGfxData) { + FILE *_File = fopen(aOutputFilename.c_str(), "wb"); + if (!_File) { + PrintError(" ERROR: Unable to create file \"%s\"", aOutputFilename.c_str()); + return false; + } + + for (u64 i = 0; i != aGfxData->mLoadIndex; ++i) { + for (auto &_Node : aGfxData->mLights) { + if (_Node->mLoadIndex == i) { + WriteLightData(_File, aGfxData, _Node); + } + } + for (auto &_Node : aGfxData->mTextures) { + if (_Node->mLoadIndex == i) { + WriteTextureData(_File, aGfxData, _Node); + } + } + for (auto &_Node : aGfxData->mVertices) { + if (_Node->mLoadIndex == i) { + WriteVertexData(_File, aGfxData, _Node); + } + } + for (auto &_Node : aGfxData->mDisplayLists) { + if (_Node->mLoadIndex == i) { + WriteDisplayListData(_File, aGfxData, _Node); + } + } + for (auto &_Node : aGfxData->mGeoLayouts) { + if (_Node->mLoadIndex == i) { + WriteGeoLayoutData(_File, aGfxData, _Node); + } + } + } + WriteAnimationData(_File, aGfxData); + WriteAnimationTable(_File, aGfxData); + fclose(_File); + return true; +} + +// +// Free +// + +void DynOS_Gfx_Free(GfxData* aGfxData) { + if (aGfxData) { + for (auto& _Node : aGfxData->mLights) { + Delete(_Node->mData); + Delete(_Node); + } + for (auto& _Node : aGfxData->mTextures) { + Delete(_Node->mData); + Delete(_Node); + } + for (auto& _Node : aGfxData->mVertices) { + Delete(_Node->mData); + Delete(_Node); + } + for (auto& _Node : aGfxData->mDisplayLists) { + Delete(_Node->mData); + Delete(_Node); + } + for (auto& _Node : aGfxData->mGeoLayouts) { + Delete(_Node->mData); + Delete(_Node); + } + for (auto& _Node : aGfxData->mAnimations) { + Delete(_Node->mData); + Delete(_Node); + } + for (auto& _Node : aGfxData->mCollisions) { + Delete(_Node->mData); + Delete(_Node); + } + Delete(aGfxData); + } +} diff --git a/docs/lua/constants.md b/docs/lua/constants.md index e38d2a841..2d411284c 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -53,521 +53,542 @@ ### [enum BehaviorId](#BehaviorId) | Identifier | Value | | :--------- | :---- | -| id_bhvStarDoor | 0 | -| id_bhvMrI | 1 | -| id_bhvMrIBody | 2 | -| id_bhvMrIParticle | 3 | -| id_bhvPurpleParticle | 4 | -| id_bhvGiantPole | 5 | -| id_bhvPoleGrabbing | 6 | -| id_bhvThiHugeIslandTop | 7 | -| id_bhvThiTinyIslandTop | 8 | -| id_bhvCapSwitchBase | 9 | -| id_bhvCapSwitch | 10 | -| id_bhvKingBobomb | 11 | -| id_bhvBobombAnchorMario | 12 | -| id_bhvBetaChestBottom | 13 | -| id_bhvBetaChestLid | 14 | -| id_bhvBubbleParticleSpawner | 15 | -| id_bhvBubbleMaybe | 16 | -| id_bhvBubblePlayer | 17 | -| id_bhvSmallWaterWave | 18 | -| id_bhvWaterAirBubble | 19 | -| id_bhvSmallParticle | 20 | -| id_bhvPlungeBubble | 21 | -| id_bhvSmallParticleSnow | 22 | -| id_bhvSmallParticleBubbles | 23 | -| id_bhvFishGroup | 24 | -| id_bhvCannon | 25 | -| id_bhvCannonBarrel | 26 | -| id_bhvCannonBaseUnused | 27 | -| id_bhvChuckya | 28 | -| id_bhvChuckyaAnchorMario | 29 | -| id_bhvUnused05A8 | 30 | -| id_bhvRotatingPlatform | 31 | -| id_bhvTower | 32 | -| id_bhvBulletBillCannon | 33 | -| id_bhvWfBreakableWallRight | 34 | -| id_bhvWfBreakableWallLeft | 35 | -| id_bhvKickableBoard | 36 | -| id_bhvTowerDoor | 37 | -| id_bhvRotatingCounterClockwise | 38 | -| id_bhvWfRotatingWoodenPlatform | 39 | -| id_bhvKoopaShellUnderwater | 40 | -| id_bhvExitPodiumWarp | 41 | -| id_bhvFadingWarp | 42 | -| id_bhvWarp | 43 | -| id_bhvWarpPipe | 44 | -| id_bhvWhitePuffExplosion | 45 | -| id_bhvSpawnedStar | 46 | -| id_bhvSpawnedStarNoLevelExit | 47 | -| id_bhvMrIBlueCoin | 48 | -| id_bhvCoinInsideBoo | 49 | -| id_bhvCoinFormationSpawn | 50 | -| id_bhvCoinFormation | 51 | -| id_bhvOneCoin | 52 | -| id_bhvYellowCoin | 53 | -| id_bhvTemporaryYellowCoin | 54 | -| id_bhvThreeCoinsSpawn | 55 | -| id_bhvTenCoinsSpawn | 56 | -| id_bhvSingleCoinGetsSpawned | 57 | -| id_bhvCoinSparkles | 58 | -| id_bhvGoldenCoinSparkles | 59 | -| id_bhvWallTinyStarParticle | 60 | -| id_bhvVertStarParticleSpawner | 61 | -| id_bhvPoundTinyStarParticle | 62 | -| id_bhvHorStarParticleSpawner | 63 | -| id_bhvPunchTinyTriangle | 64 | -| id_bhvTriangleParticleSpawner | 65 | -| id_bhvDoorWarp | 66 | -| id_bhvDoor | 67 | -| id_bhvGrindel | 68 | -| id_bhvThwomp2 | 69 | -| id_bhvThwomp | 70 | -| id_bhvTumblingBridgePlatform | 71 | -| id_bhvWfTumblingBridge | 72 | -| id_bhvBbhTumblingBridge | 73 | -| id_bhvLllTumblingBridge | 74 | -| id_bhvFlame | 75 | -| id_bhvAnotherElavator | 76 | -| id_bhvRrElevatorPlatform | 77 | -| id_bhvHmcElevatorPlatform | 78 | -| id_bhvWaterMist | 79 | -| id_bhvBreathParticleSpawner | 80 | -| id_bhvBreakBoxTriangle | 81 | -| id_bhvWaterMist2 | 82 | -| id_bhvUnused0DFC | 83 | -| id_bhvMistCircParticleSpawner | 84 | -| id_bhvDirtParticleSpawner | 85 | -| id_bhvSnowParticleSpawner | 86 | -| id_bhvWind | 87 | -| id_bhvEndToad | 88 | -| id_bhvEndPeach | 89 | -| id_bhvUnusedParticleSpawn | 90 | -| id_bhvUkiki | 91 | -| id_bhvUkikiCageChild | 92 | -| id_bhvUkikiCageStar | 93 | -| id_bhvUkikiCage | 94 | -| id_bhvBitfsSinkingPlatforms | 95 | -| id_bhvBitfsSinkingCagePlatform | 96 | -| id_bhvDddMovingPole | 97 | -| id_bhvBitfsTiltingInvertedPyramid | 98 | -| id_bhvSquishablePlatform | 99 | -| id_bhvCutOutObject | 100 | -| id_bhvBetaMovingFlames | 101 | -| id_bhvRrRotatingBridgePlatform | 102 | -| id_bhvFlamethrower | 103 | -| id_bhvFlamethrowerFlame | 104 | -| id_bhvBouncingFireball | 105 | -| id_bhvBouncingFireballFlame | 106 | -| id_bhvBowserShockWave | 107 | -| id_bhvFireParticleSpawner | 108 | -| id_bhvBlackSmokeMario | 109 | -| id_bhvBlackSmokeBowser | 110 | -| id_bhvBlackSmokeUpward | 111 | -| id_bhvBetaFishSplashSpawner | 112 | -| id_bhvSpindrift | 113 | -| id_bhvTowerPlatformGroup | 114 | -| id_bhvWfSlidingTowerPlatform | 115 | -| id_bhvWfElevatorTowerPlatform | 116 | -| id_bhvWfSolidTowerPlatform | 117 | -| id_bhvLeafParticleSpawner | 118 | -| id_bhvTreeSnow | 119 | -| id_bhvTreeLeaf | 120 | -| id_bhvAnotherTiltingPlatform | 121 | -| id_bhvSquarishPathMoving | 122 | -| id_bhvSquarishPathParent | 123 | -| id_bhvPiranhaPlantBubble | 124 | -| id_bhvPiranhaPlantWakingBubbles | 125 | -| id_bhvFloorSwitchAnimatesObject | 126 | -| id_bhvFloorSwitchGrills | 127 | -| id_bhvFloorSwitchHardcodedModel | 128 | -| id_bhvFloorSwitchHiddenObjects | 129 | -| id_bhvHiddenObject | 130 | -| id_bhvBreakableBox | 131 | -| id_bhvPushableMetalBox | 132 | -| id_bhvHeaveHo | 133 | -| id_bhvHeaveHoThrowMario | 134 | -| id_bhvCcmTouchedStarSpawn | 135 | -| id_bhvUnusedPoundablePlatform | 136 | -| id_bhvBetaTrampolineTop | 137 | -| id_bhvBetaTrampolineSpring | 138 | -| id_bhvJumpingBox | 139 | -| id_bhvBooCage | 140 | -| id_bhvStub | 141 | -| id_bhvIgloo | 142 | -| id_bhvBowserKey | 143 | -| id_bhvGrandStar | 144 | -| id_bhvBetaBooKey | 145 | -| id_bhvAlphaBooKey | 146 | -| id_bhvBulletBill | 147 | -| id_bhvWhitePuffSmoke | 148 | -| id_bhvUnused1820 | 149 | -| id_bhvBowserTailAnchor | 150 | -| id_bhvBowser | 151 | -| id_bhvBowserBodyAnchor | 152 | -| id_bhvBowserFlameSpawn | 153 | -| id_bhvTiltingBowserLavaPlatform | 154 | -| id_bhvFallingBowserPlatform | 155 | -| id_bhvBlueBowserFlame | 156 | -| id_bhvFlameFloatingLanding | 157 | -| id_bhvBlueFlamesGroup | 158 | -| id_bhvFlameBouncing | 159 | -| id_bhvFlameMovingForwardGrowing | 160 | -| id_bhvFlameBowser | 161 | -| id_bhvFlameLargeBurningOut | 162 | -| id_bhvBlueFish | 163 | -| id_bhvTankFishGroup | 164 | -| id_bhvCheckerboardElevatorGroup | 165 | -| id_bhvCheckerboardPlatformSub | 166 | -| id_bhvBowserKeyUnlockDoor | 167 | -| id_bhvBowserKeyCourseExit | 168 | -| id_bhvInvisibleObjectsUnderBridge | 169 | -| id_bhvWaterLevelPillar | 170 | -| id_bhvDddWarp | 171 | -| id_bhvMoatGrills | 172 | -| id_bhvClockMinuteHand | 173 | -| id_bhvClockHourHand | 174 | -| id_bhvMacroUkiki | 175 | -| id_bhvStub1D0C | 176 | -| id_bhvLllRotatingHexagonalPlatform | 177 | -| id_bhvLllSinkingRockBlock | 178 | -| id_bhvStub1D70 | 179 | -| id_bhvLllMovingOctagonalMeshPlatform | 180 | -| id_bhvLllRotatingBlockWithFireBars | 181 | -| id_bhvLllRotatingHexFlame | 182 | -| id_bhvLllWoodPiece | 183 | -| id_bhvLllFloatingWoodBridge | 184 | -| id_bhvVolcanoFlames | 185 | -| id_bhvLllRotatingHexagonalRing | 186 | -| id_bhvLllSinkingRectangularPlatform | 187 | -| id_bhvLllSinkingSquarePlatforms | 188 | -| id_bhvLllTiltingInvertedPyramid | 189 | -| id_bhvUnused1F30 | 190 | -| id_bhvKoopaShell | 191 | -| id_bhvKoopaShellFlame | 192 | -| id_bhvToxBox | 193 | -| id_bhvPiranhaPlant | 194 | -| id_bhvLllHexagonalMesh | 195 | -| id_bhvLllBowserPuzzlePiece | 196 | -| id_bhvLllBowserPuzzle | 197 | -| id_bhvTuxiesMother | 198 | -| id_bhvPenguinBaby | 199 | -| id_bhvUnused20E0 | 200 | -| id_bhvSmallPenguin | 201 | -| id_bhvManyBlueFishSpawner | 202 | -| id_bhvFewBlueFishSpawner | 203 | -| id_bhvFishSpawner | 204 | -| id_bhvFish | 205 | -| id_bhvWdwExpressElevator | 206 | -| id_bhvWdwExpressElevatorPlatform | 207 | -| id_bhvChirpChirp | 208 | -| id_bhvBub | 209 | -| id_bhvExclamationBox | 210 | -| id_bhvRotatingExclamationMark | 211 | -| id_bhvSoundSpawner | 212 | -| id_bhvRockSolid | 213 | -| id_bhvBowserSubDoor | 214 | -| id_bhvBowsersSub | 215 | -| id_bhvSushiShark | 216 | -| id_bhvSushiSharkCollisionChild | 217 | -| id_bhvJrbSlidingBox | 218 | -| id_bhvShipPart3 | 219 | -| id_bhvInSunkenShip3 | 220 | -| id_bhvSunkenShipPart | 221 | -| id_bhvSunkenShipPart2 | 222 | -| id_bhvInSunkenShip | 223 | -| id_bhvInSunkenShip2 | 224 | -| id_bhvMistParticleSpawner | 225 | -| id_bhvWhitePuff1 | 226 | -| id_bhvWhitePuff2 | 227 | -| id_bhvWhitePuffSmoke2 | 228 | -| id_bhvPurpleSwitchHiddenBoxes | 229 | -| id_bhvBlueCoinSwitch | 230 | -| id_bhvHiddenBlueCoin | 231 | -| id_bhvOpenableCageDoor | 232 | -| id_bhvOpenableGrill | 233 | -| id_bhvWaterLevelDiamond | 234 | -| id_bhvInitializeChangingWaterLevel | 235 | -| id_bhvTweesterSandParticle | 236 | -| id_bhvTweester | 237 | -| id_bhvMerryGoRoundBooManager | 238 | -| id_bhvAnimatedTexture | 239 | -| id_bhvBooInCastle | 240 | -| id_bhvBooWithCage | 241 | -| id_bhvBalconyBigBoo | 242 | -| id_bhvMerryGoRoundBigBoo | 243 | -| id_bhvGhostHuntBigBoo | 244 | -| id_bhvCourtyardBooTriplet | 245 | -| id_bhvBoo | 246 | -| id_bhvMerryGoRoundBoo | 247 | -| id_bhvGhostHuntBoo | 248 | -| id_bhvHiddenStaircaseStep | 249 | -| id_bhvBooBossSpawnedBridge | 250 | -| id_bhvBbhTiltingTrapPlatform | 251 | -| id_bhvHauntedBookshelf | 252 | -| id_bhvMeshElevator | 253 | -| id_bhvMerryGoRound | 254 | -| id_bhvPlaysMusicTrackWhenTouched | 255 | -| id_bhvBetaBowserAnchor | 256 | -| id_bhvStaticCheckeredPlatform | 257 | -| id_bhvUnused2A10 | 258 | -| id_bhvUnusedFakeStar | 259 | -| id_bhvStaticObject | 260 | -| id_bhvUnused2A54 | 261 | -| id_bhvCastleFloorTrap | 262 | -| id_bhvFloorTrapInCastle | 263 | -| id_bhvTree | 264 | -| id_bhvSparkle | 265 | -| id_bhvSparkleSpawn | 266 | -| id_bhvSparkleParticleSpawner | 267 | -| id_bhvScuttlebug | 268 | -| id_bhvScuttlebugSpawn | 269 | -| id_bhvWhompKingBoss | 270 | -| id_bhvSmallWhomp | 271 | -| id_bhvWaterSplash | 272 | -| id_bhvWaterDroplet | 273 | -| id_bhvWaterDropletSplash | 274 | -| id_bhvBubbleSplash | 275 | -| id_bhvIdleWaterWave | 276 | -| id_bhvObjectWaterSplash | 277 | -| id_bhvShallowWaterWave | 278 | -| id_bhvShallowWaterSplash | 279 | -| id_bhvObjectWaveTrail | 280 | -| id_bhvWaveTrail | 281 | -| id_bhvTinyStrongWindParticle | 282 | -| id_bhvStrongWindParticle | 283 | -| id_bhvSLSnowmanWind | 284 | -| id_bhvSLWalkingPenguin | 285 | -| id_bhvYellowBall | 286 | -| id_bhvMario | 287 | -| id_bhvToadMessage | 288 | -| id_bhvUnlockDoorStar | 289 | -| id_bhvRandomAnimatedTexture | 290 | -| id_bhvYellowBackgroundInMenu | 291 | -| id_bhvMenuButton | 292 | -| id_bhvMenuButtonManager | 293 | -| id_bhvActSelectorStarType | 294 | -| id_bhvActSelector | 295 | -| id_bhvMovingYellowCoin | 296 | -| id_bhvMovingBlueCoin | 297 | -| id_bhvBlueCoinSliding | 298 | -| id_bhvBlueCoinJumping | 299 | -| id_bhvSeaweed | 300 | -| id_bhvSeaweedBundle | 301 | -| id_bhvBobomb | 302 | -| id_bhvBobombFuseSmoke | 303 | -| id_bhvBobombBuddy | 304 | -| id_bhvBobombBuddyOpensCannon | 305 | -| id_bhvCannonClosed | 306 | -| id_bhvWhirlpool | 307 | -| id_bhvJetStream | 308 | -| id_bhvMessagePanel | 309 | -| id_bhvSignOnWall | 310 | -| id_bhvHomingAmp | 311 | -| id_bhvCirclingAmp | 312 | -| id_bhvButterfly | 313 | -| id_bhvHoot | 314 | -| id_bhvBetaHoldableObject | 315 | -| id_bhvCarrySomething1 | 316 | -| id_bhvCarrySomething2 | 317 | -| id_bhvCarrySomething3 | 318 | -| id_bhvCarrySomething4 | 319 | -| id_bhvCarrySomething5 | 320 | -| id_bhvCarrySomething6 | 321 | -| id_bhvObjectBubble | 322 | -| id_bhvObjectWaterWave | 323 | -| id_bhvExplosion | 324 | -| id_bhvBobombBullyDeathSmoke | 325 | -| id_bhvSmoke | 326 | -| id_bhvBobombExplosionBubble | 327 | -| id_bhvRespawner | 328 | -| id_bhvSmallBully | 329 | -| id_bhvBigBully | 330 | -| id_bhvBigBullyWithMinions | 331 | -| id_bhvSmallChillBully | 332 | -| id_bhvBigChillBully | 333 | -| id_bhvJetStreamRingSpawner | 334 | -| id_bhvJetStreamWaterRing | 335 | -| id_bhvMantaRayWaterRing | 336 | -| id_bhvMantaRayRingManager | 337 | -| id_bhvBowserBomb | 338 | -| id_bhvBowserBombExplosion | 339 | -| id_bhvBowserBombSmoke | 340 | -| id_bhvCelebrationStar | 341 | -| id_bhvCelebrationStarSparkle | 342 | -| id_bhvStarKeyCollectionPuffSpawner | 343 | -| id_bhvLllDrawbridgeSpawner | 344 | -| id_bhvLllDrawbridge | 345 | -| id_bhvSmallBomp | 346 | -| id_bhvLargeBomp | 347 | -| id_bhvWfSlidingPlatform | 348 | -| id_bhvMoneybag | 349 | -| id_bhvMoneybagHidden | 350 | -| id_bhvPitBowlingBall | 351 | -| id_bhvFreeBowlingBall | 352 | -| id_bhvBowlingBall | 353 | -| id_bhvTtmBowlingBallSpawner | 354 | -| id_bhvBobBowlingBallSpawner | 355 | -| id_bhvThiBowlingBallSpawner | 356 | -| id_bhvRrCruiserWing | 357 | -| id_bhvSpindel | 358 | -| id_bhvSslMovingPyramidWall | 359 | -| id_bhvPyramidElevator | 360 | -| id_bhvPyramidElevatorTrajectoryMarkerBall | 361 | -| id_bhvPyramidTop | 362 | -| id_bhvPyramidTopFragment | 363 | -| id_bhvPyramidPillarTouchDetector | 364 | -| id_bhvWaterfallSoundLoop | 365 | -| id_bhvVolcanoSoundLoop | 366 | -| id_bhvCastleFlagWaving | 367 | -| id_bhvBirdsSoundLoop | 368 | -| id_bhvAmbientSounds | 369 | -| id_bhvSandSoundLoop | 370 | -| id_bhvHiddenAt120Stars | 371 | -| id_bhvSnowmansBottom | 372 | -| id_bhvSnowmansHead | 373 | -| id_bhvSnowmansBodyCheckpoint | 374 | -| id_bhvBigSnowmanWhole | 375 | -| id_bhvBigBoulder | 376 | -| id_bhvBigBoulderGenerator | 377 | -| id_bhvWingCap | 378 | -| id_bhvMetalCap | 379 | -| id_bhvNormalCap | 380 | -| id_bhvVanishCap | 381 | -| id_bhvStar | 382 | -| id_bhvStarSpawnCoordinates | 383 | -| id_bhvHiddenRedCoinStar | 384 | -| id_bhvRedCoin | 385 | -| id_bhvBowserCourseRedCoinStar | 386 | -| id_bhvHiddenStar | 387 | -| id_bhvHiddenStarTrigger | 388 | -| id_bhvTtmRollingLog | 389 | -| id_bhvLllVolcanoFallingTrap | 390 | -| id_bhvLllRollingLog | 391 | -| id_bhv1upWalking | 392 | -| id_bhv1upRunningAway | 393 | -| id_bhv1upSliding | 394 | -| id_bhv1Up | 395 | -| id_bhv1upJumpOnApproach | 396 | -| id_bhvHidden1up | 397 | -| id_bhvHidden1upTrigger | 398 | -| id_bhvHidden1upInPole | 399 | -| id_bhvHidden1upInPoleTrigger | 400 | -| id_bhvHidden1upInPoleSpawner | 401 | -| id_bhvControllablePlatform | 402 | -| id_bhvControllablePlatformSub | 403 | -| id_bhvBreakableBoxSmall | 404 | -| id_bhvSlidingSnowMound | 405 | -| id_bhvSnowMoundSpawn | 406 | -| id_bhvWdwSquareFloatingPlatform | 407 | -| id_bhvWdwRectangularFloatingPlatform | 408 | -| id_bhvJrbFloatingPlatform | 409 | -| id_bhvArrowLift | 410 | -| id_bhvOrangeNumber | 411 | -| id_bhvMantaRay | 412 | -| id_bhvFallingPillar | 413 | -| id_bhvFallingPillarHitbox | 414 | -| id_bhvPillarBase | 415 | -| id_bhvJrbFloatingBox | 416 | -| id_bhvDecorativePendulum | 417 | -| id_bhvTreasureChestsShip | 418 | -| id_bhvTreasureChestsJrb | 419 | -| id_bhvTreasureChests | 420 | -| id_bhvTreasureChestBottom | 421 | -| id_bhvTreasureChestTop | 422 | -| id_bhvMips | 423 | -| id_bhvYoshi | 424 | -| id_bhvKoopa | 425 | -| id_bhvKoopaRaceEndpoint | 426 | -| id_bhvKoopaFlag | 427 | -| id_bhvPokey | 428 | -| id_bhvPokeyBodyPart | 429 | -| id_bhvSwoop | 430 | -| id_bhvFlyGuy | 431 | -| id_bhvGoomba | 432 | -| id_bhvGoombaTripletSpawner | 433 | -| id_bhvChainChomp | 434 | -| id_bhvChainChompChainPart | 435 | -| id_bhvWoodenPost | 436 | -| id_bhvChainChompGate | 437 | -| id_bhvWigglerHead | 438 | -| id_bhvWigglerBody | 439 | -| id_bhvEnemyLakitu | 440 | -| id_bhvCameraLakitu | 441 | -| id_bhvCloud | 442 | -| id_bhvCloudPart | 443 | -| id_bhvSpiny | 444 | -| id_bhvMontyMole | 445 | -| id_bhvMontyMoleHole | 446 | -| id_bhvMontyMoleRock | 447 | -| id_bhvPlatformOnTrack | 448 | -| id_bhvTrackBall | 449 | -| id_bhvSeesawPlatform | 450 | -| id_bhvFerrisWheelAxle | 451 | -| id_bhvFerrisWheelPlatform | 452 | -| id_bhvWaterBombSpawner | 453 | -| id_bhvWaterBomb | 454 | -| id_bhvWaterBombShadow | 455 | -| id_bhvTTCRotatingSolid | 456 | -| id_bhvTTCPendulum | 457 | -| id_bhvTTCTreadmill | 458 | -| id_bhvTTCMovingBar | 459 | -| id_bhvTTCCog | 460 | -| id_bhvTTCPitBlock | 461 | -| id_bhvTTCElevator | 462 | -| id_bhvTTC2DRotator | 463 | -| id_bhvTTCSpinner | 464 | -| id_bhvMrBlizzard | 465 | -| id_bhvMrBlizzardSnowball | 466 | -| id_bhvSlidingPlatform2 | 467 | -| id_bhvOctagonalPlatformRotating | 468 | -| id_bhvAnimatesOnFloorSwitchPress | 469 | -| id_bhvActivatedBackAndForthPlatform | 470 | -| id_bhvRecoveryHeart | 471 | -| id_bhvWaterBombCannon | 472 | -| id_bhvCannonBarrelBubbles | 473 | -| id_bhvUnagi | 474 | -| id_bhvUnagiSubobject | 475 | -| id_bhvDorrie | 476 | -| id_bhvHauntedChair | 477 | -| id_bhvMadPiano | 478 | -| id_bhvFlyingBookend | 479 | -| id_bhvBookendSpawn | 480 | -| id_bhvHauntedBookshelfManager | 481 | -| id_bhvBookSwitch | 482 | -| id_bhvFirePiranhaPlant | 483 | -| id_bhvSmallPiranhaFlame | 484 | -| id_bhvFireSpitter | 485 | -| id_bhvFlyguyFlame | 486 | -| id_bhvSnufit | 487 | -| id_bhvSnufitBalls | 488 | -| id_bhvHorizontalGrindel | 489 | -| id_bhvEyerokBoss | 490 | -| id_bhvEyerokHand | 491 | -| id_bhvKlepto | 492 | -| id_bhvBird | 493 | -| id_bhvRacingPenguin | 494 | -| id_bhvPenguinRaceFinishLine | 495 | -| id_bhvPenguinRaceShortcutCheck | 496 | -| id_bhvCoffinSpawner | 497 | -| id_bhvCoffin | 498 | -| id_bhvClamShell | 499 | -| id_bhvSkeeter | 500 | -| id_bhvSkeeterWave | 501 | -| id_bhvSwingPlatform | 502 | -| id_bhvDonutPlatformSpawner | 503 | -| id_bhvDonutPlatform | 504 | -| id_bhvDDDPole | 505 | -| id_bhvRedCoinStarMarker | 506 | -| id_bhvTripletButterfly | 507 | -| id_bhvBubba | 508 | -| id_bhvBeginningLakitu | 509 | -| id_bhvBeginningPeach | 510 | -| id_bhvEndBirds1 | 511 | -| id_bhvEndBirds2 | 512 | -| id_bhvIntroScene | 513 | -| id_bhv_max_count | 514 | +| id_bhv1Up | 0 | +| id_bhv1upJumpOnApproach | 1 | +| id_bhv1upRunningAway | 2 | +| id_bhv1upSliding | 3 | +| id_bhv1upWalking | 4 | +| id_bhvActivatedBackAndForthPlatform | 5 | +| id_bhvActSelector | 6 | +| id_bhvActSelectorStarType | 7 | +| id_bhvAirborneDeathWarp | 8 | +| id_bhvAirborneStarCollectWarp | 9 | +| id_bhvAirborneWarp | 10 | +| id_bhvAlphaBooKey | 11 | +| id_bhvAmbientSounds | 12 | +| id_bhvAnimatedTexture | 13 | +| id_bhvAnimatesOnFloorSwitchPress | 14 | +| id_bhvAnotherElavator | 15 | +| id_bhvAnotherTiltingPlatform | 16 | +| id_bhvArrowLift | 17 | +| id_bhvBalconyBigBoo | 18 | +| id_bhvBbhTiltingTrapPlatform | 19 | +| id_bhvBbhTumblingBridge | 20 | +| id_bhvBeginningLakitu | 21 | +| id_bhvBeginningPeach | 22 | +| id_bhvBetaBooKey | 23 | +| id_bhvBetaBowserAnchor | 24 | +| id_bhvBetaChestBottom | 25 | +| id_bhvBetaChestLid | 26 | +| id_bhvBetaFishSplashSpawner | 27 | +| id_bhvBetaHoldableObject | 28 | +| id_bhvBetaMovingFlames | 29 | +| id_bhvBetaMovingFlamesSpawn | 30 | +| id_bhvBetaTrampolineSpring | 31 | +| id_bhvBetaTrampolineTop | 32 | +| id_bhvBigBoulder | 33 | +| id_bhvBigBoulderGenerator | 34 | +| id_bhvBigBully | 35 | +| id_bhvBigBullyWithMinions | 36 | +| id_bhvBigChillBully | 37 | +| id_bhvBigSnowmanWhole | 38 | +| id_bhvBird | 39 | +| id_bhvBirdsSoundLoop | 40 | +| id_bhvBitfsSinkingCagePlatform | 41 | +| id_bhvBitfsSinkingPlatforms | 42 | +| id_bhvBitfsTiltingInvertedPyramid | 43 | +| id_bhvBlackSmokeBowser | 44 | +| id_bhvBlackSmokeMario | 45 | +| id_bhvBlackSmokeUpward | 46 | +| id_bhvBlueBowserFlame | 47 | +| id_bhvBlueCoinJumping | 48 | +| id_bhvBlueCoinSliding | 49 | +| id_bhvBlueCoinSwitch | 50 | +| id_bhvBlueFish | 51 | +| id_bhvBlueFlamesGroup | 52 | +| id_bhvBobBowlingBallSpawner | 53 | +| id_bhvBobomb | 54 | +| id_bhvBobombAnchorMario | 55 | +| id_bhvBobombBuddy | 56 | +| id_bhvBobombBuddyOpensCannon | 57 | +| id_bhvBobombBullyDeathSmoke | 58 | +| id_bhvBobombExplosionBubble | 59 | +| id_bhvBobombExplosionBubble3600 | 60 | +| id_bhvBobombFuseSmoke | 61 | +| id_bhvBoo | 62 | +| id_bhvBooBossSpawnedBridge | 63 | +| id_bhvBooCage | 64 | +| id_bhvBooInCastle | 65 | +| id_bhvBookendSpawn | 66 | +| id_bhvBookSwitch | 67 | +| id_bhvBooWithCage | 68 | +| id_bhvBouncingFireball | 69 | +| id_bhvBouncingFireballFlame | 70 | +| id_bhvBowlingBall | 71 | +| id_bhvBowser | 72 | +| id_bhvBowserBodyAnchor | 73 | +| id_bhvBowserBomb | 74 | +| id_bhvBowserBombExplosion | 75 | +| id_bhvBowserBombSmoke | 76 | +| id_bhvBowserCourseRedCoinStar | 77 | +| id_bhvBowserFlameSpawn | 78 | +| id_bhvBowserKey | 79 | +| id_bhvBowserKeyCourseExit | 80 | +| id_bhvBowserKeyUnlockDoor | 81 | +| id_bhvBowserShockWave | 82 | +| id_bhvBowsersSub | 83 | +| id_bhvBowserSubDoor | 84 | +| id_bhvBowserTailAnchor | 85 | +| id_bhvBreakableBox | 86 | +| id_bhvBreakableBoxSmall | 87 | +| id_bhvBreakBoxTriangle | 88 | +| id_bhvBreathParticleSpawner | 89 | +| id_bhvBub | 90 | +| id_bhvBubba | 91 | +| id_bhvBubbleMaybe | 92 | +| id_bhvBubbleParticleSpawner | 93 | +| id_bhvBubblePlayer | 94 | +| id_bhvBubbleSplash | 95 | +| id_bhvBulletBill | 96 | +| id_bhvBulletBillCannon | 97 | +| id_bhvButterfly | 98 | +| id_bhvCameraLakitu | 99 | +| id_bhvCannon | 100 | +| id_bhvCannonBarrel | 101 | +| id_bhvCannonBarrelBubbles | 102 | +| id_bhvCannonBaseUnused | 103 | +| id_bhvCannonClosed | 104 | +| id_bhvCapSwitch | 105 | +| id_bhvCapSwitchBase | 106 | +| id_bhvCarrySomething1 | 107 | +| id_bhvCarrySomething2 | 108 | +| id_bhvCarrySomething3 | 109 | +| id_bhvCarrySomething4 | 110 | +| id_bhvCarrySomething5 | 111 | +| id_bhvCarrySomething6 | 112 | +| id_bhvCastleFlagWaving | 113 | +| id_bhvCastleFloorTrap | 114 | +| id_bhvCcmTouchedStarSpawn | 115 | +| id_bhvCelebrationStar | 116 | +| id_bhvCelebrationStarSparkle | 117 | +| id_bhvChainChomp | 118 | +| id_bhvChainChompChainPart | 119 | +| id_bhvChainChompGate | 120 | +| id_bhvCheckerboardElevatorGroup | 121 | +| id_bhvCheckerboardPlatformSub | 122 | +| id_bhvChirpChirp | 123 | +| id_bhvChirpChirpUnused | 124 | +| id_bhvChuckya | 125 | +| id_bhvChuckyaAnchorMario | 126 | +| id_bhvCirclingAmp | 127 | +| id_bhvClamShell | 128 | +| id_bhvClockHourHand | 129 | +| id_bhvClockMinuteHand | 130 | +| id_bhvCloud | 131 | +| id_bhvCloudPart | 132 | +| id_bhvCoffin | 133 | +| id_bhvCoffinSpawner | 134 | +| id_bhvCoinFormation | 135 | +| id_bhvCoinFormationSpawn | 136 | +| id_bhvCoinInsideBoo | 137 | +| id_bhvCoinSparkles | 138 | +| id_bhvControllablePlatform | 139 | +| id_bhvControllablePlatformSub | 140 | +| id_bhvCourtyardBooTriplet | 141 | +| id_bhvCutOutObject | 142 | +| id_bhvDddMovingPole | 143 | +| id_bhvDDDPole | 144 | +| id_bhvDddWarp | 145 | +| id_bhvDeathWarp | 146 | +| id_bhvDecorativePendulum | 147 | +| id_bhvDirtParticleSpawner | 148 | +| id_bhvDonutPlatform | 149 | +| id_bhvDonutPlatformSpawner | 150 | +| id_bhvDoor | 151 | +| id_bhvDoorWarp | 152 | +| id_bhvDorrie | 153 | +| id_bhvEndBirds1 | 154 | +| id_bhvEndBirds2 | 155 | +| id_bhvEndPeach | 156 | +| id_bhvEndToad | 157 | +| id_bhvEnemyLakitu | 158 | +| id_bhvExclamationBox | 159 | +| id_bhvExitPodiumWarp | 160 | +| id_bhvExplosion | 161 | +| id_bhvEyerokBoss | 162 | +| id_bhvEyerokHand | 163 | +| id_bhvFadingWarp | 164 | +| id_bhvFallingBowserPlatform | 165 | +| id_bhvFallingPillar | 166 | +| id_bhvFallingPillarHitbox | 167 | +| id_bhvFerrisWheelAxle | 168 | +| id_bhvFerrisWheelPlatform | 169 | +| id_bhvFewBlueFishSpawner | 170 | +| id_bhvFireParticleSpawner | 171 | +| id_bhvFirePiranhaPlant | 172 | +| id_bhvFireSpitter | 173 | +| id_bhvFish | 174 | +| id_bhvFishGroup | 175 | +| id_bhvFishSpawner | 176 | +| id_bhvFlame | 177 | +| id_bhvFlameBouncing | 178 | +| id_bhvFlameBowser | 179 | +| id_bhvFlameFloatingLanding | 180 | +| id_bhvFlameLargeBurningOut | 181 | +| id_bhvFlameMovingForwardGrowing | 182 | +| id_bhvFlamethrower | 183 | +| id_bhvFlamethrowerFlame | 184 | +| id_bhvFloorSwitchAnimatesObject | 185 | +| id_bhvFloorSwitchGrills | 186 | +| id_bhvFloorSwitchHardcodedModel | 187 | +| id_bhvFloorSwitchHiddenObjects | 188 | +| id_bhvFloorTrapInCastle | 189 | +| id_bhvFlyGuy | 190 | +| id_bhvFlyguyFlame | 191 | +| id_bhvFlyingBookend | 192 | +| id_bhvFlyingWarp | 193 | +| id_bhvFreeBowlingBall | 194 | +| id_bhvGhostHuntBigBoo | 195 | +| id_bhvGhostHuntBoo | 196 | +| id_bhvGiantPole | 197 | +| id_bhvGoldenCoinSparkles | 198 | +| id_bhvGoomba | 199 | +| id_bhvGoombaTripletSpawner | 200 | +| id_bhvGrandStar | 201 | +| id_bhvGrindel | 202 | +| id_bhvHardAirKnockBackWarp | 203 | +| id_bhvHauntedBookshelf | 204 | +| id_bhvHauntedBookshelfManager | 205 | +| id_bhvHauntedChair | 206 | +| id_bhvHeaveHo | 207 | +| id_bhvHeaveHoThrowMario | 208 | +| id_bhvHidden1up | 209 | +| id_bhvHidden1upInPole | 210 | +| id_bhvHidden1upInPoleSpawner | 211 | +| id_bhvHidden1upInPoleTrigger | 212 | +| id_bhvHidden1upTrigger | 213 | +| id_bhvHiddenAt120Stars | 214 | +| id_bhvHiddenBlueCoin | 215 | +| id_bhvHiddenObject | 216 | +| id_bhvHiddenRedCoinStar | 217 | +| id_bhvHiddenStaircaseStep | 218 | +| id_bhvHiddenStar | 219 | +| id_bhvHiddenStarTrigger | 220 | +| id_bhvHmcElevatorPlatform | 221 | +| id_bhvHomingAmp | 222 | +| id_bhvHoot | 223 | +| id_bhvHorizontalGrindel | 224 | +| id_bhvHorStarParticleSpawner | 225 | +| id_bhvIdleWaterWave | 226 | +| id_bhvIgloo | 227 | +| id_bhvInitializeChangingWaterLevel | 228 | +| id_bhvInsideCannon | 229 | +| id_bhvInstantActiveWarp | 230 | +| id_bhvInSunkenShip | 231 | +| id_bhvInSunkenShip2 | 232 | +| id_bhvInSunkenShip3 | 233 | +| id_bhvIntroScene | 234 | +| id_bhvInvisibleObjectsUnderBridge | 235 | +| id_bhvJetStream | 236 | +| id_bhvJetStreamRingSpawner | 237 | +| id_bhvJetStreamWaterRing | 238 | +| id_bhvJrbFloatingBox | 239 | +| id_bhvJrbFloatingPlatform | 240 | +| id_bhvJrbSlidingBox | 241 | +| id_bhvJumpingBox | 242 | +| id_bhvKickableBoard | 243 | +| id_bhvKingBobomb | 244 | +| id_bhvKlepto | 245 | +| id_bhvKoopa | 246 | +| id_bhvKoopaFlag | 247 | +| id_bhvKoopaRaceEndpoint | 248 | +| id_bhvKoopaShell | 249 | +| id_bhvKoopaShellFlame | 250 | +| id_bhvKoopaShellUnderwater | 251 | +| id_bhvLargeBomp | 252 | +| id_bhvLaunchDeathWarp | 253 | +| id_bhvLaunchStarCollectWarp | 254 | +| id_bhvLeafParticleSpawner | 255 | +| id_bhvLllBowserPuzzle | 256 | +| id_bhvLllBowserPuzzlePiece | 257 | +| id_bhvLllDrawbridge | 258 | +| id_bhvLllDrawbridgeSpawner | 259 | +| id_bhvLllFloatingWoodBridge | 260 | +| id_bhvLllHexagonalMesh | 261 | +| id_bhvLllMovingOctagonalMeshPlatform | 262 | +| id_bhvLllRollingLog | 263 | +| id_bhvLllRotatingBlockWithFireBars | 264 | +| id_bhvLllRotatingHexagonalPlatform | 265 | +| id_bhvLllRotatingHexagonalRing | 266 | +| id_bhvLllRotatingHexFlame | 267 | +| id_bhvLllSinkingRectangularPlatform | 268 | +| id_bhvLllSinkingRockBlock | 269 | +| id_bhvLllSinkingSquarePlatforms | 270 | +| id_bhvLllTiltingInvertedPyramid | 271 | +| id_bhvLllTumblingBridge | 272 | +| id_bhvLllVolcanoFallingTrap | 273 | +| id_bhvLllWoodPiece | 274 | +| id_bhvMacroUkiki | 275 | +| id_bhvMadPiano | 276 | +| id_bhvMantaRay | 277 | +| id_bhvMantaRayRingManager | 278 | +| id_bhvMantaRayWaterRing | 279 | +| id_bhvManyBlueFishSpawner | 280 | +| id_bhvMario | 281 | +| id_bhvMenuButton | 282 | +| id_bhvMenuButtonManager | 283 | +| id_bhvMerryGoRound | 284 | +| id_bhvMerryGoRoundBigBoo | 285 | +| id_bhvMerryGoRoundBoo | 286 | +| id_bhvMerryGoRoundBooManager | 287 | +| id_bhvMeshElevator | 288 | +| id_bhvMessagePanel | 289 | +| id_bhvMetalCap | 290 | +| id_bhvMips | 291 | +| id_bhvMistCircParticleSpawner | 292 | +| id_bhvMistParticleSpawner | 293 | +| id_bhvMoatGrills | 294 | +| id_bhvMoneybag | 295 | +| id_bhvMoneybagHidden | 296 | +| id_bhvMontyMole | 297 | +| id_bhvMontyMoleHole | 298 | +| id_bhvMontyMoleRock | 299 | +| id_bhvMovingBlueCoin | 300 | +| id_bhvMovingYellowCoin | 301 | +| id_bhvMrBlizzard | 302 | +| id_bhvMrBlizzardSnowball | 303 | +| id_bhvMrI | 304 | +| id_bhvMrIBlueCoin | 305 | +| id_bhvMrIBody | 306 | +| id_bhvMrIParticle | 307 | +| id_bhvNormalCap | 308 | +| id_bhvObjectBubble | 309 | +| id_bhvObjectWaterSplash | 310 | +| id_bhvObjectWaterWave | 311 | +| id_bhvObjectWaveTrail | 312 | +| id_bhvOctagonalPlatformRotating | 313 | +| id_bhvOneCoin | 314 | +| id_bhvOpenableCageDoor | 315 | +| id_bhvOpenableGrill | 316 | +| id_bhvOrangeNumber | 317 | +| id_bhvPaintingDeathWarp | 318 | +| id_bhvPaintingStarCollectWarp | 319 | +| id_bhvPenguinBaby | 320 | +| id_bhvPenguinRaceFinishLine | 321 | +| id_bhvPenguinRaceShortcutCheck | 322 | +| id_bhvPillarBase | 323 | +| id_bhvPiranhaPlant | 324 | +| id_bhvPiranhaPlantBubble | 325 | +| id_bhvPiranhaPlantWakingBubbles | 326 | +| id_bhvPitBowlingBall | 327 | +| id_bhvPlatformOnTrack | 328 | +| id_bhvPlaysMusicTrackWhenTouched | 329 | +| id_bhvPlungeBubble | 330 | +| id_bhvPokey | 331 | +| id_bhvPokeyBodyPart | 332 | +| id_bhvPoleGrabbing | 333 | +| id_bhvPoundTinyStarParticle | 334 | +| id_bhvPunchTinyTriangle | 335 | +| id_bhvPurpleParticle | 336 | +| id_bhvPurpleSwitchHiddenBoxes | 337 | +| id_bhvPushableMetalBox | 338 | +| id_bhvPyramidElevator | 339 | +| id_bhvPyramidElevatorTrajectoryMarkerBall | 340 | +| id_bhvPyramidPillarTouchDetector | 341 | +| id_bhvPyramidTop | 342 | +| id_bhvPyramidTopFragment | 343 | +| id_bhvRacingPenguin | 344 | +| id_bhvRandomAnimatedTexture | 345 | +| id_bhvRecoveryHeart | 346 | +| id_bhvRedCoin | 347 | +| id_bhvRedCoinStarMarker | 348 | +| id_bhvRespawner | 349 | +| id_bhvRockSolid | 350 | +| id_bhvRotatingCounterClockwise | 351 | +| id_bhvRotatingExclamationMark | 352 | +| id_bhvRotatingPlatform | 353 | +| id_bhvRrCruiserWing | 354 | +| id_bhvRrElevatorPlatform | 355 | +| id_bhvRrRotatingBridgePlatform | 356 | +| id_bhvSandSoundLoop | 357 | +| id_bhvScuttlebug | 358 | +| id_bhvScuttlebugSpawn | 359 | +| id_bhvSeaweed | 360 | +| id_bhvSeaweedBundle | 361 | +| id_bhvSeesawPlatform | 362 | +| id_bhvShallowWaterSplash | 363 | +| id_bhvShallowWaterWave | 364 | +| id_bhvShipPart3 | 365 | +| id_bhvSignOnWall | 366 | +| id_bhvSingleCoinGetsSpawned | 367 | +| id_bhvSkeeter | 368 | +| id_bhvSkeeterWave | 369 | +| id_bhvSlidingPlatform2 | 370 | +| id_bhvSlidingSnowMound | 371 | +| id_bhvSLSnowmanWind | 372 | +| id_bhvSLWalkingPenguin | 373 | +| id_bhvSmallBomp | 374 | +| id_bhvSmallBully | 375 | +| id_bhvSmallChillBully | 376 | +| id_bhvSmallParticle | 377 | +| id_bhvSmallParticleBubbles | 378 | +| id_bhvSmallParticleSnow | 379 | +| id_bhvSmallPenguin | 380 | +| id_bhvSmallPiranhaFlame | 381 | +| id_bhvSmallWaterWave | 382 | +| id_bhvSmallWaterWave398 | 383 | +| id_bhvSmallWhomp | 384 | +| id_bhvSmoke | 385 | +| id_bhvSnowBall | 386 | +| id_bhvSnowmansBodyCheckpoint | 387 | +| id_bhvSnowmansBottom | 388 | +| id_bhvSnowmansHead | 389 | +| id_bhvSnowMoundSpawn | 390 | +| id_bhvSnowParticleSpawner | 391 | +| id_bhvSnufit | 392 | +| id_bhvSnufitBalls | 393 | +| id_bhvSoundSpawner | 394 | +| id_bhvSparkle | 395 | +| id_bhvSparkleParticleSpawner | 396 | +| id_bhvSparkleSpawn | 397 | +| id_bhvSpawnedStar | 398 | +| id_bhvSpawnedStarNoLevelExit | 399 | +| id_bhvSpinAirborneCircleWarp | 400 | +| id_bhvSpinAirborneWarp | 401 | +| id_bhvSpindel | 402 | +| id_bhvSpindrift | 403 | +| id_bhvSpiny | 404 | +| id_bhvSquarishPathMoving | 405 | +| id_bhvSquarishPathParent | 406 | +| id_bhvSquishablePlatform | 407 | +| id_bhvSslMovingPyramidWall | 408 | +| id_bhvStar | 409 | +| id_bhvStarDoor | 410 | +| id_bhvStarKeyCollectionPuffSpawner | 411 | +| id_bhvStarSpawnCoordinates | 412 | +| id_bhvStaticCheckeredPlatform | 413 | +| id_bhvStaticObject | 414 | +| id_bhvStrongWindParticle | 415 | +| id_bhvStub | 416 | +| id_bhvStub1D0C | 417 | +| id_bhvStub1D70 | 418 | +| id_bhvSunkenShipPart | 419 | +| id_bhvSunkenShipPart2 | 420 | +| id_bhvSunkenShipSetRotation | 421 | +| id_bhvSushiShark | 422 | +| id_bhvSushiSharkCollisionChild | 423 | +| id_bhvSwimmingWarp | 424 | +| id_bhvSwingPlatform | 425 | +| id_bhvSwoop | 426 | +| id_bhvTankFishGroup | 427 | +| id_bhvTemporaryYellowCoin | 428 | +| id_bhvTenCoinsSpawn | 429 | +| id_bhvThiBowlingBallSpawner | 430 | +| id_bhvThiHugeIslandTop | 431 | +| id_bhvThiTinyIslandTop | 432 | +| id_bhvThreeCoinsSpawn | 433 | +| id_bhvThwomp | 434 | +| id_bhvThwomp2 | 435 | +| id_bhvTiltingBowserLavaPlatform | 436 | +| id_bhvTinyStrongWindParticle | 437 | +| id_bhvToadMessage | 438 | +| id_bhvTower | 439 | +| id_bhvTowerDoor | 440 | +| id_bhvTowerPlatformGroup | 441 | +| id_bhvToxBox | 442 | +| id_bhvTrackBall | 443 | +| id_bhvTreasureChestBottom | 444 | +| id_bhvTreasureChests | 445 | +| id_bhvTreasureChestsJrb | 446 | +| id_bhvTreasureChestsShip | 447 | +| id_bhvTreasureChestTop | 448 | +| id_bhvTree | 449 | +| id_bhvTreeLeaf | 450 | +| id_bhvTreeSnow | 451 | +| id_bhvTriangleParticleSpawner | 452 | +| id_bhvTripletButterfly | 453 | +| id_bhvTTC2DRotator | 454 | +| id_bhvTTCCog | 455 | +| id_bhvTTCElevator | 456 | +| id_bhvTTCMovingBar | 457 | +| id_bhvTTCPendulum | 458 | +| id_bhvTTCPitBlock | 459 | +| id_bhvTTCRotatingSolid | 460 | +| id_bhvTTCSpinner | 461 | +| id_bhvTTCTreadmill | 462 | +| id_bhvTtmBowlingBallSpawner | 463 | +| id_bhvTtmRollingLog | 464 | +| id_bhvTumblingBridgePlatform | 465 | +| id_bhvTuxiesMother | 466 | +| id_bhvTweester | 467 | +| id_bhvTweesterSandParticle | 468 | +| id_bhvUkiki | 469 | +| id_bhvUkikiCage | 470 | +| id_bhvUkikiCageChild | 471 | +| id_bhvUkikiCageStar | 472 | +| id_bhvUnagi | 473 | +| id_bhvUnagiSubobject | 474 | +| id_bhvUnlockDoorStar | 475 | +| id_bhvUnused05A8 | 476 | +| id_bhvUnused0DFC | 477 | +| id_bhvUnused1820 | 478 | +| id_bhvUnused1F30 | 479 | +| id_bhvUnused20E0 | 480 | +| id_bhvUnused2A10 | 481 | +| id_bhvUnused2A54 | 482 | +| id_bhvUnusedFakeStar | 483 | +| id_bhvUnusedParticleSpawn | 484 | +| id_bhvUnusedPoundablePlatform | 485 | +| id_bhvVanishCap | 486 | +| id_bhvVertStarParticleSpawner | 487 | +| id_bhvVolcanoFlames | 488 | +| id_bhvVolcanoSoundLoop | 489 | +| id_bhvWallTinyStarParticle | 490 | +| id_bhvWarp | 491 | +| id_bhvWarpPipe | 492 | +| id_bhvWaterAirBubble | 493 | +| id_bhvWaterBomb | 494 | +| id_bhvWaterBombCannon | 495 | +| id_bhvWaterBombShadow | 496 | +| id_bhvWaterBombSpawner | 497 | +| id_bhvWaterDroplet | 498 | +| id_bhvWaterDropletSplash | 499 | +| id_bhvWaterfallSoundLoop | 500 | +| id_bhvWaterLevelDiamond | 501 | +| id_bhvWaterLevelPillar | 502 | +| id_bhvWaterMist | 503 | +| id_bhvWaterMist2 | 504 | +| id_bhvWaterSplash | 505 | +| id_bhvWaveTrail | 506 | +| id_bhvWdwExpressElevator | 507 | +| id_bhvWdwExpressElevatorPlatform | 508 | +| id_bhvWdwRectangularFloatingPlatform | 509 | +| id_bhvWdwSquareFloatingPlatform | 510 | +| id_bhvWfBreakableWallLeft | 511 | +| id_bhvWfBreakableWallRight | 512 | +| id_bhvWfElevatorTowerPlatform | 513 | +| id_bhvWfRotatingWoodenPlatform | 514 | +| id_bhvWfSlidingPlatform | 515 | +| id_bhvWfSlidingTowerPlatform | 516 | +| id_bhvWfSolidTowerPlatform | 517 | +| id_bhvWfTumblingBridge | 518 | +| id_bhvWhirlpool | 519 | +| id_bhvWhitePuff1 | 520 | +| id_bhvWhitePuff2 | 521 | +| id_bhvWhitePuffExplosion | 522 | +| id_bhvWhitePuffSmoke | 523 | +| id_bhvWhitePuffSmoke2 | 524 | +| id_bhvWhompKingBoss | 525 | +| id_bhvWigglerBody | 526 | +| id_bhvWigglerHead | 527 | +| id_bhvWind | 528 | +| id_bhvWingCap | 529 | +| id_bhvWoodenPost | 530 | +| id_bhvYellowBackgroundInMenu | 531 | +| id_bhvYellowBall | 532 | +| id_bhvYellowCoin | 533 | +| id_bhvYoshi | 534 | +| id_bhv_max_count | 535 | [:arrow_up_small:](#) diff --git a/docs/lua/examples/big-paddle/actors/big_paddle_collision.col b/docs/lua/examples/big-paddle/actors/big_paddle_collision.col index 4a76fd329..13462b642 100644 Binary files a/docs/lua/examples/big-paddle/actors/big_paddle_collision.col and b/docs/lua/examples/big-paddle/actors/big_paddle_collision.col differ diff --git a/docs/lua/examples/Instant_Clip.lua b/docs/lua/examples/instant-clip.lua similarity index 97% rename from docs/lua/examples/Instant_Clip.lua rename to docs/lua/examples/instant-clip.lua index 1a735362b..d578fcad5 100644 --- a/docs/lua/examples/Instant_Clip.lua +++ b/docs/lua/examples/instant-clip.lua @@ -1,12 +1,12 @@ --- name: Instant Clip --- description: Press L trigger, profit! - -function mario_update(m) - if (m.controller.buttonDown & L_TRIG) ~= 0 then -- If L pressed - set_mario_action(m, ACT_WALKING, 0) --set mario to walking so his vel is used - m.forwardVel = 400 --set Velocity to clip speed - end -end - --- hooks -- +-- name: Instant Clip +-- description: Press L trigger, profit! + +function mario_update(m) + if (m.controller.buttonDown & L_TRIG) ~= 0 then -- If L pressed + set_mario_action(m, ACT_WALKING, 0) --set mario to walking so his vel is used + m.forwardVel = 400 --set Velocity to clip speed + end +end + +-- hooks -- hook_event(HOOK_MARIO_UPDATE, mario_update) \ No newline at end of file diff --git a/docs/lua/examples/water-level.lua b/docs/lua/examples/water-level.lua new file mode 100644 index 000000000..6a221bb9d --- /dev/null +++ b/docs/lua/examples/water-level.lua @@ -0,0 +1,28 @@ +-- name: Water Height Changer +-- description: Use /waterset and /waterget to manipulate water height. + +function on_get_command(msg) + if not network_is_server() then + djui_chat_message_create("You need to be the host!") + return true + end + + djui_chat_message_create(tostring(get_environment_region(1))) + djui_chat_message_create(tostring(get_environment_region(2))) + return false +end + +function on_set_command(msg) + if not network_is_server() then + djui_chat_message_create("You need to be the host!") + return true + end + + local num = tonumber(msg) + set_environment_region(1, num) + set_environment_region(2, num) + return false +end + +hook_chat_command("waterset", "to set the first two water levels", on_set_command) +hook_chat_command("waterget", "to get the first two water levels", on_get_command) \ No newline at end of file diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 39764b0f4..93b60b17a 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -11,7 +11,10 @@ - behavior_table.h - [get_behavior_from_id](#get_behavior_from_id) + - [get_behavior_name_from_id](#get_behavior_name_from_id) - [get_id_from_behavior](#get_id_from_behavior) + - [get_id_from_behavior_name](#get_id_from_behavior_name) + - [get_id_from_vanilla_behavior](#get_id_from_vanilla_behavior)
@@ -727,12 +730,14 @@ - smlua_misc_utils.h - [allocate_mario_action](#allocate_mario_action) + - [get_environment_region](#get_environment_region) - [get_hand_foot_pos_x](#get_hand_foot_pos_x) - [get_hand_foot_pos_y](#get_hand_foot_pos_y) - [get_hand_foot_pos_z](#get_hand_foot_pos_z) - [get_network_area_timer](#get_network_area_timer) - [hud_hide](#hud_hide) - [hud_show](#hud_show) + - [set_environment_region](#set_environment_region) - [smlua_level_util_get](#smlua_level_util_get) - [warp_exit_level](#warp_exit_level) - [warp_restart_level](#warp_restart_level) @@ -913,6 +918,26 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+## [get_behavior_name_from_id](#get_behavior_name_from_id) + +### Lua Example +`local stringValue = get_behavior_name_from_id(id)` + +### Parameters +| Field | Type | +| ----- | ---- | +| id | [enum BehaviorId](constants.md#enum-BehaviorId) | + +### Returns +- `string` + +### C Prototype +`const char* get_behavior_name_from_id(enum BehaviorId id);` + +[:arrow_up_small:](#) + +
+ ## [get_id_from_behavior](#get_id_from_behavior) ### Lua Example @@ -933,6 +958,46 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+## [get_id_from_behavior_name](#get_id_from_behavior_name) + +### Lua Example +`local enumValue = get_id_from_behavior_name(name)` + +### Parameters +| Field | Type | +| ----- | ---- | +| name | `string` | + +### Returns +[enum BehaviorId](constants.md#enum-BehaviorId) + +### C Prototype +`enum BehaviorId get_id_from_behavior_name(const char* name);` + +[:arrow_up_small:](#) + +
+ +## [get_id_from_vanilla_behavior](#get_id_from_vanilla_behavior) + +### Lua Example +`local enumValue = get_id_from_vanilla_behavior(behavior)` + +### Parameters +| Field | Type | +| ----- | ---- | +| behavior | `Pointer` <`BehaviorScript`> | + +### Returns +[enum BehaviorId](constants.md#enum-BehaviorId) + +### C Prototype +`enum BehaviorId get_id_from_vanilla_behavior(const BehaviorScript* behavior);` + +[:arrow_up_small:](#) + +
+ --- # functions from camera.h @@ -13659,6 +13724,26 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+## [get_environment_region](#get_environment_region) + +### Lua Example +`local numberValue = get_environment_region(index)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | + +### Returns +- `number` + +### C Prototype +`f32 get_environment_region(u8 index);` + +[:arrow_up_small:](#) + +
+ ## [get_hand_foot_pos_x](#get_hand_foot_pos_x) ### Lua Example @@ -13776,6 +13861,27 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+## [set_environment_region](#set_environment_region) + +### Lua Example +`set_environment_region(index, value)` + +### Parameters +| Field | Type | +| ----- | ---- | +| index | `integer` | +| value | `integer` | + +### Returns +- None + +### C Prototype +`void set_environment_region(u8 index, s32 value);` + +[:arrow_up_small:](#) + +
+ ## [smlua_level_util_get](#smlua_level_util_get) ### Lua Example diff --git a/docs/lua/lua.md b/docs/lua/lua.md index ebd30980a..aad3a0e3f 100644 --- a/docs/lua/lua.md +++ b/docs/lua/lua.md @@ -54,8 +54,9 @@ All of this is a holdover from when there were only two players. It was a reason - [Custom Surface Collisions](examples/big-paddle) - [Custom Box Model](examples/custom-box-model) - [Custom Player Model](examples/koopa-player-model) -- [Moonjump](examples/Moonjump.lua) -- [Instant Clip](examples/Instant_Clip.lua) +- [Moonjump](examples/moonjump.lua) +- [Instant Clip](examples/instant-clip.lua) +- [Water Height Changer](examples/water-level.lua) ## Example Lua mods (large) - [Extended Moveset](../../mods/extended-moveset.lua) diff --git a/res/icon.ico b/res/icon.ico deleted file mode 100644 index a147df06c..000000000 Binary files a/res/icon.ico and /dev/null differ diff --git a/res/icon.rc b/res/icon.rc deleted file mode 100644 index 7e84e50bf..000000000 --- a/res/icon.rc +++ /dev/null @@ -1 +0,0 @@ -id ICON res/icon.ico \ No newline at end of file diff --git a/src/game/interaction.c b/src/game/interaction.c index fbb34177c..56869bbb8 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -946,9 +946,11 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O } save_file_do_save(gCurrSaveFileNum - 1, TRUE); - if (!noExit || gServerSettings.stayInLevelAfterStar != 2) { - return set_mario_action(m, starGrabAction, noExit + 2 * grandStar); + if (noExit && gServerSettings.stayInLevelAfterStar == 2) { + return TRUE; } + + return set_mario_action(m, starGrabAction, noExit + 2 * grandStar); } return FALSE; diff --git a/src/game/mario.c b/src/game/mario.c index f37702a64..9875ce3dc 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -1530,6 +1530,7 @@ void update_mario_inputs(struct MarioState *m) { /* End of developer stuff */ if ((m->action == ACT_END_PEACH_CUTSCENE || m->action == ACT_CREDITS_CUTSCENE) && m->controller->buttonPressed & START_BUTTON) { + gCurrCreditsEntry = NULL; gCurrActStarNum = 0; gCurrActNum = 0; gChangeLevel = 16; diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c index 718053937..ecbfef33b 100644 --- a/src/game/mario_actions_cutscene.c +++ b/src/game/mario_actions_cutscene.c @@ -2807,33 +2807,36 @@ static s32 act_credits_cutscene(struct MarioState *m) { m->actionState += 2; } - if (m->playerIndex == 0) { - s32 width = m->actionState * 640 / 100; - s32 height = m->actionState * 480 / 100; + if (gCurrCreditsEntry != NULL) { + if (m->playerIndex == 0) { + s32 width = m->actionState * 640 / 100; + s32 height = m->actionState * 480 / 100; - sEndCutsceneVp.vp.vscale[0] = 640 - width; - sEndCutsceneVp.vp.vscale[1] = 480 - height; - sEndCutsceneVp.vp.vtrans[0] = (gCurrCreditsEntry->unk02 & 0x10 ? width : -width) * 56 / 100 + 640; - sEndCutsceneVp.vp.vtrans[1] = (gCurrCreditsEntry->unk02 & 0x20 ? height : -height) * 66 / 100 + 480; + sEndCutsceneVp.vp.vscale[0] = 640 - width; + sEndCutsceneVp.vp.vscale[1] = 480 - height; + sEndCutsceneVp.vp.vtrans[0] = (gCurrCreditsEntry->unk02 & 0x10 ? width : -width) * 56 / 100 + 640; + sEndCutsceneVp.vp.vtrans[1] = (gCurrCreditsEntry->unk02 & 0x20 ? height : -height) * 66 / 100 + 480; - override_viewport_and_clip(&sEndCutsceneVp, 0, 0, 0, 0); + override_viewport_and_clip(&sEndCutsceneVp, 0, 0, 0, 0); + } } } - if (m->actionTimer == TIMER_CREDITS_PROGRESS && m->playerIndex == 0) { - reset_cutscene_msg_fade(); + if (gCurrCreditsEntry != NULL) { + if (m->actionTimer == TIMER_CREDITS_PROGRESS && m->playerIndex == 0) { + reset_cutscene_msg_fade(); + } + + if (m->actionTimer >= TIMER_CREDITS_PROGRESS && m->playerIndex == 0) { + sDispCreditsEntry = gCurrCreditsEntry; + } + + if (m->actionTimer++ == TIMER_CREDITS_WARP && m->playerIndex == 0) { + level_trigger_warp(m, WARP_OP_CREDITS_NEXT); + } + + m->marioObj->header.gfx.angle[1] += (gCurrCreditsEntry->unk02 & 0xC0) << 8; } - - if (m->actionTimer >= TIMER_CREDITS_PROGRESS && m->playerIndex == 0) { - sDispCreditsEntry = gCurrCreditsEntry; - } - - if (m->actionTimer++ == TIMER_CREDITS_WARP && m->playerIndex == 0) { - level_trigger_warp(m, WARP_OP_CREDITS_NEXT); - } - - m->marioObj->header.gfx.angle[1] += (gCurrCreditsEntry->unk02 & 0xC0) << 8; - return FALSE; } diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 7e78fea86..b59cb1dd7 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -244,521 +244,542 @@ char gSmluaConstants[] = "" " if flags == nil then flags = 0 end\n" " return (bank << 28) | (soundID << 16) | (priority << 8) | flags | SOUND_STATUS_WAITING\n" "end\n" -"id_bhvStarDoor = 0\n" -"id_bhvMrI = 1\n" -"id_bhvMrIBody = 2\n" -"id_bhvMrIParticle = 3\n" -"id_bhvPurpleParticle = 4\n" -"id_bhvGiantPole = 5\n" -"id_bhvPoleGrabbing = 6\n" -"id_bhvThiHugeIslandTop = 7\n" -"id_bhvThiTinyIslandTop = 8\n" -"id_bhvCapSwitchBase = 9\n" -"id_bhvCapSwitch = 10\n" -"id_bhvKingBobomb = 11\n" -"id_bhvBobombAnchorMario = 12\n" -"id_bhvBetaChestBottom = 13\n" -"id_bhvBetaChestLid = 14\n" -"id_bhvBubbleParticleSpawner = 15\n" -"id_bhvBubbleMaybe = 16\n" -"id_bhvBubblePlayer = 17\n" -"id_bhvSmallWaterWave = 18\n" -"id_bhvWaterAirBubble = 19\n" -"id_bhvSmallParticle = 20\n" -"id_bhvPlungeBubble = 21\n" -"id_bhvSmallParticleSnow = 22\n" -"id_bhvSmallParticleBubbles = 23\n" -"id_bhvFishGroup = 24\n" -"id_bhvCannon = 25\n" -"id_bhvCannonBarrel = 26\n" -"id_bhvCannonBaseUnused = 27\n" -"id_bhvChuckya = 28\n" -"id_bhvChuckyaAnchorMario = 29\n" -"id_bhvUnused05A8 = 30\n" -"id_bhvRotatingPlatform = 31\n" -"id_bhvTower = 32\n" -"id_bhvBulletBillCannon = 33\n" -"id_bhvWfBreakableWallRight = 34\n" -"id_bhvWfBreakableWallLeft = 35\n" -"id_bhvKickableBoard = 36\n" -"id_bhvTowerDoor = 37\n" -"id_bhvRotatingCounterClockwise = 38\n" -"id_bhvWfRotatingWoodenPlatform = 39\n" -"id_bhvKoopaShellUnderwater = 40\n" -"id_bhvExitPodiumWarp = 41\n" -"id_bhvFadingWarp = 42\n" -"id_bhvWarp = 43\n" -"id_bhvWarpPipe = 44\n" -"id_bhvWhitePuffExplosion = 45\n" -"id_bhvSpawnedStar = 46\n" -"id_bhvSpawnedStarNoLevelExit = 47\n" -"id_bhvMrIBlueCoin = 48\n" -"id_bhvCoinInsideBoo = 49\n" -"id_bhvCoinFormationSpawn = 50\n" -"id_bhvCoinFormation = 51\n" -"id_bhvOneCoin = 52\n" -"id_bhvYellowCoin = 53\n" -"id_bhvTemporaryYellowCoin = 54\n" -"id_bhvThreeCoinsSpawn = 55\n" -"id_bhvTenCoinsSpawn = 56\n" -"id_bhvSingleCoinGetsSpawned = 57\n" -"id_bhvCoinSparkles = 58\n" -"id_bhvGoldenCoinSparkles = 59\n" -"id_bhvWallTinyStarParticle = 60\n" -"id_bhvVertStarParticleSpawner = 61\n" -"id_bhvPoundTinyStarParticle = 62\n" -"id_bhvHorStarParticleSpawner = 63\n" -"id_bhvPunchTinyTriangle = 64\n" -"id_bhvTriangleParticleSpawner = 65\n" -"id_bhvDoorWarp = 66\n" -"id_bhvDoor = 67\n" -"id_bhvGrindel = 68\n" -"id_bhvThwomp2 = 69\n" -"id_bhvThwomp = 70\n" -"id_bhvTumblingBridgePlatform = 71\n" -"id_bhvWfTumblingBridge = 72\n" -"id_bhvBbhTumblingBridge = 73\n" -"id_bhvLllTumblingBridge = 74\n" -"id_bhvFlame = 75\n" -"id_bhvAnotherElavator = 76\n" -"id_bhvRrElevatorPlatform = 77\n" -"id_bhvHmcElevatorPlatform = 78\n" -"id_bhvWaterMist = 79\n" -"id_bhvBreathParticleSpawner = 80\n" -"id_bhvBreakBoxTriangle = 81\n" -"id_bhvWaterMist2 = 82\n" -"id_bhvUnused0DFC = 83\n" -"id_bhvMistCircParticleSpawner = 84\n" -"id_bhvDirtParticleSpawner = 85\n" -"id_bhvSnowParticleSpawner = 86\n" -"id_bhvWind = 87\n" -"id_bhvEndToad = 88\n" -"id_bhvEndPeach = 89\n" -"id_bhvUnusedParticleSpawn = 90\n" -"id_bhvUkiki = 91\n" -"id_bhvUkikiCageChild = 92\n" -"id_bhvUkikiCageStar = 93\n" -"id_bhvUkikiCage = 94\n" -"id_bhvBitfsSinkingPlatforms = 95\n" -"id_bhvBitfsSinkingCagePlatform = 96\n" -"id_bhvDddMovingPole = 97\n" -"id_bhvBitfsTiltingInvertedPyramid = 98\n" -"id_bhvSquishablePlatform = 99\n" -"id_bhvCutOutObject = 100\n" -"id_bhvBetaMovingFlames = 101\n" -"id_bhvRrRotatingBridgePlatform = 102\n" -"id_bhvFlamethrower = 103\n" -"id_bhvFlamethrowerFlame = 104\n" -"id_bhvBouncingFireball = 105\n" -"id_bhvBouncingFireballFlame = 106\n" -"id_bhvBowserShockWave = 107\n" -"id_bhvFireParticleSpawner = 108\n" -"id_bhvBlackSmokeMario = 109\n" -"id_bhvBlackSmokeBowser = 110\n" -"id_bhvBlackSmokeUpward = 111\n" -"id_bhvBetaFishSplashSpawner = 112\n" -"id_bhvSpindrift = 113\n" -"id_bhvTowerPlatformGroup = 114\n" -"id_bhvWfSlidingTowerPlatform = 115\n" -"id_bhvWfElevatorTowerPlatform = 116\n" -"id_bhvWfSolidTowerPlatform = 117\n" -"id_bhvLeafParticleSpawner = 118\n" -"id_bhvTreeSnow = 119\n" -"id_bhvTreeLeaf = 120\n" -"id_bhvAnotherTiltingPlatform = 121\n" -"id_bhvSquarishPathMoving = 122\n" -"id_bhvSquarishPathParent = 123\n" -"id_bhvPiranhaPlantBubble = 124\n" -"id_bhvPiranhaPlantWakingBubbles = 125\n" -"id_bhvFloorSwitchAnimatesObject = 126\n" -"id_bhvFloorSwitchGrills = 127\n" -"id_bhvFloorSwitchHardcodedModel = 128\n" -"id_bhvFloorSwitchHiddenObjects = 129\n" -"id_bhvHiddenObject = 130\n" -"id_bhvBreakableBox = 131\n" -"id_bhvPushableMetalBox = 132\n" -"id_bhvHeaveHo = 133\n" -"id_bhvHeaveHoThrowMario = 134\n" -"id_bhvCcmTouchedStarSpawn = 135\n" -"id_bhvUnusedPoundablePlatform = 136\n" -"id_bhvBetaTrampolineTop = 137\n" -"id_bhvBetaTrampolineSpring = 138\n" -"id_bhvJumpingBox = 139\n" -"id_bhvBooCage = 140\n" -"id_bhvStub = 141\n" -"id_bhvIgloo = 142\n" -"id_bhvBowserKey = 143\n" -"id_bhvGrandStar = 144\n" -"id_bhvBetaBooKey = 145\n" -"id_bhvAlphaBooKey = 146\n" -"id_bhvBulletBill = 147\n" -"id_bhvWhitePuffSmoke = 148\n" -"id_bhvUnused1820 = 149\n" -"id_bhvBowserTailAnchor = 150\n" -"id_bhvBowser = 151\n" -"id_bhvBowserBodyAnchor = 152\n" -"id_bhvBowserFlameSpawn = 153\n" -"id_bhvTiltingBowserLavaPlatform = 154\n" -"id_bhvFallingBowserPlatform = 155\n" -"id_bhvBlueBowserFlame = 156\n" -"id_bhvFlameFloatingLanding = 157\n" -"id_bhvBlueFlamesGroup = 158\n" -"id_bhvFlameBouncing = 159\n" -"id_bhvFlameMovingForwardGrowing = 160\n" -"id_bhvFlameBowser = 161\n" -"id_bhvFlameLargeBurningOut = 162\n" -"id_bhvBlueFish = 163\n" -"id_bhvTankFishGroup = 164\n" -"id_bhvCheckerboardElevatorGroup = 165\n" -"id_bhvCheckerboardPlatformSub = 166\n" -"id_bhvBowserKeyUnlockDoor = 167\n" -"id_bhvBowserKeyCourseExit = 168\n" -"id_bhvInvisibleObjectsUnderBridge = 169\n" -"id_bhvWaterLevelPillar = 170\n" -"id_bhvDddWarp = 171\n" -"id_bhvMoatGrills = 172\n" -"id_bhvClockMinuteHand = 173\n" -"id_bhvClockHourHand = 174\n" -"id_bhvMacroUkiki = 175\n" -"id_bhvStub1D0C = 176\n" -"id_bhvLllRotatingHexagonalPlatform = 177\n" -"id_bhvLllSinkingRockBlock = 178\n" -"id_bhvStub1D70 = 179\n" -"id_bhvLllMovingOctagonalMeshPlatform = 180\n" -"id_bhvLllRotatingBlockWithFireBars = 181\n" -"id_bhvLllRotatingHexFlame = 182\n" -"id_bhvLllWoodPiece = 183\n" -"id_bhvLllFloatingWoodBridge = 184\n" -"id_bhvVolcanoFlames = 185\n" -"id_bhvLllRotatingHexagonalRing = 186\n" -"id_bhvLllSinkingRectangularPlatform = 187\n" -"id_bhvLllSinkingSquarePlatforms = 188\n" -"id_bhvLllTiltingInvertedPyramid = 189\n" -"id_bhvUnused1F30 = 190\n" -"id_bhvKoopaShell = 191\n" -"id_bhvKoopaShellFlame = 192\n" -"id_bhvToxBox = 193\n" -"id_bhvPiranhaPlant = 194\n" -"id_bhvLllHexagonalMesh = 195\n" -"id_bhvLllBowserPuzzlePiece = 196\n" -"id_bhvLllBowserPuzzle = 197\n" -"id_bhvTuxiesMother = 198\n" -"id_bhvPenguinBaby = 199\n" -"id_bhvUnused20E0 = 200\n" -"id_bhvSmallPenguin = 201\n" -"id_bhvManyBlueFishSpawner = 202\n" -"id_bhvFewBlueFishSpawner = 203\n" -"id_bhvFishSpawner = 204\n" -"id_bhvFish = 205\n" -"id_bhvWdwExpressElevator = 206\n" -"id_bhvWdwExpressElevatorPlatform = 207\n" -"id_bhvChirpChirp = 208\n" -"id_bhvBub = 209\n" -"id_bhvExclamationBox = 210\n" -"id_bhvRotatingExclamationMark = 211\n" -"id_bhvSoundSpawner = 212\n" -"id_bhvRockSolid = 213\n" -"id_bhvBowserSubDoor = 214\n" -"id_bhvBowsersSub = 215\n" -"id_bhvSushiShark = 216\n" -"id_bhvSushiSharkCollisionChild = 217\n" -"id_bhvJrbSlidingBox = 218\n" -"id_bhvShipPart3 = 219\n" -"id_bhvInSunkenShip3 = 220\n" -"id_bhvSunkenShipPart = 221\n" -"id_bhvSunkenShipPart2 = 222\n" -"id_bhvInSunkenShip = 223\n" -"id_bhvInSunkenShip2 = 224\n" -"id_bhvMistParticleSpawner = 225\n" -"id_bhvWhitePuff1 = 226\n" -"id_bhvWhitePuff2 = 227\n" -"id_bhvWhitePuffSmoke2 = 228\n" -"id_bhvPurpleSwitchHiddenBoxes = 229\n" -"id_bhvBlueCoinSwitch = 230\n" -"id_bhvHiddenBlueCoin = 231\n" -"id_bhvOpenableCageDoor = 232\n" -"id_bhvOpenableGrill = 233\n" -"id_bhvWaterLevelDiamond = 234\n" -"id_bhvInitializeChangingWaterLevel = 235\n" -"id_bhvTweesterSandParticle = 236\n" -"id_bhvTweester = 237\n" -"id_bhvMerryGoRoundBooManager = 238\n" -"id_bhvAnimatedTexture = 239\n" -"id_bhvBooInCastle = 240\n" -"id_bhvBooWithCage = 241\n" -"id_bhvBalconyBigBoo = 242\n" -"id_bhvMerryGoRoundBigBoo = 243\n" -"id_bhvGhostHuntBigBoo = 244\n" -"id_bhvCourtyardBooTriplet = 245\n" -"id_bhvBoo = 246\n" -"id_bhvMerryGoRoundBoo = 247\n" -"id_bhvGhostHuntBoo = 248\n" -"id_bhvHiddenStaircaseStep = 249\n" -"id_bhvBooBossSpawnedBridge = 250\n" -"id_bhvBbhTiltingTrapPlatform = 251\n" -"id_bhvHauntedBookshelf = 252\n" -"id_bhvMeshElevator = 253\n" -"id_bhvMerryGoRound = 254\n" -"id_bhvPlaysMusicTrackWhenTouched = 255\n" -"id_bhvBetaBowserAnchor = 256\n" -"id_bhvStaticCheckeredPlatform = 257\n" -"id_bhvUnused2A10 = 258\n" -"id_bhvUnusedFakeStar = 259\n" -"id_bhvStaticObject = 260\n" -"id_bhvUnused2A54 = 261\n" -"id_bhvCastleFloorTrap = 262\n" -"id_bhvFloorTrapInCastle = 263\n" -"id_bhvTree = 264\n" -"id_bhvSparkle = 265\n" -"id_bhvSparkleSpawn = 266\n" -"id_bhvSparkleParticleSpawner = 267\n" -"id_bhvScuttlebug = 268\n" -"id_bhvScuttlebugSpawn = 269\n" -"id_bhvWhompKingBoss = 270\n" -"id_bhvSmallWhomp = 271\n" -"id_bhvWaterSplash = 272\n" -"id_bhvWaterDroplet = 273\n" -"id_bhvWaterDropletSplash = 274\n" -"id_bhvBubbleSplash = 275\n" -"id_bhvIdleWaterWave = 276\n" -"id_bhvObjectWaterSplash = 277\n" -"id_bhvShallowWaterWave = 278\n" -"id_bhvShallowWaterSplash = 279\n" -"id_bhvObjectWaveTrail = 280\n" -"id_bhvWaveTrail = 281\n" -"id_bhvTinyStrongWindParticle = 282\n" -"id_bhvStrongWindParticle = 283\n" -"id_bhvSLSnowmanWind = 284\n" -"id_bhvSLWalkingPenguin = 285\n" -"id_bhvYellowBall = 286\n" -"id_bhvMario = 287\n" -"id_bhvToadMessage = 288\n" -"id_bhvUnlockDoorStar = 289\n" -"id_bhvRandomAnimatedTexture = 290\n" -"id_bhvYellowBackgroundInMenu = 291\n" -"id_bhvMenuButton = 292\n" -"id_bhvMenuButtonManager = 293\n" -"id_bhvActSelectorStarType = 294\n" -"id_bhvActSelector = 295\n" -"id_bhvMovingYellowCoin = 296\n" -"id_bhvMovingBlueCoin = 297\n" -"id_bhvBlueCoinSliding = 298\n" -"id_bhvBlueCoinJumping = 299\n" -"id_bhvSeaweed = 300\n" -"id_bhvSeaweedBundle = 301\n" -"id_bhvBobomb = 302\n" -"id_bhvBobombFuseSmoke = 303\n" -"id_bhvBobombBuddy = 304\n" -"id_bhvBobombBuddyOpensCannon = 305\n" -"id_bhvCannonClosed = 306\n" -"id_bhvWhirlpool = 307\n" -"id_bhvJetStream = 308\n" -"id_bhvMessagePanel = 309\n" -"id_bhvSignOnWall = 310\n" -"id_bhvHomingAmp = 311\n" -"id_bhvCirclingAmp = 312\n" -"id_bhvButterfly = 313\n" -"id_bhvHoot = 314\n" -"id_bhvBetaHoldableObject = 315\n" -"id_bhvCarrySomething1 = 316\n" -"id_bhvCarrySomething2 = 317\n" -"id_bhvCarrySomething3 = 318\n" -"id_bhvCarrySomething4 = 319\n" -"id_bhvCarrySomething5 = 320\n" -"id_bhvCarrySomething6 = 321\n" -"id_bhvObjectBubble = 322\n" -"id_bhvObjectWaterWave = 323\n" -"id_bhvExplosion = 324\n" -"id_bhvBobombBullyDeathSmoke = 325\n" -"id_bhvSmoke = 326\n" -"id_bhvBobombExplosionBubble = 327\n" -"id_bhvRespawner = 328\n" -"id_bhvSmallBully = 329\n" -"id_bhvBigBully = 330\n" -"id_bhvBigBullyWithMinions = 331\n" -"id_bhvSmallChillBully = 332\n" -"id_bhvBigChillBully = 333\n" -"id_bhvJetStreamRingSpawner = 334\n" -"id_bhvJetStreamWaterRing = 335\n" -"id_bhvMantaRayWaterRing = 336\n" -"id_bhvMantaRayRingManager = 337\n" -"id_bhvBowserBomb = 338\n" -"id_bhvBowserBombExplosion = 339\n" -"id_bhvBowserBombSmoke = 340\n" -"id_bhvCelebrationStar = 341\n" -"id_bhvCelebrationStarSparkle = 342\n" -"id_bhvStarKeyCollectionPuffSpawner = 343\n" -"id_bhvLllDrawbridgeSpawner = 344\n" -"id_bhvLllDrawbridge = 345\n" -"id_bhvSmallBomp = 346\n" -"id_bhvLargeBomp = 347\n" -"id_bhvWfSlidingPlatform = 348\n" -"id_bhvMoneybag = 349\n" -"id_bhvMoneybagHidden = 350\n" -"id_bhvPitBowlingBall = 351\n" -"id_bhvFreeBowlingBall = 352\n" -"id_bhvBowlingBall = 353\n" -"id_bhvTtmBowlingBallSpawner = 354\n" -"id_bhvBobBowlingBallSpawner = 355\n" -"id_bhvThiBowlingBallSpawner = 356\n" -"id_bhvRrCruiserWing = 357\n" -"id_bhvSpindel = 358\n" -"id_bhvSslMovingPyramidWall = 359\n" -"id_bhvPyramidElevator = 360\n" -"id_bhvPyramidElevatorTrajectoryMarkerBall = 361\n" -"id_bhvPyramidTop = 362\n" -"id_bhvPyramidTopFragment = 363\n" -"id_bhvPyramidPillarTouchDetector = 364\n" -"id_bhvWaterfallSoundLoop = 365\n" -"id_bhvVolcanoSoundLoop = 366\n" -"id_bhvCastleFlagWaving = 367\n" -"id_bhvBirdsSoundLoop = 368\n" -"id_bhvAmbientSounds = 369\n" -"id_bhvSandSoundLoop = 370\n" -"id_bhvHiddenAt120Stars = 371\n" -"id_bhvSnowmansBottom = 372\n" -"id_bhvSnowmansHead = 373\n" -"id_bhvSnowmansBodyCheckpoint = 374\n" -"id_bhvBigSnowmanWhole = 375\n" -"id_bhvBigBoulder = 376\n" -"id_bhvBigBoulderGenerator = 377\n" -"id_bhvWingCap = 378\n" -"id_bhvMetalCap = 379\n" -"id_bhvNormalCap = 380\n" -"id_bhvVanishCap = 381\n" -"id_bhvStar = 382\n" -"id_bhvStarSpawnCoordinates = 383\n" -"id_bhvHiddenRedCoinStar = 384\n" -"id_bhvRedCoin = 385\n" -"id_bhvBowserCourseRedCoinStar = 386\n" -"id_bhvHiddenStar = 387\n" -"id_bhvHiddenStarTrigger = 388\n" -"id_bhvTtmRollingLog = 389\n" -"id_bhvLllVolcanoFallingTrap = 390\n" -"id_bhvLllRollingLog = 391\n" -"id_bhv1upWalking = 392\n" -"id_bhv1upRunningAway = 393\n" -"id_bhv1upSliding = 394\n" -"id_bhv1Up = 395\n" -"id_bhv1upJumpOnApproach = 396\n" -"id_bhvHidden1up = 397\n" -"id_bhvHidden1upTrigger = 398\n" -"id_bhvHidden1upInPole = 399\n" -"id_bhvHidden1upInPoleTrigger = 400\n" -"id_bhvHidden1upInPoleSpawner = 401\n" -"id_bhvControllablePlatform = 402\n" -"id_bhvControllablePlatformSub = 403\n" -"id_bhvBreakableBoxSmall = 404\n" -"id_bhvSlidingSnowMound = 405\n" -"id_bhvSnowMoundSpawn = 406\n" -"id_bhvWdwSquareFloatingPlatform = 407\n" -"id_bhvWdwRectangularFloatingPlatform = 408\n" -"id_bhvJrbFloatingPlatform = 409\n" -"id_bhvArrowLift = 410\n" -"id_bhvOrangeNumber = 411\n" -"id_bhvMantaRay = 412\n" -"id_bhvFallingPillar = 413\n" -"id_bhvFallingPillarHitbox = 414\n" -"id_bhvPillarBase = 415\n" -"id_bhvJrbFloatingBox = 416\n" -"id_bhvDecorativePendulum = 417\n" -"id_bhvTreasureChestsShip = 418\n" -"id_bhvTreasureChestsJrb = 419\n" -"id_bhvTreasureChests = 420\n" -"id_bhvTreasureChestBottom = 421\n" -"id_bhvTreasureChestTop = 422\n" -"id_bhvMips = 423\n" -"id_bhvYoshi = 424\n" -"id_bhvKoopa = 425\n" -"id_bhvKoopaRaceEndpoint = 426\n" -"id_bhvKoopaFlag = 427\n" -"id_bhvPokey = 428\n" -"id_bhvPokeyBodyPart = 429\n" -"id_bhvSwoop = 430\n" -"id_bhvFlyGuy = 431\n" -"id_bhvGoomba = 432\n" -"id_bhvGoombaTripletSpawner = 433\n" -"id_bhvChainChomp = 434\n" -"id_bhvChainChompChainPart = 435\n" -"id_bhvWoodenPost = 436\n" -"id_bhvChainChompGate = 437\n" -"id_bhvWigglerHead = 438\n" -"id_bhvWigglerBody = 439\n" -"id_bhvEnemyLakitu = 440\n" -"id_bhvCameraLakitu = 441\n" -"id_bhvCloud = 442\n" -"id_bhvCloudPart = 443\n" -"id_bhvSpiny = 444\n" -"id_bhvMontyMole = 445\n" -"id_bhvMontyMoleHole = 446\n" -"id_bhvMontyMoleRock = 447\n" -"id_bhvPlatformOnTrack = 448\n" -"id_bhvTrackBall = 449\n" -"id_bhvSeesawPlatform = 450\n" -"id_bhvFerrisWheelAxle = 451\n" -"id_bhvFerrisWheelPlatform = 452\n" -"id_bhvWaterBombSpawner = 453\n" -"id_bhvWaterBomb = 454\n" -"id_bhvWaterBombShadow = 455\n" -"id_bhvTTCRotatingSolid = 456\n" -"id_bhvTTCPendulum = 457\n" -"id_bhvTTCTreadmill = 458\n" -"id_bhvTTCMovingBar = 459\n" -"id_bhvTTCCog = 460\n" -"id_bhvTTCPitBlock = 461\n" -"id_bhvTTCElevator = 462\n" -"id_bhvTTC2DRotator = 463\n" -"id_bhvTTCSpinner = 464\n" -"id_bhvMrBlizzard = 465\n" -"id_bhvMrBlizzardSnowball = 466\n" -"id_bhvSlidingPlatform2 = 467\n" -"id_bhvOctagonalPlatformRotating = 468\n" -"id_bhvAnimatesOnFloorSwitchPress = 469\n" -"id_bhvActivatedBackAndForthPlatform = 470\n" -"id_bhvRecoveryHeart = 471\n" -"id_bhvWaterBombCannon = 472\n" -"id_bhvCannonBarrelBubbles = 473\n" -"id_bhvUnagi = 474\n" -"id_bhvUnagiSubobject = 475\n" -"id_bhvDorrie = 476\n" -"id_bhvHauntedChair = 477\n" -"id_bhvMadPiano = 478\n" -"id_bhvFlyingBookend = 479\n" -"id_bhvBookendSpawn = 480\n" -"id_bhvHauntedBookshelfManager = 481\n" -"id_bhvBookSwitch = 482\n" -"id_bhvFirePiranhaPlant = 483\n" -"id_bhvSmallPiranhaFlame = 484\n" -"id_bhvFireSpitter = 485\n" -"id_bhvFlyguyFlame = 486\n" -"id_bhvSnufit = 487\n" -"id_bhvSnufitBalls = 488\n" -"id_bhvHorizontalGrindel = 489\n" -"id_bhvEyerokBoss = 490\n" -"id_bhvEyerokHand = 491\n" -"id_bhvKlepto = 492\n" -"id_bhvBird = 493\n" -"id_bhvRacingPenguin = 494\n" -"id_bhvPenguinRaceFinishLine = 495\n" -"id_bhvPenguinRaceShortcutCheck = 496\n" -"id_bhvCoffinSpawner = 497\n" -"id_bhvCoffin = 498\n" -"id_bhvClamShell = 499\n" -"id_bhvSkeeter = 500\n" -"id_bhvSkeeterWave = 501\n" -"id_bhvSwingPlatform = 502\n" -"id_bhvDonutPlatformSpawner = 503\n" -"id_bhvDonutPlatform = 504\n" -"id_bhvDDDPole = 505\n" -"id_bhvRedCoinStarMarker = 506\n" -"id_bhvTripletButterfly = 507\n" -"id_bhvBubba = 508\n" -"id_bhvBeginningLakitu = 509\n" -"id_bhvBeginningPeach = 510\n" -"id_bhvEndBirds1 = 511\n" -"id_bhvEndBirds2 = 512\n" -"id_bhvIntroScene = 513\n" -"id_bhv_max_count = 514\n" +"id_bhv1Up = 0\n" +"id_bhv1upJumpOnApproach = 1\n" +"id_bhv1upRunningAway = 2\n" +"id_bhv1upSliding = 3\n" +"id_bhv1upWalking = 4\n" +"id_bhvActivatedBackAndForthPlatform = 5\n" +"id_bhvActSelector = 6\n" +"id_bhvActSelectorStarType = 7\n" +"id_bhvAirborneDeathWarp = 8\n" +"id_bhvAirborneStarCollectWarp = 9\n" +"id_bhvAirborneWarp = 10\n" +"id_bhvAlphaBooKey = 11\n" +"id_bhvAmbientSounds = 12\n" +"id_bhvAnimatedTexture = 13\n" +"id_bhvAnimatesOnFloorSwitchPress = 14\n" +"id_bhvAnotherElavator = 15\n" +"id_bhvAnotherTiltingPlatform = 16\n" +"id_bhvArrowLift = 17\n" +"id_bhvBalconyBigBoo = 18\n" +"id_bhvBbhTiltingTrapPlatform = 19\n" +"id_bhvBbhTumblingBridge = 20\n" +"id_bhvBeginningLakitu = 21\n" +"id_bhvBeginningPeach = 22\n" +"id_bhvBetaBooKey = 23\n" +"id_bhvBetaBowserAnchor = 24\n" +"id_bhvBetaChestBottom = 25\n" +"id_bhvBetaChestLid = 26\n" +"id_bhvBetaFishSplashSpawner = 27\n" +"id_bhvBetaHoldableObject = 28\n" +"id_bhvBetaMovingFlames = 29\n" +"id_bhvBetaMovingFlamesSpawn = 30\n" +"id_bhvBetaTrampolineSpring = 31\n" +"id_bhvBetaTrampolineTop = 32\n" +"id_bhvBigBoulder = 33\n" +"id_bhvBigBoulderGenerator = 34\n" +"id_bhvBigBully = 35\n" +"id_bhvBigBullyWithMinions = 36\n" +"id_bhvBigChillBully = 37\n" +"id_bhvBigSnowmanWhole = 38\n" +"id_bhvBird = 39\n" +"id_bhvBirdsSoundLoop = 40\n" +"id_bhvBitfsSinkingCagePlatform = 41\n" +"id_bhvBitfsSinkingPlatforms = 42\n" +"id_bhvBitfsTiltingInvertedPyramid = 43\n" +"id_bhvBlackSmokeBowser = 44\n" +"id_bhvBlackSmokeMario = 45\n" +"id_bhvBlackSmokeUpward = 46\n" +"id_bhvBlueBowserFlame = 47\n" +"id_bhvBlueCoinJumping = 48\n" +"id_bhvBlueCoinSliding = 49\n" +"id_bhvBlueCoinSwitch = 50\n" +"id_bhvBlueFish = 51\n" +"id_bhvBlueFlamesGroup = 52\n" +"id_bhvBobBowlingBallSpawner = 53\n" +"id_bhvBobomb = 54\n" +"id_bhvBobombAnchorMario = 55\n" +"id_bhvBobombBuddy = 56\n" +"id_bhvBobombBuddyOpensCannon = 57\n" +"id_bhvBobombBullyDeathSmoke = 58\n" +"id_bhvBobombExplosionBubble = 59\n" +"id_bhvBobombExplosionBubble3600 = 60\n" +"id_bhvBobombFuseSmoke = 61\n" +"id_bhvBoo = 62\n" +"id_bhvBooBossSpawnedBridge = 63\n" +"id_bhvBooCage = 64\n" +"id_bhvBooInCastle = 65\n" +"id_bhvBookendSpawn = 66\n" +"id_bhvBookSwitch = 67\n" +"id_bhvBooWithCage = 68\n" +"id_bhvBouncingFireball = 69\n" +"id_bhvBouncingFireballFlame = 70\n" +"id_bhvBowlingBall = 71\n" +"id_bhvBowser = 72\n" +"id_bhvBowserBodyAnchor = 73\n" +"id_bhvBowserBomb = 74\n" +"id_bhvBowserBombExplosion = 75\n" +"id_bhvBowserBombSmoke = 76\n" +"id_bhvBowserCourseRedCoinStar = 77\n" +"id_bhvBowserFlameSpawn = 78\n" +"id_bhvBowserKey = 79\n" +"id_bhvBowserKeyCourseExit = 80\n" +"id_bhvBowserKeyUnlockDoor = 81\n" +"id_bhvBowserShockWave = 82\n" +"id_bhvBowsersSub = 83\n" +"id_bhvBowserSubDoor = 84\n" +"id_bhvBowserTailAnchor = 85\n" +"id_bhvBreakableBox = 86\n" +"id_bhvBreakableBoxSmall = 87\n" +"id_bhvBreakBoxTriangle = 88\n" +"id_bhvBreathParticleSpawner = 89\n" +"id_bhvBub = 90\n" +"id_bhvBubba = 91\n" +"id_bhvBubbleMaybe = 92\n" +"id_bhvBubbleParticleSpawner = 93\n" +"id_bhvBubblePlayer = 94\n" +"id_bhvBubbleSplash = 95\n" +"id_bhvBulletBill = 96\n" +"id_bhvBulletBillCannon = 97\n" +"id_bhvButterfly = 98\n" +"id_bhvCameraLakitu = 99\n" +"id_bhvCannon = 100\n" +"id_bhvCannonBarrel = 101\n" +"id_bhvCannonBarrelBubbles = 102\n" +"id_bhvCannonBaseUnused = 103\n" +"id_bhvCannonClosed = 104\n" +"id_bhvCapSwitch = 105\n" +"id_bhvCapSwitchBase = 106\n" +"id_bhvCarrySomething1 = 107\n" +"id_bhvCarrySomething2 = 108\n" +"id_bhvCarrySomething3 = 109\n" +"id_bhvCarrySomething4 = 110\n" +"id_bhvCarrySomething5 = 111\n" +"id_bhvCarrySomething6 = 112\n" +"id_bhvCastleFlagWaving = 113\n" +"id_bhvCastleFloorTrap = 114\n" +"id_bhvCcmTouchedStarSpawn = 115\n" +"id_bhvCelebrationStar = 116\n" +"id_bhvCelebrationStarSparkle = 117\n" +"id_bhvChainChomp = 118\n" +"id_bhvChainChompChainPart = 119\n" +"id_bhvChainChompGate = 120\n" +"id_bhvCheckerboardElevatorGroup = 121\n" +"id_bhvCheckerboardPlatformSub = 122\n" +"id_bhvChirpChirp = 123\n" +"id_bhvChirpChirpUnused = 124\n" +"id_bhvChuckya = 125\n" +"id_bhvChuckyaAnchorMario = 126\n" +"id_bhvCirclingAmp = 127\n" +"id_bhvClamShell = 128\n" +"id_bhvClockHourHand = 129\n" +"id_bhvClockMinuteHand = 130\n" +"id_bhvCloud = 131\n" +"id_bhvCloudPart = 132\n" +"id_bhvCoffin = 133\n" +"id_bhvCoffinSpawner = 134\n" +"id_bhvCoinFormation = 135\n" +"id_bhvCoinFormationSpawn = 136\n" +"id_bhvCoinInsideBoo = 137\n" +"id_bhvCoinSparkles = 138\n" +"id_bhvControllablePlatform = 139\n" +"id_bhvControllablePlatformSub = 140\n" +"id_bhvCourtyardBooTriplet = 141\n" +"id_bhvCutOutObject = 142\n" +"id_bhvDddMovingPole = 143\n" +"id_bhvDDDPole = 144\n" +"id_bhvDddWarp = 145\n" +"id_bhvDeathWarp = 146\n" +"id_bhvDecorativePendulum = 147\n" +"id_bhvDirtParticleSpawner = 148\n" +"id_bhvDonutPlatform = 149\n" +"id_bhvDonutPlatformSpawner = 150\n" +"id_bhvDoor = 151\n" +"id_bhvDoorWarp = 152\n" +"id_bhvDorrie = 153\n" +"id_bhvEndBirds1 = 154\n" +"id_bhvEndBirds2 = 155\n" +"id_bhvEndPeach = 156\n" +"id_bhvEndToad = 157\n" +"id_bhvEnemyLakitu = 158\n" +"id_bhvExclamationBox = 159\n" +"id_bhvExitPodiumWarp = 160\n" +"id_bhvExplosion = 161\n" +"id_bhvEyerokBoss = 162\n" +"id_bhvEyerokHand = 163\n" +"id_bhvFadingWarp = 164\n" +"id_bhvFallingBowserPlatform = 165\n" +"id_bhvFallingPillar = 166\n" +"id_bhvFallingPillarHitbox = 167\n" +"id_bhvFerrisWheelAxle = 168\n" +"id_bhvFerrisWheelPlatform = 169\n" +"id_bhvFewBlueFishSpawner = 170\n" +"id_bhvFireParticleSpawner = 171\n" +"id_bhvFirePiranhaPlant = 172\n" +"id_bhvFireSpitter = 173\n" +"id_bhvFish = 174\n" +"id_bhvFishGroup = 175\n" +"id_bhvFishSpawner = 176\n" +"id_bhvFlame = 177\n" +"id_bhvFlameBouncing = 178\n" +"id_bhvFlameBowser = 179\n" +"id_bhvFlameFloatingLanding = 180\n" +"id_bhvFlameLargeBurningOut = 181\n" +"id_bhvFlameMovingForwardGrowing = 182\n" +"id_bhvFlamethrower = 183\n" +"id_bhvFlamethrowerFlame = 184\n" +"id_bhvFloorSwitchAnimatesObject = 185\n" +"id_bhvFloorSwitchGrills = 186\n" +"id_bhvFloorSwitchHardcodedModel = 187\n" +"id_bhvFloorSwitchHiddenObjects = 188\n" +"id_bhvFloorTrapInCastle = 189\n" +"id_bhvFlyGuy = 190\n" +"id_bhvFlyguyFlame = 191\n" +"id_bhvFlyingBookend = 192\n" +"id_bhvFlyingWarp = 193\n" +"id_bhvFreeBowlingBall = 194\n" +"id_bhvGhostHuntBigBoo = 195\n" +"id_bhvGhostHuntBoo = 196\n" +"id_bhvGiantPole = 197\n" +"id_bhvGoldenCoinSparkles = 198\n" +"id_bhvGoomba = 199\n" +"id_bhvGoombaTripletSpawner = 200\n" +"id_bhvGrandStar = 201\n" +"id_bhvGrindel = 202\n" +"id_bhvHardAirKnockBackWarp = 203\n" +"id_bhvHauntedBookshelf = 204\n" +"id_bhvHauntedBookshelfManager = 205\n" +"id_bhvHauntedChair = 206\n" +"id_bhvHeaveHo = 207\n" +"id_bhvHeaveHoThrowMario = 208\n" +"id_bhvHidden1up = 209\n" +"id_bhvHidden1upInPole = 210\n" +"id_bhvHidden1upInPoleSpawner = 211\n" +"id_bhvHidden1upInPoleTrigger = 212\n" +"id_bhvHidden1upTrigger = 213\n" +"id_bhvHiddenAt120Stars = 214\n" +"id_bhvHiddenBlueCoin = 215\n" +"id_bhvHiddenObject = 216\n" +"id_bhvHiddenRedCoinStar = 217\n" +"id_bhvHiddenStaircaseStep = 218\n" +"id_bhvHiddenStar = 219\n" +"id_bhvHiddenStarTrigger = 220\n" +"id_bhvHmcElevatorPlatform = 221\n" +"id_bhvHomingAmp = 222\n" +"id_bhvHoot = 223\n" +"id_bhvHorizontalGrindel = 224\n" +"id_bhvHorStarParticleSpawner = 225\n" +"id_bhvIdleWaterWave = 226\n" +"id_bhvIgloo = 227\n" +"id_bhvInitializeChangingWaterLevel = 228\n" +"id_bhvInsideCannon = 229\n" +"id_bhvInstantActiveWarp = 230\n" +"id_bhvInSunkenShip = 231\n" +"id_bhvInSunkenShip2 = 232\n" +"id_bhvInSunkenShip3 = 233\n" +"id_bhvIntroScene = 234\n" +"id_bhvInvisibleObjectsUnderBridge = 235\n" +"id_bhvJetStream = 236\n" +"id_bhvJetStreamRingSpawner = 237\n" +"id_bhvJetStreamWaterRing = 238\n" +"id_bhvJrbFloatingBox = 239\n" +"id_bhvJrbFloatingPlatform = 240\n" +"id_bhvJrbSlidingBox = 241\n" +"id_bhvJumpingBox = 242\n" +"id_bhvKickableBoard = 243\n" +"id_bhvKingBobomb = 244\n" +"id_bhvKlepto = 245\n" +"id_bhvKoopa = 246\n" +"id_bhvKoopaFlag = 247\n" +"id_bhvKoopaRaceEndpoint = 248\n" +"id_bhvKoopaShell = 249\n" +"id_bhvKoopaShellFlame = 250\n" +"id_bhvKoopaShellUnderwater = 251\n" +"id_bhvLargeBomp = 252\n" +"id_bhvLaunchDeathWarp = 253\n" +"id_bhvLaunchStarCollectWarp = 254\n" +"id_bhvLeafParticleSpawner = 255\n" +"id_bhvLllBowserPuzzle = 256\n" +"id_bhvLllBowserPuzzlePiece = 257\n" +"id_bhvLllDrawbridge = 258\n" +"id_bhvLllDrawbridgeSpawner = 259\n" +"id_bhvLllFloatingWoodBridge = 260\n" +"id_bhvLllHexagonalMesh = 261\n" +"id_bhvLllMovingOctagonalMeshPlatform = 262\n" +"id_bhvLllRollingLog = 263\n" +"id_bhvLllRotatingBlockWithFireBars = 264\n" +"id_bhvLllRotatingHexagonalPlatform = 265\n" +"id_bhvLllRotatingHexagonalRing = 266\n" +"id_bhvLllRotatingHexFlame = 267\n" +"id_bhvLllSinkingRectangularPlatform = 268\n" +"id_bhvLllSinkingRockBlock = 269\n" +"id_bhvLllSinkingSquarePlatforms = 270\n" +"id_bhvLllTiltingInvertedPyramid = 271\n" +"id_bhvLllTumblingBridge = 272\n" +"id_bhvLllVolcanoFallingTrap = 273\n" +"id_bhvLllWoodPiece = 274\n" +"id_bhvMacroUkiki = 275\n" +"id_bhvMadPiano = 276\n" +"id_bhvMantaRay = 277\n" +"id_bhvMantaRayRingManager = 278\n" +"id_bhvMantaRayWaterRing = 279\n" +"id_bhvManyBlueFishSpawner = 280\n" +"id_bhvMario = 281\n" +"id_bhvMenuButton = 282\n" +"id_bhvMenuButtonManager = 283\n" +"id_bhvMerryGoRound = 284\n" +"id_bhvMerryGoRoundBigBoo = 285\n" +"id_bhvMerryGoRoundBoo = 286\n" +"id_bhvMerryGoRoundBooManager = 287\n" +"id_bhvMeshElevator = 288\n" +"id_bhvMessagePanel = 289\n" +"id_bhvMetalCap = 290\n" +"id_bhvMips = 291\n" +"id_bhvMistCircParticleSpawner = 292\n" +"id_bhvMistParticleSpawner = 293\n" +"id_bhvMoatGrills = 294\n" +"id_bhvMoneybag = 295\n" +"id_bhvMoneybagHidden = 296\n" +"id_bhvMontyMole = 297\n" +"id_bhvMontyMoleHole = 298\n" +"id_bhvMontyMoleRock = 299\n" +"id_bhvMovingBlueCoin = 300\n" +"id_bhvMovingYellowCoin = 301\n" +"id_bhvMrBlizzard = 302\n" +"id_bhvMrBlizzardSnowball = 303\n" +"id_bhvMrI = 304\n" +"id_bhvMrIBlueCoin = 305\n" +"id_bhvMrIBody = 306\n" +"id_bhvMrIParticle = 307\n" +"id_bhvNormalCap = 308\n" +"id_bhvObjectBubble = 309\n" +"id_bhvObjectWaterSplash = 310\n" +"id_bhvObjectWaterWave = 311\n" +"id_bhvObjectWaveTrail = 312\n" +"id_bhvOctagonalPlatformRotating = 313\n" +"id_bhvOneCoin = 314\n" +"id_bhvOpenableCageDoor = 315\n" +"id_bhvOpenableGrill = 316\n" +"id_bhvOrangeNumber = 317\n" +"id_bhvPaintingDeathWarp = 318\n" +"id_bhvPaintingStarCollectWarp = 319\n" +"id_bhvPenguinBaby = 320\n" +"id_bhvPenguinRaceFinishLine = 321\n" +"id_bhvPenguinRaceShortcutCheck = 322\n" +"id_bhvPillarBase = 323\n" +"id_bhvPiranhaPlant = 324\n" +"id_bhvPiranhaPlantBubble = 325\n" +"id_bhvPiranhaPlantWakingBubbles = 326\n" +"id_bhvPitBowlingBall = 327\n" +"id_bhvPlatformOnTrack = 328\n" +"id_bhvPlaysMusicTrackWhenTouched = 329\n" +"id_bhvPlungeBubble = 330\n" +"id_bhvPokey = 331\n" +"id_bhvPokeyBodyPart = 332\n" +"id_bhvPoleGrabbing = 333\n" +"id_bhvPoundTinyStarParticle = 334\n" +"id_bhvPunchTinyTriangle = 335\n" +"id_bhvPurpleParticle = 336\n" +"id_bhvPurpleSwitchHiddenBoxes = 337\n" +"id_bhvPushableMetalBox = 338\n" +"id_bhvPyramidElevator = 339\n" +"id_bhvPyramidElevatorTrajectoryMarkerBall = 340\n" +"id_bhvPyramidPillarTouchDetector = 341\n" +"id_bhvPyramidTop = 342\n" +"id_bhvPyramidTopFragment = 343\n" +"id_bhvRacingPenguin = 344\n" +"id_bhvRandomAnimatedTexture = 345\n" +"id_bhvRecoveryHeart = 346\n" +"id_bhvRedCoin = 347\n" +"id_bhvRedCoinStarMarker = 348\n" +"id_bhvRespawner = 349\n" +"id_bhvRockSolid = 350\n" +"id_bhvRotatingCounterClockwise = 351\n" +"id_bhvRotatingExclamationMark = 352\n" +"id_bhvRotatingPlatform = 353\n" +"id_bhvRrCruiserWing = 354\n" +"id_bhvRrElevatorPlatform = 355\n" +"id_bhvRrRotatingBridgePlatform = 356\n" +"id_bhvSandSoundLoop = 357\n" +"id_bhvScuttlebug = 358\n" +"id_bhvScuttlebugSpawn = 359\n" +"id_bhvSeaweed = 360\n" +"id_bhvSeaweedBundle = 361\n" +"id_bhvSeesawPlatform = 362\n" +"id_bhvShallowWaterSplash = 363\n" +"id_bhvShallowWaterWave = 364\n" +"id_bhvShipPart3 = 365\n" +"id_bhvSignOnWall = 366\n" +"id_bhvSingleCoinGetsSpawned = 367\n" +"id_bhvSkeeter = 368\n" +"id_bhvSkeeterWave = 369\n" +"id_bhvSlidingPlatform2 = 370\n" +"id_bhvSlidingSnowMound = 371\n" +"id_bhvSLSnowmanWind = 372\n" +"id_bhvSLWalkingPenguin = 373\n" +"id_bhvSmallBomp = 374\n" +"id_bhvSmallBully = 375\n" +"id_bhvSmallChillBully = 376\n" +"id_bhvSmallParticle = 377\n" +"id_bhvSmallParticleBubbles = 378\n" +"id_bhvSmallParticleSnow = 379\n" +"id_bhvSmallPenguin = 380\n" +"id_bhvSmallPiranhaFlame = 381\n" +"id_bhvSmallWaterWave = 382\n" +"id_bhvSmallWaterWave398 = 383\n" +"id_bhvSmallWhomp = 384\n" +"id_bhvSmoke = 385\n" +"id_bhvSnowBall = 386\n" +"id_bhvSnowmansBodyCheckpoint = 387\n" +"id_bhvSnowmansBottom = 388\n" +"id_bhvSnowmansHead = 389\n" +"id_bhvSnowMoundSpawn = 390\n" +"id_bhvSnowParticleSpawner = 391\n" +"id_bhvSnufit = 392\n" +"id_bhvSnufitBalls = 393\n" +"id_bhvSoundSpawner = 394\n" +"id_bhvSparkle = 395\n" +"id_bhvSparkleParticleSpawner = 396\n" +"id_bhvSparkleSpawn = 397\n" +"id_bhvSpawnedStar = 398\n" +"id_bhvSpawnedStarNoLevelExit = 399\n" +"id_bhvSpinAirborneCircleWarp = 400\n" +"id_bhvSpinAirborneWarp = 401\n" +"id_bhvSpindel = 402\n" +"id_bhvSpindrift = 403\n" +"id_bhvSpiny = 404\n" +"id_bhvSquarishPathMoving = 405\n" +"id_bhvSquarishPathParent = 406\n" +"id_bhvSquishablePlatform = 407\n" +"id_bhvSslMovingPyramidWall = 408\n" +"id_bhvStar = 409\n" +"id_bhvStarDoor = 410\n" +"id_bhvStarKeyCollectionPuffSpawner = 411\n" +"id_bhvStarSpawnCoordinates = 412\n" +"id_bhvStaticCheckeredPlatform = 413\n" +"id_bhvStaticObject = 414\n" +"id_bhvStrongWindParticle = 415\n" +"id_bhvStub = 416\n" +"id_bhvStub1D0C = 417\n" +"id_bhvStub1D70 = 418\n" +"id_bhvSunkenShipPart = 419\n" +"id_bhvSunkenShipPart2 = 420\n" +"id_bhvSunkenShipSetRotation = 421\n" +"id_bhvSushiShark = 422\n" +"id_bhvSushiSharkCollisionChild = 423\n" +"id_bhvSwimmingWarp = 424\n" +"id_bhvSwingPlatform = 425\n" +"id_bhvSwoop = 426\n" +"id_bhvTankFishGroup = 427\n" +"id_bhvTemporaryYellowCoin = 428\n" +"id_bhvTenCoinsSpawn = 429\n" +"id_bhvThiBowlingBallSpawner = 430\n" +"id_bhvThiHugeIslandTop = 431\n" +"id_bhvThiTinyIslandTop = 432\n" +"id_bhvThreeCoinsSpawn = 433\n" +"id_bhvThwomp = 434\n" +"id_bhvThwomp2 = 435\n" +"id_bhvTiltingBowserLavaPlatform = 436\n" +"id_bhvTinyStrongWindParticle = 437\n" +"id_bhvToadMessage = 438\n" +"id_bhvTower = 439\n" +"id_bhvTowerDoor = 440\n" +"id_bhvTowerPlatformGroup = 441\n" +"id_bhvToxBox = 442\n" +"id_bhvTrackBall = 443\n" +"id_bhvTreasureChestBottom = 444\n" +"id_bhvTreasureChests = 445\n" +"id_bhvTreasureChestsJrb = 446\n" +"id_bhvTreasureChestsShip = 447\n" +"id_bhvTreasureChestTop = 448\n" +"id_bhvTree = 449\n" +"id_bhvTreeLeaf = 450\n" +"id_bhvTreeSnow = 451\n" +"id_bhvTriangleParticleSpawner = 452\n" +"id_bhvTripletButterfly = 453\n" +"id_bhvTTC2DRotator = 454\n" +"id_bhvTTCCog = 455\n" +"id_bhvTTCElevator = 456\n" +"id_bhvTTCMovingBar = 457\n" +"id_bhvTTCPendulum = 458\n" +"id_bhvTTCPitBlock = 459\n" +"id_bhvTTCRotatingSolid = 460\n" +"id_bhvTTCSpinner = 461\n" +"id_bhvTTCTreadmill = 462\n" +"id_bhvTtmBowlingBallSpawner = 463\n" +"id_bhvTtmRollingLog = 464\n" +"id_bhvTumblingBridgePlatform = 465\n" +"id_bhvTuxiesMother = 466\n" +"id_bhvTweester = 467\n" +"id_bhvTweesterSandParticle = 468\n" +"id_bhvUkiki = 469\n" +"id_bhvUkikiCage = 470\n" +"id_bhvUkikiCageChild = 471\n" +"id_bhvUkikiCageStar = 472\n" +"id_bhvUnagi = 473\n" +"id_bhvUnagiSubobject = 474\n" +"id_bhvUnlockDoorStar = 475\n" +"id_bhvUnused05A8 = 476\n" +"id_bhvUnused0DFC = 477\n" +"id_bhvUnused1820 = 478\n" +"id_bhvUnused1F30 = 479\n" +"id_bhvUnused20E0 = 480\n" +"id_bhvUnused2A10 = 481\n" +"id_bhvUnused2A54 = 482\n" +"id_bhvUnusedFakeStar = 483\n" +"id_bhvUnusedParticleSpawn = 484\n" +"id_bhvUnusedPoundablePlatform = 485\n" +"id_bhvVanishCap = 486\n" +"id_bhvVertStarParticleSpawner = 487\n" +"id_bhvVolcanoFlames = 488\n" +"id_bhvVolcanoSoundLoop = 489\n" +"id_bhvWallTinyStarParticle = 490\n" +"id_bhvWarp = 491\n" +"id_bhvWarpPipe = 492\n" +"id_bhvWaterAirBubble = 493\n" +"id_bhvWaterBomb = 494\n" +"id_bhvWaterBombCannon = 495\n" +"id_bhvWaterBombShadow = 496\n" +"id_bhvWaterBombSpawner = 497\n" +"id_bhvWaterDroplet = 498\n" +"id_bhvWaterDropletSplash = 499\n" +"id_bhvWaterfallSoundLoop = 500\n" +"id_bhvWaterLevelDiamond = 501\n" +"id_bhvWaterLevelPillar = 502\n" +"id_bhvWaterMist = 503\n" +"id_bhvWaterMist2 = 504\n" +"id_bhvWaterSplash = 505\n" +"id_bhvWaveTrail = 506\n" +"id_bhvWdwExpressElevator = 507\n" +"id_bhvWdwExpressElevatorPlatform = 508\n" +"id_bhvWdwRectangularFloatingPlatform = 509\n" +"id_bhvWdwSquareFloatingPlatform = 510\n" +"id_bhvWfBreakableWallLeft = 511\n" +"id_bhvWfBreakableWallRight = 512\n" +"id_bhvWfElevatorTowerPlatform = 513\n" +"id_bhvWfRotatingWoodenPlatform = 514\n" +"id_bhvWfSlidingPlatform = 515\n" +"id_bhvWfSlidingTowerPlatform = 516\n" +"id_bhvWfSolidTowerPlatform = 517\n" +"id_bhvWfTumblingBridge = 518\n" +"id_bhvWhirlpool = 519\n" +"id_bhvWhitePuff1 = 520\n" +"id_bhvWhitePuff2 = 521\n" +"id_bhvWhitePuffExplosion = 522\n" +"id_bhvWhitePuffSmoke = 523\n" +"id_bhvWhitePuffSmoke2 = 524\n" +"id_bhvWhompKingBoss = 525\n" +"id_bhvWigglerBody = 526\n" +"id_bhvWigglerHead = 527\n" +"id_bhvWind = 528\n" +"id_bhvWingCap = 529\n" +"id_bhvWoodenPost = 530\n" +"id_bhvYellowBackgroundInMenu = 531\n" +"id_bhvYellowBall = 532\n" +"id_bhvYellowCoin = 533\n" +"id_bhvYoshi = 534\n" +"id_bhv_max_count = 535\n" "CAM_MODE_MARIO_ACTIVE = 0x01\n" "CAM_MODE_LAKITU_WAS_ZOOMED_OUT = 0x02\n" "CAM_MODE_MARIO_SELECTED = 0x04\n" diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 6a3e5db46..b45518616 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -41,6 +41,17 @@ int smlua_func_get_behavior_from_id(lua_State* L) { return 1; } +int smlua_func_get_behavior_name_from_id(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 1)) { return 0; } + + int id = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { return 0; } + + lua_pushstring(L, get_behavior_name_from_id(id)); + + return 1; +} + int smlua_func_get_id_from_behavior(lua_State* L) { if(!smlua_functions_valid_param_count(L, 1)) { return 0; } @@ -52,6 +63,28 @@ int smlua_func_get_id_from_behavior(lua_State* L) { return 1; } +int smlua_func_get_id_from_behavior_name(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 1)) { return 0; } + + const char* name = smlua_to_string(L, 1); + if (!gSmLuaConvertSuccess) { return 0; } + + lua_pushinteger(L, get_id_from_behavior_name(name)); + + return 1; +} + +int smlua_func_get_id_from_vanilla_behavior(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 1)) { return 0; } + + const BehaviorScript* behavior = (const BehaviorScript*)smlua_to_cpointer(L, 1, LVT_BEHAVIORSCRIPT_P); + if (!gSmLuaConvertSuccess) { return 0; } + + lua_pushinteger(L, get_id_from_vanilla_behavior(behavior)); + + return 1; +} + ////////////// // camera.h // ////////////// @@ -9200,6 +9233,17 @@ int smlua_func_allocate_mario_action(lua_State* L) { return 1; } +int smlua_func_get_environment_region(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 1)) { return 0; } + + u8 index = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { return 0; } + + lua_pushnumber(L, get_environment_region(index)); + + return 1; +} + int smlua_func_get_hand_foot_pos_x(lua_State* L) { if(!smlua_functions_valid_param_count(L, 2)) { return 0; } @@ -9266,6 +9310,19 @@ int smlua_func_hud_show(UNUSED lua_State* L) { return 1; } +int smlua_func_set_environment_region(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 2)) { return 0; } + + u8 index = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { return 0; } + s32 value = smlua_to_integer(L, 2); + if (!gSmLuaConvertSuccess) { return 0; } + + set_environment_region(index, value); + + return 1; +} + int smlua_func_smlua_level_util_get(lua_State* L) { if(!smlua_functions_valid_param_count(L, 1)) { return 0; } @@ -10031,7 +10088,10 @@ void smlua_bind_functions_autogen(void) { // behavior_table.h smlua_bind_function(L, "get_behavior_from_id", smlua_func_get_behavior_from_id); + smlua_bind_function(L, "get_behavior_name_from_id", smlua_func_get_behavior_name_from_id); smlua_bind_function(L, "get_id_from_behavior", smlua_func_get_id_from_behavior); + smlua_bind_function(L, "get_id_from_behavior_name", smlua_func_get_id_from_behavior_name); + smlua_bind_function(L, "get_id_from_vanilla_behavior", smlua_func_get_id_from_vanilla_behavior); // camera.h smlua_bind_function(L, "approach_camera_height", smlua_func_approach_camera_height); @@ -10714,12 +10774,14 @@ void smlua_bind_functions_autogen(void) { // smlua_misc_utils.h smlua_bind_function(L, "allocate_mario_action", smlua_func_allocate_mario_action); + smlua_bind_function(L, "get_environment_region", smlua_func_get_environment_region); smlua_bind_function(L, "get_hand_foot_pos_x", smlua_func_get_hand_foot_pos_x); smlua_bind_function(L, "get_hand_foot_pos_y", smlua_func_get_hand_foot_pos_y); smlua_bind_function(L, "get_hand_foot_pos_z", smlua_func_get_hand_foot_pos_z); smlua_bind_function(L, "get_network_area_timer", smlua_func_get_network_area_timer); smlua_bind_function(L, "hud_hide", smlua_func_hud_hide); smlua_bind_function(L, "hud_show", smlua_func_hud_show); + smlua_bind_function(L, "set_environment_region", smlua_func_set_environment_region); smlua_bind_function(L, "smlua_level_util_get", smlua_func_smlua_level_util_get); smlua_bind_function(L, "warp_exit_level", smlua_func_warp_exit_level); smlua_bind_function(L, "warp_restart_level", smlua_func_warp_restart_level); diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c index 10b41bb6f..424cc9a14 100644 --- a/src/pc/lua/utils/smlua_misc_utils.c +++ b/src/pc/lua/utils/smlua_misc_utils.c @@ -7,6 +7,8 @@ #include "smlua_misc_utils.h" #include "pc/debuglog.h" +#include "game/object_list_processor.h" + u32 get_network_area_timer(void) { return gNetworkAreaTimer; } @@ -58,3 +60,16 @@ f32 get_hand_foot_pos_z(struct MarioState* m, u8 index) { LevelScript* smlua_level_util_get(const char* name) { return dynos_level_get(name); } + +f32 get_environment_region(u8 index) { + if (gEnvironmentRegions != NULL && index <= gEnvironmentRegions[0]) { + return gEnvironmentRegions[6 * (int)index]; + } + return -11000; +} + +void set_environment_region(u8 index, s32 value) { + if (gEnvironmentRegions != NULL && index <= gEnvironmentRegions[0]) { + gEnvironmentRegions[6 * (int)index] = value; + } +} diff --git a/src/pc/lua/utils/smlua_misc_utils.h b/src/pc/lua/utils/smlua_misc_utils.h index 3d067b4fe..9dc5277bb 100644 --- a/src/pc/lua/utils/smlua_misc_utils.h +++ b/src/pc/lua/utils/smlua_misc_utils.h @@ -18,5 +18,7 @@ f32 get_hand_foot_pos_y(struct MarioState* m, u8 index); f32 get_hand_foot_pos_z(struct MarioState* m, u8 index); LevelScript* smlua_level_util_get(const char* name); +f32 get_environment_region(u8 index); +void set_environment_region(u8 index, s32 value); #endif diff --git a/src/pc/mods/mod.c b/src/pc/mods/mod.c index e1a93b335..888731f29 100644 --- a/src/pc/mods/mod.c +++ b/src/pc/mods/mod.c @@ -298,6 +298,26 @@ static bool mod_load_files(struct Mod* mod, char* modName, char* fullPath) { return true; } +static void mod_set_loading_order(struct Mod* mod) { + if (mod->fileCount <= 1) { + return; + } + + // TODO: add a way to specify the loading order of a mod's files? + + // By default, this is the alphabetical order on relative path + for (s32 i = 1; i < mod->fileCount; ++i) { + struct ModFile file = mod->files[i]; + for (s32 j = 0; j < i; ++j) { + if (strcmp(file.relativePath, mod->files[j].relativePath) < 0) { + memmove(mod->files + j + 1, mod->files + j, sizeof(struct ModFile) * (i - j)); + memcpy(mod->files + j, &file, sizeof(struct ModFile)); + break; + } + } + } +} + static void mod_extract_fields(struct Mod* mod) { // get full path char path[SYS_MAX_PATH] = { 0 }; @@ -439,6 +459,9 @@ bool mod_load(struct Mods* mods, char* basePath, char* modName) { return false; } + // set loading order + mod_set_loading_order(mod); + // extract fields mod_extract_fields(mod); diff --git a/src/pc/network/packets/packet_mod_list.c b/src/pc/network/packets/packet_mod_list.c index ce5292794..cd62bccd3 100644 --- a/src/pc/network/packets/packet_mod_list.c +++ b/src/pc/network/packets/packet_mod_list.c @@ -170,6 +170,11 @@ void network_receive_mod_list(struct Packet* p) { packet_read(p, &relativePathLength, sizeof(u16)); packet_read(p, file->relativePath, relativePathLength * sizeof(u8)); packet_read(p, &file->size, sizeof(u64)); + if (mod->isDirectory && !strstr(file->relativePath, "actors")) { + char tmp[SYS_MAX_PATH]; + snprintf(tmp, SYS_MAX_PATH, "%s-%s", mod->relativePath, file->relativePath); + memcpy(file->relativePath, tmp, strlen(tmp) + 1); + } normalize_path(file->relativePath); LOG_INFO(" '%s': %llu", file->relativePath, (u64)file->size); }