@ -6,21 +6,22 @@
INCLUDE_game
INCLUDE_ANIMATION_DATA
INCLUDE_DATA
INCLUDE_GFX
void sig : : Animation : : InitializeAnimations ( ) {
auto CreateStillAnimation = [ & ] ( Renderable & img , vf2d size , std : : string stat e, AnimationData data = { } ) {
auto CreateStillAnimation = [ & ] ( std : : string imgName , vf2d siz e, AnimationData data = { } ) {
Animate2D : : FrameSequence anim ( data . frameDuration , data . style ) ;
anim . AddFrame ( { & img , { { 0 , 0 } , size } } ) ;
ANIMATION_DATA [ stat e] = anim ;
anim . AddFrame ( { & GFX [ imgName ] , { { 0 , 0 } , size } } ) ;
ANIMATION_DATA [ imgNam e] = anim ;
} ;
auto CreateHorizontalAnimationSequence = [ & ] ( Renderable & img , int frameCount , vf2d size , std : : string stat e , AnimationData data = { } ) {
auto CreateHorizontalAnimationSequence = [ & ] ( std : : string imgName , int frameCount , vf2d size , AnimationData data = { } ) {
Animate2D : : FrameSequence anim ( data . frameDuration , data . style ) ;
for ( int i = 0 ; i < frameCount ; i + + ) {
anim . AddFrame ( { & img , { { int ( i * size . x ) , 0 } , size } } ) ;
anim . AddFrame ( { & GFX [ imgName ] , { { int ( i * size . x ) , 0 } , size } } ) ;
}
ANIMATION_DATA [ stat e] = anim ;
ANIMATION_DATA [ imgNam e] = anim ;
} ;
auto SetupClassWalkIdleAnimations = [ & ] ( Renderable & sheet , std : : string className ) {
@ -63,24 +64,24 @@ void sig::Animation::InitializeAnimations(){
} ;
//Warrior animations.
SetupClassWalkIdleAnimations ( game - > GFX_Warrior_Sheet , " WARRIOR " ) ;
SetupClassWalkIdleAnimations ( GFX [ " nico-warrior.png " ] , " WARRIOR " ) ;
Animate2D : : FrameSequence pl_warrior_swing_s ( 0.05 ) , pl_warrior_swing_n ( 0.05 ) , pl_warrior_swing_e ( 0.05 ) , pl_warrior_swing_w ( 0.05 ) ;
Animate2D : : FrameSequence pl_warrior_sonic_swing_s ( 0.1 , Animate2D : : Style : : OneShot ) , pl_warrior_sonic_swing_n ( 0.1 , Animate2D : : Style : : OneShot ) , pl_warrior_sonic_swing_e ( 0.1 , Animate2D : : Style : : OneShot ) , pl_warrior_sonic_swing_w ( 0.1 , Animate2D : : Style : : OneShot ) ;
for ( int i = 0 ; i < 4 ; i + + ) {
pl_warrior_swing_s . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 0 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_s . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 4 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_swing_s . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 0 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_s . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 4 } * 24 , { 24 , 24 } } } ) ;
}
for ( int i = 0 ; i < 4 ; i + + ) {
pl_warrior_swing_n . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 1 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_n . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 5 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_swing_n . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 1 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_n . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 5 } * 24 , { 24 , 24 } } } ) ;
}
for ( int i = 0 ; i < 4 ; i + + ) {
pl_warrior_swing_w . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 2 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_w . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 6 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_swing_w . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 2 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_w . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 6 } * 24 , { 24 , 24 } } } ) ;
}
for ( int i = 0 ; i < 4 ; i + + ) {
pl_warrior_swing_e . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 3 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_e . AddFrame ( { & game - > GFX_Warrior_Sheet , { vi2d { 4 + i , 7 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_swing_e . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 3 } * 24 , { 24 , 24 } } } ) ;
pl_warrior_sonic_swing_e . AddFrame ( { & GFX [ " nico-warrior.png " ] , { vi2d { 4 + i , 7 } * 24 , { 24 , 24 } } } ) ;
}
ANIMATION_DATA [ " WARRIOR_SWINGSWORD_N " ] = pl_warrior_swing_n ;
ANIMATION_DATA [ " WARRIOR_SWINGSWORD_E " ] = pl_warrior_swing_e ;
@ -92,13 +93,13 @@ void sig::Animation::InitializeAnimations(){
ANIMATION_DATA [ " WARRIOR_SWINGSONICSWORD_W " ] = pl_warrior_sonic_swing_w ;
//Ranger animations
SetupClassWalkIdleAnimations ( game - > GFX_Ranger_Sheet , " RANGER " ) ;
SetupClassWalkIdleAnimations ( GFX [ " nico-ranger.png " ] , " RANGER " ) ;
Animate2D : : FrameSequence pl_ranger_shoot_s , pl_ranger_shoot_n , pl_ranger_shoot_e , pl_ranger_shoot_w ;
for ( int i = 0 ; i < 3 ; i + + ) {
pl_ranger_shoot_s . AddFrame ( { & game - > GFX_Ranger_Sheet , { vi2d { 3 + i , 0 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_n . AddFrame ( { & game - > GFX_Ranger_Sheet , { vi2d { 3 + i , 1 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_e . AddFrame ( { & game - > GFX_Ranger_Sheet , { vi2d { 3 + i , 3 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_w . AddFrame ( { & game - > GFX_Ranger_Sheet , { vi2d { 3 + i , 2 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_s . AddFrame ( { & GFX [ " nico-ranger.png " ] , { vi2d { 3 + i , 0 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_n . AddFrame ( { & GFX [ " nico-ranger.png " ] , { vi2d { 3 + i , 1 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_e . AddFrame ( { & GFX [ " nico-ranger.png " ] , { vi2d { 3 + i , 3 } * 24 , { 24 , 24 } } } ) ;
pl_ranger_shoot_w . AddFrame ( { & GFX [ " nico-ranger.png " ] , { vi2d { 3 + i , 2 } * 24 , { 24 , 24 } } } ) ;
}
ANIMATION_DATA [ " RANGER_SHOOT_S " ] = pl_ranger_shoot_s ;
ANIMATION_DATA [ " RANGER_SHOOT_N " ] = pl_ranger_shoot_n ;
@ -106,107 +107,107 @@ void sig::Animation::InitializeAnimations(){
ANIMATION_DATA [ " RANGER_SHOOT_W " ] = pl_ranger_shoot_w ;
//Wizard animations
SetupClassWalkIdleAnimations ( game - > GFX_Wizard_Sheet , " WIZARD " ) ;
SetupClassWalkIdleAnimations ( GFX [ " nico-wizard.png " ] , " WIZARD " ) ;
Animate2D : : FrameSequence pl_wizard_idle_attack_s ;
pl_wizard_idle_attack_s . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 0 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_idle_attack_s . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 0 } * 24 , { 24 , 24 } } } ) ;
ANIMATION_DATA [ " WIZARD_IDLE_ATTACK_S " ] = pl_wizard_idle_attack_s ;
Animate2D : : FrameSequence pl_wizard_idle_attack_e ;
pl_wizard_idle_attack_e . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 3 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_idle_attack_e . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 3 } * 24 , { 24 , 24 } } } ) ;
ANIMATION_DATA [ " WIZARD_IDLE_ATTACK_E " ] = pl_wizard_idle_attack_e ;
Animate2D : : FrameSequence pl_wizard_idle_attack_w ;
pl_wizard_idle_attack_w . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 2 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_idle_attack_w . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 2 } * 24 , { 24 , 24 } } } ) ;
ANIMATION_DATA [ " WIZARD_IDLE_ATTACK_W " ] = pl_wizard_idle_attack_w ;
Animate2D : : FrameSequence pl_wizard_idle_attack_n ;
pl_wizard_idle_attack_n . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 1 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_idle_attack_n . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 1 } * 24 , { 24 , 24 } } } ) ;
ANIMATION_DATA [ " WIZARD_IDLE_ATTACK_N " ] = pl_wizard_idle_attack_n ;
Animate2D : : FrameSequence pl_wizard_attack_s ( 0.2 ) ;
for ( int i = 0 ; i < 3 ; i + + ) {
pl_wizard_attack_s . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 + i , 0 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_s . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 + i , 0 } * 24 , { 24 , 24 } } } ) ;
if ( i = = 1 ) {
pl_wizard_attack_s . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 0 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_s . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 0 } * 24 , { 24 , 24 } } } ) ;
}
}
ANIMATION_DATA [ " WIZARD_ATTACK_S " ] = pl_wizard_attack_s ;
Animate2D : : FrameSequence pl_wizard_attack_e ( 0.2 ) ;
for ( int i = 0 ; i < 3 ; i + + ) {
pl_wizard_attack_e . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 + i , 3 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_e . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 + i , 3 } * 24 , { 24 , 24 } } } ) ;
if ( i = = 1 ) {
pl_wizard_attack_e . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 3 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_e . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 3 } * 24 , { 24 , 24 } } } ) ;
}
}
ANIMATION_DATA [ " WIZARD_ATTACK_E " ] = pl_wizard_attack_e ;
Animate2D : : FrameSequence pl_wizard_attack_w ( 0.2 ) ;
for ( int i = 0 ; i < 3 ; i + + ) {
pl_wizard_attack_w . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 + i , 2 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_w . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 + i , 2 } * 24 , { 24 , 24 } } } ) ;
if ( i = = 1 ) {
pl_wizard_attack_w . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 2 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_w . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 2 } * 24 , { 24 , 24 } } } ) ;
}
}
ANIMATION_DATA [ " WIZARD_ATTACK_W " ] = pl_wizard_attack_w ;
Animate2D : : FrameSequence pl_wizard_attack_n ( 0.2 ) ;
for ( int i = 0 ; i < 3 ; i + + ) {
pl_wizard_attack_n . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 + i , 1 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_n . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 + i , 1 } * 24 , { 24 , 24 } } } ) ;
if ( i = = 1 ) {
pl_wizard_attack_n . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 4 , 1 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_attack_n . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 4 , 1 } * 24 , { 24 , 24 } } } ) ;
}
}
ANIMATION_DATA [ " WIZARD_ATTACK_N " ] = pl_wizard_attack_n ;
Animate2D : : FrameSequence pl_wizard_cast_s ( 0.1 ) ;
for ( int i = 0 ; i < 2 ; i + + ) {
pl_wizard_cast_s . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 7 + i , 0 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_cast_s . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 7 + i , 0 } * 24 , { 24 , 24 } } } ) ;
}
ANIMATION_DATA [ " WIZARD_CAST_S " ] = pl_wizard_cast_s ;
Animate2D : : FrameSequence pl_wizard_cast_e ( 0.1 ) ;
for ( int i = 0 ; i < 2 ; i + + ) {
pl_wizard_cast_e . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 7 + i , 3 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_cast_e . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 7 + i , 3 } * 24 , { 24 , 24 } } } ) ;
}
ANIMATION_DATA [ " WIZARD_CAST_E " ] = pl_wizard_cast_e ;
Animate2D : : FrameSequence pl_wizard_cast_n ( 0.1 ) ;
for ( int i = 0 ; i < 2 ; i + + ) {
pl_wizard_cast_n . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 7 + i , 1 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_cast_n . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 7 + i , 1 } * 24 , { 24 , 24 } } } ) ;
}
ANIMATION_DATA [ " WIZARD_CAST_N " ] = pl_wizard_cast_n ;
Animate2D : : FrameSequence pl_wizard_cast_w ( 0.1 ) ;
for ( int i = 0 ; i < 2 ; i + + ) {
pl_wizard_cast_w . AddFrame ( { & game - > GFX_Wizard_Sheet , { vi2d { 7 + i , 2 } * 24 , { 24 , 24 } } } ) ;
pl_wizard_cast_w . AddFrame ( { & GFX [ " nico-wizard.png " ] , { vi2d { 7 + i , 2 } * 24 , { 24 , 24 } } } ) ;
}
ANIMATION_DATA [ " WIZARD_CAST_W " ] = pl_wizard_cast_w ;
CreateHorizontalAnimationSequence ( game - > GFX_Effect_GroundSlam_Back , 5 , { 64 , 64 } , " GROUND_SLAM_ATTACK_BACK " , { 0.02 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_Effect_GroundSlam_Front , 5 , { 64 , 64 } , " GROUND_SLAM_ATTACK_FRONT " , { 0.02 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_Battlecry_Effect , 5 , { 84 , 84 } , " BATTLECRY_EFFECT " , { 0.02 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_SonicSlash , 4 , { 60 , 60 } , " SONICSLASH " , { 0.04 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( " ground-slam-attack-back.png " , 5 , { 64 , 64 } , { 0.02 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( " ground-slam-attack-front.png " , 5 , { 64 , 64 } , { 0.02 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( " battlecry_effect.png " , 5 , { 84 , 84 } , { 0.02 , Animate2D : : Style : : OneShot } ) ;
CreateHorizontalAnimationSequence ( " sonicslash.png " , 4 , { 60 , 60 } , { 0.04 , Animate2D : : Style : : OneShot } ) ;
CreateStillAnimation ( game - > GFX_EnergyBolt , { 24 , 24 } , " ENERGY_BOLT " ) ;
CreateStillAnimation ( " energy_bolt.png " , { 24 , 24 } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_EnergyParticle , 3 , { 3 , 3 } , " ENERGY_PARTICLE " ) ;
CreateHorizontalAnimationSequence ( " energy_particle.png " , 3 , { 3 , 3 } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_Splash_Effect , 5 , { 24 , 24 } , " SPLASH_EFFECT " , { 0.05 } ) ;
CreateHorizontalAnimationSequence ( " splash_effect.png " , 5 , { 24 , 24 } , { 0.05 } ) ;
CreateStillAnimation ( game - > GFX_BulletCircle , { 3 , 3 } , " DOT_PARTICLE " ) ;
CreateStillAnimation ( " circle.png " , { 3 , 3 } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_LightningBolt , 5 , { 24 , 24 } , " LIGHTNING_BOLT " , { 0.03 , Animate2D : : Style : : PingPong } ) ;
CreateHorizontalAnimationSequence ( " lightning_bolt.png " , 5 , { 24 , 24 } , { 0.03 , Animate2D : : Style : : PingPong } ) ;
CreateStillAnimation ( game - > GFX_LightningBoltParticle1 , { 5 , 5 } , " LIGHTNING_BOLT_PARTICLE1 " ) ;
CreateStillAnimation ( game - > GFX_LightningBoltParticle2 , { 5 , 5 } , " LIGHTNING_BOLT_PARTICLE2 " ) ;
CreateStillAnimation ( game - > GFX_LightningBoltParticle3 , { 5 , 5 } , " LIGHTNING_BOLT_PARTICLE3 " ) ;
CreateStillAnimation ( game - > GFX_LightningBoltParticle4 , { 5 , 5 } , " LIGHTNING_BOLT_PARTICLE4 " ) ;
CreateStillAnimation ( " lightning_bolt_part1.png " , { 5 , 5 } ) ;
CreateStillAnimation ( " lightning_bolt_part2.png " , { 5 , 5 } ) ;
CreateStillAnimation ( " lightning_bolt_part3.png " , { 5 , 5 } ) ;
CreateStillAnimation ( " lightning_bolt_part4.png " , { 5 , 5 } ) ;
CreateStillAnimation ( game - > GFX_ChainLightning , { 1 , 9 } , " CHAIN_LIGHTNING " ) ;
CreateStillAnimation ( " chain_lightning.png " , { 1 , 9 } ) ;
CreateHorizontalAnimationSequence ( game - > GFX_LightningSplash , 5 , { 24 , 24 } , " LIGHTNING_SPLASH " ) ;
CreateHorizontalAnimationSequence ( " lightning_splash_effect.png " , 5 , { 24 , 24 } ) ;
CreateStillAnimation ( game - > GFX_Meteor , { 192 , 192 } , " METEOR " ) ;
CreateStillAnimation ( " meteor.png " , { 192 , 192 } ) ;
for ( int i = 0 ; i < 5 ; i + + ) {
Animate2D : : FrameSequence firering ;
firering . AddFrame ( { & game - > GFX_LightningSplash , { { i * 24 , 0 } , { 24 , 24 } } } ) ;
ANIMATION_DATA [ " FIRE_RING " + std : : to_string ( i + 1 ) ] = firering ;
firering . AddFrame ( { & GFX [ " fire_ring " + std : : to_string ( i ) + " .png " ] , { { 0 , 0 } , { 24 , 24 } } } ) ;
ANIMATION_DATA [ " fire_ring " + std : : to_string ( i ) + " .png " ] = firering ;
}
CreateStillAnimation ( game - > GFX_Arrow , { 24 , 24 } , " ARROW " ) ;
CreateStillAnimation ( game - > GFX_ChargedArrow , { 48 , 48 } , " CHARGED_ARROW " ) ;
CreateStillAnimation ( game - > GFX_Laser , { 5 , 1 } , " LASER " ) ;
CreateStillAnimation ( game - > GFX_RangeIndicator , { 24 , 24 } , " RANGE_INDICATOR " ) ;
CreateStillAnimation ( " arrow.png " , { 24 , 24 } ) ;
CreateStillAnimation ( " charged_shot_arrow.png " , { 48 , 48 } ) ;
CreateStillAnimation ( " laser.png " , { 5 , 1 } ) ;
CreateStillAnimation ( " range_indicator.png " , { 24 , 24 } ) ;
}
void sig : : Animation : : SetupPlayerAnimations ( ) {