Fix evolution animation issue

This commit is contained in:
Lorenzo Carletti 2023-03-05 12:19:20 +01:00
parent d3499cd9a6
commit 53cf66ba81
4 changed files with 10 additions and 9 deletions

View File

@ -1,2 +1,2 @@
捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶欹詘棰vnowx颬<EFBFBD>&'()*+,-./01234:;<=>DEFGH<47><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𥟇<EFBFBD><F0A59F87>嵗╯丰埵夾帚恍國鋷陋<E98BB7>
捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶欹詘棰vnowx颬<EFBFBD>&'()*+,-./01234:;<=>DEFGH<47><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𥟇<EFBFBD><F0A59F87>嵗╯丰埵夾帚恍國鋷陋<E98BB7>
<1B>@ABGC<47><EFBFBD><E9BCAC><EFBFBD><EFBFBD>珂桡tu骀骀秕痱耋骀鎐defgh骀kl骀骀鎗骀i骀骀骀骀骀骀骀骀骀骀骀骀骀骀骀韒骀骀骀骀骀骀骀<E9AA80>

View File

@ -6,6 +6,6 @@ void setup_evolution_animation(struct gen3_mon_data_unenc*, u8);
void advance_trade_animation(void);
u8 has_animation_completed(void);
void start_with_evolution_animation(void);
void prepare_evolution_animation_only(struct gen3_mon_data_unenc* own_mon);
void prepare_evolution_animation_only(struct gen3_mon_data_unenc* own_mon, u8);
#endif

View File

@ -43,9 +43,10 @@ void start_with_evolution_animation() {
animation_counter = WAIT_TRADE_END-1;
}
void prepare_evolution_animation_only(struct gen3_mon_data_unenc* own_mon) {
void prepare_evolution_animation_only(struct gen3_mon_data_unenc* own_mon, u8 own_screen) {
sprite_indexes[OTHER_SPRITE_INDEX] = get_next_sprite_index();
sprite_ys[OTHER_SPRITE_INDEX] = BASE_Y_SPRITE_TRADE_ANIMATION_SEND;
screen_nums[OTHER_SPRITE_INDEX] = own_screen;
load_pokemon_sprite_raw(own_mon, 0, BASE_Y_SPRITE_TRADE_ANIMATION_SEND, BASE_X_SPRITE_TRADE_ANIMATION);
animation_counter = 0;
animation_completed = 0;
@ -90,7 +91,7 @@ void advance_evolution_animation() {
case START:
if(animation_counter == WAIT_EVO_START) {
curr_evolution_animation_state = FADE_IN;
swap_screen_enabled_state(screen_nums[EVOLUTION_SPRITE_INDEX]);
disable_screen(screen_nums[EVOLUTION_SPRITE_INDEX]);
prepare_flush();
animation_counter = 0;
curr_fade_val = 0;
@ -116,7 +117,7 @@ void advance_evolution_animation() {
curr_evolution_animation_state = END;
remove_fade_all_sprites();
swap_buffer_screen(screen_nums[EVOLUTION_SPRITE_INDEX], 0);
swap_screen_enabled_state(screen_nums[EVOLUTION_SPRITE_INDEX]);
enable_screen(screen_nums[EVOLUTION_SPRITE_INDEX]);
prepare_flush();
}
else{
@ -129,7 +130,7 @@ void advance_evolution_animation() {
case END:
if(animation_counter == WAIT_EVO_END) {
animation_completed = 1;
swap_screen_enabled_state(screen_nums[EVOLUTION_SPRITE_INDEX]);
disable_screen(screen_nums[EVOLUTION_SPRITE_INDEX]);
prepare_flush();
animation_counter = 0;
is_animating_evolution = 0;
@ -155,14 +156,14 @@ void advance_trade_animation() {
if(sprite_ys[OTHER_SPRITE_INDEX] == BASE_Y_SPRITE_TRADE_ANIMATION_SEND) {
if(animation_counter == WAIT_TRADE_END) {
disable_screen(screen_nums[OTHER_SPRITE_INDEX]);
if(!animate_evolution)
animation_completed = 1;
else {
is_animating_evolution = 1;
swap_screen_enabled_state(screen_nums[EVOLUTION_SPRITE_INDEX]);
enable_screen(screen_nums[EVOLUTION_SPRITE_INDEX]);
curr_evolution_animation_state = START;
}
swap_screen_enabled_state(screen_nums[OTHER_SPRITE_INDEX]);
prepare_flush();
animation_counter = 0;
}

View File

@ -368,7 +368,7 @@ void trading_animation_init(struct game_data_t* game_data, u8 own_mon, u8 other_
if(print_messages)
setup_trade_animation(&game_data[0].party_3_undec[own_mon], &game_data[1].party_3_undec[other_mon], TRADE_ANIMATION_SEND_WINDOW_SCREEN, TRADE_ANIMATION_RECV_WINDOW_SCREEN);
else
prepare_evolution_animation_only(&game_data[0].party_3_undec[own_mon]);
prepare_evolution_animation_only(&game_data[0].party_3_undec[own_mon], TRADE_ANIMATION_RECV_WINDOW_SCREEN);
prepare_flush();
}