#ifndef BEHAVIOR_DATA_H
#define BEHAVIOR_DATA_H

#include "types.h"

#define BPARAM1(param) (((param) & 0xFF) << 24)
#define BPARAM2(param) (((param) & 0xFF) << 16)
#define BPARAM3(param) (((param) & 0xFF) << 8)
#define BPARAM4(param) (((param) & 0xFF) << 0)

extern const BehaviorScript bhvMrI[];
extern const BehaviorScript bhvMrIBody[];
extern const BehaviorScript bhvMrIParticle[];
extern const BehaviorScript bhvPurpleParticle[];
extern const BehaviorScript bhvGiantPole[];
extern const BehaviorScript bhvPoleGrabbing[];
extern const BehaviorScript bhvTHIHugeIslandTop[];
extern const BehaviorScript bhvTHITinyIslandTop[];
extern const BehaviorScript bhvBetaChestBottom[];
extern const BehaviorScript bhvBetaChestLid[];
extern const BehaviorScript bhvBubbleParticleSpawner[];
extern const BehaviorScript bhvBubbleMaybe[];
extern const BehaviorScript bhvSmallWaterWave[];
extern const BehaviorScript bhvSmallWaterWave398[];
extern const BehaviorScript bhvWaterAirBubble[];
extern const BehaviorScript bhvSmallParticle[];
extern const BehaviorScript bhvPlungeBubble[];
extern const BehaviorScript bhvSmallParticleSnow[]; // investigate this later
extern const BehaviorScript bhvSmallParticleBubbles[];
extern const BehaviorScript bhvFishGroup[];
extern const BehaviorScript bhvCannon[];
extern const BehaviorScript bhvCannonBarrel[];
extern const BehaviorScript bhvCannonBaseUnused[];
extern const BehaviorScript bhvRotatingPlatform[];
extern const BehaviorScript bhvTower[];
extern const BehaviorScript bhvBulletBillCannon[];
extern const BehaviorScript bhvRotatingCounterClockwise[];
extern const BehaviorScript bhvWFRotatingWoodenPlatform[];
extern const BehaviorScript bhvExitPodiumWarp[];
extern const BehaviorScript bhvFadingWarp[];
extern const BehaviorScript bhvWarp[];
extern const BehaviorScript bhvWarpPipe[];
extern const BehaviorScript bhvWhitePuffExplosion[];
extern const BehaviorScript bhvSpawnedStar[];
extern const BehaviorScript bhvSpawnedStarNoLevelExit[];
extern const BehaviorScript bhvCoinInsideBoo[];
extern const BehaviorScript bhvCoinFormationSpawn[];
extern const BehaviorScript bhvCoinFormation[];
extern const BehaviorScript bhvOneCoin[];
extern const BehaviorScript bhvYellowCoin[];
extern const BehaviorScript bhvTemporaryYellowCoin[];
extern const BehaviorScript bhvThreeCoinsSpawn[];
extern const BehaviorScript bhvTenCoinsSpawn[];
extern const BehaviorScript bhvSingleCoinGetsSpawned[];
extern const BehaviorScript bhvCoinSparkles[];
extern const BehaviorScript bhvDoorWarp[];
extern const BehaviorScript bhvDoor[];
extern const BehaviorScript bhvThwomp[];
extern const BehaviorScript bhvThwomp2[];
extern const BehaviorScript bhvTumblingBridgePlatform[];
extern const BehaviorScript bhvTumblingBridge[];
extern const BehaviorScript bhvLLLTumblingBridge[];
extern const BehaviorScript bhvFlame[];
extern const BehaviorScript bhvWaterMist[];
extern const BehaviorScript bhvBreathParticleSpawner[];
extern const BehaviorScript bhvBreakBoxTriangle[];
extern const BehaviorScript bhvWaterMist2[];
extern const BehaviorScript bhvMistCircParticleSpawner[];
extern const BehaviorScript bhvFlamethrower[];
extern const BehaviorScript bhvFlamethrowerFlame[];
extern const BehaviorScript bhvBouncingFireball[];
extern const BehaviorScript bhvBouncingFireballFlame[];
extern const BehaviorScript bhvBowserShockWave[];
extern const BehaviorScript bhvFireParticleSpawner[];
extern const BehaviorScript bhvBlackSmokeMario[];
extern const BehaviorScript bhvBlackSmokeBowser[];
extern const BehaviorScript bhvBlackSmokeUpward[];
extern const BehaviorScript bhvBetaFishSplashSpawner[];
extern const BehaviorScript bhvTowerPlatformGroup[];
extern const BehaviorScript bhvWFSlidingTowerPlatform[];
extern const BehaviorScript bhvWFElevatorTowerPlatform[];
extern const BehaviorScript bhvWFSolidTowerPlatform[];
extern const BehaviorScript bhvLeafParticleSpawner[];
extern const BehaviorScript bhvTreeLeaf[];
extern const BehaviorScript bhvAnotherTiltingPlatform[];
extern const BehaviorScript bhvSquarishPathMoving[];
extern const BehaviorScript bhvPiranhaPlantBubble[];
extern const BehaviorScript bhvPiranhaPlantWakingBubbles[];
extern const BehaviorScript bhvBulletBill[];
extern const BehaviorScript bhvWhitePuffSmoke[];
extern const BehaviorScript bhvBowserTailAnchor[];
extern const BehaviorScript bhvBowser[];
extern const BehaviorScript bhvBowserBodyAnchor[];
extern const BehaviorScript bhvBowserFlameSpawn[];
extern const BehaviorScript bhvBlueBowserFlame[];
extern const BehaviorScript bhvFlameFloatingLanding[];
extern const BehaviorScript bhvBlueFlamesGroup[];
extern const BehaviorScript bhvFlameBouncing[];
extern const BehaviorScript bhvFlameMovingForwardGrowing[];
extern const BehaviorScript bhvFlameBowser[];
extern const BehaviorScript bhvFlameLargeBurningOut[];
extern const BehaviorScript bhvBlueFish[];
extern const BehaviorScript bhvLLLRotatingHexagonalPlatform[];
extern const BehaviorScript bhvLLLRotatingBlockWithFireBars[];
extern const BehaviorScript bhvLLLRotatingHexFlame[];
extern const BehaviorScript bhvLLLWoodPiece[];
extern const BehaviorScript bhvLLLFloatingWoodBridge[];
extern const BehaviorScript bhvVolcanoFlames[];
extern const BehaviorScript bhvLLLRotatingHexagonalRing[];
extern const BehaviorScript bhvLLLSinkingRectangularPlatform[];
extern const BehaviorScript bhvLLLSinkingSquarePlatforms[];
extern const BehaviorScript bhvLLLTiltingInvertedPyramid[];
extern const BehaviorScript bhvPiranhaPlant[];
extern const BehaviorScript bhvLLLHexagonalMesh[];
extern const BehaviorScript bhvLLLBowserPuzzlePiece[];
extern const BehaviorScript bhvLLLBowserPuzzle[];
extern const BehaviorScript bhvTuxiesMother[];
extern const BehaviorScript bhvPenguinBaby[];
extern const BehaviorScript bhvUnused20E0[];
extern const BehaviorScript bhvSmallPenguin[];
extern const BehaviorScript bhvManyBlueFishSpawner[]; 
extern const BehaviorScript bhvFewBlueFishSpawner[];
extern const BehaviorScript bhvFishSpawner[];
extern const BehaviorScript bhvFishCommon[];
extern const BehaviorScript bhvFish[];
extern const BehaviorScript bhvChirpChirp[];
extern const BehaviorScript bhvChirpChirpUnused[];
extern const BehaviorScript bhvBub[];
extern const BehaviorScript bhvCheepCheep[];
extern const BehaviorScript bhvPlaysSound[];
extern const BehaviorScript bhvSoundSpawner[];
extern const BehaviorScript bhvRockSolid[];
extern const BehaviorScript bhvBowsersSub[];
extern const BehaviorScript bhvSushiShark[];
extern const BehaviorScript bhvSushiSharkCollisionChild[];
extern const BehaviorScript bhvMistParticleSpawner[];
extern const BehaviorScript bhvWhitePuff1[];
extern const BehaviorScript bhvWhitePuff2[];
extern const BehaviorScript bhvWhitePuffSmoke2[];
extern const BehaviorScript bhvPlaysMusicTrackWhenTouched[];
extern const BehaviorScript bhvAnimatedTexture[];
extern const BehaviorScript bhvCourtyardBooTriplet[];
extern const BehaviorScript bhvBoo[];
extern const BehaviorScript bhvGhostHuntBoo[]; // we can cock about with this later
extern const BehaviorScript bhvInsideCannon[];
extern const BehaviorScript bhvStar[];
extern const BehaviorScript bhvStaticObject[];
extern const BehaviorScript bhvCastleFloorTrap[];
extern const BehaviorScript bhvFloorTrapInCastle[];
extern const BehaviorScript bhvTree[];
extern const BehaviorScript bhvSparkle[];
extern const BehaviorScript bhvSparkleSpawn[];
extern const BehaviorScript bhvSparkleParticleSpawner[];
extern const BehaviorScript bhvSomeGfx[];
extern const BehaviorScript bhvSmallWhomp[];
extern const BehaviorScript bhvWaterSplash[];
extern const BehaviorScript bhvWaterDroplet[];
extern const BehaviorScript bhvWaterDropletSplash[];
extern const BehaviorScript bhvBubbleSplash[];
extern const BehaviorScript bhvIdleWaterWave[];
extern const BehaviorScript bhvObjectWaterSplash[];
extern const BehaviorScript bhvShallowWaterWave[];
extern const BehaviorScript bhvShallowWaterSplash[];
extern const BehaviorScript bhvObjectWaveTrail[];
extern const BehaviorScript bhvWaveTrail[];
extern const BehaviorScript bhvYellowBall[];
extern const BehaviorScript bhvMario[];
extern const BehaviorScript bhvInstantActiveWarp[];
extern const BehaviorScript bhvAirborneWarp[];
extern const BehaviorScript bhvHardAirKnockBackWarp[];
extern const BehaviorScript bhvSpinAirborneCircleWarp[];
extern const BehaviorScript bhvDeathWarp[];
extern const BehaviorScript bhvSpinAirborneWarp[];
extern const BehaviorScript bhvFlyingWarp[];
extern const BehaviorScript bhvPaintingStarCollectWarp[];
extern const BehaviorScript bhvPaintingDeathWarp[];
extern const BehaviorScript bhvAirborneDeathWarp[];
extern const BehaviorScript bhvAirborneStarCollectWarp[];
extern const BehaviorScript bhvLaunchStarCollectWarp[];
extern const BehaviorScript bhvLaunchDeathWarp[];
extern const BehaviorScript bhvSwimmingWarp[];
extern const BehaviorScript bhvRandomAnimatedTexture[];
extern const BehaviorScript bhvMovingYellowCoin[];
extern const BehaviorScript bhvMovingBlueCoin[];
extern const BehaviorScript bhvBlueCoinSliding[];
extern const BehaviorScript bhvBlueCoinJumping[];
extern const BehaviorScript bhvCannonClosed[];
extern const BehaviorScript bhvJetStream[];
extern const BehaviorScript bhvHoot[];
extern const BehaviorScript bhvBetaHoldableObject[];
extern const BehaviorScript bhvCarrySomething1[];
extern const BehaviorScript bhvCarrySomething2[];
extern const BehaviorScript bhvCarrySomething3[];
extern const BehaviorScript bhvCarrySomething4[];
extern const BehaviorScript bhvCarrySomething5[];
extern const BehaviorScript bhvCarrySomething6[];
extern const BehaviorScript bhvObjectBubble[];
extern const BehaviorScript bhvObjectWaterWave[];
extern const BehaviorScript bhvExplosion[];
extern const BehaviorScript bhvBobombBullyDeathSmoke[];
extern const BehaviorScript bhvSmoke[];
extern const BehaviorScript bhvBobombExplosionBubble[];
extern const BehaviorScript bhvBobombExplosionBubble3600[];
extern const BehaviorScript bhvRespawner[];
extern const BehaviorScript bhvSmallBully[];
extern const BehaviorScript bhvBigBullyWithMinions[];
extern const BehaviorScript bhvJetStreamRingSpawner[];
extern const BehaviorScript bhvJetStreamWaterRing[];
extern const BehaviorScript bhvBowserBomb[];
extern const BehaviorScript bhvBowserBombExplosion[];
extern const BehaviorScript bhvBowserBombSmoke[];
extern const BehaviorScript bhvCelebrationStar[];
extern const BehaviorScript bhvCelebrationStarSparkle[];
extern const BehaviorScript bhvStarDust[];
extern const BehaviorScript bhvLLLDrawbridgeSpawner[];
extern const BehaviorScript bhvLLLDrawbridge[];
extern const BehaviorScript bhvSmallBomp[];
extern const BehaviorScript bhvLargeBomp[];
extern const BehaviorScript bhvWFSlidingPlatform[];
extern const BehaviorScript bhvBirdsSoundLoop[];
extern const BehaviorScript bhvAmbientSounds[];
extern const BehaviorScript bhvSandSoundLoop[];
extern const BehaviorScript bhvStar[];
extern const BehaviorScript bhvSmallPiranhaFlame[];
extern const BehaviorScript bhvFireSpitter[];
extern const BehaviorScript bhvFlyguyFlame[];
extern const BehaviorScript bhvBird[];
extern const BehaviorScript bhvBubba[];

#endif // BEHAVIOR_DATA_H
