/*
Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file)

This file is part of Lugaru.

Lugaru is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Lugaru is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifdef DECLARE_ANIM_BIT
DECLARE_ANIM_BIT(ab_idle)
DECLARE_ANIM_BIT(ab_sit)
DECLARE_ANIM_BIT(ab_sleep)
DECLARE_ANIM_BIT(ab_crouch)
DECLARE_ANIM_BIT(ab_run)
DECLARE_ANIM_BIT(ab_stop)
DECLARE_ANIM_BIT(ab_land)
DECLARE_ANIM_BIT(ab_landhard)
DECLARE_ANIM_BIT(ab_flip)
DECLARE_ANIM_BIT(ab_walljump)
#endif

#ifdef DECLARE_ANIM
DECLARE_ANIM(runanim, "Run", middleheight, neutral, ab_run)
DECLARE_ANIM(bounceidleanim, "Idle", middleheight, neutral, ab_idle)
DECLARE_ANIM(stopanim, "Stop", middleheight, neutral, ab_stop)
DECLARE_ANIM(jumpupanim, "JumpUp", highheight, neutral, 0)
DECLARE_ANIM(jumpdownanim, "JumpDown", highheight, neutral, 0)
DECLARE_ANIM(landanim, "Landing", lowheight, neutral, ab_land)
DECLARE_ANIM(landhardanim, "LandHard", lowheight, neutral, ab_landhard)
DECLARE_ANIM(climbanim, "Climb", lowheight, neutral, 0)
DECLARE_ANIM(hanganim, "HangOn", lowheight, neutral, 0)
DECLARE_ANIM(spinkickanim, "SpinKick", middleheight, normalattack, 0)
DECLARE_ANIM(getupfromfrontanim, "GetUpFromFront", lowheight, neutral, 0)
DECLARE_ANIM(getupfrombackanim, "GetUpFromBack", lowheight, neutral, 0)
DECLARE_ANIM(crouchanim, "Crouch", lowheight, neutral, ab_crouch)
DECLARE_ANIM(sneakanim, "Sneak", lowheight, neutral, 0)
DECLARE_ANIM(rollanim, "Roll", lowheight, neutral, 0)
DECLARE_ANIM(flipanim, "Flip", highheight, neutral, ab_flip)
DECLARE_ANIM(frontflipanim, "Flip", highheight, neutral, ab_flip)
DECLARE_ANIM(spinkickreversedanim, "SpinKickCaught", middleheight, reversed, 0)
DECLARE_ANIM(spinkickreversalanim, "SpinKickCatch", middleheight, reversal, 0)
DECLARE_ANIM(lowkickanim, "LowKick", middleheight, normalattack, 0)
DECLARE_ANIM(sweepanim, "Sweep", lowheight, normalattack, 0)
DECLARE_ANIM(sweepreversedanim, "SweepCaught", lowheight, reversed, 0)
DECLARE_ANIM(sweepreversalanim, "SweepCatch", middleheight, reversal, 0)
DECLARE_ANIM(rabbitkickanim, "RabbitKick", middleheight, normalattack, 0)
DECLARE_ANIM(rabbitkickreversedanim, "RabbitKickCaught", middleheight, reversed, 0)
DECLARE_ANIM(rabbitkickreversalanim, "RabbitKickCatch", lowheight, reversal, 0)
DECLARE_ANIM(upunchanim, "Upunch", middleheight, normalattack, 0)
DECLARE_ANIM(staggerbackhighanim, "StaggerBackHigh", middleheight, neutral, 0)
DECLARE_ANIM(upunchreversedanim, "UpunchCaught", middleheight, reversed, 0)
DECLARE_ANIM(upunchreversalanim, "UpunchCatch", middleheight, reversal, 0)
DECLARE_ANIM(hurtidleanim, "HurtIdle", middleheight, neutral, ab_idle)
DECLARE_ANIM(backhandspringanim, "BackHandspring", middleheight, neutral, 0)
DECLARE_ANIM(fightidleanim, "FightIdle", middleheight, neutral, ab_idle)
DECLARE_ANIM(walkanim, "Walk", middleheight, neutral, 0)
DECLARE_ANIM(fightsidestep, "FightSideStep", middleheight, neutral, ab_idle)
DECLARE_ANIM(killanim, "Kill", middleheight, normalattack, 0)
DECLARE_ANIM(sneakattackanim, "SneakAttack", middleheight, reversal, 0)
DECLARE_ANIM(sneakattackedanim, "SneakAttacked", middleheight, reversed, 0)
DECLARE_ANIM(drawrightanim, "DrawRight", middleheight, neutral, 0)
DECLARE_ANIM(knifeslashstartanim, "SlashStart", middleheight, normalattack, 0)
DECLARE_ANIM(crouchdrawrightanim, "CrouchDrawRight", lowheight, neutral, 0)
DECLARE_ANIM(crouchstabanim, "CrouchStab", lowheight, normalattack, 0)
DECLARE_ANIM(knifefollowanim, "SlashFollow", middleheight, reversal, 0)
DECLARE_ANIM(knifefollowedanim, "SlashFollowed", middleheight, reversed, 0)
DECLARE_ANIM(knifethrowanim, "KnifeThrow", middleheight, normalattack, 0)
DECLARE_ANIM(removeknifeanim, "RemoveKnife", middleheight, neutral, 0)
DECLARE_ANIM(crouchremoveknifeanim, "CrouchRemoveKnife", lowheight, neutral, 0)
DECLARE_ANIM(jumpreversedanim, "JumpCaught", middleheight, reversed, 0)
DECLARE_ANIM(jumpreversalanim, "JumpCatch", middleheight, reversal, 0)
DECLARE_ANIM(staggerbackhardanim, "StaggerBackHard", middleheight, neutral, 0)
DECLARE_ANIM(dropkickanim, "DropKick", middleheight, normalattack, 0)
DECLARE_ANIM(winduppunchanim, "WindUpPunch", middleheight, normalattack, 0)
DECLARE_ANIM(winduppunchblockedanim, "WindUpPunchBlocked", middleheight, normalattack, 0)
DECLARE_ANIM(blockhighleftanim, "BlockHighLeft", middleheight, normalattack, 0)
DECLARE_ANIM(blockhighleftstrikeanim, "BlockHighLeftStrike", middleheight, normalattack, 0)
DECLARE_ANIM(backflipanim, "BackFlip", highheight, neutral, ab_flip)
DECLARE_ANIM(walljumpbackanim, "WallJumpBack", highheight, neutral, ab_walljump)
DECLARE_ANIM(walljumpfrontanim, "WallJumpFront", highheight, neutral, ab_walljump)
DECLARE_ANIM(rightflipanim, "RightFlip", highheight, neutral, ab_flip)
DECLARE_ANIM(walljumprightanim, "WallJumpRight", highheight, neutral, ab_walljump)
DECLARE_ANIM(leftflipanim, "LeftFlip", highheight, neutral, ab_flip)
DECLARE_ANIM(walljumpleftanim, "WallJumpLeft", highheight, neutral, ab_walljump)
DECLARE_ANIM(walljumprightkickanim, "WallJumpRightKick", highheight, neutral, ab_flip)
DECLARE_ANIM(walljumpleftkickanim, "WallJumpLeftKick", highheight, neutral, ab_flip)
DECLARE_ANIM(knifefightidleanim, "KnifeFightIdle", middleheight, neutral, ab_idle)
DECLARE_ANIM(knifesneakattackanim, "KnifeSneakAttack", middleheight, reversal, 0)
DECLARE_ANIM(knifesneakattackedanim, "KnifeSneakAttacked", middleheight, reversed, 0)
DECLARE_ANIM(swordfightidleanim, "SwordFightIdle", middleheight, neutral, ab_idle)
DECLARE_ANIM(drawleftanim, "DrawLeft", middleheight, neutral, 0)
DECLARE_ANIM(swordslashanim, "SwordSlash", middleheight, normalattack, 0)
DECLARE_ANIM(swordgroundstabanim, "SwordGroundStab", lowheight, normalattack, 0)
DECLARE_ANIM(dodgebackanim, "DodgeBack", middleheight, neutral, 0)
DECLARE_ANIM(swordsneakattackanim, "SwordSneakAttack", middleheight, reversal, 0)
DECLARE_ANIM(swordsneakattackedanim, "SwordSneakAttacked", middleheight, reversed, 0)
DECLARE_ANIM(swordslashreversedanim, "SwordSlashCaught", middleheight, reversed, 0)
DECLARE_ANIM(swordslashreversalanim, "SwordSlashCatch", middleheight, reversal, 0)
DECLARE_ANIM(knifeslashreversedanim, "KnifeSlashCaught", middleheight, reversed, 0)
DECLARE_ANIM(knifeslashreversalanim, "KnifeSlashCatch", middleheight, reversal, 0)
DECLARE_ANIM(swordfightidlebothanim, "SwordFightIdleBoth", middleheight, neutral, ab_idle)
DECLARE_ANIM(swordslashparryanim, "SwordUprightParry", middleheight, normalattack, 0)
DECLARE_ANIM(swordslashparriedanim, "SwordSlashParried", middleheight, normalattack, 0)
DECLARE_ANIM(wolfidle, "WolfIdle", middleheight, neutral, ab_idle)
DECLARE_ANIM(wolfcrouchanim, "WolfCrouch", lowheight, neutral, ab_crouch)
DECLARE_ANIM(wolflandanim, "WolfLanding", lowheight, neutral, ab_land)
DECLARE_ANIM(wolflandhardanim, "WolfLandHard", lowheight, neutral, ab_landhard)
DECLARE_ANIM(wolfrunanim, "WolfRun", middleheight, neutral, ab_run)
DECLARE_ANIM(wolfrunninganim, "WolfRunning", middleheight, neutral, ab_run)
DECLARE_ANIM(rabbitrunninganim, "RabbitRunning", middleheight, neutral, ab_run)
DECLARE_ANIM(wolfstopanim, "WolfStop", middleheight, neutral, ab_stop)
DECLARE_ANIM(rabbittackleanim, "RabbitTackle", middleheight, neutral, 0)
DECLARE_ANIM(rabbittacklinganim, "RabbitTackling", middleheight, reversal, 0)
DECLARE_ANIM(rabbittackledbackanim, "RabbitTackledBack", middleheight, reversed, 0)
DECLARE_ANIM(rabbittackledfrontanim, "RabbitTackledFront", middleheight, reversed, 0)
DECLARE_ANIM(wolfslapanim, "WolfSlap", middleheight, normalattack, 0)
DECLARE_ANIM(staffhitanim, "StaffHit", middleheight, normalattack, 0)
DECLARE_ANIM(staffgroundsmashanim, "StaffGroundSmash", lowheight, normalattack, 0)
DECLARE_ANIM(staffspinhitanim, "SpinWhack", middleheight, normalattack, 0)
DECLARE_ANIM(staffhitreversedanim, "StaffHitCaught", middleheight, reversed, 0)
DECLARE_ANIM(staffhitreversalanim, "StaffHitCatch", middleheight, reversal, 0)
DECLARE_ANIM(staffspinhitreversedanim, "SpinWhackCaught", middleheight, reversed, 0)
DECLARE_ANIM(staffspinhitreversalanim, "SpinWhackCatch", middleheight, reversal, 0)
DECLARE_ANIM(sitanim, "Sit", lowheight, neutral, ab_idle | ab_sit)
DECLARE_ANIM(sleepanim, "Sleep", lowheight, neutral, ab_idle | ab_sleep)
DECLARE_ANIM(talkidleanim, "TalkIdle", middleheight, neutral, ab_idle)
DECLARE_ANIM(sitwallanim, "Dying", lowheight, neutral, ab_sit)
DECLARE_ANIM(dead1anim, "Dead1", lowheight, neutral, ab_sleep)
DECLARE_ANIM(dead2anim, "Dead2", lowheight, neutral, ab_sleep)
DECLARE_ANIM(dead3anim, "Dead3", lowheight, neutral, ab_sleep)
DECLARE_ANIM(dead4anim, "Dead4", lowheight, neutral, ab_sleep)

DECLARE_ANIM(tempanim, "Tempanim", lowheight, neutral, 0)

DECLARE_ANIM(loadable_anim_end, "", lowheight, neutral, 0)

/* Not implemented.  */
DECLARE_ANIM(rabbittacklereversal, "", lowheight, neutral, 0)
DECLARE_ANIM(rabbittacklereversed, "", lowheight, neutral, 0)
DECLARE_ANIM(sworddisarmanim, "", lowheight, neutral, 0)
DECLARE_ANIM(swordslashleftanim, "", lowheight, neutral, 0)
DECLARE_ANIM(swordslashrightanim, "", lowheight, neutral, 0)
DECLARE_ANIM(swordstabanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolfbashanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolfclawanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolffightidle, "", lowheight, neutral, 0)
DECLARE_ANIM(wolfhurtidle, "", lowheight, neutral, 0)
DECLARE_ANIM(wolfsneakanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolfswordidle, "", lowheight, neutral, 0)
DECLARE_ANIM(wolftackleanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolftackledbacanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolftackledfrontanim, "", lowheight, neutral, 0)
DECLARE_ANIM(wolftacklereversal, "", lowheight, neutral, 0)
DECLARE_ANIM(wolftacklereversed, "", lowheight, neutral, 0)
DECLARE_ANIM(wolftacklinganim, "", lowheight, neutral, 0)
#endif
