]> git.localhorst.tv Git - l2e.git/blobdiff - src/main.cpp
added Maxim's melee animation
[l2e.git] / src / main.cpp
index 0fd129b98618401a1acc34f5f419ba448ba2d5cc..49a79b62e7b8d7bb34e166281fa5cac5cee9f8ad 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "app/Application.h"
 #include "app/Input.h"
+#include "battle/AttackAnimation.h"
 #include "battle/BattleState.h"
 #include "battle/Hero.h"
 #include "battle/Monster.h"
@@ -23,6 +24,7 @@
 #include "graphics/Frame.h"
 #include "graphics/Gauge.h"
 #include "graphics/Menu.h"
+#include "graphics/SimpleAnimation.h"
 #include "graphics/Sprite.h"
 #include "sdl/InitImage.h"
 #include "sdl/InitScreen.h"
@@ -35,6 +37,7 @@
 
 using app::Application;
 using app::Input;
+using battle::AttackAnimation;
 using battle::BattleState;
 using battle::Hero;
 using battle::Monster;
@@ -50,6 +53,7 @@ using graphics::Font;
 using graphics::Frame;
 using graphics::Gauge;
 using graphics::Menu;
+using graphics::SimpleAnimation;
 using graphics::Sprite;
 using sdl::InitImage;
 using sdl::InitScreen;
@@ -102,18 +106,29 @@ int main(int argc, char **argv) {
                maxim.SetMana(20);
                maxim.SetIP(0);
                ComplexAnimation maximAttackAnimation(&maximSprite, 30);
-               maximAttackAnimation.AddFrames(2, 0, Vector<int>(), 2);
-               maximAttackAnimation.AddFrames(2, 0, Vector<int>(4, 0), 2);
-               maximAttackAnimation.AddFrame(2, 1, Vector<int>(4, 0));
-               maximAttackAnimation.AddFrames(2, 1, Vector<int>(-2, 0), 2);
-               maximAttackAnimation.AddFrame(2, 1, Vector<int>(-8, 0));
-               maximAttackAnimation.AddFrames(2, 2, Vector<int>(-8, 0), 2);
-               maximAttackAnimation.AddFrame(2, 2, Vector<int>(-4, 0));
+               maximAttackAnimation.AddFrame(1, 0, Vector<int>(2, 0));
+               maximAttackAnimation.AddFrame(1, 0, Vector<int>(2, -1));
+               maximAttackAnimation.AddFrames(2, 0, Vector<int>(2, -2), 2);
+               maximAttackAnimation.AddFrame(2, 0, Vector<int>(4, -2));
+               maximAttackAnimation.AddFrame(2, 0, Vector<int>(3, -1));
+               maximAttackAnimation.AddFrames(2, 1, Vector<int>(3, -1), 2);
+               maximAttackAnimation.AddFrame(2, 1);
+               maximAttackAnimation.AddFrames(2, 2, Vector<int>(), 2);
                maxim.SetAttackAnimation(&maximAttackAnimation);
                ComplexAnimation maximSpellAnimation(&maximSprite, 150);
                maximSpellAnimation.AddFrames(3, 0, Vector<int>(), 2);
                maximSpellAnimation.AddFrame(3, 1);
                maxim.SetSpellAnimation(&maximSpellAnimation);
+               SDL_Surface *maximMeleeImg(IMG_Load("test-data/melee-maxim.png"));
+               Sprite maximMeleeSprite(maximMeleeImg, 96, 96);
+               SimpleAnimation maximMeleeAnimation(&maximMeleeSprite, 30, 4);
+               AttackAnimation maximMeleeScript;
+               maximMeleeScript.PlayAttackAnimation();
+               maximMeleeScript.StartTimer(150);
+               maximMeleeScript.WaitForTimer();
+               maximMeleeScript.PlayTargetAnimation(&maximMeleeAnimation);
+               maximMeleeScript.WaitForAnimations();
+               maxim.SetMeleeAnimation(&maximMeleeScript);
 
                SDL_Surface *selanImg(IMG_Load("test-data/selan.png"));
                Sprite selanSprite(selanImg, 64, 64);
@@ -442,7 +457,7 @@ int main(int argc, char **argv) {
                firestorm.GetTargetingMode().TargetAllEnemies();
                firestorm.SetPhysical();
                zircoSword.SetIkari(&firestorm);
-               maxim.SetWeapon(&zircoSword);
+//             maxim.SetWeapon(&zircoSword);
                Item zirconArmor;
                zirconArmor.SetName("Zircon armor");
                zirconArmor.SetMenuIcon(&armorIcon);